微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > 初调CC3000,怎么确定CC3000收到SPI发来的命令数据?

初调CC3000,怎么确定CC3000收到SPI发来的命令数据?

时间:10-02 整理:3721RD 点击:

    我现在调试的板子采用的是DSP+CC3000的方案。现在DSP端的SPI做主,我把时钟配置成6.25MHz,DSP端能通过SPI发送数据出去,通过示波器监测,时钟,片选,数据都有输出,但与CC3000相连的IRQ线一直为高。

   我按照官网SPI接口介绍发的 HCI_CMND_SIMPLE_LINK_START命令给CC3000,具体为:0x01 0x00 0x05 0x00 0x00 0x01 0x00 0x40 0x01 0x00 。发送后现在不能确定CC3000收着没,是不是CC30000收着该命令后会返回一个命令过来啊?

   现在我调试的板子上的CC3000是没有烧写任何代码的,C3000出厂里面有固件可以通信吗?

  我DSP做主发命令数据时IRQ线一直为高是不是标示CC3000没有接收到数据啊,这CC3000又不能通过仿真器什么的进去看,该如何确定我发的命令它接收到了,是通过他是否有返回来判断吗?

   在硬件正确的状态下,发送 HCI_CMND_SIMPLE_LINK_START给C3000,是不是正常的话都应该有返回啊?下载我不中的该如何调试了!

  希望各位大神和版主能帮我解答下啊!

CC3000 是采用 HCI_EVNT_SIMPLE_LINK_START来返回的。建议您先读一下

 http://processors.wiki.ti.com/index.php/CC3000_HCI_messages#HCI_EVNT_SIMPLE_LINK_START 及

http://processors.wiki.ti.com/index.php/CC3000_Serial_Port_Interface_(SPI) 的相关内容

感谢你的回复,我看了你说的文档,那就是说CC3000应该返回HCI_EVNT_SIMPLE_LINK_START命令,但我现在调试实际是CC3000没有任何返回数据,IRQ一直为高,按照文档上的时序图,应该拉低才对,请问这是什么原因了?

你用的官方的板子,还是自己做的板子,若果是自己的板子,需要注意的是上电的顺序,就是上电EN使能之后,查看中断脚出来的波形和手册上是否一致。

谢谢你的回复,我用的是自己的板子,那请问下这上电顺序有什么讲究啊?是CC3000要先于DSP上电吗?

也不是,就是你需要WIFI起来的时候,先去把ENABLE那个PIN拉高,等中断。然后再开始后续的处理。

哦,是上电就拉高,还是主控CPU在程序里拉高,等中断啊,我看了SDK“WLAN.C”中的代码是在程序里拉高,然后等中断拉高在拉低,下面为这段代码:

// Check the IRQ line
ulSpiIRQState = tSLInformation.ReadWlanInterruptPin();

// Chip enable: toggle WLAN EN line
tSLInformation.WriteWlanPin( WLAN_ENABLE );

if (ulSpiIRQState)
{
// wait till the IRQ line goes low
while(tSLInformation.ReadWlanInterruptPin() != 0)
{
}
}
else
{
// wait till the IRQ line goes high and than low
while(tSLInformation.ReadWlanInterruptPin() == 0)
{
}

while(tSLInformation.ReadWlanInterruptPin() != 0)
{
}
}

我后来也照着这样做了,在DSP里跑这段代码,把使能线拉高了,用示波器监测确实拉高了,但没等待有中断过来,请问这有可能是什么原因了?我的中断线上电后就一直为低,我板子上电的时候EnablePIN是高的,然后在主控DSP里初始化PIN后才低的,然后在跑上面一段代码才拉高,这样流程正确吗?

你参照一下http://processors.wiki.ti.com/index.php/CC3000_Serial_Port_Interface_(SPI)里面的section " CC3000 Init Operation"

开始的时候IRQ是高的,你的GPIO配置是对的吗?你从你的ENABLE 拉高开始看好了,这个时候IRQ应该是高的,然后CC3000会把它拉低,然后MCU把片选拉低,然后有点延时,就开始first write了。

谢谢你的回复,我程序都是参照你说的网址里的流程,我把IRQ接了上拉电阻,上电就为高,把ENABLE接了下拉电阻,上电为半低状态,然后进主控DSP仿真下进行把ENABLE拉高,IRQ通过示波器观察依然没有变化?我接上下拉电阻对吗?

我把ENABLE的PIN和IRQ的PIN都配置为GPIO的,ENABLE方向是输出,IRQ的是输入,这样没错吧?另外片选CS配置为SPI的功能引脚的,这样对吗?

你可以用CC3000接一个430的板子跑一下TI的例程吗?

这样可以排除是CC3000端还是DSP端的问题。

现在公司没开发板,没法接啊,哎,现在就不知道是硬件上的问题,还是软件配置SPI上的问题,我DSP端SPI做主,是能发出数据的,但CC3000没反应。

楼主,您好。

         我也遇到了,折腾几天,今天才弄好。主要是虚焊。排除焊接问题,那原因可能是没有在工作模式下。把WL_EN2 / WL_EN1短接时序就对了。为排除虚焊直接飞线连接到CC3000MOD(我是这么干的)。

      楼主,测试WIFI数据传输都需要发哪些指令呢?能否分享一下。

 

您好,之前那个帖子不能回复了,我在这里回你,我的QQ是609145842,加我一下吧!谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top