實(shí)驗(yàn)環(huán)境
Matlab版本: 2021b
操作系統(tǒng) :Win10專(zhuān)業(yè)版
硬件平臺(tái) :YF-STM32-ALPHA 1R4
實(shí)驗(yàn)內(nèi)容 :I2C驅(qū)動(dòng)數(shù)碼管芯片顯示‘0’~‘A’字符
模型與原理圖
本次實(shí)驗(yàn)所用到的simulink模型如圖5.2所示,電路原理圖如圖5.3所示,實(shí)驗(yàn)效果為數(shù)碼管從‘0’~‘A’輪流顯示,如圖5.1所示。
圖5.1 數(shù)碼管驅(qū)動(dòng)顯示實(shí)驗(yàn)效果
圖5.2 數(shù)碼管顯示I2C驅(qū)動(dòng)模型
圖5.3 CH422G共陰數(shù)碼管電路連接
基礎(chǔ)模型介紹與分析
1、數(shù)碼管簡(jiǎn)介
數(shù)碼管簡(jiǎn)單來(lái)說(shuō)就是將多個(gè)LED有規(guī)律的排列在一起,實(shí)驗(yàn)中用到的數(shù)碼管外觀如圖5.4所示,其型號(hào)為:FJ3461AH,三維尺寸:30.00mmx14.00mmx7.20mm,數(shù)碼管內(nèi)部為共陰極,內(nèi)部電路原理和引腳定義如圖5.5圖所示。
圖5.4 數(shù)碼管實(shí)物外觀
圖5.5 數(shù)碼管尺寸及內(nèi)部電路原理圖
2、CH422G芯片介紹
數(shù)碼管驅(qū)動(dòng)芯片CH422引腳分布如圖5.6所示,引腳定義解釋參考表5.1。
圖5.6 數(shù)碼管驅(qū)動(dòng)芯片
表5.1 CH422G芯片引腳功能說(shuō)明
引腳號(hào) | 引腳名稱 | 類(lèi)型 | 引腳說(shuō)明 |
---|---|---|---|
14 | VCC | 電源 | 正電源,持續(xù)電流不小于 100mA |
7 | GND | 電源 | 公共接地,持續(xù)電流不小于 100mA |
1~4、12、13、15、16、 | SEG0~SEG7 | 三態(tài)輸出及輸入 | 數(shù)碼管的段驅(qū)動(dòng),高電平有效,雙向輸入輸出,內(nèi)置弱上拉電阻 |
8~11 | DIG0~DIG3 | 推挽或開(kāi)漏輸出 | 數(shù)碼管的字驅(qū)動(dòng),低電平有效,通用輸出,可選開(kāi)漏輸出,低電平有效 |
5 | SDA | 開(kāi)漏輸出及輸入 | 2 線串行接口的數(shù)據(jù)輸入和輸出,內(nèi)置上拉電阻 |
6 | SCL | 輸入 | 2 線串行接口的數(shù)據(jù)時(shí)鐘 |
3、simulink模型分析
本次實(shí)驗(yàn)中只用到I2C寫(xiě)模型,寫(xiě)I2C數(shù)據(jù)核心模型如圖5.7所示,其參數(shù)設(shè)置如圖5.8所示,其中“I2C module”用于設(shè)置選用哪個(gè)I2C,即STM32中常說(shuō)的I2C0,I2C1,I2C2,實(shí)驗(yàn)中用到的I2C芯片連接在I2C2(PB10->SCL,PB11->SDA)上,"Slave address"用于設(shè)置I2C器件地址,圖中為了便于理解,使用了一個(gè)hex2dec('24')模型轉(zhuǎn)換函數(shù),“Slave register addr”用于設(shè)置寄存器地址,參數(shù)設(shè)置基本就介紹這些,后面用到其它方式再逐一介紹,這里面的具體參數(shù)含義稍后為大家解答。
圖5.7 I2C向寄存器寫(xiě)數(shù)據(jù)模型
圖5.8 I2C寫(xiě)模型參數(shù)設(shè)置
在驅(qū)動(dòng)CH422芯片前,我們首先要知道進(jìn)行哪些參數(shù)設(shè)置和數(shù)據(jù)寫(xiě)入才能使數(shù)碼管正常工作,如下代碼所示,先對(duì)芯片進(jìn)行設(shè)置(讀者朋友對(duì)著操作即可,此代碼為官方提供的參考代碼,官方手冊(cè)上只有0x48和0x46有簡(jiǎn)要說(shuō)明),我們只需往0x48,0x44,0x46地址中寫(xiě)入固定數(shù)據(jù),最后往0x60地址中寫(xiě)如要顯示的數(shù)據(jù)即可。
/* 共陰數(shù)碼管編碼表 0~F */
unsigned char BCD_decode_tab[ 0x10 ] = { 0X3F, 0X06, 0X5B, 0X4F, 0X66, 0X6D, 0X7D, 0X07, 0X7F, 0X6F, 0X77, 0X7C, 0X58, 0X5E, 0X79, 0X71 }; //0--9數(shù)碼管數(shù)字
CH422_Write(0x48,0x01); /* 設(shè)置輸出引腳 DIG0~DIG3 開(kāi)漏輸出使能 */
CH422_Write(0x44,0x00); /* 設(shè)置低8位開(kāi)漏輸出命令,默認(rèn)方式 */
CH422_Write(0x46,0x00); /* DIG0~DIG3使引腳輸出低電平 */
CH422_Write(0x60,BCD_decode_tab[i]); /* 設(shè)置雙向輸入輸出命令,顯示數(shù)據(jù)用 */
這里作者首先用C語(yǔ)言方式正常驅(qū)動(dòng)數(shù)碼管工作,如圖5.9所示,這是參數(shù)設(shè)置過(guò)程正確時(shí)邏輯分析儀捕獲到的I2C波形,圖5.10為正常顯示數(shù)字過(guò)程中捕獲到的I2C波形。
圖5.9 C語(yǔ)言方式正常設(shè)置數(shù)碼管波形
圖5.10 C語(yǔ)言方式正常顯示數(shù)字波形
為了實(shí)現(xiàn)上述相同的效果,我們需要在simulink對(duì)參數(shù)進(jìn)行設(shè)置來(lái)達(dá)到上述效果,0x48,0x44,0x46參數(shù)設(shè)置如圖5.11~5.13所示,細(xì)心的讀者應(yīng)該有發(fā)現(xiàn),器件地址與C語(yǔ)言寫(xiě)的地址不一樣,這里作者暫時(shí)沒(méi)找到原因,但是好在還有一定的規(guī)律可循,最終得到的波形如圖5.14所示,與C語(yǔ)言驅(qū)動(dòng)的還是有點(diǎn)不一樣,只代表其能工作,圖中首次出現(xiàn)一個(gè)脈沖符號(hào)樣式,"Enable"模型它是作為子模型的使能用,另外就是每一個(gè)寫(xiě)入模型都是放在一個(gè)子模型中,方便對(duì)數(shù)據(jù)進(jìn)行控制操作。
圖5.11 simulink中"0x48"寫(xiě)入“0x01”
圖5.12 simulink中"0x44"寫(xiě)入“0x00”
圖5.13 simulink中"0x46"寫(xiě)入“0x00”
圖5.14 使用simulink模型初始化數(shù)碼管I2C波形
數(shù)碼管顯示數(shù)據(jù)顯示模型如圖5.15所示,地址部分還是一樣的問(wèn)題,只是寄存器部分?jǐn)?shù)據(jù)可以正常使用編碼表中的十六進(jìn)制數(shù)據(jù),最終的波形如圖5.16所示。
圖5.15 simulink中"0x60"寫(xiě)入“0x3F”
圖5.16 simulink模型“0x60”顯示字母'A'指令波形
最后我們來(lái)看下整個(gè)模型,參考圖5.2中,除最后一個(gè)顯示模型,其它所有的I2C寫(xiě)入模型都是順序執(zhí)行,且都只執(zhí)行一次,最終停留在在顯示字符'A'處。
實(shí)驗(yàn)代碼統(tǒng)一放在碼云上,有問(wèn)題歡迎給我留言!!
總結(jié)
本節(jié)實(shí)驗(yàn)中實(shí)現(xiàn)了一個(gè)基本I2C驅(qū)動(dòng)數(shù)碼管顯示實(shí)驗(yàn),模型中初步做到了參數(shù)初始化和數(shù)據(jù)顯示寫(xiě)入,但是這里有個(gè)問(wèn)題,我們無(wú)法使用硬件在環(huán)修改參數(shù)達(dá)到同步修改數(shù)碼管數(shù)據(jù)的效果,這里讀者朋友可以研究研究下。另外本節(jié)中還有個(gè)問(wèn)題就是數(shù)據(jù)顯示不是循環(huán)顯示,大家也可以修改模型實(shí)現(xiàn)循環(huán)滾動(dòng)顯示。
-
電路原理圖
+關(guān)注
關(guān)注
40文章
349瀏覽量
38844 -
STM32
+關(guān)注
關(guān)注
2283文章
10986瀏覽量
361238 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1888瀏覽量
92066 -
I2C
+關(guān)注
關(guān)注
28文章
1514瀏覽量
126506 -
Simulink
+關(guān)注
關(guān)注
22文章
538瀏覽量
63428
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
ZLG7290 I2C接口鍵盤(pán)及LED驅(qū)動(dòng)器

I2C總線接口模塊設(shè)計(jì)
LED數(shù)碼管顯示驅(qū)動(dòng)芯片 BL1616
基于EasyFPGA030的I2C總線接口模塊
數(shù)碼管顯示實(shí)驗(yàn)

LED數(shù)碼管顯示控制實(shí)驗(yàn)

數(shù)碼管循環(huán)顯示實(shí)驗(yàn)
LED數(shù)碼管顯示實(shí)驗(yàn)

使用單片機(jī)實(shí)現(xiàn)兼容I2C接口的MAX6955驅(qū)動(dòng)16段數(shù)碼管顯示的C語(yǔ)言實(shí)例
單片機(jī):數(shù)碼管顯示實(shí)驗(yàn)

C51單片機(jī)實(shí)驗(yàn)——7段數(shù)碼管實(shí)驗(yàn)

STM32F103單片機(jī)驅(qū)動(dòng)TM1637數(shù)碼管顯示模塊

STM32--數(shù)碼管顯示使用

STM32 Cubemx實(shí)現(xiàn)串口通信、I2C與GPIO的綜合應(yīng)用

評(píng)論