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**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1499579/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