TI中文支持网
TI专业的中文技术问题搜集分享网站

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

    我现在调试的板子采用的是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,是不是正常的话都应该有返回啊?下载我不中的该如何调试了!

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

Susan Yang:

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) 的相关内容

user3604554:

回复 Susan Yang:

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

guojun shao:

回复 user3604554:

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

user3604554:

回复 guojun shao:

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

Yonghua Pan:

回复 user3604554:

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

user3604554:

回复 Yonghua Pan:

哦,是上电就拉高,还是主控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后才低的,然后在跑上面一段代码才拉高,这样流程正确吗?

Yonghua Pan:

回复 user3604554:

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

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

user3604554:

回复 Yonghua Pan:

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

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

Yonghua Pan:

回复 user3604554:

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

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

user3604554:

回复 Yonghua Pan:

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

赞(0)
未经允许不得转载:TI中文支持网 » 初调CC3000,怎么确定CC3000收到SPI发来的命令数据?
分享到: 更多 (0)