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.

OMAP的SYSBIOS是如何识别外部晶振频率的?

Other Parts Discussed in Thread: SYSBIOS, OMAP-L138

昨天在调整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的频率的么?还是哪里出问题了?

  • 输时钟频率要在BIOS里设的,软件(BIOS)不能自动识别输入时钟频。

  • 我的意思是,OMAP无法通过锁相环或者啥硬件设计去识别晶振频率或者外部输入时钟频率的么?

    那OSCIN的数值要在哪里静态设置呢?

  • 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请问您遇到过这种问题不,期待您的回复。

  • 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;

  • 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了吗?

  • 嗯,好的,那我再研究研究,还是要谢谢您!

  • Tony,好

    按你的建议我把这段代码添加到我的.cfg文件中了,Rebuild All出现两个错误,同样的内容:Timers unsupported on device!
    对照看了一下Timer.xs,的确里面没有OMAPL38或者C6748的设备支持语句。

    不过,这个例子倒是启发了我,最终搞定(我想应该是搞定了):把dmtimer改成timer64