Si5351 クロックモジュールのコントローラ作成


日本橋に立ち寄った際 Si5351 クロックモジュールを見つけました。i2c で設定してやれば任意の周波数のクロックが出せるモジュールです。
使うたびに配線してプログラムするのも面倒な感じでしたので、ジャンクボックスにあったタッチ液晶と Arduino UNO を使ってコントローラーを作成してみました。

使用したモジュール
Arduino UNO
https://www.adafruit.com/product/1651 2.8″ TFT Touch Shield for Arduino with Resistive Touch Screen
https://www.adafruit.com/product/2045 Adafruit Si5351A Clock Generator Breakout Board – 8KHz to 160MHz
https://www.switch-science.com/catalog/991/ Arduino用バニラシールド基板ver.2(青)
スケッチコンパイルに必要なライブラリ
https://github.com/etherkit/Si5351Arduino Si5351 Library for Arduino
https://github.com/adafruit/Adafruit_ILI9341 Adafruit ILI9341 Arduino Library
https://github.com/adafruit/Adafruit_STMPE610 Arduino library for STMPE610/811 resistive touch screen controllers
https://github.com/adafruit/Adafruit-GFX-Library Adafruit GFX Library
arduino ide の library フォルダに入れて、arduino ide を起動すれば利用可能となります。

配線自体は、クロックモジュールに i2c の SDA,SCK,電源をつけるだけなので速攻でおわり。組み立ては最初の写真にあるように基板を重ねるだけという簡単なものです。

操作は、周波数を入れて C0 C1 C2 のボタンを押すと CLK0 CLK1 CLK2 に周波数が設定されて出力されます。上の周波数表示のところを押すと出力の Enable / Disable が切り替わりるというシンプルな形になりました。
周波数変更や出力の Enable/Disable を変えると状態をEEPROMに保存するので、次回起動時は以前の状態が復元されます。

https://github.com/ngc6589/Si5351ClockContoller に Arduino のソースをあげておきました。