查看: 1224|回复: 2

MCXA153 RTT技术盛宴来袭,精彩不容错过!

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3877

    主题

    7482

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39315
    最后登录
    2025-7-23
    发表于 2024-10-22 14:18:48 | 显示全部楼层 |阅读模式
    近期,我们即将推出一系列关于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开发板外观

    11.png
    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. 扩展选项
    • Arduino®兼容排针
    • 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驱动架构
    12.png
    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
    1. struct mcx_uart

    2. {

    3. struct rt_serial_device *serial;//设备信息和操作

    4. LPUART_Type *uart_base;//串口句柄

    5. IRQn_Type irqn;//中断

    6. clock_name_t clock_src;//时钟选择

    7. clock_attach_id_t clock_attach_id;

    8. clock_ip_name_t clock_ip_name;

    9. clock_div_name_t clock_div_name;

    10. char *device_name;

    11. };
    复制代码
    2. 配置串口参数
    13.png
    1. struct serial_configure

    2. {

    3. rt_uint32_t baud_rate; //比特率

    4. rt_uint32_t data_bits :4;//数据长度

    5. rt_uint32_t stop_bits :2;//停止位

    6. rt_uint32_t parity :2;//校验位

    7. rt_uint32_t bit_order :1;//小段发送

    8. rt_uint32_t invert :1;//模式选择 正常模式 归零编码方式

    9. rt_uint32_t bufsz :16;//buf大小

    10. rt_uint32_t flowcontrol :1;//硬件流控制

    11. rt_uint32_t reserved :5;//保留的位

    12. };
    复制代码

    3. 实现rt_uart_ops接口
    1. struct rt_uart_ops

    2. {

    3. rt_err_t (*configure)(struct rt_serial_device *serial, struct serial_configure*cfg);

    4. rt_err_t (*control)(struct rt_serial_device *serial, int cmd, void *arg);

    5. int (*putc)(struct rt_serial_device *serial, char c);

    6. int (*getc)(struct rt_serial_device *serial);

    7. rt_ssize_t (*dma_transmit)(struct rt_serial_device *serial, rt_uint8_t *buf, rt_size_t size, int direction);

    8. };
    复制代码
    3.4 关键接口实现
    1. configure: 配置串口基本属性(波特率等)

    2. control: 控制UART设备
    1. #define RT_DEVICE_CTRL_RESUME 0x01 /**< resume device */

    2. #define RT_DEVICE_CTRL_SUSPEND 0x02 /**< suspend device */

    3. #define RT_DEVICE_CTRL_CONFIG 0x03 /**< configure device */

    4. #define RT_DEVICE_CTRL_CLOSE 0x04 /**< close device */

    5. #define RT_DEVICE_CTRL_NOTIFY_SET 0x05 /**< set notify func */

    6. #define RT_DEVICE_CTRL_SET_INT 0x06 /**< set interrupt */

    7. #define RT_DEVICE_CTRL_CLR_INT 0x07 /**< clear interrupt */

    8. #define RT_DEVICE_CTRL_GET_INT 0x08 /**< get interrupt status */

    9. #define RT_DEVICE_CTRL_CONSOLE_OFLAG 0x09 /**< get console open flag */

    10. #define RT_DEVICE_CTRL_MASK
    复制代码

    3.5 putc: 发送一个字符
    1. LPUART_WriteByte(uart->uart_base, ch);
    复制代码

    3.6 getc: 接收一个字符
    1. if (kLPUART_RxDataRegFullInterruptEnable & LPUART_GetStatusFlags(uart->uart_base))
    2. {
    3. return LPUART_ReadByte(uart->uart_base);
    4. }
    复制代码

    3.7 实现步骤
    1. 在pin_mux.c中初始化引脚
    2. 注册和使用UART设备
    1. #define UART2_NAME "uart2"
    2. static rt_device_t uart2_serial;
    3. char str[] = "hello rttread!\n";
    4. uart2_serial = rt_device_find(UART2_NAME);
    5. rt_device_open(uart2_serial, RT_DEVICE_FLAG_INT_RX);
    6. rt_device_write(uart2_serial, 0, str, (sizeof(str) - 1));
    复制代码

    结语
    本文详细介绍了如何在FRDM-MCXA153开发板上扩展RT-Thread的UART驱动支持。这不仅展示了RTThread优秀的可扩展性,也为开发者提供了实用的UART驱动开发参考。希望本文能够帮助更多开发者在恩智浦MCU 平台上充分利用RT-Thread的强大功能。
    原文链接:RT-Thread-【NXP-MCXA153】RTT UART2驱动添加RT-Thread问答社区 - RT-Thread

    qiandao qiandao
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    110

    主题

    3406

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    9010
    最后登录
    2025-7-23
    发表于 2024-10-22 17:08:16 | 显示全部楼层
    A153功能强大,官方的参考资料也挺全的。让创意飞起来。
    加油哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    4 小时前
  • 签到天数: 622 天

    连续签到: 10 天

    [LV.9]以坛为家II

    6

    主题

    1039

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3574
    最后登录
    2025-7-23
    发表于 2024-10-23 08:38:57 | 显示全部楼层
    接下来,也是要好好研究下
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-23 14:18 , Processed in 0.100430 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表