AVRDUDE µC-Kompatibilität (A und PA Typen)

Gast #3606103
Lesenswert?

Hallo!
Ich verwende bisher die Mikrocontroller "Standard"-Typen von Atmel. In 
Zukunft würde ich gern A-Typen (ATmega 8A, etc.) bzw. die 
Picopower-Serie (ATmega 48PA, etc.) einsetzten.

Kennt jemand eine gute Anleitung wie man die neuen Atmel-Typen in der 
avrdude.conf korrekt ergänzt? Oder ist jemand im Besitz einer 
aktualisierten avrdude.conf?
Moderator Persönliche Seite #3606495
Lesenswert?

Falk Brunner schrieb:
> Die unterscheiden sich doch meist nur im ID code.

Wenn überhaupt.

> Also A-Typen in der
> config kopieren, Name und ID ändern, fertig.

Ab AVRDUDE Version 6 noch einfacher: simpel eine Bezugnahme machen,
das Kopieren erfolgt dann intern.  (Beispiele dafür gibts's genug im
mitgelieferten avrdude.conf.)

Wäre nett, wenn mal jemand einen Patch mit allen gängigen A-Typen
erstellen würde.
Moderator Persönliche Seite #3607837
Lesenswert?

Peter Dannegger schrieb:
> IMHO kann man die ohne A nicht von denen mit A unterscheiden, da die
> Signatur gleich ist.

Mir ist so, als gäbe es auch von dieser Regel mal wieder irgendwo
die berühmte Ausnahme.

Nichtsdestoweniger wäre ich für einen entsprechenden Patch dankbar,
denn es schafft weniger Verwirrung, wenn die Leute einen ATtiny2313A
auch als solchen bezeichnen dürfen.
Moderator Persönliche Seite #3607934
Lesenswert?

Tim schrieb:
> Gilt das gleiche auch für die Picopower-Typen?

Programmierkompatibel zu den nicht-P-Typen dürften die allesamt sein
(höchstens zwischen ATmega644 und ATmega644P würde ich hier ggf.
Unterschiede erwarten, denn beide sind sehr verschieden entstanden),
allerdings haben die P-Typen generell eine andere Signature als die
nicht-P-Typen.
Gast #3646890
Lesenswert?

Ich habe es mal andersrum gemacht:
erst das Problem mit meinem ATMEGA48PA selbst gelöst (mit Suchmaschine) 
und dann erst hier nachgesehen. :) stolz

die AVRDUDE.CONF habe ich mit folgendem Eintrag ergänzt.
1
    #------------------------------------------------------------
2
    # ATmega48pa
3
    #------------------------------------------------------------
4

5
    part
6
        id               = "m48pa";
7
        desc             = "ATMEGA48PA";
8
         has_debugwire = yes;
9
         flash_instr   = 0xB6, 0x01, 0x11;
10
         eeprom_instr  = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
11
                         0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
12
                         0x99, 0xF9, 0xBB, 0xAF;
13
        stk500_devcode   = 0x59;
14
        signature        = 0x1e 0x92 0x0a;
15
        pagel            = 0xd7;
16
        bs2              = 0xc2;
17
        chip_erase_delay = 45000;
18
        pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
19
                           "x x x x  x x x x    x x x x  x x x x";
20

21
        chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x",
22
                           "x x x x  x x x x    x x x x  x x x x";
23

24
        timeout             = 200;
25
        stabdelay           = 100;
26
        cmdexedelay         = 25;
27
        synchloops          = 32;
28
        bytedelay           = 0;
29
        pollindex           = 3;
30
        pollvalue           = 0x53;
31
        predelay            = 1;
32
        postdelay           = 1;
33
        pollmethod          = 1;
34

35
        pp_controlstack     =
36
            0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
37
            0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
38
            0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
39
            0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
40
        hventerstabdelay    = 100;
41
        progmodedelay       = 0;
42
        latchcycles         = 5;
43
        togglevtg           = 1;
44
        poweroffdelay       = 15;
45
        resetdelayms        = 1;
46
        resetdelayus        = 0;
47
        hvleavestabdelay    = 15;
48
        resetdelay          = 15;
49
        chiperasepulsewidth = 0;
50
        chiperasepolltimeout = 10;
51
        programfusepulsewidth = 0;
52
        programfusepolltimeout = 5;
53
        programlockpulsewidth = 0;
54
        programlockpolltimeout = 5;
55

56
        memory "eeprom"
57
            paged           = no;
58
            page_size       = 4;
59
            size            = 256;
60
            min_write_delay = 3600;
61
            max_write_delay = 3600;
62
            readback_p1     = 0xff;
63
            readback_p2     = 0xff;
64
            read            = "  1   0   1   0      0   0   0   0",
65
                              "  0   0   0   x      x   x   x   x",
66
                              " a7  a6  a5  a4     a3  a2  a1  a0",
67
                              "  o   o   o   o      o   o   o   o";
68

69
            write           = "  1   1   0   0      0   0   0   0",
70
                              "  0   0   0   x      x   x   x   x",
71
                              " a7  a6  a5  a4     a3  a2  a1  a0",
72
                              "  i   i   i   i      i   i   i   i";
73

74
            loadpage_lo     = "  1   1   0   0      0   0   0   1",
