搜索
bottom↓
回复: 20

一个有关SI4432芯片实际发射时间的问题,请大家指点,谢...

[复制链接]

出0入0汤圆

发表于 2012-5-30 17:30:41 | 显示全部楼层 |阅读模式
一个多月前,开始使用STM8L151 +SI4432无线模块做一个温度采集的实验,使用3.3v电池供电。
基本功能完成后,待机电流3.8uA。所以开始下工夫优化程序,逐步降低发射时的电流消耗,于是就产生了一下问题。。。

按照SI4432的描述和一般的经验,无线发射一个数据报的时间,从启动芯片发射到SI4432芯片nIRQ返回给STM8L单片机下降沿中断, 应该和数据报的长短和发射速率(flying speed)有关,
理论上应该是:    TX_time = 所有数据位的数量 / TX_speed;  例如发射100bit时, 如果 TX_speed =10Kbps. 则需要耗时10ms;

我做了以下测试:
      电路板上有一个LED指示灯,我在程序中:
             点亮LED指示灯,此时控制脚(示波器通道1输入低电平0V);
             单片机控制无线模块发送数据报,等待发送完成(由SI4432的nIRQ引脚下降沿来触发CPU的外部中断);
             熄灭LED指示灯,此时控制脚(示波器通道1输入高电平3.3V)
      使用示波器查看LED控制引脚的低电平宽度, 就可以认为这个时间是数据报的发射时间!

到这里,我想大家可以理解,这些都没有问题吧?!
继续:
     为了省电,又为了兼顾接收灵敏度,我测试不同发射速率下,同一数据报的发射时间, 就是测量LED控制引脚的低电平时间。
     测试前提,使用同一个程序,不同次测试中,仅仅更改一个参数,就是发射速率,当然,涉及的寄存器还是比较多的,反正按照SI4432芯片的自动参数设置文档生成的寄存器参数来设置,相信这个大家都知道!
     
     测试结果:        【为了描述简洁,这里仅仅列出2种速率的测试结果,我时间测试了1.2K、2.4K, 4.8K. 9.6K. 19.2K, ... 250K所有的速率】
               
             我的应用数据报文的长度是 51字节;
              实际发射数据 5字节引导码 +2字节同步 +4字节帧头 +1字节长度 +51字节数据 +2字节CRC =65字节
             
        SI4432发射速率                实际测量发射需要时间                芯片发射时间理论值                              实际测量时间值 和 理论值的差值
        25 Kbps                        27.0ms                        65字节 *8bit /25Kbps        =20.8ms            27.0-20.8 =6.2ms
        125 Kbps                        5.88ms                        65字节 *8bit /125Kbps        =4.16ms            5.88 -4.16 =1.72ms
   
      这里问题开始显现! 为何25Kbps 和 125Kbps 下 实际发射测量时间 和 理论发射时间的 差值不一样呢?
      由于使用同一个程序,都是中断等待发射完成的,所以这个差值应该一样啊!? 这个差值是啥呢? 程序的延时, 测量的误差,芯片发射前的启动时间? ....  
         不管这个差值是如何由于我的测量的不完备性导致的,  但是有一点是肯定的, 这个时间不应该和发射速率有关, 在相同测试条件下,应该是一个常数! 对吗?

我在多次测量和分析的基础上,提出一个假设: SI4432芯片在发射数据报文时, 还附带发射了124bit左右的“冗余位”!
      
      验证我的假设:
          如果芯片存在124bit(具体多少位不定?这里假设124) "冗余位",则芯片发射时间计算值:
        25K发射                (65字节 *8bit +124bit) /25K =        (520+124)bit /25kbps  =25.76ms
        125K发射                        (65字节 *8bit +124bit) /125K =        (520+124)bit /125kbps =5.152ms
        这样,实际测量时间值 和 理论值的差值 :
                25Kbos      27.0 - 25.76 =1.24ms          ;测量误差 1.24-0.728 大约0.5ms
                125kbps    5.88 -  5.15w =0.728ms
       现在按照冗余位存在124bit的情况分析测量结果,测量误差 0.5ms , 考虑到两次测量时间时,示波器分度值设置不同,
        25Kbps下使用5ms, 125Kbps下使用1ms, 在5ms分度下0.5ms测量误差是合理的!

     反证:
          按照厂家说明,不存在"冗余位"发射时,测量发射时间的理论值应该是:
              25Kbps                20.8ms         +程序延时时间t, 测量值27.0ms =20.8ms + t(6.2ms)        【1】
              125bps                4.16ms  +程序延时时间t, 测量值5.88ms =4.16ms + t(6.2ms左右)【2】
              如果【1】式成立,可以明显看出【2】式不能成立,这样也反证厂家说明不成立!

以上问题已经和上海和新华龙的FAE交流过了,但是他们都认为是我的问题,理由很充分:
                “我们从没有接到该问题的报告”
                “SI4432芯片出货几百K了,有这个问题,咋可能。。。”
               。。。。

到此,有的朋友会说,这个不是大问题,即使如我所说的那样,反正不影响使用!

我不这样认为,理由如下:
          如果存在“冗余”发射时间的话,问题很严重!
          我们都知道,传输效率 = 有效数据长度 /无线传输总长度;
         SI4432芯片的FIFO最大64字节,则有效载荷最大64字节, 则:
              发射64字节时, 效率 =64 /(64 +5字节引导码 +2字节同步 +4字节帧头 +1字节长度  +2字节CRC +124bit/8bit) =64 / (64 +13  +15.5) =69.1%
              发射32字节时, 效率 =32/(32 +13 +15.5) = 52.8%
             发射16字节时, 效率 =16/(16 +13 +15.5) = 35.9%
         
        也许你反驳,你可以减少帧头长度,不使用CRC来减少发射时间, 降低功耗 !!
         
        那如果数据报文长度8~16字节(平均12字节),这个是一般温湿度采集常用的数据长度, 不使用帧头,报文长度和CRC,
        则效率   = 12 / (12 +  5字节引导码 +2字节同步 124bit/8bit) =12/(12 +7 +15.5) = 34.8%
        如果没有冗余位, 则效率   =12 /(12 +7) = 63.15%
      
这下你应该惊讶了吧! 如果有冗余位,我的电池耗电量要增加多少?!
       以12字节有效数据为例, 原来要发送 19字节,  现在要发送 34.5字节, 耗电量增加  15.5/19 = 81.6% ! 相当于几乎多耗费了一倍的电量!

      最后说明:
             以上我的假设,希望大家拍砖和讨论! 更希望有SI4432芯片的朋友动手测试一下,来比较一下测试结果,谢谢!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2012-5-30 17:32:05 | 显示全部楼层
这下有图了,呵呵!
希望得到真想!
再次感谢关注和参与讨论的朋友们!

出0入0汤圆

 楼主| 发表于 2012-5-30 21:38:24 | 显示全部楼层
另外,恳请使用其他无线芯片的朋友,也测试一下你的模块的实际发射时间,有类似的情况吗?谢谢啦!

出0入0汤圆

发表于 2012-6-3 19:59:22 | 显示全部楼层
楼主你待机3.8UA是指什么情况下

出0入0汤圆

发表于 2012-6-3 20:15:06 | 显示全部楼层
楼主你发射的启动时间是PA打开的时间吗还是SPI的时间

出0入0汤圆

 楼主| 发表于 2012-6-4 19:51:38 | 显示全部楼层
谢谢关注!
1. 待机3.8UA 是指STM8L+DS18B20+SI4432整体休眠时的全部电流消耗,此时CPU进入HALT,只有外接的32.768K在驱动CPU内的RTC在运行,以便在设置时间后自动唤醒CPU进行采集数据的发射;

2. "楼主你发射的启动时间是PA打开的时间吗还是SPI的时间"
您理解有误差,我是指发射一个数据报的时间T, 就是在向FIFO写入发射数据和设置数据长度寄存器后:
    点亮LED;
      启动SI4432发射;
      等到nIRQ发射完毕中断;
      关闭LED;
示波器测量时间T就是LED点亮的时间;

出0入0汤圆

 楼主| 发表于 2012-6-4 19:53:48 | 显示全部楼层
恳望大家继续关注!谢谢

出0入0汤圆

发表于 2012-6-4 20:13:56 | 显示全部楼层
可以看天线控制脚时间,等我有空拆了我的看,我是2.4k,发送固定长度字节的内容

出0入0汤圆

发表于 2012-6-5 11:10:27 | 显示全部楼层
楼主你好,你无线模块直接用的什么功率管器件将其关掉的,方便介绍下吗

出0入0汤圆

发表于 2012-6-8 11:15:43 | 显示全部楼层
随着大家对SILABS的了解,和对SI4432的兴趣,特拿出一些开发时注意的地方告诉大家,以免大家在开发过程中在犯错。
  一、在开发硬件时:
      1、布线尽量均匀,按照50欧姆的要求去画,
      2、记得过孔、铺地。
      3、亏电电路尽量小,
  二、软件调试:
      1、按照原长的例程去修改,不要自己来设置寄存器,
      2、原长会有寄存器设置工具
      3、做简单的硬件测试和软件判断
      4、确认需要修改的寄存器值是否是正确的,
  三、注意问题:
      1、晶体的精度可能导致你接收不到信号
      2、发射和接收的频率是否一致
   发射机是否正常
(1)看频谱
(2)设置中断
(3)测量电流是否是在正常工作的值
(4)采用内置PN9做信号源
接收机是否正常
(1)采用信号发生器
(2)设置中断
(3)测量电流
还有一些,后续加上。
  有其他问题希望交流!!QQ:113714426

附加一些:
元器件放置以及布线注意事项:

芯片是4.0mm*4.0mm,20脚QFN封装,底部为地。必须通过一些过孔将芯片的地与pcb板的地很好的结合起来;
为了减少不必要的耦合,尽量避免一些较敏感的数字(和MCU相通信的网络),
射频走线平行,芯片底部不能走线。同样是为了尽量减少耦合,确保相同网络的走线线宽要相同,以及在空间允许的范围内敏感走线间距离至少为线宽的3倍;
在射频前端电路,相邻电感成相互垂直状放置,以较少耦合;
发射电路和接收电路中间留下足够大的地,避免相互间的耦合;
偏置电路中的扼流电感尽量靠近TX脚,减少发射对接收电路的影响;
射频电路中的元器件,尽量靠拢并使用较小封装的元器件,减少寄生电容的产生或影响;
在空间允许的情况下,尽量保持射频走线和地之间的距离,最好大于0.5mm;
射频电路中,元器件接地的脚周围放置尽量多的过孔来减少寄生电感及其影响;
电源滤波电路中的电路应该尽量靠近vdd脚,以确保滤波电容和VDD间的环路面积最小;(要强调一点,参考电路中的电源滤波电容一个都不能少,每个电容都有其作用。此前有过,因为少了某个电容致使模块工作不正常,死机的现象发生)
晶振尽量靠近芯片减少寄生电容的产生,寄生电容过多容易产生频率漂移,晶体下面不要走任何线,特别是电源线;
射频前段电路放置尽量大的地和足够多的过孔,射频走线下面(BOTTOM 面)尽量不要走线或走过长的线,这样可以避免信号通过它们辐射出去;
射频线宽尽量粗,pcb板近量薄。

出0入0汤圆

发表于 2012-6-8 11:18:12 | 显示全部楼层
联系QQ113714426

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-6-18 10:10:13 | 显示全部楼层
谢谢大家的讨论.
1. 我的测试时间是从设置寄存器把芯片SI4432由ready模式转换为TX模式时开始计时,到TX中断产生(nIRQ下降沿触发CPU中断)为止的时间, 前面已经在ready模式下将发射数据填充到FIFO中了。

2. 我是多次测量不同数据长度.不同发射速率下的得到此结果的(一次只更改长度或者发射速率一个参数,以便对照比较);

出0入0汤圆

发表于 2012-10-16 15:55:54 | 显示全部楼层
关注下,顶顶

出0入0汤圆

发表于 2012-10-16 15:59:08 | 显示全部楼层
有2.4G的 分析仪,有条件的人可以捕捉一下看看是否有这个"冗余位"

顺手贴一个人家做的分析仪,不知道能不能用上:
http://arduino.cc/forum/index.php?topic=93777.0
用的是RFM22的模块




Cheap UHF spectrum analyzer (and RC tx rx) using RFM22 module

出0入0汤圆

发表于 2012-10-27 10:52:52 | 显示全部楼层
关注顶一下

出0入0汤圆

发表于 2013-1-21 02:35:19 | 显示全部楼层
   

出0入0汤圆

发表于 2013-7-16 09:57:15 | 显示全部楼层
最近也在这个楼主能不能给个程序

出0入0汤圆

发表于 2013-7-16 10:03:50 | 显示全部楼层
hzrobin 发表于 2012-6-5 11:10
楼主你好,你无线模块直接用的什么功率管器件将其关掉的,方便介绍下吗

si4432有sdn脚,直接拉高就可以了。                 

出0入0汤圆

发表于 2014-1-25 21:37:59 | 显示全部楼层
请问楼主问题还解决了?

出0入0汤圆

发表于 2014-9-20 21:34:04 | 显示全部楼层
楼主,您好!方便请教下SI4432低功耗方面的问题吗?

出0入0汤圆

发表于 2015-11-20 15:38:37 | 显示全部楼层
楼主不会直接把SND拉高,把新编关断了把。那电流是低的咯。。。。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-3 00:23

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

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