齢寿天任せ

写真付きで日記や趣味を書くならgooブログ

SI4732(DSPラジオ)とPi Picoの組み合わせを検証した

2024-03-26 15:08:02 | 電子工作
Raspberry Pi Picoを入手したので、以前、”Arduino Pro Mini 3.3V”との組み合わせで製作したSI4732FP(オールウェーブ対応のDSPラジオIC、以下SI4732)を引っ張り出して検証してみた。Pi PicoはArduino IDE(2.0)環境での開発が可能である。開発環境の設定などはこちらを参考にすると良い。
Pi PicoはGPIOピンが多いので、多くのボタン(タクトスイッチ)が必要であるSI4732を制御するには都合が良い。ただし、Pi Picoの基板は長いので、5x7のブレッドボードは2枚必要になる。
スケッチは、PU2CLRさんのサイト(Github)の”SI47XX_02_ALL_IN_ONE_OLED.ino”がベースである。このスケッチは、”Pro Mini 3.3V”を想定しているが、以下に述べる変更を行えば、そのまま流用可能であることを確認した。
SI4732とディスプレイ(OLED 128x64 SSD1306)は、I2Cで接続するが、今回の環境ではPi Picoの既定のSDA、SCLは、GPIO4とGPIO5だったので、上記のスケッチのピンのアサインと衝突する。
Pi PicoのI2C対応のピンは複数グループあり、スケッチで指定することができる。ここでは、GPIO20とGPIO21を利用した。
”pinMode”の指定のコードの直後に以下のコードを追加した。
 Wire.setSDA(20);
 Wire.setSCL(21);
リセットのピンは、配線の都合上、GPIO22とした。
 #define RESET_PIN 22
その他のGPIOピンは”Pro Mini 3.3V”と同じピンアサインでOKである。
なお、プルアップの抵抗は無くても動作した。
ロータリーエンコーダーは、出払っていたので、動作不良になったマウスを分解して、マウスホイール取り出し流用した。マウスホイールの”ボリューム(?)”にある3つの端子のうち、GNDを判別してGNDに接続し、残りをGPIO2とGPIO3に接続する(ハンダ付けが必要)。
ピン(GPIO)の割り当ては以下の通り。
 Encoder 1 2
 Encoder 2 3
 Mode Switch (AM/LSB/USB) 4
 BANDWIDTH switch 5
 Volume Up 6
 Volume Down 7
 Next Band (Up) 8
 Previous Band (Down) 9
 Step switch 10
 AGC Switch 11
 BFO Switch 14
 SDA 20
 SCL 21
動作は確認できたが、以前の記事にも書いた様に、音質は良くなく、音声出力も不足なのは同じである。今後、これらをなんとかしてみたいと思う。



最新の画像もっと見る

コメントを投稿