×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-08-31 发布时间:
|

设备: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:tiPatchProgrammerMSP430F5529LP-7.11.7.13.19Patch Programmer SourcePatch Programmer CCS目录下的三个工程CC3000 SPi、CC3000HostDriver、Patcher Programmer。逐一对其进行build。然后将PatcherProgrammer 进行debug。reboot launchPad。


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


导入C:tiCC3000SDKCC3000 SDKMSP430F5529Basic WiFi ApplicationBasic WiFi SourceBasic Wifi Application CCS目录下的四个工程Basic WiFI Application、CC3000 Hoster Driver、CC3000Spi、HyperTerminal Driver。将Board.h下的接口改成如下


#ifndef BOARD_H

#define BOARD_H

 

// Pins from MSP430 connected to the RF Header

#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

 

// Ports

#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 interrupt

SpiReadHeader();

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

关键字:MSP430F5529LP  CC3000  AP的连接 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会