您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF609使用SPI1接口与WIFI模块通信问题
本帖共有199个阅读者
发表帖子 发表投票 回复主题
BF609使用SPI1接口与WIFI模块通信问题
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF609使用SPI1接口与WIFI模块通信问题

我现在正在使用BF609芯片调试通过SPI1接口来控制wifi模块。wifi模块是SPI接口的,设为从设备。BF609端SPI1的配置与ADI提供的通过SPI0接口读取SPI FLASH的例子相同。因SPI1的管脚没有复用,所以没有进行相应的软件开关配置。ConfigSoftSwitches()函数采用默认值。

     我现在使用示波器测试各个管脚(CS MOSI, MISO, CLK)的信号都是正常的,CS使用的是SEL1,向wifi模块发送初始化命令,示波器能够捕捉到SPI1发出的信号,也能抓取到wifi的反馈信号,但是我在CCES里面,收不到wifi返回的数据,请问是否还有其他我没注意到的地方?请帮忙看看,谢谢

   跟踪的时候发现程序是卡在函数adi_spi_ReadWrite()里面的adi_osal_SemPend()这个位置。

附件中spi_io.c是SPI1口操作的相关函数,spi1_register.jpg是程序卡住时的spi1的寄存器值。


https://ezchina.analog.com/servlet/JiveServlet/download/8434-1-2799/spi_io.c.zip


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/4/9 17:21:46
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
答:我有几个问题或建议

1. 你用的是ADI的开发板吗?如果是,ConfigSoftSwitches()才会被用到。

2. 管脚不复用,不代表不需要配置管脚。你配置了PORTD_FER和PORTD_MUX吗?

3. 从寄存器看,SPI1没有使能,意味着它还没开始工作。你确定SPI1使能了吗?


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/4/9 17:22:08
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
问:谢谢专家的解答,目前问题已经解决了,在使用DMA收发数据时,需要设置发送和接收的长度相等。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/4/9 17:22:25
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154225 Call, 1 Queries, Processed in 0.015625 second(s),