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.

[参考译文] TMS320F28388D:GPIO28和 GPIO29上的 CM 核心 UART

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1075125/tms320f28388d-cm-core-uart-on-gpio28-and-gpio29

部件号:TMS320F28388D
“线程:C2000WARE测试”中讨论的其它部件

你好。

是否有任何方法可以从 CM 核心控制 GPIO 28和29处的 SCIA 端口?

如果是,是否可以使用 UDMA?

我在 GPIO85上只看到了一个 UART 的示例

此致

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

    您好,

    [引用 userid="124675" url="~ë/support/intrles/c2000微控制器-group/c2000 /f/c2000微控制器-forum/1075125/tms320f28388d-cm-core-UART-On-gpio28和 gpio29"],是否有任何方法可以从 CM 内核控制 SCIA[和 GPI29]端口和 GPI[]

    否,访问 SCI 模块仅可从 CPU1和 CPU2 (不可从 CM)获得。 在 CM 上,我们有不同的 UART 模块,可在不同的 GPIO 引脚上使用。  

    此致,

    维耶克·辛格

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

    谢谢你 Vivek。

    GPIO42和 GPIO43作为 UART 是否有任何示例?

    是否需要设置任何 pinmux 配置?

    此致

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

    我们没有该 GPIO 的示例,但您应该能够更新 C2000Ware 中提供的示例中的 pinmux 设置。 请注意,pinmux 设置仅由 CPU1代码控制。 在 C2000Ware 中,我们有一个 C28x 示例(driverlib\f2838x\examples\C28x\cm_common_config_C28x),用于配置 CM 示例所需的 GPIO (driverlib\f2838x\examples\cm\UART)。 在 C28x 示例中,您可以更改 UART 的 GPIO 编号。

    希望这能有所帮助。

    此致,

    维耶克·辛格  

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

    你好,Vivek。

    我的问题是如何设置 GPIO MUX,因为 MUX 的地址是0xF,即,对于 CPU1中的 SCI,我们使用:

    Fullscreen
    1
    2
    3
    4
    GPIO_SetupPinMux(43, GPIO_MUX_CPU1, 0xF);
    GPIO_SetupPinOptions(43, GPIO_INPUT, GPIO_PUSHPULL);
    GPIO_SetupPinMux(42, GPIO_MUX_CPU1, 0xF);
    GPIO_SetupPinOptions(42, GPIO_OUTPUT, GPIO_ASYNC);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     GpioCtrlRegs.GPBGMUX1.bit.GPIO43 = 1;
          GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 1;

          GpioCtrlRegs.GPBGMUX1.bit.GPIO42 =1;
            GpioCtrlRegs.GPBMUX1.bit.GPIO42 =1;

    我们应该使用什么来实现 CM 核心的同样目标?

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

    GPIO mux 设置仅由 CPU1控制,因为它是全局 mux。 CM 代码不需要执行任何 pinmux 设置。 请参阅我之前发送的示例。

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

    你好,Vivek。 我只是尝试用85和84替换42和43,但它不起作用。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void Configurar_Serie_42_43_UART()
    {
    //
    // Configure GPIO85 as the UART Rx pin.
    //
    GPIO_setPinConfig(GPIO_43_UARTA_RX);
    GPIO_setDirectionMode(43, GPIO_DIR_MODE_IN);
    GPIO_setPadConfig(43, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(43, GPIO_QUAL_ASYNC);
    //
    // Configure GPIO84 as the UART Tx pin.
    //
    GPIO_setPinConfig(GPIO_42_UARTA_TX);
    GPIO_setDirectionMode(42, GPIO_DIR_MODE_OUT);
    GPIO_setPadConfig(42, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(42, GPIO_QUAL_ASYNC);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    您是否愿意测试该示例?

    此致

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

    您好,Pak,

    您能详细说明它如何不起作用吗?  

    您在 PIN 上看到了活动吗?  一个良好的健全性检查是在 GPIO 输出模式下设置引脚,然后切换引脚 以验证连接。   

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

    PIN 正常,因为配置为 SCI 通信时工作正常。 当我们将其设置为 UART 时,在 CM 中以相同的速度设置时,我们只得到一些零,垃圾数据或任何东西。

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

    您好,Pak,

    那么,问题更多地在于移植在 C28x CPU1上的 SCI 模块上工作的代码,以使其在 CM-UART 模块上工作?

    您是否有其他外围设备已在 CM 上工作?  如果没有,我肯定会建议从一个完整的示例开始,例如 CM UART 回声示例。  

    从那里,一旦您根据需要修改了代码,运行代码后的一些良好的健全性检查将是:

    • 通过 XCLKOUT (在 C28x CPU1侧配置)推出 CM 时钟,确保 CM 侧的 M4内核按预期计时
    • 初始化 UART 后,请确保确实设置了在 UARTCTL 中启用的 TX,RX 和 UART
    • 直接检查 GPIO85和 GPIO84的表达式窗口中的 GPIO mux 设置,以确保按照预期为 UART 操作(而不是 SCI)配置 mux
    • 检查波特率寄存器以确保其配置符合预期
    • 检查 UART 数据寄存器(UARTDR)和 UART 接收状态寄存器(UARTSR),以查看是否发生任何错误。 检查 UART 标志寄存器(UARTFR)以确定模块是否已就绪并正在等待,或者是否卡在执行某些操作  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是和否,问题在于即使使用提供的示例,只要将 PIN 更改为 GPIO42和 GPIO43就不起作用。 我们只修改了 GPIO85和 GPIO84 UART 示例。

    您是否能够使用建议的引脚测试您的示例?

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

    您好,Pak,

    您能否确认您的情况?:  

    • 在 CPU1上首次运行 cm_common_config_C28x 示例,项目属性“预定义符号”中明确定义了符号“UART”,UART 部分中的 GPIO 更改为42和43
      • (或运行 UART_CONFIG_C28x 示例和修改的 GPIO ... UART 应该已经在编译器设置中定义)
    • 然后在 CM 上运行 UART_ex1_echoback (或环回示例2)(不需要任何修改)?