Forum: Mikrocontroller und Digitale Elektronik Programmieren flash ATtiny4313 geht nicht


von Lemoii (Gast)


Lesenswert?

Entschuldigung, mein Deutsch ist ja richtig schlim.

Ich habe ein Problem mit die Programmierung der Flash von ein 
ATtiny4313. Lesen giebt keine Prblemen und Programmieren von EEPROM und 
Fuses geht ohne Fehler. Ich habe es probiert mit mehrere neue Chips.

Programmieren von ein ATtiny4313a in gleiche Set-up geht gut.

Ich benutze eine Raspberry Pi als Programmierer -> Vcc ist 3.3V.
Die avrdude Version ist 5.10 mit die Daten fuer die 4313 uebernommen von 
den patch http://savannah.nongnu.org/patch/?7393.

Avrdude output ist:
1
avrdude -p t4313 -c gpio -v -U lfuse:r:-:h -U hfuse:r:-:h -U efuse:r:-:h
2
3
avrdude: Version 5.10, compiled on Jun 18 2012 at 12:38:29
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2009 Joerg Wunsch
6
7
         System wide configuration file is "/etc/avrdude.conf"
8
         User configuration file is "/home/pi/.avrduderc"
9
         User configuration file does not exist or is not a regular file, skipping
10
11
         Using Port                    : unknown
12
         Using Programmer              : gpio
13
         AVR Part                      : ATtiny4313
14
         Chip Erase delay              : 9000 us
15
         PAGEL                         : PD4
16
         BS2                           : PD6
17
         RESET disposition             : possible i/o
18
         RETRY pulse                   : SCK
19
         serial program mode           : yes
20
         parallel program mode         : yes
21
         Timeout                       : 200
22
         StabDelay                     : 100
23
         CmdexeDelay                   : 25
24
         SyncLoops                     : 32
25
         ByteDelay                     : 0
26
         PollIndex                     : 3
27
         PollValue                     : 0x53
28
         Memory Detail                 :
29
30
                                  Block Poll               Page                       Polled
31
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
32
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
33
           eeprom        65     6     4    0 no        256    4      0  4000  4500 0xff 0xff
34
           flash         65     6    32    0 yes      4096   64     64  4500  4500 0xff 0xff
35
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
36
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
37
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
38
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
39
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
40
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00
41
42
         Programmer Type : GPIO
43
         Description     : Use sysfs interface to bitbang GPIO lines
44
45
avrdude: AVR device initialized and ready to accept instructions
46
47
Reading | ################################################## | 100% 0.00s
48
49
avrdude: Device signature = 0x1e920d
50
avrdude: safemode: lfuse reads as 64
51
avrdude: safemode: hfuse reads as DF
52
avrdude: safemode: efuse reads as FF
53
avrdude: reading lfuse memory:
54
55
Reading | ################################################## | 100% 0.00s
56
57
avrdude: writing output file "<stdout>"
58
0x64
59
avrdude: reading hfuse memory:
60
61
Reading | ################################################## | 100% 0.00s
62
63
avrdude: writing output file "<stdout>"
64
0xdf
65
avrdude: reading efuse memory:
66
67
Reading | ################################################## | 100% 0.00s
68
69
avrdude: writing output file "<stdout>"
70
0xff
71
72
avrdude: safemode: lfuse reads as 64
73
avrdude: safemode: hfuse reads as DF
74
avrdude: safemode: efuse reads as FF
75
avrdude: safemode: Fuses OK
76
77
avrdude done.  Thank you.
Programmieren gibt den Fehler:
1
avrdude: verifying ...
2
avrdude: verification error, first mismatch at byte 0x0000
3
         0x8e != 0x80
4
avrdude: verification error; content mismatch
Mit die terminal mode von avrdude versuche ich flash zu schreiben:
1
 $ avrdude -pt4313 -cgpio -t
2
3
avrdude: AVR device initialized and ready to accept instructions
4
5
Reading | ################################################## | 100% 0.00s
6
7
avrdude: Device signature = 0x1e920d
8
avrdude> write flash 0 0 1 2 3 4 5 6 7
9
>>> write flash 0 0 1 2 3 4 5 6 7
10
avrdude (write): error writing 0x00 at 0x00000 cell=0xff
11
avrdude (write): error writing 0x01 at 0x00001 cell=0xff
12
avrdude (write): error writing 0x02 at 0x00002 cell=0xff
13
avrdude (write): error writing 0x03 at 0x00003 cell=0xff
14
avrdude (write): error writing 0x04 at 0x00004 cell=0xff
15
avrdude (write): error writing 0x05 at 0x00005 cell=0xff
16
avrdude (write): error writing 0x06 at 0x00006 cell=0xff
17
avrdude (write): error writing 0x07 at 0x00007 cell=0xff
Eeprom schreibe gibt kein Fehler::
1
avrdude> write eeprom 0 0 1 2 3 4 5 6 7
2
>>> write eeprom 0 0 1 2 3 4 5 6 7
3
4
avrdude> dump eeprom 0 8
5
>>> dump eeprom 0 8
6
0000  00 01 02 03 04 05 06 07

