CC1100E_勘误表
### CC1100E勘误表解析 #### 一、RXFIFO问题解析 **1.1 问题描述与原因** 在通过SPI接口读取RXFIFO中的最后一个字节时,若恰好有一个新的接收数据字节同时写入RXFIFO,这会导致RXFIFO的指针无法正确更新,从而导致最后一个读取的字节被复制。 **1.2 建议变通方案** 对于小于64字节的数据包,建议等待整个数据包接收完成后才开始读取。如果无法实现等待或数据包长度超过64字节,则可以采取以下变通方案: - 从状态寄存器`RXBYTES.NUM_RXBYTES`读取RXFIFO中的字节数。 - 在接收到数据包的最后一个字节之前,不要清空RXFIFO。 - 需要注意的是,由于存在SPI同步问题,在接收数据期间读取`RXBYTES`寄存器时需要特别小心。 具体步骤如下: 1. 以至少两倍于接收RF字节速率的速度连续读取`RXBYTES.NUM_RXBYTES`,直到获得两次相同的值。 2. 将这个值存储为`n`。 3. 如果`n <` 数据包剩余字节数`#`,则从RXFIFO中读取`n-1`个字节。 4. 重复步骤1至3,直到`n =` 数据包剩余字节数`#`。 5. 从RXFIFO中读取剩余的字节。 **1.3 适用批次** 此问题及解决方案适用于所有批次和修订版本的CC1100E芯片。 #### 二、PLL锁定检测器输出问题解析 **2.1 问题描述与原因** PLL锁定检测器输出并不完全可靠。即使PLL已锁定,锁定检测器输出仍可能触发。锁定检测器输出为恒定逻辑高或具有正转换表示PLL处于锁定状态;锁定检测器输出为恒定逻辑低则表明PLL未锁定。不建议通过读取`GDOx_CFG=0x0A`的`PKTSTATUS[0]`或`PKTSTATUS[2]`寄存器来检查PLL是否锁定。 **2.2 建议变通方案** 为了可靠地检测PLL是否锁定,可以采用以下两种方法之一: 1. **使用外部中断**:将寄存器`IOCFGx.GDOx_CFG`设置为`0x0A`,并利用GDOx引脚上的锁定检测器输出作为MCU中断。GDOx引脚上的正转换意味着PLL处于锁定状态。当从“睡眠”状态唤醒集成电路时,需要关闭中断,以防GDOx引脚触发。 2. **读取寄存器FSCAL1**:如果寄存器`FSCAL1`的内容不是`0x3F`,则PLL处于锁定状态。有了这两种变通方案,就可以使用正确的设置对`TEST0.VCO_SEL_CAL_EN`和`FSCAL2.VCO_CORE_H_EN`进行CC1100E PLL校准。这些设置取决于工作频率,并可通过SmartRF®Studio自动计算得出。需要注意的是,`TEST0`寄存器的内容在SLEEP状态下不会保持,因此在从SLEEP模式返回时需要重新设置该寄存器。 **2.3 适用批次** 此问题及解决方案适用于所有批次和修订版本的CC1100E芯片。 #### 三、SPI读取同步问题解析 **3.1 问题描述与原因** SPI时钟域(使用用户提供的SCLK)和内部26MHz时钟域(称为XCLK)之间的同步机制存在问题,这可能导致对某些不断更新的寄存器字段(如`MARCSTATE`或`TXBYTES`寄存器)进行错误读取。 **3.2 问题症状** 在发送长度超过64字节的数据包时,如果不断轮询`TXBYTES`寄存器以检查是否有额外字节的空间,可能会遇到错误的读取值。例如,在向TXFIFO传输64字节数据并开始发送后,不断读取`TXBYTES`寄存器以检查是否有额外空间写入字节,理论上应读取到的序列是:64, 64, …, 63, (写入字节), 64, 64, …, 63, (写入字节), 64, … 但由于SPI同步问题的存在,可能会出现错误读取值的情况。 **3.3 建议变通方案** 为避免上述问题,建议采取以下措施: 1. **避免在发送过程中频繁读取寄存器**:尽量减少在发送数据包期间对寄存器的读取次数,尤其是对于不断更新的寄存器字段。 2. **使用更稳定的同步机制**:对于RXFIFO的数据读取,使用了更稳健的同步机制,因此不受此问题影响。考虑采用类似的机制来提高其他部分的稳定性。 3. **增加延迟**:在读取寄存器前后增加适当的延迟,以确保读取时数据已完全稳定。 **3.4 适用批次** 此问题及解决方案同样适用于所有批次和修订版本的CC1100E芯片。 以上是针对CC1100E勘误表中提到的主要问题及其解决方案的详细解析。希望这些内容能够帮助工程师们更好地理解和解决这些问题,提升产品的稳定性和可靠性。
剩余10页未读,继续阅读
- zhaoxuji2013-03-05官网本来就有点资料,也还是有帮助的啦
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
- (源码)基于C语言的操作系统实验项目.zip
- (源码)基于C++的分布式设备配置文件管理系统.zip
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip