近期,我們即將推出一系列關于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文章
7542瀏覽量
151316 -
恩智浦
+關注
關注
14文章
5857瀏覽量
107312 -
開發板
+關注
關注
25文章
5032瀏覽量
97371 -
RT-Thread
+關注
關注
31文章
1285瀏覽量
40081 -
MCUs
+關注
關注
0文章
59瀏覽量
3482
原文標題:MCXA153 RTT技術盛宴來襲,精彩不容錯過!
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論