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

请教专家,OMAPL138mcbsp设置为从模式,FPGA提供的帧同步信号有时候在前几个时钟周期没有被检测到,到后面某一个时钟周期才能被检测到,这样通过MCBSP发出的数据就会偏,请指导。

请教专家,OMAPL138mcbsp设置为从模式,FPGA提供的帧同步信号有时候在前几个时钟周期没有被检测到,到后面某一个时钟周期才能被检测到,这样通过MCBSP发出的数据就会偏,请指导。

Tony Tang:

McBSP接口的工作方式都是以帧同步做为参考,所以不应该存在没有检测到,后面又检测到的问题。

可能是我理解你的问题不对,如果有波形图更能说明问题。

另外,McBSP可以配置成延时0~2个bit接收/发送数据,不知你说的是不是这个问题?或者说你注意到这个配置没有?

zhan shao:

回复 Tony Tang:

波形如附件图中所示,其中蓝色为FPGA提供的帧同步信号,绿色为发送的数据(时钟信号没有显示出来但时钟经过测试是没问题的),数据宽度为24bit,帧同步低有效,宽度也是24bit,MCBSP配置为延时0bit,正常情况来说,在同步信号为低的时候开始发送数据,当为高的时候发送就结束了,但是有时候,当同步信号拉高之后,还会有数据出来如图中所示的情况。这时候由于DA芯片是在同步信号低的时候接收数据,所以这种情况下,DA接收到的数据就会出错。请指导

Tony Tang:

回复 zhan shao:

Zhanshao,

从下面图来看,请问这个时候发的数据是什么?是不是本身这几个bit就是0?

帧同步是FPGA给的,位时钟是谁提供的?

zhan shao:

回复 Tony Tang:

1、图中这时候发送的数据应该是0x2ad7,正常前面应该有6个bit的0,但是图中前面有12个bit0,也就相当于数据开始移位的时间比帧同步信号有效时间延迟了6个bit,(而且不是每次数据偏的时候都是延时6bit,还有可能是其他bit)。

2、位时钟和帧同步时钟都是由FPGA提供。且位时钟和同步时钟是同源的。 请指教。

Tony Tang:

回复 zhan shao:

24位数据的0x2AD7前面应该是10个0,所以从图上来看,是延时了2个bit,你检查一下寄存器XCR[RDATDLY]的值是多少?

zhan shao:

回复 Tony Tang:

非常抱歉,图中的数据我弄错了,发送的并不是0x2ad7,而应该是0X02AD70前面有6个0,后面有4个0,XCR[RDATDLY]设置为不延时。请指教

Tony Tang:

回复 zhan shao:

说实话,我从来没见过这种情况。

#1. 有产生underrun的错误吗?

#2. 能否发送固定的数,来确认波形与数据的区别?

#3. 你是如何抓到这个错误的波形的?我的理解这是偶尔的情况,应该很难捕捉到。

#4. 不会是每发一个数,就配置一下McBSP吧?不然产生错误之后,就不会继续发送了的。

zhan shao:

回复 Tony Tang:

非常感谢TONY tang的解答:

1、没有underrun错误,数据还在正常发送,只是偶尔会有一个数据发偏几个bit。

2、曾经尝试过发固定的数据,也是过一段时间之后就会有一个数据会出现偏几个bit

3、这个波形的确很难捕捉到,这个问题也是在偶然中发现的,之后经过专门测试发现这个出现的概率也不小。基本上用示波器捕捉10分钟左右就能捕捉到一次数据偏

4、MCBSP只有在初始化的时候进行过配置,之后就没有再进行配置了。

5、请TONY TANG 帮忙再想想有没有其他办法。非常感谢

赞(0)
未经允许不得转载:TI中文支持网 » 请教专家,OMAPL138mcbsp设置为从模式,FPGA提供的帧同步信号有时候在前几个时钟周期没有被检测到,到后面某一个时钟周期才能被检测到,这样通过MCBSP发出的数据就会偏,请指导。
分享到: 更多 (0)