|
|
本帖最后由 ztzp 于 2025-8-2 16:55 編輯
幾年前買得有幾片OLED液晶顯示屏,驅(qū)動(dòng)是SSD1306的。
引腳定義:
2021-11-18 接口定義.jpg (1.54 MB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
Vcc接液晶排線的6和9腳,Gnd接排線的25、29腳。
賣家給的信息:
賣家信息.jpg (137.11 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
根據(jù)“中景園電子科技”公司提供的例程,用了STC幾種型號的單片機(jī)一直沒點(diǎn)亮這個(gè)OLED。后來送了幾片給網(wǎng)友“f556”,他很容易就點(diǎn)亮了這個(gè)OLED,他用的平臺是MSP430。
2022-08-18 馮喬春的實(shí)驗(yàn).jpg (254.2 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:41 上傳
根據(jù)他提供的例程,我也用自制的MSP430F4152最小系統(tǒng)點(diǎn)亮了這個(gè)OLED。
2022-08-19 電路.jpg (358.65 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
2022-08-19 顯示.jpg (60.11 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
但用同一家公司提供的51單片機(jī)程序,卻始終無法點(diǎn)亮它。
根據(jù)網(wǎng)友“f556”介紹,OLED的初始化程序完成后,屏幕顯示雪花點(diǎn),就算點(diǎn)亮了,后面顯示其它字符的內(nèi)容都不重要。
仔細(xì)地分析51單片機(jī)與MSP430單片機(jī)的初始化例程,逐行對比,本質(zhì)上完全是一樣的,但在STC單片機(jī)控制下,OLED屏幕一片黑暗,郁悶極了!
為了徹底弄清STC單片機(jī)驅(qū)動(dòng)OLED的問題,買了一個(gè)簡易的“邏輯分析儀”:
01 分析儀.jpg (94.26 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
為了將單片機(jī)、OLED和邏輯分析儀連接在一起,又焊了一個(gè)5腳分線器。
04 分線器2.jpg (73.27 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
IMG_20221201_112527.jpg (212.94 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
根據(jù)資料,控制OLED的時(shí)序圖是這樣的:
SSD1306 SPI時(shí)序圖.png (24.15 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
由于MSP430控制OLED已經(jīng)成功了,所以我就把它的時(shí)序圖作為范本來進(jìn)行研究。
先用分析儀捕獲MSP430控制OLED的幾根主要信號線(時(shí)鐘、指令/數(shù)據(jù)標(biāo)志、數(shù)據(jù)等),為了研究問題簡單,只捕獲初始化程序第一字節(jié)指令,時(shí)序圖如下:
MSP430,第一字節(jié)時(shí)序圖.png (20.55 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
而初始化程序第一字節(jié)時(shí)序圖的源代碼為:
向OLED發(fā)送的第一字節(jié)指令代碼.png (3.45 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
0xAE換算成二進(jìn)制數(shù)就是:10101110,與捕獲到的數(shù)據(jù)是一致的。
通過MSP430正確運(yùn)行的代碼而捕獲到的以上時(shí)序圖,也初步學(xué)會了“邏輯分析儀”的使用。
用STC單片機(jī)控制OLED的平臺是前不久剛制作完成的STC32G最小系統(tǒng)板,此單片機(jī)可以工作在3.3V電壓下,為了問題簡便,只寫了OLED的初始化代碼,甚至在初始化函數(shù)中只向OLED發(fā)送了一字節(jié)指令,如上所示。
用“邏輯分析儀”捕獲到的時(shí)序圖為:
STC32G,準(zhǔn)雙向,第一字節(jié),時(shí)序圖.png (16.97 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
這個(gè)時(shí)序圖一看就不正常,感覺時(shí)鐘脈沖的“占空比”都比較小,形成的脈沖很窄,D/C波形也沒看到有高電平,數(shù)據(jù)也不正確。
以“模擬電路”的思維分析這些脈沖,感覺是負(fù)載太重,驅(qū)動(dòng)電路在輸出高電平時(shí),瞬間被負(fù)載拉低所造成的。
初步懷疑OLED需要的驅(qū)動(dòng)電流比較大,STC單片機(jī)的“準(zhǔn)雙向口”無法勝任,故高電平無法維持足夠長的時(shí)間,導(dǎo)致脈沖波變窄。
因?yàn)橐郧坝肧TC的單片機(jī)驅(qū)動(dòng)LCD時(shí),使用的都是默認(rèn)的“準(zhǔn)雙向口”,這次想到OLED與LCD都差不多,也就沒特別去配置I/O口,默認(rèn)使用它的“準(zhǔn)雙向口”。
后來將:時(shí)鐘、指令/數(shù)據(jù)標(biāo)志、數(shù)據(jù)、復(fù)位等控制線的I/O口模式改為“推挽模式”,亦即:
推挽模式.png (3.97 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
程序修改以后,時(shí)序圖正常了。
STC32G,推挽輸出,第一字節(jié)時(shí)序圖.png (21.54 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:39 上傳
其實(shí)“邏輯分析儀”的軟件自己也會分析數(shù)據(jù),根據(jù)設(shè)置的SPI協(xié)議,軟件分析出來的數(shù)據(jù)又快又準(zhǔn):
軟件自動(dòng)分析的數(shù)據(jù).png (16.99 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:46 上傳
在“邏輯分析儀”的幫助下,OLED屏久違的“雪花點(diǎn)”終于出現(xiàn)了。
IMG_20221201_011606.jpg (245.73 KB, 下載次數(shù): 0)
下載附件
2025-8-2 16:47 上傳
|
評分
-
查看全部評分
|