Skip to main content

avrdude に atmega48p の設定を追加する

avrdude version 5.11.1 には atmega48p の設定がない。
故に書き込もうとするとシグネチャが Atmega48 と合わずにエラーとなり、書き込めない。

avrdude: Device signature = 0x1e920a
avrdude: Expected signature for ATMEGA48 is 1E 92 05
         Double check chip, or use -F to override this check.


これは単にデバイスシグネチャが異なるだけなのだが(機能的には同じ、消費電力が異なる) 、atmega88 は 88p も書き込めるのに、なんで 48 だけなの、と思っているひとは大勢居た。
http://electronics.stackexchange.com/questions/3721/avrdude-and-atmega48pa

簡単に言うと、avrdude.conf の

#---------------------------------
# Atmega48
#---------------------------------
....
 をコピーして  Atmega48pの設定を作り、signature のみ書き換えましょう。ということです。(上記サイトでは atmega48pa となってます)

#---------------------------------
# Atmega48P
#---------------------------------
part
    id               = "m48p";
    desc             = "ATMEGA48P";
     has_debugwire = yes;
     flash_instr   = 0xB6, 0x01, 0x11;
     eeprom_instr  = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
                     0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
                     0x99, 0xF9, 0xBB, 0xAF;
    stk500_devcode   = 0x59;
    signature        = 0x1e 0x92 0x0a;
.... 
 

Comments

Popular posts from this blog

Algorithmic C Datatypes 0

Mentor Graphics がリリースしている、任意ビット長、固定小数点等を扱うための class-based C++ library が良い。C++ のテンプレートクラスで設計されており、ヘッダファイルのみのインクルードで使える非常に汎用性が高い構造。もちろん Catapult C 以外で使用できる。 ・Overflow/Precision などのアサートなどに加え、ユーザー独自アサートなどを定義できる ・SystemC より断然早い sc_bigint(x100!!!)/sc_int(x3) http://www.mentor.com/esl/catapult/algorithmic

間接層

間接層を入れる事は複雑化ではない。 間接層は理解を助けるものだと思う。 例えば、鉛筆でものを書く時、炭素が・・・とか木の繊維が・・・とか素材レベルまで意識する事は無いだろう(勿論、意識する人はいるしそれはすばらしいことだと思う)。 それは鉛筆という間接層が素材と自分の間に居てくれるから、自分は詳細を意識せずともものを書くという目的を達せられる。 確かに、使いづらい道具や歪な形をしたものがあったりする。それでも間接層に躊躇してはいいものが出来ないと思う。 何度も作るうちに、いい形になる。作らないといい形にさえならない。 > ソフトウェアとは間接層を入れる事で柔軟さを実現する だったか?(「リファクタリング」より) あくまでコンテキストによる。それが大前提です。 解析用スクリプト等では、敢えてベタ書きにしたりする。