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.

[参考译文] TMS320F28379D:无法通过 XBAR 路由在 GPIO24上观察到 XCLKOUT 信号

Guru**** 2460850 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1499575/tms320f28379d-unable-to-observe-xclkout-signal-on-gpio24-via-xbar-routing

部件号:TMS320F28379D

工具/软件:

您好:

我正在使用 F28379D、并尝试使用 XBAR 结构将 XCLKOUT 信号路由到可访问的 GPIO 引脚。

由于 GPIO73配置为 XCLKOUT、但在电路板上无法进行物理上的可探测、因此我尝试了以下布线:

XCLKOUT (通过 GPIO73)→InputXBAR1→OutputXBAR1→GPIO24

以下是我使用的代码(简化版):

#include "F2837xD/device.h"
#include "F2837xD/sysctrl.h"
包含"F2837xD/GPIO.h"
#include "F2837xD/xbar.h"
空 LED (空);
void main (void){

//配置 XCLKOUT 源和分频器
EALLOW;//
ClkCfgRegs.CLKSRCCTL1.bit.XTALOFF = 0;//启用 XTAL
ClkCfgRegs.CLKSRCCTL3.bit.XCLKOUTSEL = 2;// CPU2.SYSCLK 作为源
ClkCfgRegs.XCLKOUTDIVSEL.bit.XCLKOUTDIV = 1;//除以2

GpioCtrlRegs.GPAGMUX1.bit.GPIO1 = 0;
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO1 = 1;
GpioDataRegs.GPACLEar.bit.GPIO1 = 0;


GpioCtrlRegs.GPAGMUX2.bit.GPIO16 = 0;
GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO16 = 0;
GpioCtrlRegs.GPAPUD.bit.GPIO16 = 1;

GpioCtrlRegs.GPCGMUX1.bit.GPIO73 = 1;
GpioCtrlRegs.GPCMUX1.bit.GPIO73 = 3;
GpioCtrlRegs.GPCDIR.bit.GPIO73 = 1;
//配置输入 XBAR 以路由 GPIO73 (XCLKOUT)
InputXbarRegs.INPUTSELECTLOCK.bit.INPUT1SELECT = 0;//解锁输入选择
InputXbarRegs.INPUT1SELECT = 73;//将 GPIO73 (十六进制49)路由至 InputXBAR1
InputXbarRegs.INPUTSELECTLOCK.bit.INPUT1SELECT = 1;

//配置输出 XBAR 以将 InputXBAR1路由到 GPIO24
OutputXbarRegs.OUTPUTLOCK.bit.lock = 0;//解锁输出选择
OutputXbarRegs.OUTPUT1MUX0TO15CFG.bit.MUX1 = 1;//将 InputXBAR1路由到 Output1的 MUX1
OutputXbarRegs.OUTPUT1MUXENABLE.bit.MUX1 = 1;
OutputXbarRegs.OUTPUTLATCHENABLE.bit.Output1 = 0;
OutputXbarRegs.OUTPUTINV_bit.Output1 = 0;

//为 OutputXBAR 函数配置 GPIO24
GpioCtrlRegs.GPAGMUX2.bit.GPIO24 = 1;
GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 1;//选择 OUTPUTXBAR1
GpioCtrlRegs.GPADIR.bit.GPIO24 = 1;//设置为输出
EDIS;
while (1)

LED();//检查程序是否正常工作
}


}
空 led ()

if (GpioDataRegs.GPADAT.bit.GPIO16 = 0){
//按按钮(低)、打开 LED
GpioDataRegs.GPASSET.bit.GPIO1 = 1;
}其他{
//按钮未按下(高)、请关闭 LED
GpioDataRegs.GPACLEar.bit.GPIO1 = 1;
}
}
 观察结果:
  • LED 对按钮做出正确响应、确认程序正在运行。

  • 所有相关寄存器(通过表达式窗口进行检查)均设置正确。

  • 不过、当我进行探测时 GPIO24 在示波器(带和不带 EDU MKII)上、我只能看到 噪声 —无方波或时钟信号。

  • 我已经尝试调整 XCLKOUT 源和分频器、但仍然没有信号。

 问题:

为什么信号没有到达 GPIO24? InputXBAR1→OutputXBAR1路由是否可用于此目的、或者是否缺少某些内容?

任何见解都将非常感谢!

