近期,我們即將推出一系列關于MCXA153 RTT的深度文章,這一系列將全面而細致地探討該系列微控制器的多個核心功能模塊,旨在為廣大電子愛好者、工程師及研發人員提供寶貴的技術資源和見解。首當其沖的將是關于12C、SPI、FLASH、ADC、GPIO以及UART的精彩介紹。
MCXA153 RTT系列作為業界領先的微控制器產品,其強大的功能和廣泛的應用領域一直備受矚目。從高速數據傳輸的SPI接口,到精準模擬信號采集的ADC模塊;從靈活多用的GPIO端口,到穩定可靠的UART通信協議,每一個功能模塊都蘊含著豐富的技術內涵和實用價值。
我們誠邀各位讀者持續關注這一系列文章,相信通過我們的深入剖析和實例演示,您將對MCXA153 RTT系列微控制器有更全面、更深入的了解,并在實際工作中受益匪淺。讓我們一同探索MCXA153 RTT的無限可能,共同推動電子技術的發展與創新!
今天為大家帶來NXP FRDM-MCXA153 RT-Thread實踐指南1-UART介紹:
前言
本系列文章為根據RT-Thread官網在線文檔整理整合后發布的恩智浦FRDM-MCXA153開發實踐指南,旨在協助開發者快速熟悉掌握FRDM-MCXA153在RT-Thread下的環境搭建以及驅動程序的使用。本指南將詳細介紹恩智浦FRDM-MCXA153的開發實踐步驟,包括環境配置、驅動程序的使用等內容,希望對小伙伴有所幫助!
開發板介紹
FRDM-MCXA153是恩智浦(NXP)推出的一款緊湊且可擴展的開發平臺,專為MCX A14和A15系列MCU的快速原型設計而打造。該開發板提供了豐富的行業標準接口,便于訪問MCU的I/O、集成的開放標準串行接口以及外部閃存。板載MCU-Link調試器進一步簡化了開發流程。
2.1 MCXA153微控制器核心特性
Arm Cortex-M33內核
128KB閃存
32kB SRAM
8kB ECC RAM, LPLUART、LPSPI、LPI2C、FS USB、DMA和LDO
超低功耗設計,適用于廣泛的應用場景
FRDM-MCXA153開發板外觀

2.2 開發板主要資源:
1. 微控制器
MCXA15x Arm Cortex-M33內核
128KB閃存
32kB SRAM
8kB ECC SRAM LPUART、LPSPI、LPI2C、FS USB、DMA和LDO
2.連接性
全速USB端口(Type-C接口,支持主機/設備模式)
高速USB Type-C接口
SPI/I2C/UART擴展接口(PMOD/mikroBUS、DNP)
Wi-Fi擴展接口(PMOD/mikroBUS、DNP)
3.調試
板載MCU-Link調試器(支持CMSIS-DAP)
JTAG/SWD接口
4. 傳感器
P3T1755DPJ I3C/I2C溫度傳感器
5. 擴展選項
FRDM標準接口
FlexIO LCD接口
Pmod (DNP)
mikroBUS
RGB用戶LED、復位、ISP和喚醒按鈕
2.3 MCXA153特色功能:
支持MIPI I3C總線,為傳感器連接提供高效解決方案
深度睡眠模式下可使用LPUART作為喚醒源(需使用FRO16k作為時鐘源)
支持全速USB功能,可實現虛擬COM端口等應用
2.4 推薦開發環境:
MDK-Arm Microcontroller Development Kit (Keil) 5.33或更高版本
更多詳細信息請參考NXP官方網站
RT-Thread UART實踐
3.1 實驗目標
rt-thread中 FRDM-MCXA153默認的serial驅動只支持默認uart0, 此實驗主要增強串口驅動,增加uart2的支持, 并記錄移植過程。
3.2 UART驅動架構

1. IO設備管理層: 向應用層提供統一接口(如rt_device_read、rt_device_write等)
2. 設備框架層(serial_v2.c):
對接IO設備管理層
為驅動層提供統一的UART操作接口(configure、control、putc、getc、transmit等)
3. 驅動層:
實現rt_hw_serial_register和rt_hw_serial_isr接口(drv_usartv2.c)
實現struct rt_uart_ops中定義的各種方法(drv_usart.c)
通過rt_hw_serial_register注冊設備到系統
3.3 驅動開發流程
1. 擴展struct rt_serial_device
struct mcx_uart
{
struct rt_serial_device *serial;//設備信息和操作
LPUART_Type *uart_base;//串口句柄
IRQn_Type irqn;//中斷
clock_name_t clock_src;//時鐘選擇
clock_attach_id_t clock_attach_id;
clock_ip_name_t clock_ip_name;
clock_div_name_t clock_div_name;
char*device_name;
};
2. 配置串口參數

