您好,欢迎来到61ic! | [登录] [注册] 忘记密码 | 设为首页 帮助
 . 网站首页 . 业界新闻 . 设计中心 . 移动技术 . TI专栏 . ADI专栏 . FPGA专栏 . 代码工厂 . 官方商城 . 
 . 活动专区 . 新品快递 . 解决方案 . 前沿科技 . TI资源 . ADI资源 . FPGA资源 . 下载中心 . 产品展示 . 
加入收藏
付款方式
联系我们
您现在的位置: 61IC电子在线 >> DSP >> Blackfin >> 正文
  [组图]用BF609的SPORT读取AD7606的Bug解决方法           ★★★ 【字体:
用BF609的SPORT读取AD7606的Bug解决方法
作者:逸风    文章来源:逸风    点击数:    更新时间:2014-6-30    
1.硬件框图:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
Bug:通过SPORT读取的数据有怪点,怪点的值为正常值的2倍,且两个怪点的距离为20个点;如图(正常应该是平滑的正弦波):
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客

可以排除AD7606本身输出数据不正确的原因,将bug锁定在SPORT读的问题,或者说是SPORT读数据的时序问题;
设定7606的量程为5V,第一通道的输入数据为5V,那么AD7606的理论输出值应该是0x7FFF;
用示波器抓取实际波形如图:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
从时序上看,实际波形与理论输出值是相符合的,为0x7FFF;但这只能说明这次抓波没有找到怪点;

尝试修改SPORT CLK,FS的配置(只有这两个地方会产生时序问题),发现:
驱动中配置CLK,FS如下:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 这样的配置对应的波形输出如下:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客

就像图片里添加的文字所说,这种配置让读到的所有数据左移了一位,从而造成读取值翻倍;
但这种配置不会出现怪点!
为了避免无解的怪点,我采用了这种配置,因为读取值左移了一位,需要右移一位,不足之处在于:造成了1位误差,相当于16位的ADC,只有15位是有效的。当量程为+-5V时,这个误差是LSB=152uV;当量程为+-10V时,这个误差是LSB=304uV;
 PS:对这种高精度的ADC来说,模拟电源的要求很高,电源纹波>152uV,以上的误差就可以忽略不计了;

两种现象的因果关系是这样的:软件配置-->输出波形不同-->读取数据不对-->实际结果不同
可以用截图表示出来,第一种情况
1.软件配置:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
2.输出波形: 
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客

3.发现跳点: 
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 
4.打印结果:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 
第二种情况:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 

 用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 
OK,既然所以结果都是那两处配置引起,不妨再试另外两种组合。
组合三:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 结果与以上第二种情况一样
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 
组合四:
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客
 
输出值不正确,而且是不确定的;
用BF609的SPORT读取AD7606的Bug解决方法 - MR.Xiao - MR.Xiao的博客

在本项目中,两个地方用的了SPORT来产生SPI的时序,都出现了问题,而且很难解决;
对于ADI的SPORT来说,他不是全能的串口,在BF609的手册Page1627第一句就有说,SPORT不兼容SPI;
以此,谨记!
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    ADSP-BF609 乘除运算需要的周…
    bf609-ezkit移植uclinux(以…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61 湘ICP备13001086号-2