MSP430F5529LP+CC3000学习心得(一)——与AP的连接

来源:互联网 发布:淘宝pvc地板革有甲醛吗 编辑:程序博客网 时间:2024/05/28 15:18

设备:MSP430F5529LP+CC3000 BoosterPack EVM

SDK:CC3000 SDK_V1.11 、android下smart Config APP

Patch:PatchProgrammerMSP430F5529LP-7.11.7.13.19

开发环境:CCS 5.4.0

第一步:硬件连接。

第二步:对F5529LP进行Patch programmer。

导入C:\ti\PatchProgrammerMSP430F5529LP-7.11.7.13.19\Patch Programmer Source\Patch Programmer CCS目录下的三个工程CC3000 SPi、CC3000HostDriver、Patcher Programmer。逐一对其进行build。然后将PatcherProgrammer 进行debug。reboot launchPad。

第三步:对SDK进行移植。(MSP430F5529和MSP430F5529LP开发板与CC3000对应的管脚有区别)

导入C:\ti\CC3000SDK\CC3000 SDK\MSP430F5529\Basic WiFi Application\Basic WiFi Source\Basic Wifi Application CCS目录下的四个工程Basic WiFI Application、CC3000 Hoster Driver、CC3000Spi、HyperTerminal Driver。将Board.h下的接口改成如下

#ifndef BOARD_H#defineBOARD_H<span style="color:#009900;">// Pins from MSP430 connected to the RF Header</span>#define SPI_IRQ_PIN       BIT0#define WLAN_EN_PIN        BIT5#define SPI_SIMO        BIT0#define SPI_SOMI        BIT1#define SPI_CLK         BIT2#define RF_CS           BIT2<span style="color:#009900;">// Ports</span>#define SPI_SEL         P3SEL#define SPI_DIR         P3DIR#define SPI_OUT         P3OUT#define SPI_REN         P3REN#define RF_CS_SEL       P2SEL#define RF_CS_OUT       P2OUT#define RF_CS_DIR       P2DIR#define SPI_IRQ_DIR       P2DIR#define SPI_IRQ_IN        P2IN#define SPI_IRQ_IES       P2IES#define SPI_IRQ_IE        P2IE#define SPI_IFG_PORT    P2IFG#define WLAN_EN_DIR       P6DIR#define WLAN_EN_OUT       P6OUT
SPI.c文件下的修改如下:

//*****************************************************************************// //!  IntSpiGPIOHandler//! //!  @param  none//! //!  @return none//! //!  @brief  GPIO A interrupt handler. When the external SSI WLAN device is//!          ready to interact with Host CPU it generates an interrupt signal.//!          After that Host CPU has registered this interrupt request//!          it set the corresponding /CS in active state.// //*****************************************************************************#pragma vector=PORT2_VECTOR     //需要修改为P2.0__interrupt void IntSpiGPIOHandler(void){switch(__even_in_range(P2IV, P2IV_P2IFG0)){case P2IV_P2IFG0:if (sSpiInformation.ulSpiState == eSPI_STATE_POWERUP){//This means IRQ line was low call a callback of HCI Layer to inform //on event  sSpiInformation.ulSpiState = eSPI_STATE_INITIALIZED;}else if (sSpiInformation.ulSpiState == eSPI_STATE_IDLE){sSpiInformation.ulSpiState = eSPI_STATE_READ_IRQ;/* IRQ line goes down - we are start reception */ASSERT_CS();// Wait for TX/RX Compete which will come as DMA interruptSpiReadHeader();sSpiInformation.ulSpiState = eSPI_STATE_READ_EOT;SSIContReadOperation();}else if (sSpiInformation.ulSpiState == eSPI_STATE_WRITE_IRQ){SpiWriteDataSynchronous(sSpiInformation.pTxPacket, sSpiInformation.usTxPacketLength);sSpiInformation.ulSpiState = eSPI_STATE_IDLE;DEASSERT_CS();}break;default:break;}}

Spi.c如若没有修改,程序将一直停在:

if (sSpiInformation.ulSpiState == eSPI_STATE_POWERUP){while (sSpiInformation.ulSpiState != eSPI_STATE_INITIALIZED);}

第四步:build 第三步中的四个工程之后,对Basic WIfI Application进行 debug。然后reboot LaunchPad。

第五步:对CC3000进行 smart config。打开串口调试助手。设置好参数9600,n,8,1。reboot LaunchPad, 串口显示Example App:driver version 6.13.7.13。

串口发送01,可看到LED1一直在闪烁。设置好smart config,点击Start ,如图:

smart config完成之后,串口收到smart config DONE, IP255.255.255.255。此处,IP明显错误。多次重启配置仍出现此错误。

本人猜测可能原因:1、无限路由器设置有问题时,导致CC3000自动获取IP有问题。因为使用手机连接上网时,也有时会出现获取IP失败的情况。2、CC3000SDK中的协议程序编写有问题。

解决方案:给CC3000配置静态IP。串口发送08+IP+网关,十六进行形式。例如IP:172.20.69.215,网关:172.20.69.1。则发送08ac1445d7ac144501。

串口回复DONE之后,reboot LaunchPad。将会出现Example App:driver version 6.13.7.13      IP:172.20.69.215

如图:

第六步:execute ping command. 如图:

It's OK

0 0
原创粉丝点击