近期,我们即将推出一系列关于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浏览量
151309 -
恩智浦
+关注
关注
14文章
5857浏览量
107302 -
开发板
+关注
关注
25文章
5032浏览量
97371 -
RT-Thread
+关注
关注
31文章
1285浏览量
40077 -
MCUs
+关注
关注
0文章
59浏览量
3482
原文标题:MCXA153 RTT技术盛宴来袭,精彩不容错过!
文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论