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.

AM5728 DSP 驱动mcasp作为从机问题

Other Parts Discussed in Thread: SYSBIOS

DSP mcasp模块与LTE装置连接,TDM格式,DSP端做从,LTE做主,LTE装置在有电话接入时产生帧同步和时钟,电话挂断时帧同步及时钟消失。

DSP端作为从机,使用TI官方提供的驱动框架。在无时钟时初始化失败。

DSP端作为从机,电话接入后初始化DSP的mcasp口(此时有外部时钟),初始化成功,但是当电话挂断后(LTE产生的时钟消失),DSP端的mcasp模块报错。

如何解决mcasp作为从机时,外部时钟时有时无问题?

  • 如果只是配置寄存器来进行接口初始化的话,不需要master提供时钟。如果slave是要传输数据的话,则需要master提供时钟。请问报错信息是什么?用的是linxu还是RTOS?
  • 用的是RTOS,借鉴的是pdk中的drv mcasp代码,调试发现如果没用时钟mcasp BitSetGblXCtl()函数不过引发断言即MCASP_GBLCTL寄存器配置不过即mcasp_drv.c的4025行“assert(0U != timeout);”。。如果在dsp的mcasp作为从机时外部有时钟初始化成功,但是外部时钟突然消失则程序报错,报错是 mcasp对应的Crossbar出错,Event77对应的试mcasp rx。错误信息如下:
    [t=0x029d257e] ti.sysbios.family.c64p.EventCombiner: ERROR: line 229: E_unpluggedEvent: Event# 77 is unplugged

  • 但是外部时钟消失后程序报错,报错是mcasp对应的crassbar出错。。。上面打错了
  • 我用的是RTOS,PDK中的drv mcasp代码,初始化时如果无外部时钟MCASP_GBLCTL寄存器初始化不过报错,错误信息在mcasp_drv.c的4025行。如果dsp mcasp作为从机在初始化时有外部时钟正常工作,但外部时钟突然消失后程序会报错,错误信息为[t=0x029d257e] ti.sysbios.family.c64p.EventCombiner: ERROR: line 229: E_unpluggedEvent: Event# 77 is unplugged ,其中Event77为mcasp rx的Crossbar
  • 看了一下TRM section 24.6.5.1.2.1里的备注:
    Before performing McASP global initialization, If external clock ACLKR is used, it must be running already for proper synchronization of the MCASP_GBLCTL

    所以是一定要有时钟才能完成初始化的。
  • 麻烦再问一下,我这种情况外部时钟时有时无,该如何配置。(您的意思是必须有时钟才能配置通过是吧)

  • 是的,如果使用ACLKR外部时钟的话,需要有时钟才能初始化。