nrf52810為nordic支援藍芽 5.0價效比最高的一款晶元,不過這個晶元的rom不得不吐槽下,只有192kb,不知道為什麼定了個192,而不是大家所熟悉的256kb,估計**是個原因吧,15.2的協議棧中s112 softdevice占用了100kb,只剩92kb了,後面還要減掉bootloader的大小,所以給使用者使用的空間並不大,15.2中pca10040e為52810的工程
nrf52832, 可以通過藍芽、串列埠,usb 公升級。
具體flash布局參考:
編譯環境和公升級過程參考:
nrf52832 對公升級過程中的資料進行了加密和認證處理,具體過程參考:
要啟動bootloader,需要設定晶元的uicr 區域,uicr.bootloaderaddr. 將bootloader 位址寫入此區域。
具體命令:nrfjprog.exe --memwr 0x10001014 --val 0x00078000.
nrfjprog 乙個python 的程式,安裝過程參考上面所提文章。0x10001014 是 uicr.bootloaderaddr 位址。0x00078000 是14.2.0 sdk版本中bootloader 區域位址。
原文:nrf52832的uicr
uicr(user information configuration registers)是儲存使用者特殊設定的非易失儲存暫存器(nvm:non-volatile memory),uicr與flash的不同的是只有通過全片擦除後才能重新寫入,不能單獨擦除。
uicr暫存器組:
nrffw[14:0]:為nordic韌體保留,與dfu的設計有關。
nrfhw[11:0]:為nordic硬體件保留。
customer[31:0]:為使用者保留。
pselreset[1:0]:選擇nreset連線的引腳位置(並不是所有引腳都支援),兩個暫存器值必須一致nreset才有效,否則沒有nreset引腳。
nfcpins:設定nfc引腳為gpio還是nfc。
nreset和nfc pin
預設在system_nrf52.c中通過巨集config_nfct_pins_as_gpios和config_gpio_as_pinreset控制開啟或關閉nreset和nfc pin的功能。在擦除和燒寫後的首次程式執行的時候,systeminit()函式根據巨集定義設定會先根據巨集定義寫uicr暫存器。
bootloader
在bootloader的程式中nrf_uicr->nrffw[0]儲存的是bootloader的位址。
原文:
STM32 NRF24L01學習筆記
首先nrf24l01是使用spi與stm32進行通訊的 其中要區分csn 模組的片選訊號,和ce 使能訊號的功能。csn是協議片選端,多個spi裝置共用stm32的spi口時,就通過csn來區分,而ce端實際上是晶元的功能使能端,通過配置ce使它進入不同的狀態 rx,tx 寫命令 1aaaaa 相當...
nRF52832學習筆記2 藍芽工程樣本
1 main主函式 2 板子設定 按鍵 燈等 3 startup資料夾 晶元啟動函式 4 ble資料夾 藍芽服務 5 drivers資料夾 外設驅動函式 6 libraies資料夾 1 應用層 警告通知 血壓測量儀 心率 電池等等。2 主協議層 通用訪問規範 gap 管理廣播和連線時間相關引數 角色...
學習筆記二
1 算符運算子 1 5為1 1 5為 1 即只看被除數的符號。b a 先賦值後運算 a b 先運算後賦值。2 字串資料與任何資料使用 都是相連線,最終都會變成字串,例如 ad 2 結果為 ad2 3 轉義字元 通過 來裝便後面字母或符號的含義 n換行 linux b 退格 r 按下回車鍵,windo...