CC3000 SPI接口编程介绍
CC3000 SPI 操作:
CC3000的SPI 是基于五根线CLCK,CSn,IRQ,MISO,MOSI;通信模式如下图:

CLCK:时钟频率0-26M从主机到从机,提供SPI接口时钟
CSn:低电平激活从主机到从机,指示主机想和CC3000设备通信
MOSI:数据线,从主机到从机
IRQ:中断信号,来自从机,当没有数据传输时挂起,当低电平时指示CC3000设备要传输数据到主机
MISO:从几到主机
处理协议:
SPI接口用着去和CC3000设备通信,所有的数据被发送和接收通过16bit的SPI接口,每一个数据包包含了5字节的头,用户数据和衬底字节,总的数据长度是16bit,第一个字节的头是读写操作位,紧接着的是两字节的长度字节,两个忙标识字节。数据有效载荷字节紧跟着头帧,补充字节被添加当有效载荷的字节长度是奇数时

主机写处理
主机上电,从新设置写过程时,主机第一次写处理有些微小的不同,头结构式独立的不管是不是第一个写操作

第一个主机写操作:
主机SPI写的逻辑是:

- 主机检测到IRQ低电平
- 主机使能CSn低
- 延时50us在主机读取数据前
- 主机传输头帧的四个字节
- 延时50us
- 主机传输剩下的数据包
一般的主机写操作

- 主机使能CSn低,等待IRQ变低
- CC3000的IRQ置低,
- 主机开始写传输
- 最后一个字节,CSn置高
- IRQ变高
主机读操作:
主机读初始化被CC3000设备,通过设置IRQ低电平在总线处于挂起状态时。
- CC3000设备申明IRQ低电平
- 主机设置CSn第电平
- 主机传输头包中的三个字节:读操作位,两个busy
- CC3000设备返回主机要的数据
- 读结束操作后,主机使能CSn高电平
- CC3000设置IRQ高电平

CC3000 SPI接口编程介绍的更多相关文章
- SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)
SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...
- flash读写学习笔记与spi接口及简单测试验证(三)
FPGA中的视频图像资源,以及想要永久存储的程序都是要存储在flash中,flash是FPGA一个不可缺少的部分,flash的种类有很多,根据winbond公司的128Mbit Qual SPI接口的 ...
- CC3000 主机驱动API介绍
CC3000作为是一种简单集成,简单实用的无线宽带设备,她集成了完整的802.11协议栈,802.11个人安全请求:IP网络协议栈,CC3000主机驱动对CC3000硬件访问时很轻松的.CC3000逐 ...
- Blackfin DSP(五):BF533的SPI接口
533SPI的特性 最高速度可达SCLK/4: 支持主模式和从模式: 可使用8个GPIO口作为从选择线: 1 slave select input pins 7 slave select output ...
- SAP接口编程 之 JCo3.0系列(01):JCoDestination
SAP接口编程 之 JCo3.0系列(01):JCoDestination 字数2101 阅读103 评论0 喜欢0 JCo3.0是Java语言与ABAP语言双向通讯的中间件.与之前1.0/2.0相比 ...
- C语言与MATLAB接口 编程与实例 李传军编着
罗列一下以前自己学习C语言与MATLAB混编的笔记,顺便复习一遍. <C语言与MATLAB接口 编程与实例 李传军编着>(未看完,目前看到P106) 目录P4-8 ************ ...
- Mybatis接口编程原理分析(三)
前面两篇博客Mybatis接口编程原理分析(一)和Mybatis接口编程原理分析(二)我们介绍了MapperProxyFactory.MapperProxy和MapperMethod的操作及源码分析, ...
- Mybatis接口编程原理分析(二)
在上一篇博客中 Mybatis接口编程原理分析(一)中我们介绍了MapperProxyFactory和MapperProxy,接下来我们要介绍的是MapperMethod MapperMethod:它 ...
- Java面向接口编程,低耦合高内聚的设计哲学
接口体现的是一种规范和实现分离的设计哲学,充分利用接口可以极大的降低程序中各个模块之间的耦合,提高系统的可维护性以及可扩展性. 因此,很多的软件架构设计理念都倡导"面向接口编程"而 ...
随机推荐
- angularJS学习笔记之——搭建学习环境
学习AngularJS已经好几天了,从今天开始学习AngularJS环境搭建. 无论是Mac.Linux或Windows环境中,您均可遵循本教程学习编程. 第一步:安装Git Git是什么呢? Git ...
- 获取sim卡序列号
//获取sim卡序列号TelephoneManager TelephonyManager manager = (TelephonyManager)getSystemService(Context.TE ...
- C++ 不能在类体外指定关键字static
C++ static 函数的问题 近日读 C++ primer 中static 一章 , 有这么一句话, “静态成员函数的声明除了在类体中的函数声明前加上关键字static 以及不能声明为const ...
- intellij中编译报错: The packaging for this project did not assign a file to the build artifact
原因是run configuration -> maven -> preject name -> Parameters -> command line中是install:ins ...
- swift混编oc碰到的问题
在swift中混编苹果官方的Reachability OC文件. 因为swift工程的target是生成framework而非app,framework中调用oc与app中使用桥接文件还不一样,参考: ...
- GPRS模块上电后复位会导致开机函数不正常的问题原因及解决方法
之前使用的开机函数 void Gprs_modem_start_up(){GPIO_SetBits(GPIOB,GPIO_Pin_0); //RESET 脚要置成高电平,防止重启do{ GPIO_Se ...
- Python中类的特殊方法详解
本文和大家分享的主要是python语言中类的特殊方法相关用法,希望对大家有帮助. 构造序列 1._len_(self) 2._getitem_(self,key) 3._setitem_(self,k ...
- jquery 判断元素是否隐藏
$(select).is(":hidden") 返回 true/false
- Echarts的基本用法
首先需要到导入echatrs.js文件 <script src="dist/echarts.js"></script> 路径配置 require.confi ...
- CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera
CSS Hack大全-教你如何区分出IE6-IE10.FireFox.Chrome.Opera 转载自:http://www.jb51.net/article/50116.htm 现在的浏览器IE6- ...