Hat jemand vielleicht eine Idee warum es der Fehler gibt?

MFG,

Lemoi

von Moritz A. (moritz_a)


Lesenswert?

Lemoii schrieb:
> Hat jemand vielleicht eine Idee warum es der Fehler gibt?

avrdude will -B, wenn ich deine Fuses richtig sehe läuft er auf 4MHz/8

von Lemoii (Gast)


Lesenswert?

Ja stimmt, lauft auf 8MHz intern.
Habe schon versucht mit 4MHz, aber dass hat nichts gemacht.

von Uwe K. (ukhl)


Lesenswert?

Der Prozessor läuft laut Fuse-Bits mit 1 MHz (8Mhz / 8).

Ist der Programmiertakt zu hoch? Sollte nicht mehr als 256 kHz (besser 
128 kHz) betragen.

Entweder runter mit dem Programmiertakt oder das LOW-Fuse von 0x64 auf 
0xE4 setzen. Dann läuft die CPU mit 8 MHz.

von isnah (Gast)


Lesenswert?

@Lemoii

ich habe per Zufall deinen Doppelpost auf "avrfreaks.net" gesehen.
Dort finde ich aber auch keinen Hinweis auf deine Befehlszeile, welche 
dir anscheinend den "verifying error" beim programmieren deines "Tiny" 
erzeugt.

Auf die Fehlermeldung beim Versuch "Flash-Bytes" im Terminalmode zu 
schreiben, kannst du nicht abstellen, da das Verändern des 
Flashspeicher, im Gegensatz zum EEprombereich, im -t Modus nicht möglich 
ist.(siehe avrdude.pdf Seite 26). Diese Einschränkung wird sicher auch 
für die gepatched Raspberry-Version gelten.

Da ja  das Auslesen der "Signatur" und der "Fuses" problemlos von 
statten geht, ist wohl ein Geschwindigkeitsproblem ausgeschlossen.

von c-hater (Gast)


Lesenswert?

isnah schrieb:

> Da ja  das Auslesen der "Signatur" und der "Fuses" problemlos von
> statten geht, ist wohl ein Geschwindigkeitsproblem ausgeschlossen.

Nein, keinesfalls.

Im Grenzbereich können durchaus einige Kommandos noch korrekt 
funktionieren, andere aber schon nicht mehr. Und es ist auch ganz klar, 
warum das so sein muß, denn tendenziell steigt mit zunehmender 
"Befehls"länge natürlich die Wahrscheinlichkeit für Fehler.

von isnah (Gast)


Lesenswert?

@C-hater

schau mal hier rein, dann wirst du mir wohl zustimmen, dass in diesem 
Fall deine "Lehrmeinung" keine entscheidende Rolle spielt:

http://www.forum-raspberrypi.de/Thread-tutorial-raspberry-als-programmiergeraet-fuer-atmel-%C2%B5controller

von Uwe (Gast)


Lesenswert?

isnah schrieb:
> Da ja  das Auslesen der "Signatur" und der "Fuses" problemlos von
> statten geht, ist wohl ein Geschwindigkeitsproblem ausgeschlossen.

Stimmt. Mein Fehler. Das Problem liegt woanders.

Spekulieren wir noch ein wenig:
Ich gehe davon aus das "ATtiny4313a" ein Schreibfehler ist und 
eigentlich "ATtiny2313a" gemeint ist. Ein 4313A gibt es nicht.

Ich vermute das es ein Problem mit der Patch für den 4313 gibt.
Poste doch mal deine 4313.txt Datei. Vieleicht finden wir den Fehler 
dort.

von Rudi D. (rulixa)


Lesenswert?

Will auch Programme für den t4313 in AVR STudio entwickeln.
Nach Recherche habe ich heute doch erfolgreich von Atmel selbst, nach 
einfacher Registrierung AVRStudio 4.19 geholt und installiert.

ATtiny4313 ist damit problemlos zu bearbeiten.
Flashen mache ich immer mit Ponyprog, das es inzwischen auch für den 
4413 gibt. Das Lancosforum zeigt alles.

: Bearbeitet durch User
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.