一、軟硬件介紹
(一)I2C(軟件)
I2C是一種廣泛應(yīng)用于嵌入式系統(tǒng)中的短距離串行通信協(xié)議,支持多主多從設(shè)備模式,主機(jī)通過(guò)時(shí)鐘信號(hào)SCL和數(shù)據(jù)線SDA與從機(jī)進(jìn)行數(shù)據(jù)交互。在 RT-Thread 操作系統(tǒng)中,我們可以通過(guò)菜單配置工具menuconfig快速設(shè)置軟件 I2C 的引腳,并借助其內(nèi)部已實(shí)現(xiàn)的驅(qū)動(dòng)程序,方便快捷地完成調(diào)用與開發(fā)。
(二)FRDM-MCXA153
FRDM-MCXA153是一款緊湊且可擴(kuò)展的開發(fā)板,可快速基于MCX A14和A15 MCU開展原型設(shè)計(jì)。它們提供行業(yè)標(biāo)準(zhǔn)的接口,可輕松訪問(wèn)MCU的I/O、集成的開放標(biāo)準(zhǔn)串行接口、外部閃存和板載MCU-Link調(diào)試器。本文主要基于恩智浦FRDM—MCXA153開發(fā)板 X RT-Thread,測(cè)試I2C(軟件) 功能以及SSD1306 OLED。
通過(guò)MCUXpresso Developer Experience(MCUXpresso開發(fā)人員體驗(yàn))提供其他工具,如面向附加板的擴(kuò)展板中心和面向軟件示例的應(yīng)用代碼中心。
(三)SSD1306 OLED
SSD1306是一款單片CMOS OLED/PLED驅(qū)動(dòng)器,具有有機(jī)/聚合物發(fā)光控制器二極管點(diǎn)陣圖形顯示系。SSD1306內(nèi)置對(duì)比度控制、顯示RAM和振蕩器,減少了外部組件和功耗。它有256級(jí)亮度控制。數(shù)據(jù)/命令是從通用單片機(jī)通過(guò)硬件可選的6800/8000系列兼容并行接口發(fā)送,I2C接口或串行外圍接口。它適用于許多緊湊型便攜式應(yīng)用程序,例如手機(jī)副顯示屏、MP3播放器、計(jì)算器等。
二、工程創(chuàng)建
目前RT-Thread Studio尚未支持恩智浦FRDM-MCXA153開發(fā)板BSP,需要從gitee下載最新的主線,通過(guò)scons命令創(chuàng)建工程。下載好主線源碼后,在rt-thread\bsp\nxp\mcx\mcxa\frdm-mcxa153 目錄下打開scons環(huán)境,配置軟件I2C驅(qū)動(dòng)和SSD1306 OLED。
(一)軟件I2C配置
在恩智浦FRDM-MCXA153開發(fā)板板載的mikroBUS socket找到2個(gè)pin做軟件I2C接口的SCL/SDA,考慮到3.3V/GND的需要,直接選擇; P1_0和P1_2,具體可以從針腳圖看到,下圖紅框處的針腳。
因?yàn)槭擒浖蘒2C,直接在menuconfig的設(shè)備驅(qū)動(dòng)中選擇“Use GPIO to soft simulate I2C”,設(shè)置中直接配置到I2C1 bus上,之前選擇了P1_0和P1_2作為SCL/SDA,按照((port*32)+pin)的計(jì)算公式配置好即可,具體如下圖。
其它的軟件I2C的具體實(shí)現(xiàn),都在RT-Thread的組件中實(shí)現(xiàn)了,不再介紹。
(二)SSD1306 OLED配置
在menuconfig中選擇enable SSD1306,并且設(shè)置好I2C bus name,I2C的地址默認(rèn)是0x3c無(wú)需修改,同時(shí)打開SSD1306測(cè)試demo。
上述內(nèi)容設(shè)置好之后,選擇保存。分別執(zhí)行下述2個(gè)命令:
pkgs —update
scons —target=mdk5
待Keil工程生成后,打開工程編譯程序。
Program Size: Code=83324RO-data=25164RW-data=784ZI-data=7876 Finished:0information,2warning and0error messages.".\build\rtthread.axf"-0Error(s),6Warning(s).Build Time Elapsed: 00:00:04
然后下載到恩智浦FRDM-MCXA153開發(fā)板上。
三、軟件I2C測(cè)試
固件下載完成后,reset系統(tǒng),可以看到軟件I2C已經(jīng)配置成功。
sram heap,begin:0x0x200019d4,end:0x0x20005c00\|/-RT- Thread OperatingSystem/|\ 5.2.0build Jul21202415:49:402006-2024CopyrightbyRT-Thread teamI/I2C: I2C bus [i2c1] registeredD/I2C_S: Software simulation i2c1 init done, SCL pin:0x20, SDA pin:0x22I/I2C: I2C bus [i2c0] registeredusingarmclang, version:6180002MCXA153 HelloWorldmsh>
list device后,可以看到I2C1已經(jīng)起來(lái):
msh>list devicedevice type refcount-------- -------------------- ----------i2c0 I2C Bus 0i2c1 I2C Bus 0pin Pin Device 0uart0 CharacterDevice 2msh>
把ssd1306_TestAll的demo跑起來(lái)。
對(duì)比硬件I2C,軟件I2C的刷屏速度的確差了很多。
-
軟件
+關(guān)注
關(guān)注
69文章
5096瀏覽量
88798 -
I2C
+關(guān)注
關(guān)注
28文章
1521瀏覽量
126634 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1355瀏覽量
41396
發(fā)布評(píng)論請(qǐng)先 登錄
【先楫HPM5361EVK開發(fā)板試用體驗(yàn)】RT-Thread I2C使用
RT-Thread里面驅(qū)動(dòng)層的i2c能否用硬件方式實(shí)現(xiàn)呢?
基于RT-Thread測(cè)試NK-980 IoT開發(fā)板的I2C外設(shè)性能簡(jiǎn)析
詳解RT-Thread I2C設(shè)備驅(qū)動(dòng)框架及相關(guān)函數(shù)
詳細(xì)講解RT-Thread I2C設(shè)備驅(qū)動(dòng)框架及相關(guān)函數(shù)

RT-Thread軟件包定義和使用

基于RT-Thread的智慧路燈案例實(shí)驗(yàn)分享

RT-Thread全球技術(shù)大會(huì):RT-Thread開源重塑軟件發(fā)展新生態(tài)

RT-Thread全球技術(shù)大會(huì):螢石研發(fā)團(tuán)隊(duì)使用RT-Thread的技術(shù)挑戰(zhàn)

RT-Thread全球技術(shù)大會(huì):使用RT-Thread開發(fā)大規(guī)模嵌入式軟件帶來(lái)的挑戰(zhàn)與好處

2022 RT-Thread全球技術(shù)大會(huì):螢石EZIOT SDK對(duì)RT-Thread的支持

驅(qū)動(dòng)SSD1306OLED屏檢驗(yàn)軟件I2C驅(qū)動(dòng)方案

評(píng)論