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

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

RT-Thread全球技術大會:RT-Thread開源重塑軟件發展新生態

RT-Thread全球技術大會:使用RT-Thread開發大規模嵌入式軟件帶來的挑戰與好處

評論