趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。※サイト移転しました(tomono.eleho.net ⇒ tomono.tokyo)
RSS icon
  • 最小限のArduino

    投稿日 2011年 7月 28日 コメントはありません

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

    で、よくよく考えてみると、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信号でのリセットがかからないようです・・・(涙)

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


    コメントをどうぞ(日本語のみ/Only in Japanese)

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