SiliconLabのSi4703(FM DSPラジオIC)搭載の評価ボードについての記事は、3つ目(その1、その2)である。この評価ボードで製作した2台のFMラジオはもう2年以上実用している。今回の記事は「その1」で行った試作の直ぐ後に作成したFMラジオについて紹介する。その概要とコードはGitHubに載せている。
特徴として、回路を簡単にし、部品を減らして、再現性を高めている。Si4703の制御は、Atmega328pで行ない、電圧を3.3Vに統一している。使用しているタクトスイッチ(ボタン)は3つだけである。表示にはOLED(SSD1306)を利用している。コントローラの基板(Auduino UNOなど)をラジオセットに持ち込まないのでコンパクトに組み立てられると思う。余談であるが、最近、Aruduinoの値段が高くなっていて、Auduino UNOなどを新規に買いたいと思わない。
写真に示したが、操作は、ボリュームの大小とFM局の選択だけである。百均のクリアケースに収めている。FM局の名前と周波数、ボリューム値をOLEDに表示する。FM局の名前と周波数は、予めコーディングしておく必要がある。受信できるFM局が多い場合は、タクトスイッチを追加して、正逆の選択ができるようにした方が良いかもしれない。電源はUSBからとるようにしている。5Vの電圧をAMS1117-3.3を使って3.3Vに変換している。
配線の様子は以下の通り。部品は最少である。なお、基板の下にも電源ラインの配線あり。Xtal発振子の周波数は16MHzである。発光ダイオードはピン19(PB5)に接続している。起動時に点滅する。
Atmega328pを単体で扱う場合は、いくつか考慮が必要である。その辺りの話はこちらのネット記事を参考にすると良い。まず、Atmega328pにはブートローダが書き込まれていなければならない。前記のネット記事にはその方法(Arduino UNOが必要)が紹介されている。難しいと感じる場合は、Atmega328pを購入する時にブートローダが書き込まれた物を購入すると良い。秋月電子から購入可能(それ程値段は高くならない。ピン配列のシールが貼付け済みで便利)である。
Atmega328pにスケッチを書き込む一番簡単な方法は、Arduino UNOの既存のAtmega328pを抜いて、該当のAtmega328pを差し込んでしまうことである。これが無理な(抜き差しには器具とコツがいる)場合は、USBシリアル変換器と若干の回路が必要である。これも前記のネット記事に説明されている。お勧めのUSBシリアル変換器は、ネット記事にも紹介されている秋月の FT232RL USBシリアル変換モジュール (AE-UM232R)であるが、同様なものがAmazonなどでも入手できる。ただし、PC側でのドライバの対応と、Atmega328pをリセットするための信号(DTR)がサポートされていることが必要である。
なお、Atmega328pの書き込みは5Vで行うことになっているので、スケッチの修正時に、既にSi4703やOLEDなどを組み込んだ基板上(3.3V)では書き込みできないので注意が必要である。また、3.3V動作では、16MHzのクロック周波数は保証されていないので、これも注意が必要(動いたらラッキー)である。