微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CC1101接口库在STM32上的移植

CC1101接口库在STM32上的移植

时间:11-10 来源:互联网 点击:

的。突发位用来决定 FIFO 访问是单字节还是突发访问。单字节访问方式期望地址的突发位为 0 及1 数据字节。在数据字节之后等待一个新的地址,因此,CSn继续保持低。突发访问方式允许一地址字节,然后是连续的数据字节,直到通过设置 CSn 为高来关断访问。 当对 TX FIFO写时,状态字节对每个 SO脚上的新数据字节是输出量,如图 6 所示。这个状态位能用来侦测对 TX FIFO 写数据时的下溢。注意,状态字节包含在写入字节到 TX FIFO 的过程前空闲的字节数。当最后一个适合 TX FIFO的字节被传送至 SI 脚后, 被 SO脚接收的状态位会表明在 TX FIFO中只有一个字节是空闲的。

传输 FIFO 可能会通过发布一个 SFTX 命令滤波而被淹没。相似地,一个 SFRX命令滤波会淹没接收 FIFO。当进入休眠状态时, 两个 FIFO都被清空。PATABLE 访问

0x3E 地址用来访问 PATABLE。PATABLE用来选择 PA 能量控制设置。在接收此地址之后,SPI 等待至少 8 个字节。通过控制PATABLE,能实现可控的 PA能量上升和下降,减少的带宽的 ASK 调制整型也如此PATABLE 是一个 8 字节表, 定义了 PA控制 设置, 为 8 个 PA 功率值(由FRENDO.PA_POWER 的 3 个位的值所选择)的每一个所使用。这个表从最低位到最高位可读和写,一此一位。一个索引计数器用来控制对这个表的访问。每读出或写入表中的一个字节,计数器就加 1。当 CSn 为高时,计数值置为最小值。当达到最大值时,计数器由零重新开始计数。

PATABLE 访问

对 PATABLE 的访问是单字节或者突发访问,由突发位决定。当使用突发访问时,索引计数器的值增加;达到7时重新从0开始。读/写位控制访问是写访问(R/W=0)或者读访问(R/W=1)。 如果一字节被写入 PATABLE,且这个值将要被读出,那么,为了设置索引计数器的值重为 0,CSn必须在读访问之前置为高。 注意,当 PATABLE 进入休眠状态时,所存储的内容会丢失,特别是第一个字节。

图2 配置寄存器写和读操作

STM32的串行外设接口(SPI)

STM32的串行外设接口(SPI)有如下特性:

● 3线全双工同步传输

● 带或不带第三根双向数据线的双线单工同步传输

● 8或16位传输帧格式选择

● 主或从操作

● 支持多主模式

● 8个主模式波特率预分频系数(最大为fPCLK/2)

● 从模式频率 (最大为fPCLK/2)

● 主模式和从模式的快速通信

● 主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改变

可编程的时钟极性和相位

● 可编程的数据顺序,MSB在前或LSB在前

● 可触发中断的专用发送和接收标志

● SPI总线忙状态标志

● 支持可靠通信的硬件CRC

─ 在发送模式下,CRC值可以被作为最后一个字节发送

─ 在全双工模式中对接收到的最后一个字节自动进行CRC校验

● 可触发中断的主模式故障、过载以及CRC错误标志

● 支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求

通常SPI通过4个引脚与外部器件相连: MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。 MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。 SCK:串口时钟,作为主设备的输出,从设备的输入 NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片

选引脚”,本实验中没有使用。SPI的方框图如图3所示。

图3 SPI内部框图

图4 数据帧格式图

1.学习STM32串行外设接口(SPI)相关知识,熟悉所调用的库函数,学习CC1101相关知识,熟悉CC1101的配置方法,研究TI关于CC1101与MSP430的接口程序库,熟悉库的实现方法。

2.连接电路。

3.编写程序,借助逻辑分析仪工具,调试程序。

所有与CC1101相关的代码均放于CCxxxx文件夹,源文件用途分类说明如表2所示。对于应用分层框图如图5所示。因为程序较大,仅把与硬件相关、改动较大的TI_CC_spi.c放在附录中。

表2 源文件用途分类说明

类型

文件名

功能

硬件定义文件

TI_CC_CC1100-CC2500.h

对CC1101内部寄存器的定义

TI_CC_STM32.h

对使用的STM32相关SPI引脚进行定义

TI_CC_hardware_board.h

对使用的STM32通用数据引脚进行定义

SPI接口文件

TI_CC_spi.c

通过SPI访问CC1101寄存器的功能实现文件。

TI_CC_spi.h

对TI_CC_spi.c的函数进行声明

与应用层接口文件

CC1100-CC2500.c

对CC1101的使用的功能文件,包括初始化、发送数据包、接收数据包

CC1100-CC2500.h

对CC1100-CC2500.c的函数进行声明

include.h

高层包含文件,包含所有.h文件


应用层


CC1100-CC2500.c


TI_CC_spi.c


TI_CC_hardware_board.h


TI_CC_STM32.h


TI_CC_CC1100-CC2500.h


TI_CC_STM32.h


SPI应用


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top