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.

[参考译文] CCS/TMS320F28035:Simulink C28x_LedBlink_ERT

Guru**** 2538955 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/723574/ccs-tms320f28035-simulink-c28x_ledblink_ert

器件型号:TMS320F28035

工具/软件:Code Composer Studio

您好!

我使用 F28035 Simulink 示例文件:"C28x_LedBlink_ERT"
加载程序后、我单击 Simulink "Diagnostic Viewer"中的"Open project in Code Composer Studio"。 在 CCS 监视窗口中、我介绍了寄存器值、并有几个问题(4个问题):

1)我已经阅读了 TI 文档"SPRUGL8C"(http://www.ti.com/lit/ug/sprugl8c/sprugl8c.pdf)、在第97页-表72中、我看到 GPIO 0至11禁用了上拉电阻、这是因为 GPIO 0至11是 PWM、并且由于 PWM 是输出、上拉电阻是禁用的吗? (这些 GPIO 引脚上还有其他外设、因此为什么仅禁用前12个 GPIO)

2) 2)在文档的同一页上、为什么默认情况下也禁用 GPIO 40和41上拉电阻? 毕竟、它们分别是 ePWM7A 和 ePWM7B (基于"SPRS584L"第20页- http://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=tms320f28032&fileType=pdf)

3)但是、在"C28x_LedBlink_ERT"的 CCS 监视窗口中、情况是一致的、即"GPAPUD"默认值为0x00000FFF (GPIO 0至11禁用上拉)、类似地、"GPBPUD"默认值为0x00000300 (GPIO 40和41禁用上拉)。 但是、我似乎找不到使用上述值初始化寄存器的文件、实际上"DSP280x_GPIO.c"使用以下两行初始化上拉电阻:

GpioCtrlRegs.GPAPUD.ALL = 0x0000;
GpioCtrlRegs.GPBPUD.ALL = 0x0000;

因此、必须有另一个文件覆盖这些寄存器、我是否可以定向到该文件/函数? 例如、"C28x_LedBlink_ERT_test.c"文件中的"GPxDIR"会被覆盖。   

4) 4)"C28x_LedBlink_ERT"切换 GPIO 引脚31和34、这意味着这些 GPIO 应设置为输出、在观察窗口时、我观察到"GPADIR"的值为0x8000000 (即 GPIO 31 =输出)、"GPBDIR"的值为0x00000004 (即 GPIO 34 =输出)、因此情况是一致的。 但是、不应该对上拉电阻进行解调、因为它们是输出? 不应该将"GPAPUD"设置为0x80000FFF将"GPBPUD"设置为0x00000304?

提前感谢

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

    PWM 引脚通常是 禁用其上拉电阻的老旧引脚... 但这并非总是如此。

    我快速阅读您的帖子、您认为 GPIO 40和41的记录不正确、对吗?

    谢谢、
    Cody  

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

    感谢您在 Cody 之后的发言。  

    我在帖子中有多个问题。 我的第一个问题是"为什么 PWM 禁用了上拉电阻器"、您说的是没有具体的理由这么做

    我的下一个问题是:F2803x 处理器系列在 GPIO 40和41上具有 PWM7A 和7B、因此为了保持一致、它们是否也应该禁用上拉电阻? 可能可以修改 TI 提供的文档(根据您之前对没有具体原因进行修改的答复、我想这并不重要)。

      

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

    Alex、

    如果引脚上的上拉电阻器被禁用、总有一个很好的理由。 对于 PWM 引脚:PWM 通常控制高功率栅极驱动器、如果 PWM 在上电期间偶尔升高几分钟、则可能会发生电气损坏。 此外、如果在启动时需要低电平状态、我们建议客户使用外部下拉电阻器。

    如果您想了解上拉电阻器中的构建默认配置、只需查看上面显示的 GPAPUD 和 GPBPUD 中的默认值。 例如、GPIO0 (R/W-1)被列为具有读写功能的位、复位时默认状态为1。  

    此致、
    Cody  

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

    再次感谢您的回复 Cody。

    [引用用户="Cody Watkins"] PWM 通常控制高功率栅极驱动器,如果 PWM 在上电期间意外地升高了几分钟,则可能会造成电气损坏。

    多路复用器寄存器(例如"GPAMUX1")默认设置为"00"、但 PWM 是外设"01"、因此您建议的情形是否实际发生在上电时? 即使是这样、启用上拉电阻后、引脚的电压电平将为 Vdd、PWM 栅极驱动器也会尝试驱动 Vdd 电压、对吧? 那么、会有什么电气损坏呢?  

    接下来、哪个文件实际初始化"复位后的默认寄存器值"。 该文档清楚地说明了寄存器在复位后被初始化为特定值。 即使我在 CCS 中创建了一个空白项目、并且只有一个空白的 main.c 文件、并且没有其他链接的头文件、这些寄存器也会初始化为正确的值(通过观察窗口验证)。 它是.gel 文件吗?

    提前感谢

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

    GPIO 和 PWM 使用相同的 IO 缓冲器、因此在这两种情况下都将出现上拉电阻。 如果器件未驱动值、则可能会浮空至未知状态。  

    PWM 通常控制需要以非常具体的速率进行开关的大功率电子器件(远高于 VDD)、导通栅极过长可能(通常也确实)会损坏组件。

    默认寄存器值在硬件而非软件中处理、也可以说它们不可配置。

    此致、
    Cody  

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

    感谢您的回复 Cody、这清除了问题。  

    [引用用户="Cody Watkins"]

    默认寄存器值在硬件而非软件中处理、也可以说它们不可配置。

    [/报价]

    请您向我介绍一下描述上述陈述的文档。

    谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Alex、
    很抱歉、我只是注意到您有后续问题。 如果您查看寄存器描述表、它们将具有类似 R/W - n 的值、其中"n"表示启动时的值。

    我不知道文档中的任何地方我们说我们没有软件可配置的 GPIO 默认值、但我认为这是因为很难记录您没有的功能。 静态地说:F28035器件不生产咖啡、文档可能永远不会表明这一事实。

    注:如果我们在旧器件上有一个功能、但该功能已被删除、则文档中会非常清楚地说明这一点。

    希望这对您有所帮助、
    Cody