一起学nRF51xx 17 - lpcomp
前言
nRF51系列SOC內部低功耗比較器(LPCOMP)的使用。此比較器類似于用運放搭建的比較器,當VIN+輸入的電壓大于VIN-輸入的電壓,輸出結果為高電平;當VIN+輸入的電源小于VIN-輸入的電壓,輸出結果為低電平。
電壓比較器的引腳選擇:PSEL:用來選擇VIN+的輸入,可以為模擬輸入(AIN0-AIN7)引腳中的任意一個引腳。
電壓比較器的VIN-參考電壓選擇:REFSEL:當用來選擇VIN-的參考電壓。參考電壓可以是1/8-7/8VDD或者是外部引腳AREF0、AREF1的電壓。
?
電壓比較器的事件:
UP:當輸入電壓高于參考電壓,會產生此事件。
DOWN:單輸入電壓低于參考電壓,會產生此事件。
CROSS:只要VIN+跟VIN-的電壓不相等,此事件就會產生。
READY:當比較器比較完成,數據輸出為有效,會產生此事件。
?
電壓比較器的任務:
START:啟動電壓比較任務。
STOP:停止電壓比較任務。
SAMPLE:啟動采樣任務。
ANADETECT:該信號可用戶把nRF5XSOC從休眠模式喚醒。該信號的源頭可以為上述的事件。
本例程介紹了NRF51822芯片內部LPCOMP的使用。
?
?
示例詳解
基于硬件平臺:nrf51822ek_tm開發板。
?
本示例所用的最小系統板原理圖:
?
工程名為nrfxx-lpcomp確認后按下圖選擇芯片為nrf51822_xxAA->ok
在彈出的對話框中勾選CMSIS中的CORE;Device中的Startup(后面有nrf51Series字樣的);在nrf_device中勾選nrf_gpio, nrf_uart, nrf_lpcomp ,nrf_delay,nrf_err并在nrf_Libraries中勾選app_error,nrf_assert模塊。
?
?
OK之后工程自動生成如下代碼:
新建一個空白文檔,保存為main.c,并加入工程中:
配置工程,選擇使用MicroLIB庫,可以減小程序體積:
加入NRF51定義,并選擇化等級3,可以減小程序體積,但仿真運行時可能會出現與代碼順序不一致現象:
?
調試工具選擇J-LINK,并將接口設置為SW口勾選下載程序后自動復位及運行:
?
?
?
????? 把程序編譯,將P01引腳與GND接觸然后松開,接觸松開….,可以看到串口助手中打印了以下輸出內容:
關于nrf51xx及flash的更詳細介紹可以參看《nRF51822_PS_v3.3.pdf》或https://infocenter.nordicsemi.com/index.jsp。
?
OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!
文中源碼資料下載,在公眾號里給十三發消息:
下載|一起學nRF51xx 17
?
關注十三公眾號
?
總結
以上是生活随笔為你收集整理的一起学nRF51xx 17 - lpcomp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一起学nRF51xx 16 - adc
- 下一篇: 一起学nRF51xx 18 - 蓝牙协