Forum: Mikrocontroller und Digitale Elektronik ATtiny167: Erweiterung der avrdude.conf


von Volker U. (volkeru)


Lesenswert?

Moin moin,

der ATtiny167 ist scheinbar (noch) nicht sonderlich beliebt. Vermutlich 
deshalb, weil er nicht in DIL-, sondern nur in SMD-Bauweise (z.B. SO20) 
verfügbar ist.

Trotzdem ist es ein ganz wunderbares Bauteil: So leistungsfähig wie ein 
ATmega, aber so klein und preiswert wie ein ATtiny. Und der einzige tiny 
mit 16k Flash.

gcc unterstützt ihn schon, aber leider nicht avrdude. D.h. man kann zwar 
seine Quellen auf ATtiny167 compilieren, aber danach nicht mit avrdude 
flashen. :-(

Ich habe die avrdude.conf mal entsprechend für den ATtiny167 erweitert, 
so dass man ihn nun auch mit avrdude flashen kann. Hier der 
entsprechende Schnipsel für die avrdude.conf Datei. Viel Spaß damit!

Volker
1
#------------------------------------------------------------
2
# ATtiny167
3
#------------------------------------------------------------
4
5
part
6
     id            = "t167";
7
     desc          = "ATtiny167";
8
     has_debugwire = yes;
9
     flash_instr   = 0xB6, 0x01, 0x11;
10
     eeprom_instr  = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4,
11
               0x00, 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB,
12
               0xBF, 0x99, 0xF9, 0xBB, 0xAF;
13
## no STK500 devcode in XML file, use the ATtiny45 one
14
     stk500_devcode   = 0x14;
15
##  avr910_devcode   = ?;
16
##  Try the AT90S2313 devcode:
17
     avr910_devcode   = 0x20;
18
     signature        = 0x1e 0x94 0x87;
19
     reset            = io;
20
     chip_erase_delay = 1000;
21
22
     pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
23
                        "x x x x  x x x x    x x x x  x x x x";
24
25
     chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x",
26
                        "x x x x  x x x x    x x x x  x x x x";
27
28
    timeout      = 200;
29
    stabdelay    = 100;
30
    cmdexedelay  = 25;
31
    synchloops   = 32;
32
    bytedelay    = 0;
33
    pollindex    = 3;
34
    pollvalue    = 0x53;
35
    predelay     = 1;
36
    postdelay    = 1;
37
    pollmethod   = 0;
38
39
    pp_controlstack     =
40
        0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E,
41
        0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E,
42
        0x06, 0x16, 0x46, 0x56, 0x0A, 0x1A, 0x4A, 0x5A,
43
        0x1E, 0x7C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
44
    hventerstabdelay    = 100;
45
    progmodedelay       = 0;
46
    latchcycles         = 5;
47
    togglevtg           = 1;
48
    poweroffdelay       = 20;
49
    resetdelayms        = 1;
50
    resetdelayus        = 0;
51
    hvleavestabdelay    = 15;
52
    chiperasepulsewidth = 0;
53
    chiperasepolltimeout = 10;
54
    programfusepulsewidth = 0;
55
    programfusepolltimeout = 5;
56
    programlockpulsewidth = 0;
57
    programlockpolltimeout = 5;
58
59
    idr                 = 0x00;
60
    spmcr               = 0x57;
61
    allowfullpagebitstream = no;
62
63
     memory "eeprom"
64
         size            = 512;
65
         paged           = no;
66
         page_size       = 4;
67
         min_write_delay = 4000;
68
         max_write_delay = 4500;
69
         readback_p1     = 0xff;
70
         readback_p2     = 0xff;
71
         read            = "1  0  1  0   0  0  0  0    0 0 x x  x x x a8",
72
                           "a7 a6 a5 a4  a3 a2 a1 a0   o o o o  o o o o";
73
74
         write           = "1  1  0  0   0  0  0  0    0 0 x x  x x x a8",
75
                           "a8 a6 a5 a4  a3 a2 a1 a0   i i i i  i i i i";
76
77
  loadpage_lo  = "  1   1   0   0      0   0   0   1",
78
                 "  0   0   0   0      0   0   0   0",
79
                 "  0   0   0   0      0   0  a1  a0",
80
                 "  i   i   i   i      i   i   i   i";
81
82
  writepage  = "  1   1   0   0      0   0   1   0",
83
               "  0   0   x   x      x   x   x   x",
84
               "  0   0  a5  a4     a3  a2   0   0",
85
               "  x   x   x   x      x   x   x   x";
86
87
  mode       = 0x41;
88
  delay      = 10;
89
  blocksize  = 4;
90
  readsize   = 256;
91
       ;
92
     memory "flash"
93
         paged           = yes;
94
         size            = 16384;
95
         page_size       = 128;
96
         num_pages       = 128;
97
         min_write_delay = 4500;
98
         max_write_delay = 4500;
99
         readback_p1     = 0xff;
100
         readback_p2     = 0xff;
101
         read_lo         = "  0   0   1   0    0   0   0   0",
102
                           "  0   0   0  a12  a11 a10  a9  a8",
103
                           " a7  a6  a5  a4   a3  a2   a1  a0",
104
                           "  o   o   o   o    o   o   o   o";
105
106
         read_hi         = "  0   0   1   0    1   0   0   0",
107
                           "  0   0   0  a12  a11 a10  a9  a8",
108
                           " a7  a6  a5  a4   a3  a2   a1  a0",
109
                           "  o   o   o   o    o   o   o   o";
110
111
         loadpage_lo     = "  0   1   0   0    0   0   0   0",
112
                           "  0   0   0   x    x   x   x   x",
113
                           "  x   x  a5  a4   a3  a2  a1  a0",
114
                           "  i   i   i   i    i   i   i   i";
115
116
         loadpage_hi     = "  0   1   0   0    1   0   0   0",
117
                           "  0   0   0   x    x   x   x   x",
118
                           "  x   x  a5  a4   a3  a2  a1  a0",
119
                           "  i   i   i   i    i   i   i   i";
120
121
         writepage       = "  0  1  0  0   1   1   0  0",
122
                           "  0  0  0  0  a11 a10 a9 a8",
123
                           " a7 a6 a5  x   x  x  x  x",
124
                           "  x  x  x  x   x  x  x  x";
125
126
  mode       = 0x41;
127
  delay      = 10;
128
  blocksize  = 64;
129
  readsize   = 256;
130
       ;
131
#   ATtiny167 has Signature Bytes: 0x1E 0x94 0x87.
132
     memory "signature"
133
         size            = 3;
134
         read            = "0  0  1  1   0  0  0  0   0  0  0  x   x  x  x  x",
135
                           "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
136
       ;
137
138
     memory "lock"
139
         size            = 1;
140
         write           = "1 0 1 0  1 1 0 0  1 1 1 x  x x x x",
141
                           "x x x x  x x x x  x x x x  x x i i";
142
         read            = "0 1 0 1  1 0 0 0  0 0 0 0  0 0 0 0",
143
                           "0 0 0 0  0 0 0 0  o o o o  o o o o";
144
        min_write_delay = 9000;
145
        max_write_delay = 9000;
146
       ;
147
148
     memory "lfuse"
149
         size            = 1;
150
         write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 0 0 0",
151
                           "x x x x  x x x x  i i i i  i i i i";
152
153
         read            = "0 1 0 1  0 0 0 0  0 0 0 0  0 0 0 0",
154
                           "x x x x  x x x x  o o o o  o o o o";
155
        min_write_delay = 9000;
156
        max_write_delay = 9000;
157
       ;
158
159
     memory "hfuse"
160
         size            = 1;
161
         write           = "1 0 1 0  1 1 0 0  1 0 1 0  1 0 0 0",
162
                           "x x x x  x x x x  i i i i  i i i i";
163
164
         read            = "0 1 0 1  1 0 0 0  0 0 0 0  1 0 0 0",
165
                           "x x x x  x x x x  o o o o  o o o o";
166
        min_write_delay = 9000;
167
        max_write_delay = 9000;
168
       ;
169
170
     memory "efuse"
171
         size            = 1;
172
         write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 1 0 0",
173
                           "x x x x  x x x x  x x x x  x x x i";
174
175
         read            = "0 1 0 1  0 0 0 0  0 0 0 0  1 0 0 0",
176
                           "x x x x  x x x x  o o o o  o o o o";
177
        min_write_delay = 9000;
178
        max_write_delay = 9000;
179
     ;
180
181
     memory "calibration"
182
         size            = 1;
183
         read            = "0  0  1  1   1  0  0  0    0 0 0 x  x x x x",
184
                           "0  0  0  0   0  0  0  a0   o o o o  o o o o";
185
     ;
186
  ;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.