激安Arduinoの作り方

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

color激安Arduinoの作り方2http://www15.atwiki.jp/arduino/pages/56.html


mega88 or mega88Pでarduinoを作ります。
そのうちmega8やmega644もarduino化したい。



材料

Arduino Duemilanove

母艦として。

AVR mega88 or mega88P


小さいブレッドボード&配線材&LED


Arduino 015


mega88を登録する

(todo)

ブートローダの準備

ブートローダのソースコード編集

(todo)

ブートローダをビルドする

(todo)

ブートローダを焼く

Duemilanoveとmega88のピンの対応


Duemilanove mega88
D0(RX) 2
D1(TX) 3
D2 4
D3 PWM 5
D4 6
D5 PWM 11
D6 PWM 12
D7 13
----------- -----
D8 14
D9 15
D10 16
D11 17(MOSI)
D12 18(MISO)
D13 LED 19(SCK)
GND 8,22
AREF 21
----------- -----
A0 23
A1 24
A2 25
A3 26
A4 27
A5 28
----------- -----
RESET 1
3V3 ---
5V 7,20
GND GND
GND GND
----------- -----
(XTAL1) 9
(XTAL2) 10

ブレッドボード&mega88とDuemilanoveの接続の手順

  1. ブレッドボードにmega88をさす
  2. Vccラインとarduinoの5Vを接続
  3. GNDラインとarduinoのGNDを接続
  4. pin7とVccを接続
  5. pin22とGNDを接続
  6. pin22とpin8を接続(チップを乗り越える)
  7. pin20とpin7を接続(チップを乗り越える)
  8. pin18とarduinoのX3:1
  9. pin19とarduinoのX3:2
  10. pin17とarduinoのX3:3
  11. pin1とarduinoのX3:4

ブートローダを焼く


mega88

(チップ消去)
~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \
    -e
(fuse書き込み[L:E2,H:DD,E:00])
~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \
    -U lfuse:w:0xE2:m -U hfuse:w:0xDD:m -U efuse:w:0x00:m
(ブートローダ書き込み)
~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \
    -U flash:w:ATmegaBOOT_168_atmega88_8MHz.hex:i
(ブートローダ領域をロック[L:0F])
~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \
    -U lock:w:0x0F:m


mega88p


スケッチを実行する

ブートローダが焼けたら立派な激安Arduino。
あとは、RX,TXにTTLレベルでのシリアル通信すればいい。

シリアル通信の方法

  • USBシリアルケーブル+レベル変換
  • Duemilanoveのシリアル変換チップ
  • UP-12Cを買う
などがある。

DuemilanoveをUSBシリアル変換機として使いたい

ここはなんとかDuemilanoveでやりたい。
Arduinoの開発環境でmega88uinoにアップロードしたい。
それがダメならavrdudeからhexをカキコみたい。

mega88uinoのリセットは手動で我慢するとしても、
シリアルポートを開いたときにDuemilanoveが自動的にリセットしてしまうので
Duemilanove搭載のブートローダが動作してしまう。

auto resetを無効にするには、
  • Duemilanove基板のDTRのパターンを切る→あとで面倒
  • avrdude(かドライバ?)がDTRを使わない/送信しないようにする
  • DTRしないオプションをつける
  • シリアルポートを開いてからDuemilanoveのブートローダの待ち時間分、通信をまったく無視するオプションを付ける
とか。
めんどくさい。UP-12C買った方が良さそうだ。

ブートローダ無しでスケッチを直接書き込む

ブートローダの分、大きなスケッチを書き込むことができる。

mega88

チップの初期化

(チップ消去)
~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \
    -e
(fuse書き込み[L:E2,H:DD,E:01])
~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv -B 4800 \
    -U lfuse:w:0xE2:m -U hfuse:w:0xDD:m -U efuse:w:0x01:m

スケッチをビルド

ArduinoエディタのメニューTools->Board->ATMega88(8MHz)を選択して、転送ボタンを押す。
エラーになるがスケッチのフォルダのappletフォルダのなかに*.hexができている。
これを書き込む。

(プログラム書き込み)
cd applet
~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m88 -vv \
    -U flash:w:Wiki_Hotal.hex:i

Arduino Duemilanoveとの違い

mega168/mega328/mega88P/mega88/mega8/mega644の違い。

プログラムサイズ

メモリ

クロック


参考サイト


TODO

mega8 200円

最終更新:2009年11月01日 11:27
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。