Arduino + SI5351 方波发生器

发布于:2022-07-25 ⋅ 阅读:(921) ⋅ 点赞:(0)

更新下手里的便携示波器后,觉得示波器自带的1M波形发生器不太够看。

一个频率高一些的波形发生器是必须的,然而并没什么专业用途,所以不考虑投资成品设备。

搜一下发现这货只要12元。

通过 I2C 连接上 MCU,例程跑一跑,就可以愉快看到指定频率的方波了。

模块买来没焊接排针,自己用可以这么焊:I2C 4pin往下, 输出 0、1、2 往上。

后来发现 CH0 1 2 这三针没有地线,不是很方便。于是在 SMA焊点位置焊上排针,配合自制的测试线就好用了。(SMA接口暂时没焊,如果要用的话还得有配套线缆)

因为主要是测试单片机类的波形,所以DIY了双截测试线,其中前者(BNC---杜邦)可以直接插 SI5351 比较方便。实测10MHz波形比示波器100M探头还略好些。(大概是非屏蔽部分少些吧)

正负标记费了些思量,改了几次,最后这个红黑双层热缩管方案比较满意。

 

 ----------------------------------------------------------------------------------------------------------------

 2M 以下,波形不错的

20M 有些走样。

70M 几乎正弦波了,再高大概可以到 200M, 手里没设备测试了。

 注意:高频是需要专用接口的,杜邦线这样的接法是不严谨的。这个图形只是验证频率,波形待以后找到专业设备再说。

// https://github.com/etherkit/Si5351Arduino

#include "si5351.h"
#include "Wire.h"

Si5351 si5351;
  
void setup()
{
  bool i2c_found;

  Serial.begin(115200);
  i2c_found = si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0);
  if(!i2c_found)
  {
    Serial.println("Device not found on I2C bus!");
    delay(500);
  }

  si5351.set_freq(20000000ULL, SI5351_CLK0);  // 20000000 就是频率值,单位0.01Hz,即去掉两个零,实际测试发现没校准时有些偏差,但是附带校准程序跑起来暂时有些问题,先这样吧
}

void loop()
{
}

隔了几天找到 AD9833 ,看来比 Si5351 强大一些,频率也够用.

Arduino + AD9833 波形发生器_姜戈12的博客-CSDN博客icon-default.png?t=M666https://blog.csdn.net/jiangge12/article/details/125949564?spm=1001.2014.3001.5502 


网站公告

今日签到

点亮在社区的每一天
去签到