谢谢您、
Shivani

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

    尊敬的 Shivani:  

    我认为这并不是 INPUTXBAR 的有效用例。 请参阅器件 TRM 中的以下声明:

    输入 X-BAR 只需将输入缓冲器上的信号连接到所选输入 X-BAR 实例的输出。

    这意味着它需要将信号从外部源驱动到输入缓冲器。 连接路由有效、但由于没有驱动 GPIO73的外部信号、因此它只是路由该引脚上存在的任何输入信号。

    您提到该引脚无法访问、它在板上连接了什么?

    我还想确认您为 GPIO73配置了正确的多路复用模式(3)、以便在该引脚上启用 XCLKOUT。

     若要使其正常工作、需要一个从 GPIO73到另一个可用 GPIO 信号的外部跳线/路由、然后您将配置 inputxbar -> outputxbar 路由。 由于时钟信号从外部应用到中间人 GPIO 的输入缓冲器、因此时钟信号随后会路由到 GPIO24。

    此致、

    Zackary Fleenor

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

    感谢您发送编修。

    我误解了输入 XBAR 的作用—我假设我可以使用它将内部生成的 XCLKOUT 从 GPIO73路由回芯片。 与在 TRM 中一样、我们已经通过 GPIO73路由 XCLKOUT。

    但 GPIO73是不可访问的、因为它存在于一个小的密集结构上、我们无法使用外部跳线进行探测和布线、因为它非常小。

    通过提供的快照、您可以验证配置。  

    现在应该做什么?

    此致  

    Shivani

    e2e.ti.com/.../snaps_5F00_embedded.zip

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

    您好 Shivani、

    我从提供的快照中注意到了一件事。

    您为 GPyGMUXn.GPIOz 设置的值不正确、这应该是0而不是1、以启用 XCLKOUT 多路复用选项。

    您可以尝试一下吗?

    您还能否提供电路板的图片和任何设计文件/原理图以供参考、以便我们可以集体讨论可能的解决方案?

    此致、

    Zackary Fleenor

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

    嗨、Fleenor。
    感谢您注意到这个问题。 让我尝试一下、我会让您知道。  
    顺便说一下、我连接了 LaunchPad 原理图。 另外、还突出显示了 J9的电路板图片。
    LAUNCHXL-F28379D 开发套件| TI.com.cn -另外、您还可以在这里查看电路板详细信息。
    此致、
    Shivani

    e2e.ti.com/.../Schematic.zip

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

    嗨、Shivani、

    我认为这是一个定制电路板、没有意识到您使用的是 Launchpad 硬件。

    GPIO73确实在这里的 J9接头上从引脚37上发出。

    有关此接头的其他详细信息、请访问: https://www.digikey.com/en/products/detail/hirose-electric-co-ltd/DF40C-60DP-0-4V-51/1969488

    最重要的一点是0.016"(0.40mm)的节距。

    如果可能、您可以将一根>= 26 AWG 的小跳线焊接到引脚37的 PCB 焊盘位置、然后在进行前面提到的更改后(非常仔细)探测 XCLKOUT 信号。

    YouTube 和其他渠道上有许多优秀的教程演示了这种 PCB 修改(请参阅 通过焊接 SMT 跳线修改 PCB)。

    如果可以直接探测 GPIO73-XCLKOUT 信号、那么任何 XBAR 配置要求都会成为一个基本要求。

    如果您能使用提供的解决方案正确观察 XCLKOUT、请告知我们您的想法。

    此致、

    Zackary Fleenor

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

    您好、Zackary、

    感谢您的详细回答和建议的解决方案。

    但是、我想检查是否有其他访问方法 XCLKOUT而保持焊接 、不幸的是、我没有在 LaunchPad 上执行硬件修改的选项。

    为了提供更多背景信息—我的项目涉及实施 时钟树 、在这里我需要观察各种内部时钟源、分析它们 稳定性 、并将它们进行比较以进行评估 时钟偏斜或偏移 。 这就是我对利用XCLKOUT信号进行观察和分析特别感兴趣的原因。

    是否有方法可以XCLKOUT通过另一个可访问的 GPIO 或子系统路由或复制信号、而无需外部接线?

    感谢您的帮助、并期待在电路板限制范围内支持此用例的任何建议。

    此致、
    Shivani

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

    您好 Shivani、

    我已经与其他专家讨论过这个问题、我认为我应该纠正我先前所作的发言。

    该器件中的 IO 缓冲器确实支持同时启用输出(XCLKOUT)和输入(INPUTXBAR)、以有效地创建到 OUTPUTXBAR 的内部环回、然后到另一个 GPIO 的输出驱动器。 更正  GPyGMUXn.GPIOz 配置并保留之前的 XBar 配置后、您仍然无法在 GPIO24上看到 XCLKOUT 信号吗?

    对导致 INPUTXBAR 和 OUTPUTXBAR 功能出现任何混淆的歉意。 在本例中、您的初始理解是正确的。

    此致、

    Zackary Fleenor