顯示具有 ble 標籤的文章。 顯示所有文章
顯示具有 ble 標籤的文章。 顯示所有文章

2015年12月25日 星期五

突破藍海'引領物聯(ATMEL 研討會)

時間: 2015/12/17
場合:台南大億麗緻酒店
標題:突破藍海,引領物聯(嵩森科技暨ATMEL微控制器產品應用研討會
人數:100人
主旨:ATMEL,Iot and SOC
要點:
1.Atmel all serial SOC soultion overview :
  在之前,我也只有用到它的51及AVR(arduino)及memory(AT24/25xx). 在介紹中,才知它是一家觸控解決方大廠 Atmel .在之前我所了解的市場,其實沒有這家Atmel的wirelss solution.所以查了一下,它是在去年併購*了一家Newport Media,因此有了BLE及wifi 的技術.
從8-bit Flash MCU(AVR), low power MCU(M0+,M4 & M7,Event system,Sercom* and PTC*) and 32-bit MPU(ARM9 & A5).
而它的周邊的有儲存(memory) Crypto Authentication(SHA,AES and ECC) ,Analog(AFE,Metor and Temp Sensor)
最後在無線方面則是有很齊全的方案,BLE (doual mode) ,Wifi(802.11 a/b/g/n) ,802.15.4* and Sub1G.
2.它的產品特色有
  A. Long Term Time Support- 說是有12 Y的. 而若需要更長的也可以去談.
B.Multi-class MCU(如第一點才提).
C.free tool(Atmel studio)
3.IOT 的要求及挑戰
  要求: IP base,Security*1 and Clound.
  挑戰:M2M中通訊,市場混亂.
*Security:
在無線中,其中有一個要點在於security上.如公/私鑰及數位簽章.會在另一篇簡介我所找到的文章.
*最近它們更被 Dialog Semiconductor 收購中.
*sercom,簡單的說就是可以在有空i/o下,新增任一個uart /spi/i2c等介面
  PTC,perpherial touch Control.
*802.15.4,其中它們特別針對室內定位改才用phase measure來做而非一般的RSSI
              可以大大改善其範圍到10米以下.

Q1.
     最近年來,幾乎所有的通訊廠都在做Iot相關的平台。
     但大多是從本業出發(像是台廠的realtek/Ammicom)也有本身就是做整合Soc的MTK .
     若是要針對某一標準通訊來講,各家功能上面基本一樣(因為是標準啊XD)

     最根本對ODM廠來講還是在於 support,但大多我們主要接觸的對象代理商。
     而這個代表著support也隨著不同(也不能這種說,看誰量大;誰就有支援)。

Q2.
     而若,需要的是IoT的話,需要考量的就不同了. 它不光只是device端而是到霊端上的內容.
     這裡,我也借由 ATMEL 研討會-2 內容來介紹
     

p.s:送很多東西還有投獎.
提交"與會報告書"(整理出時間、場合、標題、演講者姓名、參加者人數、主旨、要點、疑問及感想"並積極發問

2015年11月21日 星期六

Nordic global tech tour 2015(2/2)

前言:
在Nordic global tech tour 2015(1/2)中,是對於基本內容. 而在這裡則是為跟NRf52新增的function介紹.
IMAG0187
Timer:(enhance and new)
在RTC,Generial Timer及SysTick.其中SystemTick是新加的.而其它的部部份,則是有多組及加強. 但不知在新的softdevice對於這些資源的使用是如何?
像是之前,s110中,RTC及Timer 好像均有一組已被softdevice佔用. 但這裡我沒有看到有提供這方面的資訊.
而對於SysTick則是有所限制在.
(not recommended for general use as it stop when CPU stop)
serial communctation:(enhance and new )
TWI/SPI and UART, 在之前我所使用的NRf51 v1/2 與NRF52 多了相當多的function.
(EasyDMA and autolog) ,對此可能要之後用到才能詳細看. 尤起來在使用PPI及EasyDMA在處error handle時.這部份 ....
LPCOMP(low power comparat) ,New
COMP(General Purpose comparetor),New
因為我之前並沒有使用到類似的function. 所以,可能要用到時再看看.
PPI GPIOTE and EasyDMA,(enhance and new
enchance,跟之前的nRF51 相較新增了4 組channel 出來及二組group
new , 新增了fork,來達成單一event多task
NFC,(new
這個在之前在nordic SDK已有它的選項了(out-ot band).在這版來該出現了.
以下是它的規格及FUNCTION,
  • 13.56MHz
  • NFC-A Type 2 ,
  • Read-Ony,*
Read-Only 對於此Nordic表示因功耗要求並不考慮可以peer -mode
ADC and Audio peripherals ,new
Successive Approximation ADC
  • 8/10/12 bit resolution
  • Full scale input rang
  • Single-ended or differential mode
  • Up to eight  input channel
  • internal resistor string
  • One-shot or scan sampling mode
  • Option oversampling mode
  • Continuous sampling(200KHz)
  • On-the fly limits check
  • EasyDMA
audio peripherals
  • I2s
  • PDM
  • PWM

這裡我有了相當的興趣,因在一開始我前公司就是看好智能電視這塊市場. 而在remoter上的藍芽這塊. 而在nordic 也是,因此它提供了一個reference desing (smart nRF remoter 2).而我們也有以自家的SOC加上NRF51來實作. 但事實上, 在市場上也有許多家做這個.但是採用one chip . 因此最後也沒結果.
而在做audio這塊上其中,ADC的功能是相當重要的,因原本的nRF 51沒有EasyDMA及加上ble stack interrupt context限制. 所以一定要配合另一顆decode來. 而這次的nRF52中,有了enhance ADC ,Hardware PWM ,i2s,PDM , DSP and Float Point.已經滿足了要求了. 但不知Nordic方面是否會跟以前一樣提供referencce desing for remoter.
後言:
對我也說, 之所以想要去了解的部份在於audio,EasyDMA ,DSP and Float Point.
而這些,nordic之所以會加入也是因為未來的趨勢.因此等手上的工作到一個階段後可以續之前的計劃及研究.

*1.add the 2012 nordic tech tour
*2.最快傳輸速度? 是否可以50Kbps @ BLE 4.0 and IOS 7 system?
     這是我最後在那裡處理的case .



https://drive.google.com/folderview?id=0B2uYQcUgyMUJdmZQd3hLWENYNmM&usp=sharing

Nordic global tech tour 2015(1/2)


前言:
     昨日11/20,去高雄參加nordic global tech tour活動,這應該是第一次是nordic在台所舉辨的活動,推廣Nrf 52 serial Soc . 機會難得. 雖然我個人目前因工作關係已沒有在接解Nordic的Soc的了.但有在一直觀注這個.
因昨日身体不適,所以沒有在會議中有什麼交流,最後也只有跟之前接解觸的FAEsay hello,Orz.
    但是, 把記錄的寫下. 相信末來有機會再回來看.
keywork:
nordic, tech tour,nrf52

IMAG0188
fig 1. which one is NRf 51 and NRf52
 
時間:2015/11/20 9:00 am ~17 :00 pm
地點:高雄-漢來飯店
人數:約80人
主旨:Nrf52 tech tour
要點:
Nrf 52的特性及BLE stack program.
特別的是在Nrf 52,跟我以前所接解觸的Nrf 51(*1) 有了滿大的的不同(*2).
將對之前的與內容問題
Power management:
DC/DC,與Nrf51差在其輸出電流會依其load改變
(waht different with low /hight activity, what kind of peripheral use ?)
free runing or lock to XO,
在一開始為lock XO,在一但穩定後可以free runing來降低功耗.(為8ppm)
在system idle/off是否需要重新lock to XO??
Softdevice:
Software separation:
by the two vector table system,the will add more lancety time?
interrupt context ,
how to avoid the read/write flash issue on this contect?
how to identy the interrupt level ?
(as my solution before ,i read/write only on befor start and disconnect ble,
but new solution,that should be using the timeslot ,but that need check)

Bluetooh Smart application
是跟之前的是一樣的, 不知是我聽錯還是理解有誤.
對於custom characteristics 有空間上的限制而不是傳輸上限制才對.
還有提到了Bluetooth Developer Studio的使用,之前也試著使用但卻找不到可以輸出成
可被使用的檔案格式. 原來它是必須配vendor solution pack.才可使用 而這方面只能看各家的vendor是否有提供. 感覺是大大地降 而這方面只能看各家的vendor是否有提供. 感覺是大大地降低它的方便.
Software development Kit,
dfu with asymmetric signing, and serialization:
common RTOS support,
說實在的,雖然nordic一直都拿另一家大廠相較. 但在事實在是在相互學習相勵.
如同ios 及 android 系統上, 各有它的優缺. 重要是在適當的情況下採用不同實作方式.
或是為了某一目標下,採取最佳的方式. 像是在OSAL/TI-RTOS對我這種只能透過大師的...........code來學習的人來講是很好的.
接下來是,就是Nrf 52新加的function相關(NFC,i2s /ADC ,EasyDMA and PWM)
*1:
Nrf 51簡單有3個版本(v1~3).
Nrf 51 之前都是V1/2 版的,即其i/o interface均沒有包含有EasyDMA.
*2:
Nrf 52中與Nrf51相較下.
Nrf52除了更快M4F 64MHz/更省電
(action Radio time,Tx5ma: Rx:4.6ma,at Dc/Dc mode) 外,
還有
a.every serial interface(spi/i2c) 均有了EasyDMA
b.ADC 也有了EasyDMA 及及 Hardware PWM for Audio,
c. 多了ULPCOMP ,COMP
d. 內建了DSP and Float Point
e. NFC(only read)

https://drive.google.com/folderview?id=0B2uYQcUgyMUJdmZQd3hLWENYNmM&usp=sharing







2015年6月6日 星期六

2015藍牙趨勢應用研討會-以物聯網打造智慧生活

時間: 5月20日 ,9:30 ~ 17:00

地點:台大醫院國際會議中心-301會議室

人數:70人

主辨單位: 工研院

主題:應用研討會

keyword:ble

這次,比起過往少了一些廠商(如,儀器測試及某些平台廠)多了一些Maker.

有像是做酒的' beacon應用及智慧家庭部份.都是相當好的產品及想法.

 

可見,在未來因平台的開放及成熟後. 大家都可以去做出相當多的產品.

而在ble上因為可以很容易跟手機溝通,因此可以更加地普及化.

在未來的物聯網的感測層必定有一定的地位存在.

https://drive.google.com/open?id=0B2uYQcUgyMUJS3MwS1hLdFBOUjg&authuser=0

https://drive.google.com/open?id=0B2uYQcUgyMUJTG1YRUQ3VWN0UDQ&authuser=0

https://drive.google.com/open?id=0B2uYQcUgyMUJQXBwT0lqVlpZSW8&authuser=0

https://drive.google.com/open?id=0B2uYQcUgyMUJeURPX2YtT1pjcFE&authuser=0

ps.

今年是第三次參加該會議,也是我最後一次參加了.

因我要回南部工作了.雖然也是跟IOT的有關.

 

 

提交"與會報告書"(整理出時間、場合、標題、演講者姓名、參加者人數、主旨、要點、疑問及感想"並積極發問

2015年3月21日 星期六

mbed 介紹

 

前言:

ARM 推出了全面性的物聯網(IoT: Internet of Things)運用平台,該平台包括了 mbed OS 與 mbed 伺服器設備.

keyword:

iot,mbed ,nordic 51422

 

年前,ARM正式推出mbed IDE(整合開發平台) , 其介紹可見what is mbed.

內容有致有

1.MBED MCU

2.MBED compiler

3.MBED SDK

而其中,MBED compiler及SDK都是在線上完成的.

這邊我把手上一個nrf51422 (nordic dongle)為範例操作.

image image

1.去mbed 註冊

https://mbed.org/

image

2.進入右上方的develop site

image

3.再進入右上方的compiler

image

4.select device

image

5.new a project(select device)

image 

6.new a file(main) and lib(mbed)

(Click the right button on the mouse at the project name,example "blink"))

image 

(the file must *.cpp),it use the c++

7.program (you should reference the mbed lib (or other lib))

select the mbed lib and export it to click the DigitalOut

image

write follow in main.cpp

#include "mbed.h"
DigitalOut led(LED1);
int main()
{
    while(1){
        wait(1);
        led=!led;
        }
}

 


8.compiler and download


(the loader ,the brower will download the bin file)


image


9.loader (by your develop board,put the into loader mode)


10.reboot your device ,should be work.



MBED 的用途

MBED 是专为实验及反覆操作而设计的,主要是测验某种东西或方法而不是优化解决方案。因此,它适合专业嵌入式工程师,也适合想初次尝试的门外汉


最後,這讓我感覺這個像是另一個"arduino". 然而這個應是現階段的部份.


而在之後在在mbed OS出來後.一定會變成下一個arduino.(只是在只是AVR平台而已)


而且也可以跟著不同板子有不同的功能.如nrf5144有radio(ble 'ant and proprotal)


 


image


 


image


ref:


https://github.com/mbedmicro/nRF51822


http://developer.mbed.org/cookbook/mbed-application-board


https://mbed.org/technology/os/


http://www.chinatimes.com/realtimenews/20141008004930-260412


ARM發表物聯網專用作業系統MBED,正式版將在2015年釋出


http://www.techbang.com/posts/20319-king-of-computers-arm-to-launch-the-operating-system-for-internet-use-mbed-accelerated-the-development-of-internet-applications


https://developer.mbed.org/


https://www.nordicsemi.com/eng/Products/ANT/nRF51422

2015年1月24日 星期六

my ide

 

Interface

image

Plugin & vimrc (configure)

set nocompatible              " be iMproved, required
filetype off                  " required
set guioptions-=m  "remove menu bar
set guioptions-=T  "remove toolbar
 
" set the runtime path to include Vundle and initialize
set rtp+=~/vimfiles/bundle/Vundle.vim/
let path='~/vimfiles/bundle'
call vundle#begin(path)
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
 
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
Plugin 'vim-scripts/L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
"Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
"for nerdtree
Plugin 'scrooloose/nerdtree'
"commenting
Plugin 'scrooloose/nerdcommenter'
"snipmate
Plugin 'msanders/snipmate.vim'
Plugin 'ervandew/supertab'
"Plugin 'vim-scripts/OmniCppComplete'
 
"file manager
Plugin 'wesleyche/SrcExpl'
Plugin 'vim-scripts/taglist.vim'
Plugin 'wesleyche/Trinity'
Plugin 'tomtom/tlib_vim'
Plugin 'tomtom/tselectbuffer_vim'
Plugin 'vim-scripts/a.vim'
Plugin 'vim-scripts/FuzzyFinder'
"project 
Plugin 'vim-scripts/DfrankUtil'
Plugin 'vim-scripts/project.tar.gz'
Plugin 'vim-scripts/indexer.tar.gz'
Plugin 'vim-scripts/vimprj'
Plugin 'tomtom/TortoiseSVN_vim'
"color sch
Plugin 'junegunn/seoul256.vim'
"marks
"Plugin 'kshenoy/vim-signature'
Plugin 'MattesGroeger/vim-bookmarks' 
"calender
Plugin 'mattn/calendar-vim'
"compiler
Plugin 'scrooloose/syntastic'
Plugin 'tpope/vim-pathogen'
 
"status bar
Plugin 'bling/vim-airline'
"format
Plugin 'vim-scripts/Align'
Plugin 'Chiel92/vim-autoformat'
Plugin 'mrtazz/DoxygenToolkit.vim'
"fun
Plugin 'mattn/flappyvird-vim'
Plugin 'vim-scripts/TeTrIs.vim'
Plugin 'vim-scripts/sokoban.vim'
 
" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
let g:seoul256_background = 246
"colo seoul256-light
colo seoul256
" 檔案編碼
"set encoding=utf-8
"set fileencodings=utf-8,cp950
 
" 編輯喜好設定                                                                                                                                                                                                     
syntax on        " 語法上色顯示
set nocompatible " VIM 不使用和 VI 相容的模式
" set ai           " 自動縮排
set shiftwidth=4 " 設定縮排寬度 = 4 
set tabstop=4    " tab 的字元數
set softtabstop=4
set expandtab   " 用 space 代替 tab
 
set ruler        " 顯示右下角設定值
set backspace=2  " 在 insert 也可用 backspace
set ic           " 設定搜尋忽略大小寫
set ru           " 第幾行第幾個字
set hlsearch     " 設定高亮度顯示搜尋結果
set incsearch    " 在關鍵字還沒完全輸入完畢前就顯示結果
set smartindent  " 設定 smartindent
set confirm      " 操作過程有衝突時,以明確的文字來詢問
set history=100  " 保留 100 個使用過的指令
set cursorline   " 顯示目前的游標位置
 
set laststatus=2
set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
"key mapping
imap jj <;Esc>
noremap ,bb :TSelectBuffer<;cr>
" Open and close all the three plugins on the same time 
nmap <F7>  :TrinityToggleAll<CR> 
" Open and close the Source Explorer separately 
nmap <;F9>  :TrinityToggleSourceExplorer<CR> 
" Open and close the Taglist separately 
nmap <F10> :TrinityToggleTagList<CR> 
" Open and close the NERD Tree separately 
nmap <;F11> :TrinityToggleNERDTree<CR> 
imap    <;F2>    <C-R>=strftime("%c")<CR>
nmap    ,te :tabedit<;SPACE>
nmap    ,tx    :tabedit .<;CR>
nmap    ,th    :tab help<;CR>
nmap    ,tn    :tabnew<;CR>
 
map <;F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "make -f ble_app_template.Makefile"
endfunc
 
map <;F6> :call RunGcc()<CR>
func! RunGcc()
exec "w"
exec "! %<"
endfunc
 
set nocp
 " Enable check c
"let g:syntastic_check_on_open = 1
"let g:syntastic_c_checkers = ['gcc', 'make'] 
"let g:syntastic_c_errorformat = '%f:%l:%c: %trror: %m'
"let g:syntastic_always_populate_loc_list = 1
"execute pathogen#infect()
 "airline
"let g:airline#extensions#tabline#enabled = 1
"format
let g:formatprg_c = "astyle"
let g:formatprg_args_c = "--style=allman --pad-oper --min-conditional-indent=0 --max-code-length=120 --add-brackets --break-blocks --delete-empty-lines --indent=spaces=4"
map ,fc :Autoformat<CR><CR> 
"bookmark
let g:bookmark_sign = '>;>'
let g:bookmark_annotation_sign = '##'
let g:bookmark_save_per_working_dir = 1
let g:bookmark_auto_save = 0
let g:bookmark_auto_save_file = '/bookmarks'
let g:bookmark_auto_close = 1
let g:bookmark_highlight_lines = 1
let g:bookmark_show_warning = 0
let g:bookmark_center = 1
 
"DoxygenToolkit
let g:DoxygenToolkit_briefTag_pre="@detail  "
let g:DoxygenToolkit_paramTag_pre="@param[] "
let g:DoxygenToolkit_returnTag="@returns    "
let g:DoxygenToolkit_blockHeader="@brief    function for"
let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------"
let g:DoxygenToolkit_authorName="Copyright(C) MediaWave.,Ltd                                                     steven lin,All Right Reserved"
"indexer.tar.gz
"change the tags dir at ram disk
let g:indexer_tagsDirname ="F:\indexer"
map <F3>  :Dox <CR>
"change leader mapping
let mapleader=","
let g:SokobanLevelDirectory="C:\\Users\\steven\\vimfiles\\bundle\\\sokoban.vim\\"
"the tortoise svn
map <F8> :call CommitSVNAll()<CR>
func! CommitSVNAll()
    let buflist = []
    for b in range(1, bufnr('$'))
        if buflisted(b) && filereadable(bufname(b))
            call add(buflist, fnamemodify(bufname(b), ':p'))
        endif
    endfor
    let files = join(buflist, '*')
    if files != ''
        silent exec '!start "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"'.files.'" /closeonend:4'
    else
        call confirm('No files loaded')
    endif
endfunc
map ff <;esc>:FufFile<cr>
map fcd <;esc>:FufDir<cr>
map fbw <;esc>:FufBufferTagAllWithCursorWord<cr>
map fbb <;esc>:FufBuffer<cr>
 


make operator


A.make


image


:copen


image


download:


…………………


ref:


vim make:


https://www.cs.oberlin.edu/~kuperman/help/vim/makefiles.html