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

2020-02-13来源: eefocus关键字:MSP430F5529LP  CC3000  AP的连接

设备: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的连接 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic488061.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:MSP-EXP430F5529LP开发板004-PWM库函数
下一篇:MSP430F1612 第一个程序,点亮一个LED灯

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP430F5529LP+CC3000学习过程(二)——与PC互传数据
准备:确保CC3000与AP已连接。execute the ping command .(过程见(一))。打开串口调试助手和网络调试助手。设置好参数。 一、Send UDP Data:1、发送命令 03 ,串口返回DONE。2、发送命令 04051234502115cac1445d9。(指令解析如下)二、Recieve UDP Data:1、发送命令03,串口返回DONE。2、发送命令06088d,格式06XXYY。XXYY是网络端口号的十六进制形式,本次是2189,所以是06088d。3、发送命令05。串口显示接受到的数据。没有接受到数据,则返回no data recieved。如图所示。
发表于 2020-02-20
MSP430F5529LP+CC3000学习过程(二)——与PC互传数据
MSP430F5529LP(一)IIC与OLED的HELLOWRLD
_IIC_H#include "msp430f5529.h"//IIC通信接口引脚输出宏定义#define   SCL_HIGH    P6OUT|=BIT3  //定义引脚6.3为高电平时的输出#define   SCL_LOW     P6OUT&=~BIT3//定义引脚6.3为低电平时的输出#define   SDA_HIGH    P6OUT|=BIT4//定义引脚6.4为高电平时的输出#define   SDA_LOW   
发表于 2020-02-20
MSP430F5529LP(一)IIC与OLED的HELLOWRLD
MSP-EXP430F5529LP开发板004-PWM库函数
测试了TIMER_A的PWM几种模式pwmMultipleUp2.06kHz,75%占空比#include "wdt_a.h"#include "gpio.h"#include "timer_a.h"#define TIMER_PERIOD 511#define DUTY_CYCLE1  384#define DUTY_CYCLE2  128int main( void ){  volatile unsigned int i;  WDT_A_hold(WDT_A_BASE);    //P2.0 and
发表于 2020-02-13
MSP-EXP430F5529LP开发板003-定时器库函数
430的定时器的有点类似于51单片机,利用定时器实现P1.0口LED灯1s闪烁代码如下#include "wdt_a.h"#include "gpio.h"#include "timer_a.h"#define COMPARE_VALUE 32768int main( void ){  volatile unsigned int i;  WDT_A_hold(WDT_A_BASE);    GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0); 
发表于 2020-02-12
MSP-EXP430F5529LP开发板001-GPIO
代码很简单,改编自TI官网例程,如下所示(编译环境为IAR):#include "io430.h"int main( void ){  volatile unsigned int i;  // Stop watchdog timer to prevent time out reset  WDTCTL = WDTPW + WDTHOLD;  P1DIR |= BIT0;                           
发表于 2020-02-01
MSP-EXP430F5529LP开发板001-GPIO
STM8S003 + CC115L/CC113L 项目简单总结
主要功能是采用CC115L作为TX,, 特点是采用自发电,由于是自发电,电力维持时间只有十多毫秒,需要在十多毫秒内完成发码。采用CC113L作为RX, 需要实现配对以及清除配对功能。项目时间大约在2016-11至2017-3, 由于个人原因,时间拖得比较久,总结经验及教训如下:1、由于人为项目过于简单,不够认真写代码,在没有关闭中断就去配置中断,导致中断不能正常工作,所以放弃采用中断,这也导致无法检测到发送或接收完成信号,耽误了程序完成时间。2、CC113L 和 CC115L 的中断信号都非常短,采用查询IO口的方式并不可行, 应该采用中断检测或者查询寄存器的方式。
发表于 2020-02-21
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved