「激安Arduinoの作り方2」の編集履歴(バックアップ)一覧はこちら
「激安Arduinoの作り方2」(2009/11/01 (日) 12:19:04) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
秋月でmega328Pが250円だ。2台目からは自作で安く済ませる作戦。
そのうちmega644Pもarduino化したい。
1台目は完成品をオススメします。
激安Arduinoの作り方1→http://www15.atwiki.jp/arduino/pages/35.html
#contents()
*材料
**AVR mega328P
http://akizukidenshi.com/catalog/c/catmega/
-mega168P 230円 http://akizukidenshi.com/catalog/g/gI-03033/ (2009/10/7)
-mega328P 250円 http://akizukidenshi.com/catalog/g/gI-03142/ (2009/10/7)
**FT232RL USBシリアル変換モジュール 950円
http://akizukidenshi.com/catalog/g/gK-01977/
-ブートローダを焼くためのAVRライタとして使う
-その後はarduino書き込み用アダプタとして使う(DTRで自動リセット)
-デバッグ用のシリアル通信アダプタとして使う
Duemilanoveを改造して使うこともできるんだけど何かと不便なので1個ほしい。
**参考)
http://www15.atwiki.jp/arduino/pages/23.html
***ドライバ
http://www.ftdichip.com/Products/FT232R.htm
VCPとD2XXの2種類あり、両方インストールします。
**ブレッドボード&配線材
http://akizukidenshi.com/catalog/c/cbread/
2個目以降の完成品用としては http://akizukidenshi.com/catalog/g/gP-00315/ これがおすすめ。
**Arduino 017
**オプション
-パスコン
-リセット用コンデンサ
*FT232RL+ブレッドボードでブートローダを焼く
http://www.geocities.jp/arduino_diecimila/avr-writer/index.html
配線はこの通り。
**bootloaderを作る
8MHz内蔵RC発振の設定。
#highlight(){{
# /Applications/Arduino.app/Contents/Resources/Java/hardware/bootloaders/atmega/Makefile
# =======================================================================
# mega328p_default_fuse: [l:62,h:D9,e:7]
# (mega328p 1MHz RC)
# FUSE: -e -U lfuse:w:0xE2:m -U hfuse:w:0xDA:m -U efuse:w:0x07:m
atmega328p_8MHzRC: TARGET = atmega328p_8MHzRC
atmega328p_8MHzRC: MCU_TARGET = atmega328p
atmega328p_8MHzRC: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=19200 -DDOUBLE_SPEED
atmega328p_8MHzRC: AVR_FREQ = 8000000L
atmega328p_8MHzRC: LDSECTION = --section-start=.text=0x7800
atmega328p_8MHzRC: $(PROGRAM)_atmega328p_8MHzRC.hex
#/Applications/Arduino.app/Contents/Resources/Java/hardware/boards.txt
atmega328p_8MHzRC.name=Arduino ATmega328P_8MHzRC
atmega328p_8MHzRC.upload.protocol=stk500
atmega328p_8MHzRC.upload.maximum_size=30720
atmega328p_8MHzRC.upload.speed=19200
atmega328p_8MHzRC.build.mcu=atmega328p
atmega328p_8MHzRC.build.f_cpu=8000000L
atmega328p_8MHzRC.build.core=arduino
# ----
$ cd /Applications/Arduino.app/Contents/Resources/Java/hardware/bootloaders/atmega
$ rm ATmegaBOOT_168_atmega328p_8MHzRC.hex; make atmega328p_8MHzRC
$ sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext
$ ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m328p ¥
-vv -B 4800 -e -U lfuse:w:0xE2:m -U hfuse:w:0xDA:m -U efuse:w:0x07:m
$ ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m328p ¥
-vv -U flash:w:ATmegaBOOT_168_atmega328p_8MHzRC.hex:i
$ sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext
}}
**自動リセット回路
FT232RLのDTR----0.1uF(104)----RESET
と接続すればArduino IDEからスケッチをアップロードするときに自動リセットがかかる。
**参考URL
http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?cmd=read&page=AVR%2Fnews47&word=AVR%2Fnews47#c0eb69cb
http://hp.vector.co.jp/authors/VA000177/html/2009-10.html
http://hp.vector.co.jp/authors/VA000177/html/ATmega328PA4CEfuse.html
http://d.hatena.ne.jp/OGURAM/20091020#1256000038
http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf
**Duemilanoveのソケットに生チップを刺して書き込み
todo
**FT232RLで書き込み
todo
秋月でmega328Pが250円だ。2台目からは自作で安く済ませる作戦。
1台目のarduinoは持っていて2台目に3000円出したくない。
生AVRを買ってきて完成品にarduinoを埋め込む方法。
macです。
1台目は完成品をオススメします。
http://www.switch-science.com/products/detail.php?product_id=3
やっぱりDuemilanoveが無難。
激安Arduinoの作り方1→http://www15.atwiki.jp/arduino/pages/35.html
#contents()
*材料
**AVR mega328P
http://akizukidenshi.com/catalog/c/catmega/
-mega328P 250円 http://akizukidenshi.com/catalog/g/gI-03142/
mega8=200円、88p=250円、168p=230円なので328pで良いと思う。(価格は2009/11/1現在)
**FT232RL USBシリアル変換モジュール 950円
http://akizukidenshi.com/catalog/g/gK-01977/
-ブートローダを焼くためのAVRライタとして使う
-その後はarduino書き込み用アダプタとして使う(DTRで自動リセット)
-デバッグ用のシリアル通信アダプタとして使う
Duemilanoveを改造して使うこともできるんだけど何かと不便なので1個ほしい。
***ジャンパ(todo)
-J1 3ピンの方
外側2つをショートしてる。意味は(todo)
-J2 2ピンの方
USBから電源供給する→ショート
USBから電源供給しない→はずす(1ピンだけにつけとくとなくさない)
***ドライバ
http://www.ftdichip.com/Products/FT232R.htm
VCPとD2XXの2種類あり、両方インストールします。
-ブートローダ書き込み、fuse書き込み等、AVRライタとして使うとき
VCPを無効にしてD2XXを使います。
-arduinoスケッチのアップロード、デバッグ用シリアル通信アダプタとして使うとき
VCPを有効にしてVCPを使います。
/dev/tty.usbserial-A9005bvIの様な名前の普通のシリアルポートです。
使い方の詳細→ BitBang Mode AVR-Writer on Mac http://www15.atwiki.jp/arduino/pages/23.html
**ブレッドボード&配線材
http://akizukidenshi.com/catalog/c/cbread/
最低この大きさのが必要。
http://akizukidenshi.com/catalog/g/gP-00285/
完成品は超小規模でユニバーサル基板にするのも面倒な場合、これも良いです。
http://akizukidenshi.com/catalog/g/gP-00315/
**Arduino 017
**オプション
-パスコン
-リセット用コンデンサ
*FT232RL+ブレッドボードでブートローダを焼く
http://www.geocities.jp/arduino_diecimila/avr-writer/index.html
配線はこの通り。
**bootloaderのバージョン
-1MHz RC : 省電力
-8MHz RC : 普通
-16MHz XTAL : Arduino標準
3パターンあればいいかな。
(todo 1MHz版は必要か?消費電力/電池の持ち時間がどれぐらい違うのか。むしろもっと遅いクロックのバージョンがいい?)
**bootloaderを作る
8MHz内蔵RC発振の設定。
#highlight(){{
# /Applications/Arduino.app/Contents/Resources/Java/hardware/bootloaders/atmega/Makefile
# =======================================================================
# mega328p_default_fuse: [l:62,h:D9,e:7]
# (mega328p 8MHz RC)
# FUSE: -e -U lfuse:w:0xE2:m -U hfuse:w:0xDA:m -U efuse:w:0x07:m
atmega328p_8MHzRC: TARGET = atmega328p_8MHzRC
atmega328p_8MHzRC: MCU_TARGET = atmega328p
atmega328p_8MHzRC: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=19200 -DDOUBLE_SPEED
atmega328p_8MHzRC: AVR_FREQ = 8000000L
atmega328p_8MHzRC: LDSECTION = --section-start=.text=0x7800
atmega328p_8MHzRC: $(PROGRAM)_atmega328p_8MHzRC.hex
#/Applications/Arduino.app/Contents/Resources/Java/hardware/boards.txt
atmega328p_8MHzRC.name=Arduino ATmega328P_8MHzRC
atmega328p_8MHzRC.upload.protocol=stk500
atmega328p_8MHzRC.upload.maximum_size=30720
atmega328p_8MHzRC.upload.speed=19200
atmega328p_8MHzRC.build.mcu=atmega328p
atmega328p_8MHzRC.build.f_cpu=8000000L
atmega328p_8MHzRC.build.core=arduino
# ----
$ cd /Applications/Arduino.app/Contents/Resources/Java/hardware/bootloaders/atmega
$ rm ATmegaBOOT_168_atmega328p_8MHzRC.hex; make atmega328p_8MHzRC
$ sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext
$ ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m328p ¥
-vv -B 4800 -e -U lfuse:w:0xE2:m -U hfuse:w:0xDA:m -U efuse:w:0x07:m
$ ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude -C ~/tmp/mac_bitbang/avrdude-5.3.1/avrdude.conf -c diecimila -p m328p ¥
-vv -U flash:w:ATmegaBOOT_168_atmega328p_8MHzRC.hex:i
$ sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext
}}
不安定な場合、MAX_TIME_COUNTを調整する必要があるかもしれない
→http://hp.vector.co.jp/authors/VA000177/html/ATmega328PA4CEfuse.html
BAUD_RATEは57600だと安定しなかった(8MHz RC)
[[AVRの仕様メモ]]
**スケッチ転送
-ArduinoIDEでBlinkをひらく。
- Tools -> Board でデバイス選択。
- Tools -> Serial Port でシリアルポートを選択。
- 転送ボタンを押す。
- 上手いタイミングでリセットをかける。(AVRの1ピンとGNDをちょこんとショートさせる。)
**自動リセット回路
FT232RLのDTR----0.1uF(104)----RESET
と接続すればArduino IDEからスケッチをアップロードするときに自動リセットがかかる。
(タイミングと運が良ければ。)
*参考URL
fuseが168と328で入れ替わっている件、リセット祭の件が地雷です。
http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?cmd=read&page=AVR%2Fnews47&word=AVR%2Fnews47#c0eb69cb
http://hp.vector.co.jp/authors/VA000177/html/2009-10.html#q30cd42c
http://hp.vector.co.jp/authors/VA000177/html/ATmega328PA4CEfuse.html
http://d.hatena.ne.jp/OGURAM/20091020#1256000038
http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf
http://d.hatena.ne.jp/pcm1723/20090823/1251042624