Nachdem hier ab und an die "neueren" AVR Bausteine, allen voran die ATtiny Serie, genannt wird. Dachte ich mir, dass ich für den Fall der Fälle mir diese einmal ansehe und habe einen ATtiny1604 (u.a.) besorgt.
Weil ich nicht jemand bin, der einer neuen Version hinterher rennt, hatte ich veraltetes Softwareequipment und mußte von daher erst einmal etwas "ändern".
Ich habe jetzt_
- avr-gcc Version 7.3.0
- avrdude Version 6.3 mit geänderter avrdude.conf
Da nun die "neueren" Bausteine mittels UPDI geflasht werden (und ich keinen Flasher habe), habe ich erst einmal einen Flasher aus dem Netz zum Laufen gebracht:
- JTAG2UPDI mittels ATmega328p
Die Kombination scheint zu laufen, denn ein Blinkprogramm blinkt doch tatsächlich:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
Jetzt habe ich doch tatsächlich ein Problem mit den Fuses (hätte ich nicht geglaubt dass ich damit noch einmal ein Problem werde haben).
Die neueren AVR's haben nun keine Lo-Hi-Ext und Lock - Fuses mehr, sondern die heißen mehr oder FUSES0 .. FUSES9 und LOCK
Mein Problem jetzt ist, dass ich den Controller nicht per FUSES einstellen kann (und ja, ich sitze gerade über dem Datenblatt und studiere das und GOOGLE läuft heiß).
Im Datenblatt heißt es unter anderem auch, dass der Takt zu Laufzeit über die Fuses eingestellt werden kann (u.a. MCLKCTRLB).
Dieses Register sollte (wenn ich das richtig lese) Fuse1 sein.
Natürlich habe / hatte ich den Selbstbauflasher erst einmal in Verdacht, ob er Fuses richtig setzen kann, aber scheinbar kann er das, weil ein:
1 |
|
und einem anschließenden Lesen
1 |
|
die Ausgabe:
1 |
|
2 |
|
bringt.
0x17 wäre im Register MCLKCTRLB (was nach meiner Lesart FUSE1 ist) ein gesetztes Bit für "prescaler enable" und ein Divisor des Taktes durch 24 (ein Blinken müsste also 4 mal langsamer erfolgen, da der Auslieferungszustand den Teiler 6 eingestellt hat).
Jetzt heißt es im Datenblatt aber auch, dass etwas "gelockt" ist, die Fuses auch zu Laufzeit geändert werden können, aber ich weiß nicht, wie ich das anstelle.
:-) :-) :-) ihr dürft gerne über mich "herziehen", wenn denn einer mir kurz aufzeigt, wie das funktioniert. Wie werden die Fuses gesetzt, egal ob über den Flasher oder zur Laufzeit?
