NXP MCX A系列MCU芯片USB DP/DM灵活配置为串口信号的原理说明

描述

背景介绍

在实际嵌入式系统开发过程中,工程师经常会遇到串口资源不足的问题:

系统需要多路UART通信,但部分串口引脚已被其他片内外设或功能复用占用;如果采用软件模拟(bit-banging)方式通过GPIO实现UART通信,不仅会显著增加CPU占用率,还会对通信时序的准确性和系统实时性造成影响。

针对上述问题,NXP MCX A系列MCU(MCX A14x/A15x/A17x/A18x/A25x/A26x/A36x) 提供了一种非常灵活且高效的解决方案。该系列芯片内部集成了 全速USB(FS-USB)控制器,支持将片内任意LPUART外设信号通过内部信号矩阵路由至USB物理层,从而实现将USB DP/DM引脚复用为UART的TX/RX或RX/TX信号,有效缓解串口引脚资源紧张的问题。

USB DP/DM复用为UART原理说明

通过对USBCTRL寄存器的相关位进行配置,可实现USB与UART信号之间的复用关系控制:

当USBCTRL[UARTSEL]=1时,选定的LPUART外设将连接到FS USB物理层,此时,USB0_DP / USB0_DM将被配置为普通的LPUART信号,信号以单端方式运行,而非USB的差分模式:

当USBCTRL[UARTCHLS] = 0 时:

USB0_DP → LPUART_TX

USB0_DM → LPUART_RX

当USBCTRL[UARTCHLS] = 1 时:

USB0_DP → LPUART_RX

USB0_DM → LPUART_TX

在本示例中, 将USB0_DP复用为 LPUART1 TX,USB0_DM复用为LPUART1 RX:

mcu

INPUTMUX配置说明

除了USBCTRL配置外,还需要通过INPUTMUX完成USB与LPUART之间的信号触发关联。在本例中:

USBFS触发源配置

将USBFS控制器的触发信号配置为LPUART的TX触发

本例中选择LPUART1的lpuart_trg_txdata作为USBFS的输入触发源

对应配置寄存器为:INPUTMUX_USBFS

2. LPUART RX 输入源配置

将LPUART1的RX输入源选择为USBFS控制器

即:USB0 ipp_ind_uart_rxd_usbmux input

对应寄存器为:INPUTMUX_LPUART1

mcu

mcu

配置UART信号路由至USB的关键代码如下,本例中使用LPUART1,将LPUART1_TX信号路由至USB_DP,LPUART1_RX信号路由至USB_DM:

mcu

当MCU接收到一个字符时,将发送相同的字符返回PC,代码如下:

mcu

实 验

使用FRDM-MCXA156开发板,将USB线连接USB接口J23至USB转TTL转接器,并连接PC,如下所示:

mcu

打开任意串口控制台,本例中为USB-SERIAL CH340,按下板子复位按钮,输入HELLO,在控制台界面同时显示HELLO字样,表示通信成功:

mcu

结 语

通过本文示例可以看出,MCX A系列MCU提供的USB DP/DM灵活配置为串口信号的机制,为引脚资源受限的系统设计带来了极大的灵活性和可扩展性。该方案无需额外硬件、无需软件模拟串口,即可实现稳定、低功耗、低CPU占用的UART通信通道。

在多串口应用、功能扩展受限或引脚高度紧张的设计场景中,合理利用USB DP/DM复用为UART,不仅能够显著提升硬件资源利用率,也为系统后期功能升级和接口拓展预留了更多空间,具有较高的工程实用价值和推广意义。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分