您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]BF533的SPI通讯问题
本帖共有446个阅读者
发表帖子 发表投票 回复主题
[求助]BF533的SPI通讯问题
ghang(论坛新手)
ghang
头衔:社区公民
帮派:无帮无派
帖数:4
金钱:148
积分:8
注册时间:2015/1/23
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]BF533的SPI通讯问题
我现在在做一个BF533与一个无线发射模块(型号是MLX74190,比利时一个厂家生产的)进行SPI通讯的项目。

现在的情况是BF533上PORT3的BF_CLK、BF_MOSI、BF_MISO都连到了无线发射芯片的SPI针脚上。

PORT3的EXT_SPISEL1连到了无线芯片上一个叫做WUP的针脚,作为唤醒管道,当EXT_SPISEL1上有上升沿电压的时候芯片被唤醒,当EXT_SPISEL1上有下降沿电压的时候进入休眠。

然后PORT4上的BF_PPI13(PF6)作为SPI片选连到了无线芯片的片选针脚。

现在的情况是按照ADSP的示例代码写出来的SPI_TransferByte()函数,传进去任何值返回的都是0xff,然后我尝试片选PF6之外的其他端口,返回的也是0xff,证明SPI通信没有成功。

我现在的问题有两个:
1.EXT_SPISEL1的上升沿电压该如何配置,我原来是通过DEVICE_OE寄存器配置PF2控制EXT_SPISEL1,然后用FIO_FLAG_S给一个上升沿电压来配置,后来发现即使不配置,EXT_SPISEL1上都一直是上升沿电压,这个不知道是不是对的,还是说有另外的配置方法?

2.传输的SPI命令到芯片无法接收正确信息,如何检测SPI通讯是正确的?有没有BF533和外部SPI设备进行SPI通讯的代码,或者说SPI通讯的一些检测手段?

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

1. 若使用EXT_SPI SEL1接口,只需要调用一下cpld.c文件中的void ExtSPI1_Enable(void) 函数,即可打通,片选是使用PF2管脚。

给你一个利用外部EXT_SPI SEL0接口控制的例子,你参考一下。

http://www.openadsp.com/bbs/topic.asp?id=2806&boardid=18&TB=1

2.写个发送0xaa的代码,用示波器测量SPI各个信号线上的波形,然后把MISO和MOSI管脚短接,看在发送数据时,接收数据FIFO能否收到发送的数据。




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