MCX A系列芯片USB DP/DM灵活配置为串口的功能实现

来源:恩智浦MCU加油站 MCU/MPU 4 次阅读
摘要:背景介绍 在实际嵌入式系统开发过程中,工程师经常会遇到串口资源不足的问题: 系统需要多路UART通信,但部分串口引脚已被其他片内外设或功能复用占用;如果采用软件模拟(bit-banging)方式通过GPIO实现UART通信,不仅会显著增加CPU占用率,还会对通信时序的准确性和系统实时性造成影响。 针对上述问题,NXP MCX A系列MCU(MCX A14x/A15x/A17x/A18x/A25x/

背景介绍

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

系统需要多路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:

INPUTMUX配置说明

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

  1. 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

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

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

实 验

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

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

结 语

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

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

END

恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。

这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。

相关推荐
评论区

登录后即可参与讨论

立即登录