首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
DSP技术
» 用BF609的SPORT读取AD7606的Bug解决方法
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
用BF609的SPORT读取AD7606的Bug解决方法
发短消息
加为好友
linlinsuo
当前离线
UID
1018542
帖子
23
精华
0
积分
12
阅读权限
10
在线时间
2 小时
注册时间
2013-10-29
最后登录
2013-11-25
新手上路
UID
1018542
1
#
打印
字体大小:
t
T
linlinsuo
发表于 2013-10-29 20:27
|
只看该作者
用BF609的SPORT读取AD7606的Bug解决方法
示波器
,
通道
,
硬件
1.硬件框图:
Bug:通过SPORT读取的数据有怪点,怪点的值为正常值的2倍,且两个怪点的距离为20个点;如图(正常应该是平滑的正弦波) :
可以排除AD7606本身输出数据不正确的原因,将bug锁定在SPORT读的问题,或者说是SPORT读数据的时序问题;
设定7606的量程为5V,第一通道的输入数据为5V,那么AD7606的理论输出值应该是0x7FFF;
用示波器抓取实际波形如图:
从时序上看,实际波形与理论输出值是相符合的,为0x7FFF;但这只能说明这次抓波没有找到怪点;
尝试修改SPORT CLK,FS的配置(只有这两个地方会产生时序问题),发现:
驱动中配置CLK,FS如下:
这样的配置对应的波形输出如下:
就像图片里添加的文字所说,这种配置让读到的所有数据左移了一位,从而造成读取值翻倍;
但这种配置不会出现怪点!
为了避免无解的怪点,我采用了这种配置,因为读取值左移了一位,需要右移一位,不足之处在于:造成了1位误差,相当于16位的ADC,只有15位是有效的。当量程为+-5V时,这个误差是LSB=152uV;当量程为+-10V时,这个误差是LSB=304uV;
PS:对这种高精度的ADC来说,模拟电源的要求很高,电源纹波>152uV,以上的误差就可以忽略不计了;
两种现象的因果关系是这样的:软件配置-->输出波形不同-->读取数据不对-->实际结果不同
可以用截图表示出来,
第一种情况
:
1.软件配置:
2.输出波形:
3.发现跳点:
4.打印结果:
第二种情况:
OK,既然所以结果都是那两处配置引起,不妨再试另外两种组合。
组合三:
结果与以上第二种情况一样
组合四:
输出值不正确,而且是不确定的;
在本项目中,两个地方用的了SPORT来产生SPI的时序,都出现了问题,而且很难解决;
对于ADI的SPORT来说,他不是全能的串口,在BF609的手册Page1627第一句就有说,SPORT不兼容SPI;
以此,谨记!
收藏
分享
评分
回复
引用
订阅
TOP
发短消息
加为好友
linlinsuo
当前离线
UID
1018542
帖子
23
精华
0
积分
12
阅读权限
10
在线时间
2 小时
注册时间
2013-10-29
最后登录
2013-11-25
新手上路
UID
1018542
2
#
linlinsuo
发表于 2013-10-31 11:33
|
只看该作者
自己的帖子自己顶
回复
引用
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议