01硬件分析
Power-Z 上使用的是 INA226,正好手上有這個芯片。那么搭配小安派驚艷的屏幕應該能實現出來一個高顏值的CC表。打開原理圖可以看到S1正好預留了一個I2C的接口,完美
這個接口對應于 PCB 的這個位置:
看完控制板,我們再來看看 INA226 的接口電路原理圖:
對應 PCB 如下:
看完這個,接線就變得很清晰了。INA226 板子的 iic 接口和小安派連接起來就好了。IN+/IN-/VBS 就留給被測量電路時使用。
02軟件界面
接觸了lvgl之后感覺像是打開了新世界的大門,使用lvgl后的界面設計變得真的好看了太多。對比看了下網上的一些 CC 表界面之后,打開 gui guider 添加上幾個 label。調一調顏色,編譯運行下模擬器。得到如下的界面:
接下來就是把這個界面移植到小安派 S1 上。小安派 S1 的 weather demo 本來就是使用了 lvgl 的。那么為了少點工作量就直接將 weather demo 拿過來
,然后替換掉demos/240X320_ui中的目錄。編譯運行起來:
03INA226模塊
INA226 是一款集成了高精度電流和電壓測量功能的數字電流/功率監測芯片。它可以通過 I2C 接口與微控制器或其他設備通信,用于實時監測和測量電流、電壓和功率。從 INA226 的 data sheet 中可以看到其典型測量電路如下圖,vbus 引腳接上被測量電路的電源 + 端,Vin+/Vin-串聯在被測試回路中。地址線 A0/A1 直接接地,因為我們這里的 IIC 上只使用了一片 INA226。
data sheet 中還給出了 layout 的參考方案,這個方案和我們使用的模塊布局是比較一致的。
INA226 通過 I2C 接口與主控設備通信,所以我們就需要使用小安派的 IO 和 INA226 的 IIC 將時鐘線和數據線連接起來。IIC 通信部分直接參考數據手冊中的時序圖即可,在 INA226_Init()函數中,寫入 Configuration Register 的數據為 0x4527(16 次平均,1.1ms,1.1ms,連續測量分流電壓和總線電壓,想修改可以參考數據手冊寄存器定義表格)。而寫入 Calibration Register 的數據需要根據實際電路中的采樣電阻阻值以及電流分辨率來設置。因為我們使用的 INA226 模塊中使用的采樣電阻為 R100(0.1 歐)。
因為 Shunt Voltage Register 的值最大為0x7FFF,LSB=2.5uV, FSR = 81.92mV。又因為分流電阻阻值為0.1歐,所以最大電流為819.2mA,Maximum Expected Current 的值不能超過819.2mA。(避免在使用中出現超量程情況)
假設Current_LSB = 0.02mA,則Maximum Expected Current = 655.36mA,滿足上述條件。則:
CAL = 0.00512/(0.02*0.1)*1000 = 2560= 0x0A00。所以寫入 Calibration Register 中的數據為 0x0A00。
04小安派驅動INA226
前面講到 INA226 通過 IIC 接口和小安派通信。這里為了深入的了解下 IIC 時序,我們直接采用模擬 IIC 的方式來對 INA226 進行驅動,并且使用邏輯分析儀來調試、捕獲波形數據來進行深入研究。驅動 INA226 的代碼如下:
bsp_ina226.h
bsp_ina226.c
(備注:此截圖為部分代碼,請移步文首原貼地址,點擊part2中查看完整代碼。)
燒錄代碼用邏輯分析儀來看看數據波形,可以從波形上看到 INA226 和小安派通信正常。
這里再放出來一個通信不正常的圖,原因就是輸入、輸出同時設置,出現電氣干擾的情況下數據錯誤的情況。
從串口輸出的測量值這時候已經出現:
至此,我們已經成功的驅動了 INA226, 后面講測量的數據顯示在顯示器上,接著對外形美化一下就完成了。
審核編輯:湯梓紅
-
原理圖
+關注
關注
1268文章
6180瀏覽量
225691 -
pcb
+關注
關注
4220文章
22472瀏覽量
385782 -
接口
+關注
關注
33文章
7639瀏覽量
148494 -
安信可
+關注
關注
0文章
119瀏覽量
3817
原文標題:【用戶作品】用小安派DIY個簡單的CC表
文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論