最小限のArduino

実験するのに段々基板を準備するのが面倒くさくなってきました(おい)。

で、よくよく考えてみると、8MHzのArduino(つまり、3.3V版)としてブートローダを焼いて、その後ヒューズビットを内蔵8MHzオシレータ利用、分周なしに設定すればリセット周りの外付け部品(10kΩの抵抗と0.1uFのコンデンサ)とパスコンだけで動作するのではないかと考えました。

  1. ボードの準備
    ブレッドボードにATmega328pをセットし、電源とAVRISP mkIIを接続します。クリスタルの端子には8MHzのセラミック発振子をつないでおきます。
  2. ブートローダの書き込み
    Arduino IDEを起動して「Board」で「Arduino Pro or Pro mini (3.3V,8MHz) w/ ATmega328」を選択し、「Burn Bootloader」で、「AVRISP mkII」を選択します。すぐにブートローダの書き込みが終わります。
  3. 動作確認
    19pinにLEDを接続して、ExampleのBLINKを選択し、コンパイル&書き込みを行います。LEDがチカチカすればOK。
  4. avrdudeでヒューズビットを確認
    「# sudo avrdude -c avrisp2 -p m328p -P usb -t」としてターミナルモードを起動
    EFUSE=0x05、HFUSE=0xda、LFUSE=0xffとなっていました。LFUSEの値から、8~16MHzのクリスタル設定になっています。
  5. 発振回路設定の変更
    内蔵RC発振回路とするため、CKSEL=0010、SUT=10に変更します。つまり LHUSE=0xe2 に変更します。
    「>>> w lfuse 0 0xe2」としてヒューズビットを書き込みます。
  6. セラミック発振子を外す
    セラミック発振子を外した状態でプログラムのダウンロード・実行ができればOK・・・のところですが、DTR信号でのリセットがかからないようです・・・(涙)

もう少し調べてみる必要がありそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)