ATmega328pとUSBaspLoader

前回のATmega328pとV-USBの続きです。USBaspLoaderUSBaspと互換のブートローダーです。これがあれば自作のUSB機器をライター無しで書き込むことができます。USBaspと互換があるおかげでavrdude等のUSBaspに対応したソフトウエアがそのまま使えます。

しかし、やっぱりATmega328pで使うときには、はまりポイントがあります。まず一つ目はATmega328pとV-USBで取り上げたリセットベクタの話が一つ。次にヒューズビットの話です。ATmega88pやATmega168pとかと同じだろうと踏んでいたら違いました。それもブートローダーの設定の部分と低電圧リセットの3bit分が入れ替わっています。参考までに私のマイコンのフューズビットの設定を以下に示します。

Low  11010111
High 11010000
Ext -----000

この設定ではブートローダーに4kBを割り当てています。それに合わせてMakefileでBOOTLOADER_ADDRESS = 7000と直しておきましょう。7000という数字はブートローダー領域の開始アドレスです。データシートには3800と書いてありますが、ちょうどこの二倍になります。いずれも16進数ですので注意してください。

私はこのあとせっかくある4kBの領域をいかしてブートローダーモードではLCDにその旨を表示するようにしました。そのままだと、どの状態にあるのか分かりづらいですからね。しかし、SPI通信のオーバーヘッドがない分、高速でいいですね。

by Y.O

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です