打印

stm32f103与AD7765芯片的SPI通信问题

[复制链接]
3346|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
       AD7765芯片本身接了40M的有源晶振,它的内部时钟为20M,即SCO=20M,当初始化之后便自己产生控制信号FSO,当期拉低时,AD芯片的SDO输出口才有数据输出,并连续输出32位,其中前24位为数据位,接着是状态位。如下时序图所示。(左为FSO与SDO输出波形,右图为时序图)
      这样看来,我想读取SDO数据,则SPI通信时,AD芯片必须做主设备,单片机做从设备了吧。问题是SPI程序设置里,从设备也要设置波特率分频的,但是没有正好能分频到20M的怎么办?还有要连续读至少24位才可以,SPI移位寄存器才16位,且FSO作为数据输出有效控制信号一直自动拉低32个时钟周期,那么我该怎么进行SPI通信呢,程序该如何改?
      求大神们帮忙呀!!

相关帖子

沙发
zhaojingzb| | 2014-8-5 17:26 | 只看该作者
是不是可以不用SPI接口,直接使用GPIO口进行模拟
最好的方式是STM32作为主设备,AD器件作为从设备。
接收的话使用时钟沿采集数据。

使用特权

评论回复
板凳
zijia0328|  楼主 | 2014-8-6 08:18 | 只看该作者
zhaojingzb 发表于 2014-8-5 17:26
是不是可以不用SPI接口,直接使用GPIO口进行模拟
最好的方式是STM32作为主设备,AD器件作为从设备。
接收的 ...

问题是时钟信号是AD自己发出来的,而且它每78.5Khz拉低32个时钟周期的宽度。这个单片机没法控制。

使用特权

评论回复
地板
zhaoyu2005| | 2014-8-6 08:37 | 只看该作者
SPI从设备是不需要设置时钟的,因为SPI是同步串行通信,不需要设置相同的速率,只要不超过极限,spi从设备自动适应主设备的速率。

使用特权

评论回复
5
zijia0328|  楼主 | 2014-8-6 09:39 | 只看该作者
zhaoyu2005 发表于 2014-8-6 08:37
SPI从设备是不需要设置时钟的,因为SPI是同步串行通信,不需要设置相同的速率,只要不超过极限,spi从设备 ...

那AD在32个时钟周期发出32位数据,我的单片机怎么一块接收呢,移位寄存器最大是16位的

使用特权

评论回复
6
zhaoyu2005| | 2014-8-6 11:02 | 只看该作者
接完一个数据就读走,只要在下个数据来临之前读走就行了,一般都有足够的时间读取

使用特权

评论回复
7
zijia0328|  楼主 | 2014-8-6 13:53 | 只看该作者
zhaoyu2005 发表于 2014-8-6 11:02
接完一个数据就读走,只要在下个数据来临之前读走就行了,一般都有足够的时间读取 ...

stm322的SPI最大分频才18M,我的AD时钟信号是20M的,能行吗

使用特权

评论回复
8
zhaoyu2005| | 2014-8-6 19:45 | 只看该作者
如果确实是这样,那就不行,已经超过stm32的极限了。你再核对下看是不是错了。

使用特权

评论回复
9
zijia0328|  楼主 | 2014-8-7 08:04 | 只看该作者
zhaoyu2005 发表于 2014-8-6 19:45
如果确实是这样,那就不行,已经超过stm32的极限了。你再核对下看是不是错了。 ...

没有错,看来得换个小点的晶振试试了,那SPI程序只稍加改改固件库函数的参数就可以了吧,即从模式的设置?

使用特权

评论回复
10
油漆洗铁路| | 2015-12-30 20:46 | 只看该作者
楼主你好,我最近耶再用你说的那个东西,不知道你是怎么解决的。我现在遇到了同样的问题。。。十分头疼

使用特权

评论回复
11
ptx0315| | 2017-2-14 17:32 | 只看该作者
楼主,您好,我现在FSO SCO波形正常,但是SDO没有输出方波,而是杂波,怎么回事?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

40

帖子

2

粉丝