82G516 SPI口访问ADS7843问题

[复制链接]
3903|8
 楼主| mcuatmel 发表于 2013-3-14 14:12 | 显示全部楼层 |阅读模式
82G516 的SPI设成主,读写ADS7843,有外部中断时读回来的数据不正确,不知是否有人这么用过,请指点!
MG_FAE 发表于 2013-3-14 16:03 | 显示全部楼层
虽然没用过ADS7843,但是MPC82G516的SPI本身是内部硬件,除非外部中断直接在SPI收发资料的同时,影响改变到SPI接口的I/O,最重要的SPI Clock以及数据输入输出到内部移位寄存器的改变,理论上,从MPC82G516的SPI收发数据,不会有错误。
再者,是否外部中断去影响到ADS7843控制,需要查看下。
 楼主| mcuatmel 发表于 2013-3-15 12:16 | 显示全部楼层
用IO口方式是可以的,我怀疑SPI的时序,可能不支持ADS7843.
MG_FAE 发表于 2013-3-15 13:45 | 显示全部楼层
细看ADS7843规格书内的时序图~~~
没看出什么差异~~I/O口方式可以~~
只能试着降低SPI_CLOCK速度看看再配合上升沿/下降沿触发看看~~
 楼主| mcuatmel 发表于 2013-3-15 15:31 | 显示全部楼层
这个SCLK的速度肯定不是问题,上升下降沿四种组合我都试了,不知是为什么。
我用NSS引脚以IO口方式驱动ADS7843的CS
MG_FAE 发表于 2013-3-15 15:42 | 显示全部楼层
本帖最后由 MG_FAE 于 2013-3-15 16:03 编辑

哪就问题可能在nSS控制管脚,
MPC82G516设成主控端,nSS管脚基本上无作用,应该会一直保持在高电平
只有设置成从机时,nSS才能被动的当成片选控制,
LZ已经直接I/O口控制nSS管脚的P1.4当ADS7843的片选CS~~~~难不成还要仔细查看BUSY信号~~~
 楼主| mcuatmel 发表于 2013-3-18 08:38 | 显示全部楼层
资料上说,如果SPI设成主,NSS设成输出方式是可以当IO口用的,那么依这规则,就这么设计了,之前也曾发过一贴,请教关于这个引脚的使用和处理,因为没有实际用过,所以先问了,有人回答是可以的,所以出现了现在的问题。
 楼主| mcuatmel 发表于 2013-4-15 17:37 | 显示全部楼层
用IO口方式操作,程序主要部分都实现了,现在回过头来还是想这个问题,MCU已集成SPI,如果不用显得有些浪费,可用了,却又调不出来,现在又发现一个问题:如果使能SPI,那么,ADS7843干脆就不工作了,连中断请求信号都没了,恢复IO操作一切正常,真太怪了。哪位大位用过的能否给解释下?
 楼主| mcuatmel 发表于 2013-4-18 09:12 | 显示全部楼层
是程序的问题。
读时要:SPIDAT=0这样写,我写成SPIDAT=0xff,是不行的,
但不理解的是,即使不好用也不至于AD7843不在工作啊,不知是为什么。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

512

主题

1456

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部