This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] UCD3138OL40EVM-032:如何在 UCD3138OL40EVM-032 上实现串行通信

Guru**** 2455360 points
Other Parts Discussed in Thread: UCD3138, UCD3138064

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1540565/ucd3138ol40evm-032-how-to-achieve-serial-communication-on-ucd3138ol40evm-032

器件型号:UCD3138OL40EVM-032
Thread 中讨论的其他器件:UCD3138UCD3138064

工具/软件:

尊敬的 UCD 专家:

大家好、我最近刚接触到 UCD3138 芯片、我想测试串行端口功能、相关代码如图所示。 使用“存储器调试“、您可以看到数据已发送到串行端口寄存器、但使用串行端口工具进行调试时不会发送数据、并且在使用示波器测量 UART 的 TX 引脚时没有波形。  我想知道这是因为我的 GPIO 设置有问题、还是我的硬件连接有问题。  我希望您能帮助回答、谢谢。

此致。

void init_uart0 (void)

  易失性 Uint32 rx_byte0;//易失性、用于发出有关设置但不读取的警告

  Uart0Regs.UARTCTRL3.bit.SW_RESET = 0;//初始化 UART 时进行软件复位

  Uart0Regs.UARTCTRL0.bit.DATA_SIZE = 7;//8 位
  Uart0Regs.UARTCTRL0.BIT.STOP = 1;//2 个停止位
  Uart0Regs.UARTCTRL0.bit.SYNC_MODE = 1;//异步模式

  Uart0Regs.UARTHBAUD.ALL = 0;
  Uart0Regs.UARTMBAUD.ALL = 0;
  Uart0Regs.UARTLBAUD.ALL = 49;//对于 38400、//47 对于控制板、44 对于开环

  Uart0Regs.UARTRXST.bit.RX_ENA = 1;//enable RX

  Uart0Regs.UARTTXST.bit.TX_ENA = 1;//启用 TX

  Uart0Regs.UARTINTST.all = 0xff;//这两条语句应清除状态位
  Uart0Regs.UARTINTST.ALL = 0;

  RX_byte0 = Uart0Regs.UARTRXBUF.bit.RXDAT;//清除 RXRDY 标志

  Uart0Regs.UARTIOCTRLTX.bit.IO_FUNC = 1;//启用发送引脚
  Uart0Regs.UARTIOCTRLRX.bit.IO_FUNC = 1;//使能接收引脚

  Uart0Regs.UARTCTRL3.bit.clock = 1;//内部时钟选择;
  Uart0Regs.UARTCTRL3.bit.SW_RESET = 1;//软件复位是否已释放 UART 初始化完成?

  Uart0Regs.UARTIOCTRLSCLK.bit.IO_FUNC = 0;//禁用 UART 的外部时钟。

  Uart0Regs.UARTTXBUF ALL ='\n';//输出一个字节来开始事务。
}

void char_OUT(字符数据)

  while (Uart0Regs.UARTTXST.bit.TX_RDY = 0)
  {
    //等待数据传输时不执行任何操作。
  }
  Uart0Regs.UARTTXBUF = DATA;//输出一个字节
}

void main()

  //启用 JTAG
  MiscAnalogRegs.IOMUX.ALL = 0;

  //--------------------------------------------------------------------------------------------------------------------------------
  //重要说明:请阅读以下内容、否则代码可能无法正确执行
  //--------------------------------------------------------------------------------------------------------------------------------
  //将引脚 FAULT3 接地以确保正常运行
  //将引脚 FAULT3 连接至 3.3V 以清除校验和
  if (GioRegs.FAULTIN.bit.FLT2_IN = 1)
  {
    clear_integrity_word();
  }

  #if (UCD3138 |UCD3138064)
    MiscAnalogRegs.CLKTRIM.bit.HFO_LN_FILTER_EN = 0;
    MiscAnalogRegs.CSTRIM.bit.resistor_trim = 23;//28;
  #endif

  INIT_PMBus (0x58);//初始化 PMBus 处理程序
  init_uart0();
  for(;;)
  {
    PMBUS_HANDLER ();
     char_out(“1")“);
  }

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhang、

    请参阅以下有关将 UART 与 UCD3138 开环 EVM 配合使用的示例代码和 PowerPoint。 此示例代码从 UART 读取数据、并使用该数据设置 DPWM 事件 2。  

    e2e.ti.com/.../UCD31xx-DPWM-Open-Loop-_2D00_-Lab-2.ppt

    e2e.ti.com/.../uart02_5F00_openloopdpwm.7z

    您的设置中的 UART 引脚直接连接到 USB 通信端口。 这样的元件也应该起作用。 但是、我们的示例使用开环 RS 上的 EVM-232 连接器。 类似于以下 RS –232 适配器的设备可以工作: https://a.co/d/cZ1qHYk。 我们的设置使用 RS –232 适配器和 PuTTY (https://www.putty.org/) 来打开串行端口。

    请注意、您可以通过转到在 E2E 中插入 C 代码  插入-->代码 来选择  C 基准值。

    此致、

    Jonathan Wong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

      非常感谢您的回答、我使用了您的代码并尝试了 RS232、但我仍然无法进行串行通信。 TX 引脚上根本没有信号。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、张:

    为什么您有跳线直接连接到 UART 引脚? 只要在 J16 和 J17 上使用跳线分流器进行连接、连接就会自动进入 UCD3138 上的 UART 引脚。 我想您只需要短接 J16 和 J17 接头、UART 应该起作用。

    您是否还可以启用 UART 中断并查看是否触发了中断标志? 它会告知您是否收到 UART 数据。

    最后、您是否可以在示波器或逻辑分析仪上探测 UART 信号? 只需在 J16 和 J17 上放置一个探头、确保实际接收和发送 UART 数据。

    此致、

    Jonathan Wong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    我在 J16 和 J17 上使用跳线分流器、但仍然无法正常工作。  我使用示波器测试了 TX 引脚上的波形、但根本没有输出。  我觉得 UART 功能根本不起作用。

    此致、

    Ziang Zhang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ziang、

    我明天会作出回应。 我怀疑这可能是因为您使用了 40 引脚版本、当代码用于 64 引脚版本时。

    此致、

    Jonathan Wong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ziang、

    尝试使用 LLC 固件 https://www.ti.com/tool/UCD3138FW_LLC 中的此 UART 处理程序

    e2e.ti.com/.../uart.c

    e2e.ti.com/.../UART_5F00_Auto_5F00_Baud.c

    此致、

    Jonathan Wong