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.

[参考译文] TMS320F2.8075万:通过USB模块进行UART通信

Guru**** 2551370 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/629836/tms320f28075-uart-communication-over-the-usb-module

部件号:TMS320F2.8075万

大家好,

我正在尝试通过使用USB模块模拟COM端口来创建UART通信。 我已经看了USB_DEP_SERIAL示例,但我有一些理解问题。

我的第一个问题是,该示例是否将流量从UART重定向到USB模块,以及在内部将流量重定向到USB模块? 因为在示例中,UART引脚是互锁的:

//
//为UART模式配置GPIO引脚。
//
EALLOW;
gpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1;
GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3;
gpioCtrlRegs.GPADIR.bit.GPIO28 = 0;

gpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1;
GpioCtrlRegs.GPAPUD.bit.GPIO29=0;
gpioCtrlRegs.GPADIR.bit.GPIO29=1;
EDIS; 

问题是这些针脚已在使用中。 USBGPIOEnable()函数中存在另一个混淆:

void USBGPIOEnable(void)
{
EALLOW;
GpioCtrlRegs.GPBLOCK = 0x0万;
gpioCtrlRegs.GPBAMSEL.bit.GPIO42 = 1;
gpioCtrlRegs.GPBAMSEL.bit.GPIO43 = 1;

//VBUS
GpioCtrlRegs.GPBDIR.bit.GPIO46 = 0;
//ID
GpioCtrlRegs.GPBDIR.bit.GPIO47 = 0;

gpioCtrlRegs.GPDGMUX2.bit.GPIO120 = 3;
GpioCtrlRegs.GPDMUX2.bit.GPIO120 = 3;
gpioCtrlRegs.GPDGMUX2.bit.GPIO121 = 3;
gpioCtrlRegs.gPDMUX2.bit.GPIO121 = 3;
EDIS;
} 

在上面的函数中,有GPIO120和121的讨论,但F2.8075万只有高达94的GPIOs。 我也不知道"ID"的含义是什么。

此致

Tom

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

    是的。 在此示例中,SCI接收的内容由USB传输,而USB接收的内容由SCI传输。

    ID不应很重要,也不需要在此示例中使用。 您可以忽略这一点。 引脚42和43是重要的引脚。

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

    n‘t只是模拟一个虚拟COM端口,我不需要UART模块。 在本例中,它只是echo函数的一部分。 我对吗?

    因此,我认为USB连接是通过CDC (主机)和RX和TX缓冲器(控制器)处理的。

    在参考手册中,如果控制器应该是设备,则必须监控Vbus。 但是,我可以在哪里调整USB库中的GPIO?

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

    是的,您回答正确。 只是为了回去

    是的,这是CDC。

    库中不支持VBUS监控。 您需要自己实施此操作。

    SAL