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.

[参考译文] CCS/TMS320F28.0049万M:调用断言时始终获取错误状态(sysctl_getClock(DEVICE_OSCSRC_FREQ)== DEVICE_SYSCLK_FREQ);

Guru**** 2549100 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/615603/ccs-tms320f280049m-always-get-error-status-when-call-assert-sysctl_getclock-device_oscsrc_freq-device_sysclk_freq

部件号:TMS320F28.0049万M
主题中讨论的其他部件:C2000WARE

工具/软件:Code Composer Studio

您好,Champs:

当我运行F28.0049万M示例代码时,我发现当我运行device_init()时,有两个函数用于检查时钟频率。  当我运行ASSERT (sysctl_getClock(DEVICE_OSCSRC_FREQ)== DEVICE_SYSCLK_FREQ)时,它将跳转到错误循环。 我检查其他示例是否都处于相同状态。 我的c2000ware版本是C2000Ware_1_00_01_00。

有人能告诉你如何解决这个问题吗? 现在我只评论每个例子中的这些断言。 是否有其他解决方法? 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我写这封信是为了告诉您,一位C2000小组成员已被指派担任此职位,应该很快就会回答。

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

    您好,Lisa:

    我刚才在运行示例时看到了这个问题,但问题在我能够跟踪原因之前就消失了,我不确定原因。

    是否可以逐步执行Device_init()并检查某些时钟函数的返回值? 是否可以确保sysctl_setclock ()返回"true"? 您能告诉我sysctl_getClock()返回的是什么吗? 它应该返回100MHz,但显然没有发生这种情况。

    重启电路板是否有任何帮助?

    编辑:我认为您没有对任何文件进行任何更改,对吗? 好像您没有尝试将代码更改为从不同的时钟源或其他任何内容运行?

    谢谢!
    Whitney

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

    您好,Whitney,

    感谢您的回复。 我没有更改源文件。 我只导入示例代码。我将尝试加载代码并检查返回值。 将更新

    您提到您以前遇到过这个问题,现在问题已经解决了。 是否更改了controlCARD上的任何硬件设置? 我只是想知道是否有任何硬件设置需要更改。 谢谢!

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

    我没有更改任何硬件设置。 我记得唯一的变化是我重建了driverlib.lib。

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

    您好,Whitney,

    请参阅附加图片。 我进入代码,发现clockOut是100Mhz,DEVICE_SYSCLK_FREQ也是100Mhz。 它不应该产生错误... 请你检查一下吗? 谢谢!

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

    Lisa,

    感谢您的更新。 这不是说10MHz吗? 如果clockOut为0,则表示它正在读取CLKSRCCTL1.OSCCLKSRCSEL并发现时钟已配置为从INTOSC2运行。 但是,要传递给sysctl_setclock ()的device_setclock_CFG值应配置到外部振荡器。

    sysctl_setclock()是否返回false? 如果是,您能否逐步执行该功能,看看是缺失时钟故障还是DCC问题导致'状态'设置为假?

    谢谢!

    Whitney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Whitney,
    你是对的! 是的。 检查后,sysctl_setclock ()返回false。 原因是sysctl_isMCDClockFailureDetected()返回true。 但是,我没有更改任何PLL设置。 请告诉我如何解决这个问题? 谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Lisa:

    如果在调用sysctl_setclock()之前清除MCDSTS位(调用sysctl_resetMCD()),是否成功? 它是否保持清除状态(例如,如果您加载另一个示例或关闭并重新打开主板),或者您最终是否遇到另一个MCD错误?

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

    您好,Whitney,

    我尝试将“1”写入MCDCR.MCLKCLR,但我失败了。 我使用 ClkCfgRegs.MCDCR.bit.MCLKCLR = 1;和HWREG(CLKCFG_BASE + SYSCtl_O_MCDCR)||(sysctl_MCDCR_MCLKCLR);这两种方法都不起作用。 此外,我进入调试模式并尝试在“注册”窗口中写入值,但也失败了。 我写了EALLOW;已经有了beforw代码... 请您尝试清洁MCDSTS吗? 谢谢  

    另外,MCDSTS也将在设备通电后设置。 请参阅附件。 这意味着代码始终检测MCDSTS并跳转至错误循环。

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

    I forced MCLKSTS high using OSCOFF and then cleared it using HWREGH(CLKCFG_BASE + sysctl_O_MCDCR)|= sysctl_MCDCR_MCLKCLR; without any issues.(使用OSCOFF强制MCLKSTS高电平,然后使用HWREGH(CLKCFG_BASE + sysctl

    我会向其他人寻求有关MCD的帮助,然后回复给您。

    Whitney
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用MCLKOFF关闭MCD,设置MCLKCLR,将振荡器源(CLKSRCCTL1.CLOSCKSRCSEL)切换为其它设备,然后再次打开MCD,会发生什么情况?

    谢谢!
    Whitney
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Whitney,
    我尝试切换另一个振荡器资源,它仍然会产生缺少时钟检测。 您能帮助您了解一下为什么主板通电后MCD始终为1吗? 因为另一位FAE也跟我有同样的问题。谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    开机时的默认时钟源为INTOSC2,因此您的设备上的INTOSC2可能存在问题。 您是否恰好有另一个F2.8004万x主板可以在没有此问题的情况下使用?

    即使是这种情况,您也应该能够打开另一个时钟源并切换到它,然后能够清除MCD标志。 这不起作用了吗?

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

    我还从FAE借了另一个板。 第一次没有MCD条件。 一天之后,另一个板也得到了MCD。 我没有更换硬件和软件 真的很奇怪…… 哪种情况会影响INTOSC2? 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    确实很奇怪。 两个主板在关闭并重新打开电源后是否立即出现MCD错误,或者关闭并重新打开电源是否清除了其中一个或两个主板?

    我以为您的主板可能不好,但您的第二个主板出现问题这一事实似乎不太可能。

    Whitney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Whitney,
    两个主板在电源板....后立即出现MCD错误
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否对两个主板使用相同的坞站? 您如何为他们提供动力? USB或5V电源?

    Whitney