一、軟硬件介紹
(一)I2C(軟件)
I2C是一種廣泛應(yīng)用于嵌入式系統(tǒng)中的短距離串行通信協(xié)議,支持多主多從設(shè)備模式,主機通過時鐘信號SCL和數(shù)據(jù)線SDA與從機進行數(shù)據(jù)交互。在 RT-Thread 操作系統(tǒng)中,我們可以通過菜單配置工具menuconfig快速設(shè)置軟件 I2C 的引腳,并借助其內(nèi)部已實現(xiàn)的驅(qū)動程序,方便快捷地完成調(diào)用與開發(fā)。
(二)FRDM-MCXA153
FRDM-MCXA153是一款緊湊且可擴展的開發(fā)板,可快速基于MCX A14和A15 MCU開展原型設(shè)計。它們提供行業(yè)標準的接口,可輕松訪問MCU的I/O、集成的開放標準串行接口、外部閃存和板載MCU-Link調(diào)試器。本文主要基于恩智浦FRDM—MCXA153開發(fā)板 X RT-Thread,測試I2C(軟件) 功能以及SSD1306 OLED。
通過MCUXpresso Developer Experience(MCUXpresso開發(fā)人員體驗)提供其他工具,如面向附加板的擴展板中心和面向軟件示例的應(yīng)用代碼中心。
(三)SSD1306 OLED
SSD1306是一款單片CMOS OLED/PLED驅(qū)動器,具有有機/聚合物發(fā)光控制器二極管點陣圖形顯示系。SSD1306內(nèi)置對比度控制、顯示RAM和振蕩器,減少了外部組件和功耗。它有256級亮度控制。數(shù)據(jù)/命令是從通用單片機通過硬件可選的6800/8000系列兼容并行接口發(fā)送,I2C接口或串行外圍接口。它適用于許多緊湊型便攜式應(yīng)用程序,例如手機副顯示屏、MP3播放器、計算器等。
二、工程創(chuàng)建
目前RT-Thread Studio尚未支持恩智浦FRDM-MCXA153開發(fā)板BSP,需要從gitee下載最新的主線,通過scons命令創(chuàng)建工程。下載好主線源碼后,在rt-thread\bsp\nxp\mcx\mcxa\frdm-mcxa153 目錄下打開scons環(huán)境,配置軟件I2C驅(qū)動和SSD1306 OLED。
(一)軟件I2C配置
在恩智浦FRDM-MCXA153開發(fā)板板載的mikroBUS socket找到2個pin做軟件I2C接口的SCL/SDA,考慮到3.3V/GND的需要,直接選擇; P1_0和P1_2,具體可以從針腳圖看到,下圖紅框處的針腳。
因為是軟件I2C,直接在menuconfig的設(shè)備驅(qū)動中選擇“Use GPIO to soft simulate I2C”,設(shè)置中直接配置到I2C1 bus上,之前選擇了P1_0和P1_2作為SCL/SDA,按照((port*32)+pin)的計算公式配置好即可,具體如下圖。
其它的軟件I2C的具體實現(xiàn),都在RT-Thread的組件中實現(xiàn)了,不再介紹。
(二)SSD1306 OLED配置
在menuconfig中選擇enable SSD1306,并且設(shè)置好I2C bus name,I2C的地址默認是0x3c無需修改,同時打開SSD1306測試demo。
上述內(nèi)容設(shè)置好之后,選擇保存。分別執(zhí)行下述2個命令:
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測試
固件下載完成后,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)起來:
msh>list devicedevice type refcount-------- -------------------- ----------i2c0 I2C Bus 0i2c1 I2C Bus 0pin Pin Device 0uart0 CharacterDevice 2msh>
把ssd1306_TestAll的demo跑起來。
對比硬件I2C,軟件I2C的刷屏速度的確差了很多。
-
軟件
+關(guān)注
關(guān)注
69文章
5095瀏覽量
88795 -
I2C
+關(guān)注
關(guān)注
28文章
1520瀏覽量
126617 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1352瀏覽量
41394
發(fā)布評論請先 登錄
【先楫HPM5361EVK開發(fā)板試用體驗】RT-Thread I2C使用
RT-Thread里面驅(qū)動層的i2c能否用硬件方式實現(xiàn)呢?
基于RT-Thread測試NK-980 IoT開發(fā)板的I2C外設(shè)性能簡析
詳解RT-Thread I2C設(shè)備驅(qū)動框架及相關(guān)函數(shù)
詳細講解RT-Thread I2C設(shè)備驅(qū)動框架及相關(guān)函數(shù)

RT-Thread軟件包定義和使用

基于RT-Thread的智慧路燈案例實驗分享

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

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

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

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

評論