TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28377D: 28377d时钟问题

Part Number:TMS320F28377DOther Parts Discussed in Thread:C2000WARE

我用一个系统用的是28377D芯片,使用外部有源晶振20Mhz但使用driverlib.lib例程点亮led等程序一直死在时钟设置

static void
SysCtl_pollCpuTimer(void)
{
uint16_t loopCount = 0U;

//
// Delay for 1 ms while the XTAL powers up
//
// 2000 loops, 5 cycles per loop + 9 cycles overhead = 10009 cycles
//
SysCtl_delay(2000);

//
// Clear and overflow cpu timer 2 4x to guarantee operation
//
do
{
//
// Wait for cpu timer 2 to overflow
//
while(CPUTimer_getTimerOverflowStatus(CPUTIMER2_BASE)==false);
{
//
// If your application is stuck in this loop, please check if the
// input clock source is valid.
//
}

//
// Clear cpu timer 2 overflow flag
//
CPUTimer_clearOverflowFlag(CPUTIMER2_BASE);

//
// Increment the counter
//
loopCount++;

}while(loopCount < 4U);
}

函数内。

时钟配置如下

#define DEVICE_OSCSRC_FREQ 20000000U

//
// Define to pass to SysCtl_setClock(). Will configure the clock as follows:
// PLLSYSCLK = 20MHz (XTAL_OSC) * 20 (IMULT) * 1 (FMULT) / 2 (PLLCLK_BY_2)
//
#define DEVICE_SETCLOCK_CFG (SYSCTL_OSCSRC_XTAL | SYSCTL_IMULT(20) | \
SYSCTL_FMULT_NONE | SYSCTL_SYSDIV(2) | \
SYSCTL_PLL_ENABLE)

//
// 200MHz SYSCLK frequency based on the above DEVICE_SETCLOCK_CFG. Update the
// code below if a different clock configuration is used!
//
#define DEVICE_SYSCLK_FREQ ((DEVICE_OSCSRC_FREQ * 20 * 1) / 2)

请问ti工程师还有没有别的情况会死在这个函数的循环内

Green Deng:

你好,你是说测试TI的LED例程的时候出现一直死在时钟设置的情况?

有没有测试过芯片的供电电压值、晶振稳定性甚至电源的上电顺序?

此外,有没有对程序的时钟配置部分代码做过修改?

,

qiangguang li:

我测试了我的晶振,是正常的,我用相同的配置同一个硬件用TI中C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2837xd\examples\cpu1的例程是可以正常运行的但是用devicelib库内的例程就死到这个函数了,以前的库设置时钟函数内好像没有相关设置定时器的代码

,

qiangguang li:

我之后有实验了一下把SysCtl_selectXTAL()函数内用到SysCtl_pollCpuTimer()函数的地方屏蔽掉程序即可正常运行。这样做有没有什么危害

,

Green Deng:

很抱歉,完全没有找到这个函数的信息,我也没办法判断这个函数屏蔽是否有什么危害。

,

qiangguang li:

这个函数在driverlib.lib内的sysctl.c内

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377D: 28377d时钟问题
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1