75
                              "  0   0   0   0      0   0   0   0",
76
                              "  0   0   0   0      0   0  a1  a0",
77
                              "  i   i   i   i      i   i   i   i";
78

79
            writepage       = "  1   1   0   0      0   0   1   0",
80
                              "  0   0   x   x      x   x   x   x",
81
                              " a7  a6  a5  a4     a3  a2   0   0",
82
                              "  x   x   x   x      x   x   x   x";
83

84
            mode            = 0x41;
85
            delay           = 20;
86
            blocksize       = 4;
87
            readsize        = 256;
88
          ;
89
        memory "flash"
90
            paged           = yes;
91
            size            = 4096;
92
            page_size       = 64;
93
            num_pages       = 64;
94
            min_write_delay = 4500;
95
            max_write_delay = 4500;
96
            readback_p1     = 0x00;
97
            readback_p2     = 0x00;
98
            read_lo         = "  0   0   1   0    0   0   0   0",
99
                              "  0   0   0   0    0 a10  a9  a8",
100
                              " a7  a6  a5  a4   a3  a2  a1  a0",
101
                              "  o   o   o   o    o   o   o   o";
102

103
            read_hi         = "  0   0   1   0    1   0   0   0",
104
                              "  0   0   0   0    0 a10  a9  a8",
105
                              " a7  a6  a5  a4   a3  a2  a1  a0",
106
                              "  o   o   o   o    o   o   o   o";
107

108
            loadpage_lo     = "  0   1   0   0      0   0   0   0",
109
                              "  0   0   0   x      x   x   x   x",
110
                              "  x   x   x  a4     a3  a2  a1  a0",
111
                              "  i   i   i   i      i   i   i   i";
112

113
            loadpage_hi     = "  0   1   0   0      1   0   0   0",
114
                              "  0   0   0   x      x   x   x   x",
115
                              "  x   x   x  a4     a3  a2  a1  a0",
116
                              "  i   i   i   i      i   i   i   i";
117

118
            writepage       = "  0   1   0   0      1   1   0   0",
119
                              "  0   0   0   0      0 a10  a9  a8",
120
                              " a7  a6  a5   x      x   x   x   x",
121
                              "  x   x   x   x      x   x   x   x";
122

123
            mode            = 0x41;
124
            delay           = 6;
125
            blocksize       = 64;
126
            readsize        = 256;
127
          ;
128

129
        memory "lfuse"
130
            size            = 1;
131
            min_write_delay = 4500;
132
            max_write_delay = 4500;
133
            read            = "0 1 0 1  0 0 0 0   0 0 0 0  0 0 0 0",
134
                              "x x x x  x x x x   o o o o  o o o o";
135

136
            write           = "1 0 1 0  1 1 0 0   1 0 1 0  0 0 0 0",
137
                              "x x x x  x x x x   i i i i  i i i i";
138
          ;
139

140
        memory "hfuse"
141
            size            = 1;
142
            min_write_delay = 4500;
143
            max_write_delay = 4500;
144
            read            = "0 1 0 1  1 0 0 0   0 0 0 0  1 0 0 0",
145
                              "x x x x  x x x x   o o o o  o o o o";
146

147
            write           = "1 0 1 0  1 1 0 0   1 0 1 0  1 0 0 0",
148
                              "x x x x  x x x x   i i i i  i i i i";
149
          ;
150

151
        memory "efuse"
152
            size            = 1;
153
            min_write_delay = 4500;
154
            max_write_delay = 4500;
155
            read            = "0 1 0 1  0 0 0 0   0 0 0 0  1 0 0 0",
156
                              "x x x x  x x x x   x x x x  x x x o";
157

158
            write           = "1 0 1 0  1 1 0 0   1 0 1 0  0 1 0 0",
159
                              "x x x x  x x x x   x x x x  x x x i";
160
          ;
161

162
        memory "lock"
163
            size            = 1;
164
            min_write_delay = 4500;
165
            max_write_delay = 4500;
166
            read            = "0 1 0 1  1 0 0 0   0 0 0 0  0 0 0 0",
167
                              "x x x x  x x x x   x x o o  o o o o";
168

169
            write           = "1 0 1 0  1 1 0 0   1 1 1 x  x x x x",
170
                              "x x x x  x x x x   1 1 i i  i i i i";
171
          ;
172

173
        memory "calibration"
174
            size            = 1;
175
            read            = "0  0  1  1   1  0  0  0   0  0  0  x   x  x  x  x",
176
                              "0  0  0  0   0  0  0  0   o  o  o  o   o  o  o  o";
177
          ;
178

179
        memory "signature"
180
            size            = 3;
181
            read            = "0  0  1  1   0  0  0  0   0  0  0  x   x  x  x  x",
182
                              "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
183
          ;
184
      ;

EDIT: Oh ganz schön lang für inline. Nächstes Mal als Anhang, 
versprochen ;)

Diesen habe ich hier gefunden:
http://www.raspberrypi.org/forums/viewtopic.php?f=96&t=61901#

Wie kann ich
>Ab AVRDUDE Version 6 noch einfacher: simpel eine Bezugnahme machen,
? Dann könnte man bei anderen Typen das selbst lösen, wenn die sich NUR 
in der Bezeichung und in der DEVICE-ID unterscheiden.

Axelr.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren