手把手教你轻松完成嵌入式无线调试
时间:10-29 09:05 阅读:1326次
*温馨提示:点击图片可以放大观看高清大图
简介:最近,我有幸执行一个涉及Arduino Uno的项目,其中采用Atmel ATmega328微控制器,并使用SPI总线连接RFM12B模块、ISM频段FSK收发器
最近,我有幸执行一个涉及Arduino Uno的项目,其中采用Atmel ATmega328微控制器,并使用SPI总线连接RFM12B模块、ISM频段FSK收发器。和往常一样,我们要解决多个硬件和软件问题。大家将看到,MDO4000混合域示波器帮助我们找到了噪声问题的根本原因。我使用的设置如下:
下面的截图显示了数据包传输期间发生的情况:
标着A的橙色轨迹是RF幅度随时间变化,是用连接到频谱分析仪输入上的简单天线捕获到的。SPI总线使用数字逻辑通道探测,在发送的SPI总线命令上触发了单次采集。由于这是FSK频移键控,在理想情况下,RF幅度应该不变。但我们可以看到,实际情况并不是这样。下面,我们增加了频率随时间变化轨迹,标为F:
左上方的噪声突发是频率随时间变化,就在传输前面。我使用静噪声功能,清除噪声:
好了,FSK看上去很好,但RF幅度随时间变化显示从SPI总线活动到RF发射机功率有明显的串扰。我怀疑地电平和/或电源轨道弹跳,因此我使用TDP1500差分探头,测量到地的Vcc:
非常肯定,在发射机打开时,有大约1 Vpp的噪声。使用Wave Inspector旋钮放大,打开光标:
在RF发射机打开时,可以看到电源上的噪声提高。我使用光标,测得噪声周期约为64 ns。这与晶振一致。这样我就知道,电源分配需要更好的旁路,特别是在16 MHz周围。由于这只是原型板卡,没有电源平面,所以我不太担心。在稳压器IC后面,我在电解电容器之外增加了多个陶瓷电容器,解决了问题。
现在,只需要进行软件调试了,就这么简单!