アフィリエイト広告を利用しています
Ad×Ad


Ad×Adは表示されるだけで報酬がもらえます。
以下から登録すると100ptもらえます。
 →  アドアド -あなたの街の無料広告サイト-
検索
最新記事

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2016年06月05日

USB−シリアル変換IC FT232RLを使ったブートローダの書き込み

Aruduino IDE(開発環境)を使用してもISPにてブートローダを書き込めるとのことですが、Aruduino(ハードウエア)をライターとして用意し、ライターソフトも書き込む必要があります。

avrdude(開発環境)は、ターゲット(例えばUncompatino)のATmega328Pに直接ヒューズビットやブートローダを書き込めるとのことです。これは、USB-シリアル変換ICのFT232RLのCTS、DSR、DCD、RIの4つの制御線を以下のようにATmega328Pに接続することによって、ヒューズビットとブートローダを書き込めるようになっているとのことです。
CTS--MISO
DCD--MOSI
DSR--SCK
RI--RESET
+5VとGNDはUSB経由でPCから供給されることが前提。

参考にしたサイトです。
http://engawa.kakaku.com/userbbs/1681/Page=2/SortType=ThreadID/#1681-6
タグ: avrdude

ATmega328P ヒューズビットに設定する値

日本語データシートからヒューズビットの項目P182を抜き出しました。ATmega328Pとしてのヒューズビットの設定値を決定します。

前提条件:USB電源、16MHz水晶発振器、3.3V動作にも対応しておく。水晶発振器の出力は外部に供給しない(全振幅発振器にはしない)。

P182は下記。

拡張ヒューズバイト:

mega88A 182.jpg

BODLEVEL0~2の設定 電源電圧低下検出レベルの設定。 BODLEVELの値の説明についてはP197参照。
P197は下記。電源が+5V固定なら100とすべきだが、+3.3Vで駆動させることは十分想定されるので、101の設定にしておくのが無難と思われる。よって拡張ヒューズバイトは、FDhとする。しかしながら実際にこの値を書いても拡張ヒューズバイトは下3ビットしか自由に書き込めない。上位5ビットは何を書いても0になるので、拡張ヒューズバイトは、05hとする。

mega88A 197.jpg

ヒューズ上位バイト:

RSTDISBLは、PC6はRESETピンとするので1を指定。
DWENは、デバッグのやり方の知識がないのでとりあえず無効として1を指定。
SPIENは、直列プログラミングを許可するので、0を指定。
WDTONは、ウォッチドッグ タイマは常時有効にしないので1を指定。
EESAVEは、チップ消去からEEPROM内容を保護しないので1を指定。
BOOTSZ1,0ブートローダのサイズ指定。ブートローダのファイルサイズで決めるべきものだが、自分ではブートローダを作成しないので、出来合いのもののサイズから、2048ワードとなる01を指定する。
BOOTRSTリセットベクタをブートローダ領域にするかどうかの指定。ブートローダ領域にするので0を指定する。

表27-7は下記。
mega88A 179.jpg

ヒューズ上位バイトは、DAhとする。

ヒューズ下位バイト:

mega88A 183.jpg style=

システムクロックは、16MHz水晶発振器としますのでこれを前提とする。パワーダウンパワーセーブ機能は使用しないことにする。

CKDIV8 システムクロックを8分周するかどうか。分周しないので、1を指定。
CKOUT システムクロックは出力しないので、1を指定。

mega88A 18.jpg

水晶発振器だが、出力を外部に供給しないので全振幅発振器にはしない。よって、表9-3から、CKSEL3〜1 111を指定。
USB電源(電池駆動しない)なので、パワーダウン、パワーセーブ機能は使用しない。表9-4から、CKSEL0は1、SUT1,0は01とする。

ヒューズ下位バイトは、DFhとする。
×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: