您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF531 SPI应用
本帖共有996个阅读者
发表帖子 发表投票 回复主题
BF531 SPI应用
topsunlove(论坛新手)
topsunlove
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:249
积分:19
注册时间:2015/4/22
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF531 SPI应用
问题一:BF531广播模式带两个DA(型号AD5300),DA的时序如下图,请问这种是配置成CPOL=0,CPAH=0还是CPOL=1,CPAH=1?还是两者都可以?
问题二:看到书上一句话,说对于CPAH=1,主机或从机在SCK的第一个有效沿开始传送。对于主机,在送出最后数据之后,同时接收到最后一个比特时认为传送结束。而从机则认为在最后一个SCK采样沿,传送结束。
我这个是DA,不需要接收数据,那MOSI这个端口怎么设置,然后主机没接收到数据,画线的那句话怎么解释呢?
各位兄弟姐妹,帮帮忙啊,谢谢了!

上传的图片
  201542415193576.png [ 23.74 KB 859×186 ] (缩略时请点击查看原图)

 


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2015/4/24 15:19:48
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

这个时序在片选拉低后,会连续传输数据,所以不适用自动片选,必须手动配置SPI_FLG寄存器控制片选。帮助文档描述如下:

When CPHA = 0, the slave select line, SPISS, must be inactive (high) between each serial transfer. This is controlled automatically by the SPI hardware logic. When CPHA = 1, SPISS may either remain active (low) between successive transfers or be inactive (high). This must be controlled by the software via manipulation of SPI_FLG.

所以CPHA为1。

从你的时序图中,看以看出为上升沿时,主机数据发出,DA在下降沿时进行数据采样,所以


上传的图片
  2015426846145.jpg [ 18.63 KB 531×276 ] (缩略时请点击查看原图)

 

从这个图中,可以看出,CPHA为1时,上升沿传输驱动时,CPOL为0.这样保证数据在下降沿可以被DA采到


上传的图片
  20154268461645.jpg [ 49.42 KB 546×590 ] (缩略时请点击查看原图)

 




这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/4/26 8:46:21
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

对于DA,也是需要接收数据的,比如初始化时读取DA芯片的ID,工作状态,配置值,握手信号,忙状态检测。所以主机的MOSI接DA的DIN,MISO接DA的DOUT。

SPI在接收数据时,是需要主机传输时钟的,所以SPI在发送命令完成后,下一次发送命令或数据的同时,会把上一次命令的返回结果存入SPI的接收fifo,当你的数据传输结束后,意味着接收数据也会结束。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/4/26 8:54:36
topsunlove(论坛新手)
topsunlove
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:249
积分:19
注册时间:2015/4/22
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
Andy,您这句“主机的MOSI接DA的DIN,MISO接DA的DOUT”,DA没有DOUT,意思是MISO接模拟输出端?

“在广播模式中,多个从机可被使能为接收,但只有一个从机处于驱动MISO信号的发送模式,如果不需要接收和发送,MISO被忽略”。选用哪个从机的信号被接收,这个怎么设置呢?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2015/4/27 14:59:02
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
顶一下

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/5/3 21:53:01
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

如果DA没有数据输出,那么DSP的MISO管脚悬空就可以了。代码中也不需要读取接收数据。

SPI通常连接多个设备时,是通过不同的片选来决定访问哪一个设备的。BF533中,从PF1~PF7都是SPI的片选管脚,最多可以连接7个SPI从机设备,选择哪个时,将其片选拉低即可。

在SPI初始化时,在SPI的寄存器中,有一个配置片选的,可以帮助文件搜索下相关的寄存器,配置片选的位SPI_FLSx(x为片选信号编号)  ,控制为SPI_FLG.可以帮助文件搜索下。



这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2015/5/10 23:45:23
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159145 Call, 1 Queries, Processed in 0.013672 second(s),