struct serial_configure
{
rt_uint32_t baud_rate; //比特率
rt_uint32_t data_bits :4;//數據長度
rt_uint32_t stop_bits :2;//停止位
rt_uint32_t parity :2;//校驗位
rt_uint32_t bit_order :1;//小段發送
rt_uint32_t invert :1;//模式選擇 正常模式 歸零編碼方式
rt_uint32_t bufsz :16;//buf大小
rt_uint32_t flowcontrol :1;//硬件流控制
rt_uint32_t reserved :5;//保留的位
};
3. 實現rt_uart_ops接口
struct rt_uart_ops
{
rt_err_t(*configure)(structrt_serial_device*serial,structserial_configure*cfg);
rt_err_t (*control)(struct rt_serial_device *serial, int cmd, void *arg);
int (*putc)(struct rt_serial_device *serial, char c);
int (*getc)(struct rt_serial_device *serial);
rt_ssize_t(*dma_transmit)(structrt_serial_device*serial,rt_uint8_t*buf, rt_size_tsize,intdirection);
};
3.4 關鍵接口實現
1. configure: 配置串口基本屬性(波特率等)
2. control: 控制UART設備
#define RT_DEVICE_CTRL_RESUME 0x01 /**< resume device */ #define RT_DEVICE_CTRL_SUSPEND 0x02 /**< suspend device */ #define RT_DEVICE_CTRL_CONFIG 0x03 /**< configure device */ #define RT_DEVICE_CTRL_CLOSE 0x04 /**< close device */ #define RT_DEVICE_CTRL_NOTIFY_SET 0x05 /**< set notify func */ #define RT_DEVICE_CTRL_SET_INT 0x06 /**< set interrupt */ #define RT_DEVICE_CTRL_CLR_INT 0x07 /**< clear interrupt */ #define RT_DEVICE_CTRL_GET_INT 0x08 /**< get interrupt status */ #define RT_DEVICE_CTRL_CONSOLE_OFLAG 0x09 /**< get console open flag */ #define RT_DEVICE_CTRL_MASK
3.5 putc: 發送一個字符
LPUART_WriteByte(uart->uart_base, ch);
3.6 getc: 接收一個字符
if (kLPUART_RxDataRegFullInterruptEnable & LPUART_GetStatusFlags(uart->uart_base))
{
return LPUART_ReadByte(uart->uart_base);
}
3.7 實現步驟1. 在pin_mux.c中初始化引腳
2. 注冊和使用UART設備
#define UART2_NAME "uart2" static rt_device_t uart2_serial; char str[] = "hello rttread! "; uart2_serial = rt_device_find(UART2_NAME); rt_device_open(uart2_serial, RT_DEVICE_FLAG_INT_RX); rt_device_write(uart2_serial,0,str,(sizeof(str)-1));
結語
本文詳細介紹了如何在FRDM-MCXA153開發板上擴展RT-Thread的UART驅動支持。這不僅展示了RTThread優秀的可擴展性,也為開發者提供了實用的UART驅動開發參考。希望本文能夠幫助更多開發者在恩智浦MCU平臺上充分利用RT-Thread的強大功能。
-
微控制器
+關注
關注
48文章
8375瀏覽量
164540 -
恩智浦
+關注
關注
14文章
6095瀏覽量
147118 -
開發板
+關注
關注
26文章
6289瀏覽量
118041 -
RT-Thread
+關注
關注
32文章
1613瀏覽量
44818 -
MCUs
+關注
關注
0文章
59瀏覽量
3854
原文標題:MCXA153 RTT技術盛宴來襲,精彩不容錯過!
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
恩智浦FRDM-MCXA153 RT-Thread實踐指南 實現和優化RT-Thread的SPI驅動
恩智浦FRDM-MCXA153 RT-Thread開發實戰(六):I2C總線開發與應用
智能門鎖:基于RT-Thread與FRDM-MCXA156的多外設嵌入式實踐 | 技術集結
RT-Thread編程指南
RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南
NXP FRDM-MCXC444開發板在RT-Thread環境下的上手過程
基于恩智浦FRDM-MCXA153開發板實現RT-Thread的GPIO驅動
基于恩智浦FRDM-MCXA153開發板實現RT-Thread的ADC驅動
基于NXP MCXA153 MCU實現RT-Thread的MTD NOR Flash驅動
免費申請 | FRDM-MCXA156評測活動發布!
《恩智浦FRDM-MCXA156開發實踐指南》上線啦
NXP新品FRDM-MCXA346 RT-Thread 評測活動開放,下周四新品直播預約!| 社區活動
NXP FRDM-MCXA153 RT-Thread實踐指南之UART介紹
評論