ワンチップArduinoのブートローダ書き込み機 と 「COMポート」の認識 [Arduino]
こんにちは
元ネタは http://www.geocities.co.jp/orion_cosmo/boot.html のからです。
ワンチップArduinoのブートローダ書き込み機の書き込み機を作ろうと、
(安いチップだけをを好きな基盤に移せるので便利です)
AE-UM232R をPCに認識させようとしたんですが「USB シリアルコントローラ」
は認識するんですが、「COMポート」を認識しません。
スタート 設定 コントロールパネル ハードウエアの追加 から入れようとしても、
うまく設定できません。
--------------------------------
しばらくあきらめて、FT232RLを使う別の基盤を組み立て、使ってみるとちゃんと認識します。
これを使ってD2XXダイレクトドライバーでブートローダを書き込みました。
FT232RLチップなんですが FT245R と表示されて進行します。
途中、パスが違うとかいろいろ失敗をしながら最後は書き込めました。
C:\に「arduino-1.0.2」 と
「avrdude-serjtag04n」 を移して 「C:\avrdude-serjtag04n\bin」 の下に
BOOTATmega328P.bat
「@echo off
echo # チップを消去します #
pause
cd C:\avrdude-serjtag04n\bin
avrdude.exe -c diecimila -P ft0 -p m328p -B 4800 -e
echo # フューズビットをセットします #
pause
cd C:\avrdude-serjtag04n\bin
avrdude.exe -c diecimila -P ft0 -p m328p -B 4800 -U efuse:w:0x05:m -U hfuse:w:0xDA:m -U lfuse:w:0xCF:m
echo # ブートローダーを書き込みます #
pause
cd C:\avrdude-serjtag04n\bin
avrdude.exe -c diecimila -P ft0 -p m328p -D -U flash:w:"C:\arduino-1.0.2\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex":a
echo # ロックビットをセットします #
pause
cd C:\avrdude-serjtag04n\bin
avrdude.exe -c diecimila -P ft0 -p m328p -U lock:w:0x0F:m
echo # 終了します #
pause」
Arduino ブートローダ書き込みと Arduini IDE スケッチの使い方をまとめてみました。
「ワンチップArduino は Arduino UNO ATMega328P などを搭載、
「ワンチップArduinoブートローダの起動書き込み」
C:\XXXX\BOOTATmega328P.bat へ を起動して、
C:\avrdude-serjtag04n\bin から ブートローダを書き込む。
「Arduino IDEの起動」
C:\arduino-1.0.2\arduino.exe が Arduino IDE の本体、
これを起動して、
「Arduino IDEの設定」
ツール マイコンボード Arduino UNO を選択。
ツール シリアルポート (今回は COM4)を選択設定。
ツール 書き込み装置の選択 (USBtynuISP または、USBasp)
何も選択しなかったら
「avrdude: stk500_getsync(): not in sync: resp=0x00」
と表示されました。
IDE の ツール ブートローダの書き込みは使えません。。
「スケッチの読み込み や スケッチの作成」
C:\arduino-1.0.2\examples\01.Basics\Blink のスケッチ
Blink.ino を ファイル 開く で読み込ませる。
または スケッチブックの例 01.Basic Blink を選択する。
「スケッチのコンパイル書き込み」
ファイル下 の 右矢印を押す。
コンパイルが始まり、書き込みが行われ、
成功すれば、「マイコンボードの書き込みが完了しました。」
と表示されます。」
--------------------------------
AE-UM232R を使った場合の不具合は
MPROGを立ち上げて内容を見ようとしたら、もう無くて、「FTD2XXST.EXE」 に変わっていました。
新型は使いからが判らず少しはさわってみたのですがよくわからず直りません。
「USB シリアルコントローラ」のドライバの内容をよく見ると「COMポート」同じで、
詳細設定に 「VCPをロードする」というチェック項目があり はずれていたので、チェックをして差しなおしますと、「COMポート」を認識してくれました。
確か以前はこんな設定は見なかった気がするんですが 、デュアルコアにしたせいか、WINXP-SP2をSP3にしたせいなのか、あるいは見落としていたんですね。
今度のPCになってからファイルの削除がよく失敗するのですが、調べてみると、
ダウンロードした、圧縮ファイルが幻を見せてくれるようで、
ダウンロードした圧縮元ファイルを削除すると消えてくれます。
ほかには、FT245RLを差したらFT245Rをまず認識し、 USBシリアルコントローラとして認識し、
更に、COMポートとしても認識します。
FT245RLはどこに行ってしまったんでしょうね。
ではまた
追伸 この Arduino には SDカード と WIZ820IO(イーサネットをつなぎますが)
両方とも SPI接続で チップセレクトをSDカードはd2(pd2) と WIZ820IOはxtal(pb7) にします。
LCDは I2C なんですが 持っていないので 本来 a4,a5 の所を、HD44780 互換の 標準の LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); から
LiquidCrystal(rs, enable, a2, a3, d3, d4, d8, d10) に変更するつもりですが、こんなにバラバラでも動作するか心配です。
今回は
VS1053bギミック基板 完成品 2060円
VS1053bギミック基板 380円
SPI SRAM 23K256-E/SN 280円
インターネットラジオメイン基板 380円
ワンチップArduino作成用ブートローダー&スケッチライタ(完成版)980円
ワンチップArduino作成用ブートローダー&スケッチライタ 380円
AE-UM232R 950円
と随分高く付いてしまった、それに20曲しか選択できないが、Arduino を使っているので、操作の仕方を変えられるので仕方がないか?
主要部品のアクセスが SRAM, SDカード、MP3デコーダ、WIZ820IO SPIなので、
LCDもそれが使えれば良かったのだけれども、これはI2Cしかないようだ。
(MIKROCで組んでみたら16f628aでも出来るし、74HC590なんかのシフトレジスタだけで実現できるのに、販売されていないようです)
とても魅力的な記事でした!!
また遊びに来ます!!
ありがとうございます。。
by 志望動機の例文 (2012-12-25 15:18)
>LiquidCrystal(rs, enable, a2, a3, d3, d4, d8, d10) に変更するつもりですが、こんなにバラバラでも動作するか心配です。
全然意味がわかりません。ライブラリの構文を理解していますか?
rsもenableも実際のポートに接続しなければなりません。define文が書かれていないのでわからないんですが、どのポートを指定するんでしょうか?
そのあとのa2~d10ですが、なんで6個なんでしょうか?LCDは4線式制御か8線式制御なのでデータポートの指定は4個か8個のいずれかです。
リンク先のHPに記載されている内容をよく理解されることをお勧めします。
by とおりすがりの (2013-04-20 06:37)