本作品由安信可社區(qū)用戶
bzhou830制作
原貼地址:【DIY電子作品】電壓與電流CC表 基于小安派AiPi-Eye-S1 匯總
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=43882&highlight=%E7%94%B5%E6%B5%81&_dsign=9c71aaef
01
硬件分析
Power-Z 上使用的是 INA226,正好手上有這個(gè)芯片。那么搭配小安派驚艷的屏幕應(yīng)該能實(shí)現(xiàn)出來(lái)一個(gè)高顏值的CC表。打開(kāi)原理圖可以看到S1正好預(yù)留了一個(gè)I2C的接口,完美
這個(gè)接口對(duì)應(yīng)于 PCB 的這個(gè)位置:
看完控制板,我們?cè)賮?lái)看看 INA226 的接口電路原理圖:
對(duì)應(yīng) PCB 如下:
看完這個(gè),接線就變得很清晰了。INA226 板子的 iic 接口和小安派連接起來(lái)就好了。IN+/IN-/VBS 就留給被測(cè)量電路時(shí)使用。
02
軟件界面
接觸了lvgl之后感覺(jué)像是打開(kāi)了新世界的大門,使用lvgl后的界面設(shè)計(jì)變得真的好看了太多。對(duì)比看了下網(wǎng)上的一些 CC 表界面之后,打開(kāi) gui guider 添加上幾個(gè) label。調(diào)一調(diào)顏色,編譯運(yùn)行下模擬器。得到如下的界面:
接下來(lái)就是把這個(gè)界面移植到小安派 S1 上。小安派 S1 的 weather demo 本來(lái)就是使用了 lvgl 的。那么為了少點(diǎn)工作量就直接將 weather demo 拿過(guò)來(lái),然后替換掉 demos/240X320_ui 中的目錄。編譯運(yùn)行起來(lái):
03
INA226模塊
INA226 是一款集成了高精度電流和電壓測(cè)量功能的數(shù)字電流/功率監(jiān)測(cè)芯片。它可以通過(guò) I2C 接口與微控制器或其他設(shè)備通信,用于實(shí)時(shí)監(jiān)測(cè)和測(cè)量電流、電壓和功率。從 INA226 的 data sheet 中可以看到其典型測(cè)量電路如下圖,vbus 引腳接上被測(cè)量電路的電源 + 端,Vin+/Vin-串聯(lián)在被測(cè)試回路中。地址線 A0/A1 直接接地,因?yàn)槲覀冞@里的 IIC 上只使用了一片 INA226。
data sheet 中還給出了 layout 的參考方案,這個(gè)方案和我們使用的模塊布局是比較一致的。
INA226 通過(guò) I2C 接口與主控設(shè)備通信,所以我們就需要使用小安派的 IO 和 INA226 的 IIC 將時(shí)鐘線和數(shù)據(jù)線連接起來(lái)。IIC 通信部分直接參考數(shù)據(jù)手冊(cè)中的時(shí)序圖即可,在 INA226_Init()函數(shù)中,寫(xiě)入 Configuration Register 的數(shù)據(jù)為 0x4527(16 次平均,1.1ms,1.1ms,連續(xù)測(cè)量分流電壓和總線電壓,想修改可以參考數(shù)據(jù)手冊(cè)寄存器定義表格)。而寫(xiě)入 Calibration Register 的數(shù)據(jù)需要根據(jù)實(shí)際電路中的采樣電阻阻值以及電流分辨率來(lái)設(shè)置。因?yàn)槲覀兪褂玫?INA226 模塊中使用的采樣電阻為 R100(0.1 歐)。
因?yàn)?Shunt Voltage Register 的值最大為 0x7FFF,LSB=2.5uV, FSR = 81.92mV。又因?yàn)榉至麟娮枳柚禐?0.1 歐,所以最大電流為 819.2mA,Maximum Expected Current 的值不能超過(guò) 819.2mA。(避免在使用中出現(xiàn)超量程情況)
假設(shè) Current_LSB = 0.02mA,則 Maximum Expected Current = 655.36mA,滿足上述條件。則:
CAL = 0.00512/(0.02*0.1)*1000 = 2560= 0x0A00。所以寫(xiě)入 Calibration Register 中的數(shù)據(jù)為 0x0A00。
04
小安派驅(qū)動(dòng)INA226
前面講到 INA226 通過(guò) IIC 接口和小安派通信。這里為了深入的了解下 IIC 時(shí)序,我們直接采用模擬 IIC 的方式來(lái)對(duì) INA226 進(jìn)行驅(qū)動(dòng),并且使用邏輯分析儀來(lái)調(diào)試、捕獲波形數(shù)據(jù)來(lái)進(jìn)行深入研究。驅(qū)動(dòng) INA226 的代碼如下:
bsp_ina226.h
bsp_ina226.c
(備注:此截圖為部分代碼,請(qǐng)移步文首原貼地址,點(diǎn)擊part2中查看完整代碼。)
燒錄代碼用邏輯分析儀來(lái)看看數(shù)據(jù)波形,可以從波形上看到 INA226 和小安派通信正常。
這里再放出來(lái)一個(gè)通信不正常的圖,原因就是輸入、輸出同時(shí)設(shè)置,出現(xiàn)電氣干擾的情況下數(shù)據(jù)錯(cuò)誤的情況。
從串口輸出的測(cè)量值這時(shí)候已經(jīng)出現(xiàn):
至此,我們已經(jīng)成功的驅(qū)動(dòng)了 INA226, 后面講測(cè)量的數(shù)據(jù)顯示在顯示器上,接著對(duì)外形美化一下就完成了。
05
說(shuō)明及其他資料
●原作者B站分享
【用小安派 DIY 個(gè)簡(jiǎn)單的 CC 表-嗶哩嗶哩】
●說(shuō)明
因?yàn)樾“才?S1 和小安派 DSL 在顯示驅(qū)動(dòng)上是兼容的,所以這個(gè) DIY 同樣適用于小安派 DSL;小安派S1和小安派 DSL 能使用的IO是不一樣的,所以需要適配對(duì)應(yīng)的IO用作IIC接口使用。
●代碼打包分享
點(diǎn)擊文首帖子鏈接,評(píng)論區(qū)自取哦~
審核編輯 黃宇
-
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423121 -
IC
+關(guān)注
關(guān)注
36文章
5944瀏覽量
175470 -
接口
+關(guān)注
關(guān)注
33文章
8575瀏覽量
151014 -
DIY
+關(guān)注
關(guān)注
176文章
887瀏覽量
348537
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論