工具/软件:
您好:
我正在使用 F28379D、并尝试使用 XBAR 结构将 XCLKOUT 信号路由到可访问的 GPIO 引脚。
由于 GPIO73配置为 XCLKOUT、但在电路板上无法进行物理上的可探测、因此我尝试了以下布线:
XCLKOUT (通过 GPIO73)→InputXBAR1→OutputXBAR1→GPIO24
以下是我使用的代码(简化版):
#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


