TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310: HSM 868MHZ 4MBITS模式下传输数据的v数量只能是双数吗?

Part Number:CC1310

Hi,大家好

     我在rfPacketErrorRate_CC1310_LAUNCHXL_nortos_ccs工程做一些测试,HSM模式下我发现当currentDataEntry->length为单数时,也就是要传输的currentDataEntry->data的数据数量为单数时,接收模块收到的数据的数量会多一个,在接收到的数据末尾多一个十六进制的00,但发送数据数量为双数时是正确的。请问这正常吗?需要怎么处理?

Galaxy Yue:

/* Handle the packet data, located at &currentDataEntry->data:* - Length is the first byte with the current configuration* - Data starts from the second byte */packetLength= *(uint8_t*)(&currentDataEntry->data);packetDataPointer = (uint8_t*)(&currentDataEntry->data + 1);

您好, 长度是当前配置的第一个字节 ,数据从第二个字节开始 

您可以参考以下这个帖子进行修改

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/887479/cc2652r-rfpacketerrorrate-15-4-mode-tx-data-format-compose-question

官方指南可以看一下

https://software-dl.ti.com/lprf/simplelink_cc13x0_sdk/1_30_00_06/exports/docs/proprietary-rf/html/cc13x0/examplesusersguide/rfPacketErrorRate/README.html

,

Gaoyang Li:

Dear Galaxy Yue

上次我没有说清楚,我发数据00 01 31 32 33 34 35 36 37 38 39 30 31,currentDataEntry->length = 13,其中0001是序列号;但是接收到的数据确是00 01 31 32 33 34 35 36 37 38 39 30 31 00,currentDataEntry->length = 14;接收的长度大了1,最后也相应多了一个字符。

但我如果发数据00 01 31 32 33 34 35 36 37 38 39 30 31 32,currentDataEntry->length = 14;那么收的就是正常的,00 01 31 32 33 34 35 36 37 38 39 30 31 32,currentDataEntry->length = 14;

发其他数据串只要currentDataEntry->length是单数,都会是类似的错误,长度+1,最后添加一个00。双数就正常,所收即所发。

,

Galaxy Yue:

Hi Gaoyang,

我的理解和您第二次问题描述是一致的

应该是2字节对齐引起的,硬件对于按字(2个字节)处理会更为高效,所以有些接口会被设置为2字节对齐的方式。

 您可以尝试在收到数据时,

Gaoyang Li 说:我发数据00 01 31 32 33 34 35 36 37 38 39 30 31,currentDataEntry->length = 13,其中0001是序列号;但是接收到的数据确是00 01 31 32 33 34 35 36 37 38 39 30 31 00,currentDataEntry->length = 14;接收的长度大了1,最后也相应多了一个字符

这种情况下,添加相应的逻辑代码去删除最后一个字符

,

Gaoyang Li:

谢谢Galaxy,

但当我配置config.rfSetup = RfSetup_Custom时,不管发的数据是多少字节,接收到的数据都是正常的。因为HSM模式的原理TI也没有资料描述,所以这里我只是想知道是否HSM模式下数据必须是以双数的数量发送,单数数据量时就必须做一些多余的处理。还是说我代码哪里还有修改的不对的地方?

,

Galaxy Yue:

Hi Gaoyang,

HSM模式是一种用于提高无线通信速率的特殊模式,在HSM模式下,发送和接收的数据必须按照双字节16位对齐发送,否则可能导致数据错误。

Gaoyang Li 说:当我配置config.rfSetup = RfSetup_Custom时

可能是芯片内部在处理非双字节对齐的数据时进行自动填充

 

Gaoyang Li 说:我代码哪里还有修改的不对的地方?

可以贴上来看一下的

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: HSM 868MHZ 4MBITS模式下传输数据的v数量只能是双数吗?
分享到: 更多 (0)