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.

[参考译文] TMS320F28035:TMS320F28035:

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1426868/tms320f28035-tms320f28035

器件型号:TMS320F28035

工具与软件:

您好!

我最近开始探索 F280025 Launchpad 并尝试了解时钟单元。 所有操作都按预期运行、直到我完全擦除闪存。 擦除后、外部晶体不再工作、即使在断电和接通之后、晶体引脚上也没有信号。 如果能协助解决这一问题、我将不胜感激。 提前感谢您!

以下是参考代码:  

#include "F28002x_Device.h"//特定于器件的头文件

void SysControl (void);
void delay (volatile long count);

void main (void)

//步骤1. 初始化系统控制:
//禁用看门狗计时器
EALLOW;
WdRegs.wdcr.all = 0x68;//禁用看门狗
EDIS;

SysControl();

//步骤2. 初始化 GPIO:
EALLOW;// Enable EALLOW protected register access (启用 EALLOW 受保护寄存器访问)
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0U;//将 GPIO31设置为 GPIO
GpioCtrlRegs.GPADIR.bit.GPIO31 = 1U;//将 GPIO31设置为输出
EDIS;// Disable EALLOW protected register access (禁用 EALLOW 受保护寄存器访问)

//步骤3. 无限循环切换 GPIO31
while (1)

GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1U;// Toggle GPIO31

延迟(50000);
}
}

void SysControl (void)

EALLOW;

//步骤1:配置时钟源
ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 00U;//选择外部振荡器
延迟(5000);

//第2步:为100 MHz PLLSYSCLK 配置 PLL
//设置基准分频器(REFDIV)、倍频器(IMULT)和输出分频器(ODIV)
ClkCfgRegs.SYSPLLMULT.bit.REFDIV = 1U;//基准分频器值(REFCLK = XTAL/(REFDIV + 1))
ClkCfgRegs.SYSPLLMULT.bit.IMULT = 40U;//整数乘法器值(IMULT)
ClkCfgRegs.SYSPLLMULT.bit.ODIV = 4U;//输出分频器(ODIV)

//第3步:启用 PLL
ClkCfgRegs.SYSPLLCTL1.bit.PLLEN = 1U;// Enable the PLL

//步骤4:等待 PLL 锁定
/*
while (ClkCfgRegs.SYSPLLSTS.bit.locks!= 1){
//可选:在此处添加超时机制以避免无限循环
}
*/
//步骤5:配置系统时钟分频器
ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV = 0U;//设置系统时钟分频器(0 =无分频)

//步骤6:启用 PLL 作为系统时钟源
// ClkCfgRegs.SYSPLLCTL1.bit.PLLCLKEN = 1U;// Enable PLL clock output

//输出时钟设置以进行调试
ClkCfgRegs.CLKSRCCTL3.bit.XCLKOUTSEL = 0U;// PLLSYSCLK
ClkCfgRegs.XCLKOUTDIVSEL.bit.XCLKOUTDIV = 0U;// No Prescalling (无预调用)

GpioCtrlRegs.GPAMUX2.bit.GPIO16= 0b11;
GpioCtrlRegs.GPAGMUX2.bit.GPIO16= 0b10;


EDIS;
}


void delay (volatile long count){
Volatile long i;
//简单的延迟循环
for (i = 0;i < count;i++);
}

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

    您好、Sarwar、

    您是否曾在连接调试器的情况下尝试通过 CCS 启动程序、或者您是否刚刚进行了下电上电并监控 X1时钟?  请尝试在连接调试器的情况下通过 CCS 启动该程序、看看它是否起作用。

    谢谢!

    Joseph