amobbs.com 阿莫电子技术论坛

标题: 请教:CC1101接收端的地址过滤问题? [打印本页]

作者: scty    时间: 2010-9-8 20:51
标题: 请教:CC1101接收端的地址过滤问题?
TX端发出的数据包为:08 FE 01 02 03 04 05 06,表示包长08、地址FE、用户数据6Byte,相关寄存器设置为:
0x04,  // PKTCTRL1      关闭地址过滤为 0x04,开启地址过滤为 0x05,再增加广播地址 00 的方式为 0x06、继续增加广播地址 FF 的方式为 0x07
0x04,  // PKTCTRL0      固定数据包长方式为 0x04,可变数据包长方式为 0x05
0x22,  // ADDR          发送端的本机地址
0x0F,  // PKTLEN        最大允许数据包长

RX端的相关寄存器设置为:
0x04,  // PKTCTRL1      关闭地址过滤为 0x04,开启地址过滤为 0x05,再增加广播地址 00 的方式为 0x06
0x04,  // PKTCTRL0      固定数据包长方式为 0x04,可变数据包长方式为 0x05
0xFE,  // ADDR          接收端的本机地址
0x0F,  // PKTLEN        最大允许数据包长

在如上的寄存器参数设置情况下,接收端能正确地收到发送端发出的数据包,各项数据都完全正确。
现在需要启用接收端的地址过滤功能,将 PKTCTRL1 = 0x06 后,无论发送端的数据包第2字节设为0xFE、或者是设为0x00,接收端都不能收到任何数据了!!!
请问除了修改 PKTCTRL1 之外,还有什么地方需要对应地调整?

谢谢指点...
作者: wuzhujian    时间: 2010-9-8 22:49
可能的问题:
    1、你的包长度为8,而最大允许的包长度为0x0F,又是采用固定包长度,这里显然有问题。
    解决问题的办法:把固定包长度改为可变包长度。
    原因:
    1> 当采用固定包长度时,包的第一字节是地址,而不是包的长度(包的长度由PKTLEN决定);
    2> 当采用可变包长度时,包的第一字节才是包的长度,第2个字节才是地址。

    明白了吗?
作者: scty    时间: 2010-9-9 09:54
谢谢指点,可变包长的方式验证OK
作者: dianzifanfan    时间: 2011-3-26 20:08
学习了
作者: dsdh0502    时间: 2011-4-1 15:09
学习了
作者: xiezheming    时间: 2011-5-21 14:01
mark
作者: jssz_hf    时间: 2011-5-25 19:48
mark
作者: gavin_li    时间: 2011-6-5 17:03
奇怪,我设置如下
0x06,  // PKTCTRL1      关闭地址过滤为 0x04,开启地址过滤为 0x05,再增加广播地址 00 的方式为 0x06、继续增加广播地址 FF 的方式为 0x07
0x05,  // PKTCTRL0      固定数据包长方式为 0x04,可变数据包长方式为 0x05
0x02,  // ADDR          发送端的本机地址
0x20,  // PKTLEN        最大允许数据包长
发送0x08,0x02,0x01,0x02,0x03,0x04,0x05,0x06。接收端还是无法正确接收。
请问楼主,接收端不用程序判断地址来过滤了吧,另外读取到的第一个字节真的是数据包长度,然后读取的第二个字节真的是目标地址?
作者: jssz_hf    时间: 2011-6-6 22:05
回复【7楼】gavin_li
-----------------------------------------------------------------------

回复【楼主位】scty
-----------------------------------------------------------------------

同7楼的设置 也想知道还需要程序里判断地址吗?
作者: gavin_li    时间: 2011-6-7 10:25
回复【1楼】wuzhujian  吴助建
    可能的问题:
    1、你的包长度为8,而最大允许的包长度为0x0f,又是采用固定包长度,这里显然有问题。
    解决问题的办法:把固定包长度改为可变包长度。
    原因:
    1> 当采用固定包长度时,包的第一字节是地址,而不是包的长度(包的长度由pktlen决定);
    2> 当采用可变包长度时,包的第一字节才是包的长度,第2个字节才是地址。
    明白了吗?
   
-----------------------------------------------------------------------

这个是正确的。
作者: jssz_hf    时间: 2011-6-7 10:37
地址滤波 需要在接收端程序判断地址数据吗?我判断了但是无法接收。我用串口显示来判断的。QQ指教下:664974392




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4