昨天在调整timer,突然发现个问题:
.cfg中Timer Control中Tick Period(us)默认设置1000us,Timer Id = 1,其时钟为外部晶振时钟,即使Timer Id=Any对应0也是OSCIN。
如果外部晶振=24MHz,则照理timer1 PRD12=24000;问题是现在我外部晶振=25MHz时,timer1 PRD12也是24000,这样一个tick实际只有0.96ms!
难道SYSBIOS不去识别OSCIN的频率的么?还是哪里出问题了?
Tony Tang:
输时钟频率要在BIOS里设的,软件(BIOS)不能自动识别输入时钟频。
Jingang Yang:
回复 Tony Tang:
我的意思是,OMAP无法通过锁相环或者啥硬件设计去识别晶振频率或者外部输入时钟频率的么?
那OSCIN的数值要在哪里静态设置呢?
Samantha:
回复 Tony Tang:
Tony~您好!借Jingang的贵地请教您一个问题,主要因为我发了帖子没人回复,是OMAP-L138的SATA读写问题,实在是很困扰啊。
我不用SYSBIOS可编程能够实现SATA的读写,保持其初始化和SATA初始化程序不变,只是启用了SYSBIOS,能够通过测试:…disk spin-up success. 但不能读写SATA,且程序停留在这一循环语句上:
while(sataRegs->IS == 0); // Stay here until an interrupt is received.
我把读写SATA的程序放在主函数中启动BIOS之前还是不行,是BIOS里面要怎样设置吗,Tony请问您遇到过这种问题不,期待您的回复。
Tony Tang:
回复 Jingang Yang:
Jingang Yang
我的意思是,OMAP无法通过锁相环或者啥硬件设计去识别晶振频率或者外部输入时钟频率的么?
那OSCIN的数值要在哪里静态设置呢?
请参考下面链接中的配置方法:
http://processors.wiki.ti.com/index.php/SYS/BIOS_dmtimer_configuration_for_TI81xx
Setting the dmtimer input frequency
The following configuration code snippet is from a SYS/BIOS configuration script (.cfg file). It informs SYS/BIOS that the dmtimer input clock is running at 20,000,000 Hz.
/* set the Timer frequency to 20MHz */ var Timer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer'); Timer.intFreq.hi = 0; Timer.intFreq.lo = 20000000;
Tony Tang:
回复 Samantha:
Samantha
Tony~您好!借Jingang的贵地请教您一个问题,主要因为我发了帖子没人回复,是OMAP-L138的SATA读写问题,实在是很困扰啊。
我不用SYSBIOS可编程能够实现SATA的读写,保持其初始化和SATA初始化程序不变,只是启用了SYSBIOS,能够通过测试:…disk spin-up success. 但不能读写SATA,且程序停留在这一循环语句上:
while(sataRegs->IS == 0); // Stay here until an interrupt is received.
我把读写SATA的程序放在主函数中启动BIOS之前还是不行,是BIOS里面要怎样设置吗,Tony请问您遇到过这种问题不,期待您的回复。
我没有研究过SATA,但是你的问题应该不是SATA,应为你不用SYSBIOS是可以调通的。
#1. 你的SATA驱动软件哪来的?
#2. PSC使能SATA了吗?
Samantha:
回复 Tony Tang:
嗯,好的,那我再研究研究,还是要谢谢您!