由于自己在用CC1125做无线通讯时,从机在接收的时候使用一开始就开启无限长度包(Infinite Packet Length)模式,然后根据接收到的前两个字节的大小来判断数据包长度。当数据包长度>256bytes,留在Infinite packet length 模式,如果<256则使用固定长度模式。 但是这样子的话只要改用了固定长度模式,CC1125就会立即出错。CC1125使用无限长度包(Infinite Packet Length)模式进行接收时,是否可以对<256字节的数据包进行接收?如果 可以,请问一下方法是什么?
Barbara Wu:
应该可以,在CC1125的user guide里面有写例子 8.1.5
http://www.ti.com/lit/ug/swru295e/swru295e.pdf
zengmou xing:
请问帖主 这个问题解决了吗
user4650663:
回复 Barbara Wu:
您好,跟此贴的问题差不多,我发现在变为固定长模式之后对TX FIFO进行填充就会出现0x16即FIFO_ERO的错误,请问是什么情况
user3752232:
回复 user4650663:
请详细参考这张图,并理解他的意思。CC1125内部是有一个数据counter的,它自动停止接收也是根据这个counter的内容的。在变成固定长模式之后,还要把PKT_LEN这个寄存器根据图中所示进行设置,这样CC1125才会正确地自动停止接收。
user4650663:
CC1125无限包长模式中在切换到固定长模式之后,对TX进行一次剩余字节填充,PTK_LEN =70 ,填充字节数为50.,读取MARCSTATE寄存器的值,为0x16,即TX_FIFO_REO,填充之前确定为0x33发送模式,不限长模式的时候填充TX FIFIO并不会出错,请问下固定长模式下填充FIFIO出现错误的原因会是什么?
user3752232:
完全可以的,PTK_LEN 要等于填充字节数
user4650663:
回复 user3752232:
您好按照文档的理解以及源码的内容,传输500字节的数据+2字节的数据长即502个字节,首次填充128个字节,低于阈值填充122个字节,判断剩余字节数+6长度的阈值保留下来的,那么502-128-122-122+6=136的时候才会变成固定长模式。而源码里面PKT_LEN=502%256 = 246字节的,所以这里的值有了疑惑,请你指正下。
user3752232:
回复 user4650663:
请细心看图,内部的counter是从0到255然后再从0开始的,你不用管什么时候写多少数据进FIFO,你只需要了解最后全部写了多少数据。而CC1125最后判断什么时候该停止接收或发送模式是 (Counter % 256)
user3752232:
回复 user3752232:
你需要再反复多看几遍CC1125的参考手册