2025年4月30日水曜日
KT0913を使ってラジオを作っている。
いわゆるDSPラジオと言うやつだ。
母が寝るときに聞きたいのでラジオが欲しいというが、
市販のものには、いろいろ問題がある。
まず、操作が難しい。 誤ってバンド等を変えてしまうと
母は戻すことができない。 また、頻繁に置いた場所を忘れる。
そこで、機能を最小限に絞り、ベッドサイドに固定できる
ラジオを自作しようと思ったわけだ。
DSPラジオのICが、いろいろ売っていることは知っていたが
具体的にどれを選べば良いのかわからないので
後閑哲也氏著「DSPラジオの製作ガイド」を購入。
この本で使用しているICと秋月電子やaitendoの在庫を
比較し、 KT0913に決定。
I2C操作のために
HSES-LCD24Bを使用し実験を開始した。
試行錯誤
まず、I2Cでレジスタの読み出しを行う。
読み出したいレジスタのアドレス1byteを書き込んだ後、
セッションを終了せずに2byte読み出すことでできる。
それっぽい値を読み出すことができた。
つぎにレジスタへの書き込みだが、上手くいかない。
悩んだ挙句、水晶発振子まわりの半田付けをやりなおしたら
なぜか書き込めるようになった。
それっぽい信号が受信できているようなのでスピーカーで聞きたい。
データシートを読むと、音声出力端子(ROUT, LOUT)は16Ωのスピーカーを
直接駆動できるとある。
試しに
秋月電子で買った
4Ωのスピーカ
をつないだところ、発振し、まともに音が出ない。
10Ωの抵抗を介して接続したところ、ラジオっぽいノイズが
聞こえるようになった。
まだラジオ放送を受信できないので、
レジスタの内容等を表示させつつ
動作を観察する。意図せぬ周波数の移動がある。
いろいろ調べた結果、レジスタへの書込み読み出しの
テスト用に GPIOFG(address 0x1d)に0~255の値を
1秒ごとに書き込んでいるのが原因であるとわかった。
このレジスタはGPIOで何を書き込んでも良いと勘違いしていたのだが、
じつは VOL, CH両端子の動作を設定するレジスタで、
書き換えることによりCH端子から信号を入力している
状態になっていたと考えられる。
FMのアンテナ線として10cm程度の電線を繋いでいたのだが、
これを30cm程度に延長し、いろんな方向で試したところ
FM放送を受信できた。
AM放送は、バーアンテナが無かったので実験していない。
注文したものが今日届いた。
 |
aitendoから届いたバーアンテナ |
反省
KT0913の情報はネットに沢山あるので、
データシートをあまり読まずに試したのが
間違いだった。 結局、トラブル解決のため
熟読することになった。
今後
AMアンテナ、オーディオ・アンプの実験が済んだら
基板を起こしてコンパクトにまとめたい。
CPUもコンパクトにしたいがグラフィックLCDも使いたいので
ライブラリ等を考えると ATMEGA328PあたりでArduinoを
動かすのが良さそう。
最後に
OpenAIで KT0913でラジオを自作する女の子のイラストを書いてみた。