搜索
bottom↓
回复: 10
打印 上一主题 下一主题

请教:CC1101接收端的地址过滤问题?

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2010-9-8 20:51:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 之外,还有什么地方需要对应地调整?

谢谢指点...

出0入0汤圆

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

    明白了吗?

出0入0汤圆

3
 楼主| 发表于 2010-9-9 09:54:55 | 只看该作者
谢谢指点,可变包长的方式验证OK

出0入0汤圆

4
发表于 2011-3-26 20:08:18 | 只看该作者
学习了

出0入0汤圆

5
发表于 2011-4-1 15:09:31 | 只看该作者
学习了

出0入0汤圆

6
发表于 2011-5-21 14:01:39 | 只看该作者
mark

出0入0汤圆

7
发表于 2011-5-25 19:48:29 | 只看该作者
mark

出0入0汤圆

8
发表于 2011-6-5 17:03:21 | 只看该作者
奇怪,我设置如下
0x06,  // PKTCTRL1      关闭地址过滤为 0x04,开启地址过滤为 0x05,再增加广播地址 00 的方式为 0x06、继续增加广播地址 FF 的方式为 0x07
0x05,  // PKTCTRL0      固定数据包长方式为 0x04,可变数据包长方式为 0x05
0x02,  // ADDR          发送端的本机地址
0x20,  // PKTLEN        最大允许数据包长
发送0x08,0x02,0x01,0x02,0x03,0x04,0x05,0x06。接收端还是无法正确接收。
请问楼主,接收端不用程序判断地址来过滤了吧,另外读取到的第一个字节真的是数据包长度,然后读取的第二个字节真的是目标地址?

出0入0汤圆

9
发表于 2011-6-6 22:05:30 | 只看该作者
回复【7楼】gavin_li
-----------------------------------------------------------------------

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

同7楼的设置 也想知道还需要程序里判断地址吗?

出0入0汤圆

10
发表于 2011-6-7 10:25:36 | 只看该作者
回复【1楼】wuzhujian  吴助建
    可能的问题:
    1、你的包长度为8,而最大允许的包长度为0x0f,又是采用固定包长度,这里显然有问题。
    解决问题的办法:把固定包长度改为可变包长度。
    原因:
    1> 当采用固定包长度时,包的第一字节是地址,而不是包的长度(包的长度由pktlen决定);
    2> 当采用可变包长度时,包的第一字节才是包的长度,第2个字节才是地址。
    明白了吗?
   
-----------------------------------------------------------------------

这个是正确的。

出0入0汤圆

11
发表于 2011-6-7 10:37:42 | 只看该作者
地址滤波 需要在接收端程序判断地址数据吗?我判断了但是无法接收。我用串口显示来判断的。QQ指教下:664974392
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 17:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表