ZHCADN6 January 2024 AM67 , AM67A , AM68 , AM68A , AM69 , AM69A , DRA821U , DRA821U-Q1 , DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4AEN-Q1 , TDA4AH-Q1 , TDA4AL-Q1 , TDA4AP-Q1 , TDA4APE-Q1 , TDA4VE-Q1 , TDA4VEN-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM , TDA4VM-Q1 , TDA4VP-Q1 , TDA4VPE-Q1
本资源的原文使用英文撰写。 为方便起见,TI 提供了译文;由于翻译过程中可能使用了自动化工具,TI 不保证译文的准确性。 为确认准确性,请务必访问 ti.com 参考最新的英文版本(控制文档)。
TI 全新的汽车处理器 Jacinto 7 系列适用于 ADAS 和网关不同场景下的汽车应用。它包含 TDA4X 和 DRA82X 系列,分别主要用于 ADAS 和网关。这些处理器基于多核异构架构,其中包含 Cortex®-R5、Cortex-A72、Cortex-M3/M4、DSP 和一些通用外设。这些处理器具有很高的可重用性。通常,该系列处理器需要在每个内核上运行一个操作系统和相关的应用程序线程,涉及内部数据传输和外设调用。因此,Jacinto™ 7 系列处理器的应用具有相当高的复杂性。有时,当出现问题时,调试并不容易。
本应用手册演示了 TI 提供的参考设计中通用异步接收器/发送器 (UART) 记录系统硬件和软件级别的基本信息。其中包括基于默认 SDK 和参考设计自定义客户自有日志输出串行端口的方法,以及通过打印 UART 日志来解决问题的多核异构片上系统 (SoC) 调试方法。
Jacinto™is a TM ofTI corporate name.
Cortex® and Arm®are reg TMs ofArm Limited (or its subsidiaries) in the US and/or elsewhere.
Other TMs
UART 是处理器中的一种常见外设,通常用于系统日志信息输出、低成本的人机交互、器件之间的通信等。在车辆通信中尤为常见的是,Lin 总线通常使用 UART 作为低成本的串行通信协议。UART 不需要时钟同步和主/从设置,只需要配置开始位和停止位,因为它是异步通信,可以随时发送和接收数据。当不需要流控制和电平转换时,TX 和 RX 对于外部硬件连接来说是足够的。但在常见的调试过程中,日志信息通常需要输出到计算机中。因此,在硬件设计中,需要通过 USB 串行端口芯片将 TTL 电平转换为 USB 串行端口协议,并输出到计算机端口。PC 上的软件工具需要正确设置应用于处理器驱动程序的串行端口参数,包括波特率、开始位、数据位、奇偶校验位、停止位等,然后才能接收日志信息进行调试。
Jacinto 7 系列处理器均具有相同的 UART IP,因此该系列不同处理器上 UART 的功能和使用方法基本相同。表 1-1 显示每个处理器总共有 11 个 UART 接口,其中一个在 WKUP 域中,一个在 MCU 域中,其余九个在 MAIN 域中。在所有域正常上电后,每个内核都可以通过软件访问其中的任何 UART。但在系统软件架构中,多个内核不应同时访问 UART。这可能会导致某些系统冲突,从而导致某个内核挂起。
实例 | 域 | ||
---|---|---|---|
WKUP | MCU | MAIN | |
WKUP_UART0 | √ | - | - |
MCU_UART0 | - | √ | - |
UART0 | - | - | √ |
UART1 | - | - | √ |
UART2 | - | - | √ |
UART3 | - | - | √ |
UART4 | - | - | √ |
UART5 | - | - | √ |
UART6 | - | - | √ |
UART7 | - | - | √ |
UART8 | - | - | √ |
UART9 | - | - | √ |
Jacinto 7 UART 包含以下特性:
图 1-1 显示了 Jacinto 7 UART 功能方框图。当处理器需要发送数据时,只需要通过 CPU/DMA 将输出数据写入 FIFO。然后,数据通过 UART_THR 寄存器自动传输到 TX 引脚,并转换为 TTL 电平。如果 UART_THR 寄存器为空,则数据传输完成。在数据接收过程中,TTL 电平首先通过引脚转换为位数据,并由 UART_RHR 写入 FIFO。当 FIFO 达到阈值(最大 64 字节)时,将触发 CPU/DMA 中断,以将数据写入存储器。当读取足够的数据并且 FIFO 中的数据低于阈值时,中断条件将消失,数据接收完成。
Jacinto 7 系列处理器的 EVM 板均具有多个串行端口,如表 2-1 所示。通常情况下,在硬件设计期间,至少会保留三个串行端口用于日志信息调试,其余的串行端口可用于与外部器件进行通信。默认情况下,所有串行端口的软件参数都相同,波特率为 115200 位/秒,开始位为 0,有 8 个数据位,奇偶校验位为无,停止位为 1。
WKUP_UART0 保留用于 DSMC 调试,这在系统意外触发防火墙时很常见。对于 SBL 引导,MCU_UART0 用于 MCU1_0 的串行端口输出。对于 UART 引导,MCU_UART0 用于打印“C”字符来判断处理器是否正常工作以及调试 HS 密钥烧录是否成功。DRA821 中的 A72 内核日志打印到 MAIN_UARTx。TDA4X 中所有内核的日志都会打印到 MAIN_UARTx 中,但 MCU1_0 日志会在 SBL 引导时打印到 MCU_UART0 中。
因此,在设计电路板时,至少要预留 WKUP_UART0、MCU_UART0 和 1 个 MAIN_UARTx。此外,建议它们在 TI 参考设计中采用相同的引脚配置。尤其是对于 MCU_UART0,如果更改了引脚,则无法在工程开发的早期阶段使用“C”字符打印进行调试,因为此功能是通过默认引脚设置在 ROM 代码中实现的。
连接外部器件时,需要连接流量控制。始终建议为 UART 通信连接硬件流控制线。另外,软件应该明确启用硬件流控制。否则,会发生数据丢失和数据损坏。
实例 | 器件 | |||
---|---|---|---|---|
DRA821 | TDA4VM | TDA4VL/Eco/AL | TDA4VH | |
WKUP_UART0 | √ | √ | √ | √ |
MCU_UART0 | √ | √ | √ | √ |
UART0 | √ | √ | - | - |
UART1 | √ | √ | - | - |
UART2 | - | √ | √ | √ |
UART3 | √ | - | - | √ |
UART4 | - | √ | - | - |
UART5 | - | - | √ | √ |
UART6 | - | - | - | - |
UART7 | - | - | - | - |
UART8 | - | - | √ | √ |
UART9 | - | - | - | - |
Jacinto 7 系列处理器使用 WKUP_UART0 打印 DMSC(设备管理和安全控制)日志,该日志可用于检查防火墙或 SYSFW(系统固件)是否有错误。默认情况下,WKUP_UART0 日志输出是不够的,需要执行一些额外的步骤来获取完整的日志。下面详细介绍了这些步骤。