Si4735 ラジオモジュールのプログラミングその1

ラジオモジュールのプログラミング開始です。今回はお手軽 Arduino ではなく、普通の AtmelStudio6 で開発を行ないます。ちょっと久しぶりだったので思い出すのに時間かかったよ。

とにかく、LCD に文字が出ないと話しにならないので I2C バスの送信部分(エラー処理無視)のクラスを作成。見た目は Arduino IDE の Wire ライブラリと同じメソッド名で実装。と言ってもコンストラクタ、begin(), beginTransmission(), endTransmission() を書いただけです。

で、ブレッドボードの ATMEGA328P に書き込みしますが、このときフューズビットの CKDIV8 のチェックを外して内蔵CR発振器の分周はしないようにし、8MHz のクロックで動くようにしています。電圧も3.2V と表示されているので大丈夫です。

ということで、お決まりの Hello World を液晶表示して出るか確認し表示されました。早速出てきた問題点は

  • テスト LED を点けたり消したりするだけで、液晶のコントラストが微妙にかわる(ものすごいセンシティブ)
  • I2C バスを抵抗でプルアップして動いた(内蔵プルアップで動くはずが…) ちょっと調べないと駄目かな。

今後は I2C の読み込みルーチン作成です。これが無いとラジオモジュールのステータス読めないのでコーディングします。それと液晶が HD44780 互換のコマンド体系なので、必要最低限のコマンドをクラス化するあたりかなと

Si4735 ラジオモジュール構成検討中

先日入手した Si4735 ラジオモジュールですが、どういう構成にするか成行でブレッドボードにはめて行きました。まずは各モジュールを初期化して固定値でもなんでもいいので動くことを確認するのが先のため、まだタクトスイッチなどは接続していません。で、部品取り付けつつなんとなくまとまったのは

  • 3.3V 動作(液晶の動作電圧狭いけど、電池もいけるか確認)
  • Si4735 と液晶の電源は AVR マイコンの IO ピン制御で供給出来るかやってみる
  • ↑ が OK なら AVR マイコンの Power Down モードを使用してみる

という項目をまず確認したいです。PORTC の 27,28ピン。I2C で使うときにプルアップ出来れば言うことなしですがデータシート見ないと。これが確認出来れば基本の接続は問題ないので後はスイッチ増やしてそれっぽく仕上げていく感じかなぁと

データシートには、PORTC の I2C で使うピンはプルアップ出来ると書いてあったので、外付け抵抗なしでやってみましょう。