Forum: Mikrocontroller und Digitale Elektronik AT89S8253 (8051) - minimalkonfiguration zum programmieren mittels USBASP


von Waldemar F. (wally)


Angehängte Dateien:

Lesenswert?

Hallo liebe Wissende.
Habe ein paar AT89S8253 und ein usbasp (fishl). Jetzt brauche ich eine 
Art Entwicklungsboard um den uC zu programmieren. Im Anhang habe ich 
eine Konfiguration gefunden.
Die Frage: Kann man den Quarz und die zwei 22pF Kondensatoren weg 
lassen? Würde der uC dann nicht einfach mit einem eigenen inneren Takt 
laufen, so dass ich ihn auch so programmieren könnte?

Der AT89S8253 ist fabrikneu. Muss ich auf irgendwas achten? Baudrate, 
erstes setzen der FUSE-Bits oder sonst was?

Hoffe ihr könnt mir helfen. Falls ich das Teil in Betrieb bekomme und 
programmieren kann (womit auch immer) werde ich auch ne Anleitung 
schreiben für die nächsten mit meinem Problem.

Danke schonmal

Grüße
Waldemar

von B e r n d W. (smiley46)


Lesenswert?

Beim AT89S8253 bin ich mir nicht sicher, aber der AT89S52 hat keinen 
internen RC Oszillator.

Gruss, Bernd

von Bernd (Gast)


Lesenswert?

Dir ist schon klar das es ein 8051 Derivat ist ?

von E. B. (roquema) Benutzerseite


Lesenswert?

Waldemar Fech schrieb:
> Hallo liebe Wissende.
Das wird nix. der 89S8253 ist ein 8051, kein AVR.
> Habe ein paar AT89S8253 und ein usbasp (fishl). Jetzt brauche ich eine
> Art Entwicklungsboard um den uC zu programmieren. Im Anhang habe ich
> eine Konfiguration gefunden.
/EA (Pin 31) muss auf +5V
> Die Frage: Kann man den Quarz und die zwei 22pF Kondensatoren weg
> lassen? Würde der uC dann nicht einfach mit einem eigenen inneren Takt
> laufen, so dass ich ihn auch so programmieren könnte?
Nee, hat keinen internen Oszillator.
> Der AT89S8253 ist fabrikneu. Muss ich auf irgendwas achten? Baudrate,
> erstes setzen der FUSE-Bits oder sonst was?
Hat auch keine Fuses, außer Lockbits.
> Hoffe ihr könnt mir helfen. Falls ich das Teil in Betrieb bekomme und
> programmieren kann (womit auch immer) werde ich auch ne Anleitung
> schreiben für die nächsten mit meinem Problem.
Als Billig-Programmer am Parallelport:
http://dybkowski.net/elka/ispprog.html
> Danke schonmal
>
> Grüße
> Waldemar

von Waldemar F. (wally)


Lesenswert?

Hallo.
Danke für die schnellen Hilfestellungen.

@Bernd:
Danke für die Info. Hast du mal versucht dein uC ohne externen Quarz zu 
betreiben? Denkst du die Konfiguration ohne Quarz (XTALs in der Luft 
hängend?) könnte dann funktionieren?

Mir ist klar, dass es ein 8051 ist ... steht ja auch im Titel :)


@Ema Tronik:
Im Datenblatt steht:
*The AT89S8253 provides the following standard features:* 12K bytes of 
In-System Programmable Flash, 2K bytes of EEPROM, 256 bytes of RAM, 32 
I/O lines, programmable watchdog timer, two data pointers, three 16-bit 
timer/counters, a six-vector, four-level interrupt architecture, a full
duplex serial port, on-chip oscillator, and clock circuitry...

FUSE- / LOCKBITS ... reicht ja wenn ihr wisst was ich meine ..

Soviel ich weiß kann der usbasp in Kombination mit avrdude mein uC 
programmieren. Haben scheinbar schon einige Leute hinbekommen.

> /EA (Pin 31) muss auf +5V
Dann würde es mit freiliegenden XTAL funktionieren?


Für dein Vorgeschlagenen ISP benötige ich nur 1 Bautel? 74lvc244? ... wo 
kann ich dieses beziehen? (suche selber auch noch nach einer 
vertrauenswürdigen Quelle).


Nochmals Danke
Grüße
Waldemar

von holger (Gast)


Lesenswert?

>Dann würde es mit freiliegenden XTAL funktionieren?

Nein. Der hat keinen interenen Osci.
Entweder Oscillator an XTAL dranhängen oder Quarz.

von chester (Gast)


Lesenswert?

>Das wird nix. der 89S8253 ist ein 8051, kein AVR.

Es spricht nix dagegen, einen 89S8253 über usbasp zu programmieren.

Ich weiß es, weil ich diese Konfiguration am Laufen habe.
Natürlich habe ich das avrdude - config file anpassen müssen
und die firmware des atmega am usbasp-programmer modifiziert.

von E. B. (roquema) Benutzerseite


Lesenswert?

> @Ema Tronik:
> Im Datenblatt steht:
> *The AT89S8253 provides the following standard features:* 12K bytes of
> In-System Programmable Flash, 2K bytes of EEPROM, 256 bytes of RAM, 32
> I/O lines, programmable watchdog timer, two data pointers, three 16-bit
> timer/counters, a six-vector, four-level interrupt architecture, a full
> duplex serial port, on-chip oscillator, and clock circuitry...
>
> FUSE- / LOCKBITS ... reicht ja wenn ihr wisst was ich meine ..
>
> Soviel ich weiß kann der usbasp in Kombination mit avrdude mein uC
> programmieren. Haben scheinbar schon einige Leute hinbekommen.
>
>> /EA (Pin 31) muss auf +5V

Nee, das fehlt nur in dem Bild Deiner Minimalkonfiguration.
/EA = External Access Enable Wenn der Code aus dem internen Flash 
ausgeführt werden soll, muss /EA auf +5V.
> Dann würde es mit freiliegenden XTAL funktionieren?
on-chip oscillator ist != Takt- Generator , also Quarz  verwenden, 
die Kondensatoren sind beim 89S8253 nur noch 5pf, können also auch 
entfallen...
> Für dein Vorgeschlagenen ISP benötige ich nur 1 Bautel? 74lvc244? ... wo
> kann ich dieses beziehen? (suche selber auch noch nach einer
> vertrauenswürdigen Quelle).
Siehe Elektronikversender
Auch den 74244 (Standard-TTL) kannst Du sparen, allerdings ist das 
Billigding nicht wirklich zuverlässig an allen Rechner. (sofern 
überhaupt noch ein Parallelport vorhanden ist)
Siehe zahlreiche Threads hier im Forum.
Wenn das mit dem usbasp geht, um so besser. Ich kenn das Ding nicht...

>
> Nochmals Danke
> Grüße
> Waldemar

von Waldemar F. (wally)


Angehängte Dateien:

Lesenswert?

Hallo nochmal.
Also ich habe mir jetzt ein 16 MHz Quarz mit 2 x 5,6 pF Kondensatoren 
drangebastelt.
Nun zu EA/Vpp. Wie groß sollte der Widerstand sein über den ich diesen 
PIN auf +5V lege?
Habe es nach vielen vielen Stunden geschafft mein USBasp unter Vista 64 
zu installieren. Man lädt sich dann "Neuer Treiber für Win32 und Win64 
(WinAVR Versionen ab 20080512)" von 
http://www.ulrichradig.de/home/index.php/avr/usb-avr-prog#new_usbasp_driver 
herunter (hoffe darf den Link posten .. ist ja keine Werbung oder so). 
Wenn man nun USBasp anschließt und trotz ignorieren der Treibersignatur 
versucht diesen zu installieren, funktioniert es am Ende nicht. "Fehler 
bei Installation" oder sowas. Also muss man PC neu starten, bevor der 
Ladebildschirm von Vista kommt F8 drücken (am besten ab dem Moment wo 
der PC startet jede Sekunde mal drücken) ... Dann kann man aus einer 
Liste von Bootoptionen ganz unten (oder vorletze? weiß es nicht mehr) 
auswählen "Treibersignatur deaktivieren" oder sowas ... "Deactivate 
Signature Control" oder was auch immer. Einfach mit Pfeiltasten 
auswählen und Enter drücken. Nun startet der Rechner wie gewohnt und man 
kann den Treiber installieren. Also USBasp rein, Windows-Meldung "neue 
Hardware gefunden" usw. kommt. Pfad mit Treiber auswählen, trotz 
fehlender Treibersignatur installieren in tadaaa ... "Hardware 
erfolgreich installiert". Nun steht der USBasp im Gerätemanager unter 
"LibUSB-Win32-Devices" der USBasp. Jetzt kann man mit avrdude oder 
sonstigen anderen GUIs für diesen versuchen irgendwas auf irgendwas zu 
flashen bzw. zu lesen - glaube ich ...

DENN ... ich habs für mein AT89S8253 nicht hinbekommen. Habe die 
avrdude.conf angepasst ... also folgendes dazu geschrieben (an eine 
freie Stelle)
1
#------------------------------------------------------------
2
# AT89S8253
3
#------------------------------------------------------------
4
part
5
    id               = "8253";
6
    desc             = "AT89S8253";
7
    # bad hack AT89S8253 has got only 2 signature bytes
8
    signature        = 0x1e 0x73 0x1e;
9
    chip_erase_delay = 20000;
10
    pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
11
                       "x x x x  x x x x    x x x x  x x x x";
12
    
13
    chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x",
14
                       "x x x x  x x x x    x x x x  x x x x";
15
    
16
    timeout      = 200;
17
    stabdelay      = 100;
18
    cmdexedelay      = 25;
19
    synchloops      = 32;
20
    bytedelay      = 0;
21
    pollindex      = 3;
22
    pollvalue      = 0x53;
23
    predelay      = 1;
24
    postdelay      = 1;
25
    pollmethod      = 0;
26
    
27
    memory "flash"
28
        size            = 12288;
29
        paged           = no;
30
        min_write_delay = 4000;
31
        max_write_delay = 9000;
32
        readback_p1     = 0xff;
33
        readback_p2     = 0xff;
34
        read            = "  0   0   1   0    0   0   0   0",
35
                          "  x   x a13 a12  a11 a10  a9  a8",
36
                          " a7  a6  a5  a4   a3  a2  a1  a0",
37
                          "  o   o   o   o    o   o   o   o";
38
    
39
        write           = "  0   1   0   0    0   0   0   0",
40
                          "  x   x a13 a12  a11 a10  a9  a8",
41
                          " a7  a6  a5  a4   a3  a2  a1  a0",
42
                          "  i   i   i   i    i   i   i   i";
43
   mode      = 0x21;
44
   delay      = 12;
45
      ;
46
    
47
    memory "signature"
48
        size            = 3;
49
        read            = "0  0  1  0   1  0  0  0   x  x  x  x   x  x  x  x",
50
                          "x  x  1  1   0  0  0 a0   o  o  o  o   o  o  o  o";
51
      ;
52
  ;
hab ich irgendwo bei google gefunden ... keine Ahnung ob das Stimmt / 
funktioniert ...

Der USBasp funktioniert (glaube ich). Avrdude bekommt eine Verbindung zu 
diesem denn:
Wenn USBasp nicht angeschlossen kommt die Meldung:
1
Return-Code des Programms: 1
2
---Errors---
3
avrdude.exe: WARNING: -E option not supported by this programmer type
4
avrdude.exe: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc

ansonsten:
1
Return-Code des Programms: 1
2
---Errors---
3
avrdude.exe: WARNING: -E option not supported by this programmer type
4
5
avrdude.exe: error: programm enable: target doesn't answer. 1 
6
avrdude.exe: initialization failed, rc=-1
7
             Double check connections and try again, or use -F to override
8
             this check.
9
10
11
avrdude.exe done.  Thank you.

Deswegen wollte ich chester mal bitten mir seine .conf und wenns geht 
auch die modifizierte .hex für den USBasp zukommen zu lassen. (Benutzt 
du auch die Version mit dem Atmega48?)

Ob es womöglich an meiner Schaltung liegt in die ich den 8253 eingsetzt 
hab? Habe leider kein Programm um den Schaltplan zu zeichen, werde es 
bei Gelegenheit mit Paint machen.

Habe übrigens beim USBasp mal mit SlowSCK und mal ohne probiert ... ohne 
Erfolg - gleicher Fehler.

Ich freue mich auf eure Ideen und Hilfestellungen.
Vielen Dank.

Grüße
Waldemar

von Waldemar F. (wally)


Angehängte Dateien:

Lesenswert?

Wie angekündigt im Anhang mein Schaltplan.
Ich bezweifle, dass "error: programm enable: target doesn't answer. 1" 
dadurch zustande kommt, dass EA/Vpp in der Luft hängt .. also nirgends 
angeschlossen ist. Es sollte dann dennoch möglich sein z.B. die Fuse 
bzw. Lockbits zu lesen.
Ich versuche morgen (heute, ist ja schon nach 1 Uhr) an ein Oszi ran zu 
kommen um zu schauen ob mein Quarz überhaupt schwingt).

Habt ihr ein Fehler entdeckt oder sonst eine Idee woran es liegen 
könnte?
Oder ist alles darauf zurückzuführen, dass die Firmware des USBasp mein 
Chip gar nicht proggen kann? Falls dem so ist: Hat jemand eine Firmware 
für den USBasp die mein AT89S8253 unterstützt? Um genau zu sein habe ich 
folgenden USBasp: 
http://www.b-redemann.de/download/88Downloads-Shop/USBASP_YAPT050_Bauanleitung-Beta.pdf 
... Kann ich diese überhaupt einspielen ohne einen weiteren Programmer? 
Dafür ist doch der SelfProg Jumper vorgesehen oder ?

Ich hoffe, dass mir jemand helfen kann.

Grüße
Waldemar

von chester (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

laut Datenblatt: "EA should be strapped to VCC for internal program 
executions." - ich denke, der Aufwand einen Pin auf Vcc zu hängen, 
könnte
sich auszahlen.

Vcc gecheckt?
Alle SPI-Verbindungen gecheckt?
SPI-Verbindunden nochmal gecheckt?

Avrdude fragt zuerst die Signature ab, also kurz mal den
Reset-Pin mit Oszi/DMM überprüfen, ob bei Zugriff der Pegel auf "1" 
geht.

anbei mein main.hex, einfach mal "self-prog" jumper setzen und mit einem 
AVR-programmer in den mega8 einspielen und ausprobieren
viel Glück

Folgende config funktioniert bei mir (ich habs nicht mit deiner 
verglichen)
1
#------------------------------------------------------------ 
2
# AT89S8253 
3
#------------------------------------------------------------ 
4
part 
5
    id               = "s8253"; 
6
    desc             = "AT89S8253"; 
7
    chip_erase_delay = 20000; 
8
    pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1", 
9
                       "x x x x  x x x x    x x x x  x x x x"; 
10
11
    chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x", 
12
                       "x x x x  x x x x    x x x x  x x x x"; 
13
14
    signature           = 0x1e 0x73 0x1e;
15
    timeout      = 200; 
16
    stabdelay      = 100; 
17
    cmdexedelay      = 25; 
18
    synchloops      = 32; 
19
    bytedelay      = 0; 
20
    pollindex      = 3; 
21
    pollvalue      = 0x53; 
22
    predelay      = 1; 
23
    postdelay      = 1; 
24
    pollmethod      = 0; 
25
26
    memory "flash" 
27
        size            = 12288; 
28
        paged           = no; 
29
        min_write_delay = 4000; 
30
        max_write_delay = 9000; 
31
        readback_p1     = 0xff; 
32
        readback_p2     = 0xff; 
33
        read            = "  0   0   1   0    0   0   0   0", 
34
                          "  x   x a13 a12  a11 a10  a9  a8", 
35
                          " a7  a6  a5  a4   a3  a2  a1  a0", 
36
                          "  o   o   o   o    o   o   o   o"; 
37
38
        write           = "  0   1   0   0    0   0   0   0", 
39
                          "  x   x a13 a12  a11 a10  a9  a8", 
40
                          " a7  a6  a5  a4   a3  a2  a1  a0", 
41
                          "  i   i   i   i    i   i   i   i"; 
42
   mode      = 0x21; 
43
   delay      = 12; 
44
      ; 
45
46
    memory "signature" 
47
        size            = 3; 
48
        readback_p1     = 0x1E; 
49
        readback_p2     = 0x73; 
50
        read            = "0  0  1  0   1  0  0  0   x  x  x  x   x  x  x  x", 
51
                          "x  x  1  1   0  0  0 a0   o  o  o  o   o  o  o  o"; 
52
      ; 
53
  ;

von Waldemar Fech (Gast)


Lesenswert?

Hallo.
Erstmal riesen DANK an chester. Werde es mal mit deiner .conf probieren. 
Denn in deiner .conf steht unter memory "signature" zusätzlich noch:
1
        readback_p1     = 0x1E; 
2
        readback_p2     = 0x73;


Falls es dennoch nicht funktioniert versuche ich den USBasp mit deiner 
Firmware zu beschreiben. Dazu muss ich den Jumper SelfProg setzen und 
einfach mit avrdude usbasp sich selbst flashen lassen? Wohl kaum? Dann 
muss ich einen zweiten Programmer an die ISP Pins stecken um den usbasp 
zu flashen?
Dann werde ich mir nachher mal ein überteuerten Atmega8 für über 5€ 
kaufen um diesen zu flashen und den neuen m8 an die Stelle des alten 
setzen.
Hoffe das klappt ...

chester: würdest du mir sagen was genau du in der firmware geändert 
hast? Vielleicht kannst du mir auch den code zukommen lassen? Würde mich 
interessieren was man machen muss falls ich irgendwann wieder ein 
anderen uC habe den der usbasp nicht kennt.

Ach und EA/Vpp werde ich auch einfach mal mit +5V verbinden ... hoffe 
man darf das ohne irgend ein Widerstand dazwischen.

Grüße
Waldemar

von Waldemar F. (wally)


Lesenswert?

Hallo nochmal liebe Helfer.
Also mittlerweile habe mein USBasp mit der firmware von chester 
geflasht. Allerdings wurde das Gerät nicht mehr als USBasp erkannt, 
sondern als "Unbekanntes Gerät" ... - ja ich habe den SelfProg Jumper 
wieder raus gemacht - ... An zwei Rechnern wurde USBasp nicht mehr 
erkannt. Alte firmware wieder drauf und schon wurde er wieder erkannt. 
Habe mir die neuste Firmware von fischl runtergeladen, allerdings 
funktioniert mit dieser Version der Zugriff auf mein AT89S8253 immernoch 
nicht.

Frage an chester: Hast du ein Atmega8 oder Atmega48 auf deinem USBasp ? 
Ich habe ein Atmega48 drauf - wenn deine Firmware für Atmega8 gedacht 
ist müsste ich das wissen - vielleicht geht es dann. Ebenfalls bitte ich 
dich nochmal darum mir einen Hinweis zu geben was man im Quellcode vom 
USBasp ändern muss / anpassen muss, dass er den AT89S8253 flashen kann. 
Dann könnte ich (lernen) es für weitere (unbekannte) uC zu ändern.

Hat vielleicht sonst noch jemand ein USBasp mit einer Firmware die den 
AT89S8253 flashen kann?

Dankeschön für die Hilfe :)

Grüße
Waldemar


P.s.: Alle Pins gecheckt (2 mal), gemessen usw.. Reset wird auch 
gesendet (USBasp funktioniert bei einem Atmega8).

von chester (Gast)


Lesenswert?

Hallo,
meine firmware ist für den mega8.

Fuses richtig gesetzt?

Ich kann die veränderten .c Files hier posten,
(heute od. morgen, momentan ist es eng)

von Waldemar F. (wally)


Lesenswert?

Hi.

Also ich habe folgende Konfiguration vorgenommen:
High Fuse: 0xCF = 11001111 = SPIEN und CKOPT programmed
Low Fuse:  0xEF = 11101111 = SUT0 programmed

Erklärung für die die es nicht nachschlagen wollen aber dennoch 
interessiert sind:
1
(weil CKSEL0 und SUT1 1 sind, bedeutet es Startup Time: 16K CK; Additional Delay from Reset: 4.1 ms; Recommended Usage: Crystal Oscillator, fast rising power) - unwichtig denke ich.
2
3
SPIEN: Enable Serial Program and Data Downloading ... muss wohl an sein ... ist standard.
4
5
CKOPT: Oscillator options ... muss an sein falls externer Quarz über 1 Mhz (auf dem USBasp ist ein 12MHz, auf meiner Entwicklungsplatine hab ich ein 16 Mhz mit 2 x 22pF gelötet)

Gedanken mache ich mir nur bei CKSEL3..1, habe es auf 111. Wo der 
Unterschied zwischen 101, 110 und 111 liegt weiß ich nicht, kann nur 
vermuten, dass 111 richtig ist. Hauptsache CKOPT ist mit 0 programmiert.

CKOPT:      0
CKSEL3..1:  101, 110, 111
Frequency Range(MHz): 1.0 ≤


Der uC (Atmega8) funktioniert überall, auf dem USBasp und meinem Board. 
Mit 12Mhz und 16Mhz. Ich kann ihn flashen usw. usf.. Allerdings erkennt 
Windows ihn mit deiner (chester) firmware überhaupt nicht (Unbekanntes 
Gerät). Sobald ich die alte Firmware oder neue von fischl drauf mache 
geht es wieder (wird als USBasp erkannt) ...

Meine Befürchtung ist, dass USBasp nicht richtig resetet... denn beim 
Atmega8 ist der Reset invertiert und beim AT89S8253 nicht. Woher weiß 
der USBasp wo er gerade angeschlossen ist und wie er seinen Reset-Pin zu 
halten hat (auf Masse oder +5V)? Aber beim flashen macht er das bestimmt 
richtig. Höchstens nach dem flashen "könnte" es sein, dass einer der 
beiden uC dauerhaft resetet wird bis ich den Programmer abklemme. Aber 
das ist glaube ich nicht das Problem, dass der uC nicht erkannt wird.

Das wäre Klasse wenn die firmware von chester funktionieren würde. 
Vielleicht kann ich versuchen die selber zu kompilieren (brauch ich eine 
makefile?).

Grüße
Waldemar

von chester (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

probiers mal mit diesem hex-file.

meine fuse-settings
1
avrdude> dump hfuse
2
>>> dump hfuse 
3
0000  c9                                                |.               |
4
5
avrdude> dump lfuse
6
>>> dump lfuse 
7
0000  9f                                                |.               |

von Waldemar F. (wally)


Lesenswert?

Hallo chester.
Es hat funktioniert.

Mit der neuen firmware und den FUSE-Einstellungen von dir wird der 
usbasp von Windows erkannt und ich kann mein AT89S8253 flashen.

Jetzt bin ich aber neugierig was man so im Quellcode ändern musste.


Mir ist übrigens etwas extrem seltsames aufgefallen.

Habe mir noch ein Programmer gebaut. Einfach ein Parallelport Kabel und 
ein 74HCT08 (für 17Cent bei C* gekauft) fertig. Das Projekt findet man 
unter http://www.ikalogic.com/isp.php ... Die Software dabei ist auch 
richtig gut. Man kann wunderbar Fuses setzen usw.. Bin echt begeistert.

Wenn ich jetzt mit avrdude flash schreibe oder lese ... dann dauert es 
40-50 Sekunden bis er fertig ist... und der code ist nicht lang ....
Wenn ich mit "ISP Programmer" (Software für den Parallelport) flash lese 
oder schreibe ist der in 3-5 Sekunden fertig ...

Nun das seltsame:
Wenn avrdude den code ausließt hab ich in der .hex Datei ca. 113 Zeilen 
a 75 Zeichen.
ISP Programmer allerdings ließt mir ca. 227 Zeilen a 43 Zeichen aus.
Der Code scheint gleich zu sein. Also die meisten Zeichen stimmen 
überein. Nur der Zeilenanfang und das Zeilenende unterscheiden sich.

Der Code von avrdude fängt mit 20000000 an und jede weitere Zeile geht 
mit 20002000, 20004000, 20006000, 20008000, usw. weiter.

Der Code von ISP Programmer fängt mit 10000000 an und jede weitere Zeile 
geht mit 10001000, 10002000, 10003000, 10004000 usw. weiter.

Auf Funktionalität habe ich noch nicht getestet. Habe einfach irgend ein 
Code reingeklatscht und getestet ob lesen und schreiben geht. Werde aber 
berichten wenn ich mal zum testen komme ... habe jetzt erstmal 3 Wochen 
Prüfungen ... Vielleicht finde ich zwischendrin ein bisschen Zeit.



Woran kann das liegen, dass avrdude so langsam ist? Liegt es vielleicht 
gar nicht an avrdude sondern am USBasp? ... Werde das gleiche mal mit 
anderen uC versuchen. Habe hier noch ein m48 und m32.

Danke nochmal für die Hilfe. Endlich geschafft mit deiner Firmware und 
deinen FUSE-Einstellungen für den USBasp den AT89S8253 zu flashen.


EDIT:
Ach nochwas seltsames. Mit dem ISP Programmer konnte ich 
FUSE-Einstellungen und den Flash auslesen ohne Strom?! ... Habe noch 
keine weiteren Tests gemacht ... aber es ging :S ...


Viele Grüße
Waldemar

von chester (Gast)


Lesenswert?

Wenn das flashen langsam ist, liegts definitiv am Usbasp, nicht am 
avrdude.

2 Dinge fallen mir ein.
Es könnte sein, dass der SCK - Jumper am Programmer gesteckt ist -> Dann 
wird Software-SPI verwendet. Jumper weg -> Hardware - SPI sollte 
schneller gehen.

Wenn das nichts hilft, dann liegts wahrscheinlich daran, dass der im 
avrdude integrierte usbasp-Teil nur byte-weises flashen unterstützt.
Schneller ginge es im page-mode. Ich habe eine avrdude5.2 - Version,
die ich vor 2 Jahren angepasst habe. D.h bei mir gehts sehr flott (unter 
einer Sekunde).

Soweit ich mich erinnere, ist der usbasp-Programmer rein auf die AVRs 
zugeschnitten, d.h die avrdude.conf - Info wird nicht verwendet, sondern 
der Usbpasp-programmer hat die SPI-Befehle hard-codiert. Der AT89s8253 
benötigt andere Befehle und daher momentan gröbere Eingriffe in die 
usbasp-Firmware.

Besser und flexibler wäre es, den usbasp-Teil der avrdude-Software so
zu verbessern, dass die Info aus avrdude.conf genutzt wird, dann sollte
eigentlich jeder Baustein unterstützt werden, der dort eingetragen 
wurde.

Gibts ein Forum, wo T. Fischl mitliest, eventuell macht er sowas schon?

Ich habs mir (vor 2 Jahren) mal angeschaut und durchgedacht, sollte kein 
wirkliches Problem sein, das so umzubauen. Mir hat mein Hack genügt,
momentan liegt mein 89s8253-Projekt abgeschlossen und verstaubt herum.

von Martin (Gast)


Lesenswert?

Hallo Waldemar Fech,

du hast geschafft den USBasp unter Vista 64 zu installieren !!
meine frage:
muß du jedes mal beim hochfahren F8 drucken und "Treibersignatur 
deaktivieren" ? oder nicht mehr?

bei mir hat es nicht funktioniert bzw. ich muß jedes mal beim hochfahren 
"Treibersignatur deaktivieren" damit mein USBasp unter Vista 64 laufen 
kan.

Gruß
Martin

von Waldemar F. (wally)


Lesenswert?

Hallo Martin,

es ist zwar schon mehrere Monate her, aber soweit ich mich erinnere 
musste ich jedesmal F8 drücken und die Treibersignatur deaktivieren.

Ich habe den USBasp an einigen uC getestet und mit einem Parallel 
Programmer verglichen. Seltsamerweise war der USBasp sehr langsam im 
vergleich zum Parallelem programmer. Er hat zum Teil 45 Sekunden für das 
flashen gebraucht wo der Parallele nur 5-10 Sekunden brauchte. Der Code 
war sehr klein, nur eine Art "Hallo Welt".

Falls du weitere Fragen hast kannst du mich gerne auch per PM 
anschreiben.

Grüße
Waldemar

von silent_max (Gast)


Lesenswert?

Hallo Wally.

Zwar ist Fein Beitrag ca. 4 Jahre alt... Aber ich bin gestern erst 
darauf gestoßen...

Wie hast Du es damals geschafft, Dein STK500 mit Deinem Computer zu 
verbinden?? Welche Softwarekonfigurationen hast Du genau vor genommen?

Weil ich stehe seit einiger Zeit vor dem Problem, dass ich mein STK500, 
auf dem ein 8051er Chip oben ist, nicht via USB-to-RS232-Adapter mit dem 
AVR Studio verbinden lässt...

Kannst Du Dich vielleicht daran erinnern, wie Du damals das Problem 
gelöst hast?

Gruß

Max

von Wally (Gast)


Lesenswert?

Hi.
Wow, das ist ja echt schon lange her. Habe mein STK500 zwar noch aber 
schon ewig nicht mehr benutzt.
Such mal Online nach dem Handbuch für das STK500, danach habe ich mich 
damals gerichtet.

Wenn ich mich recht erinnere habe ich auch ein usb nach rs232 Konverter 
genommen. Es sind ja zwei serielle Anschlüsse auf dem Board. Eins zum 
Programmieren und eines für dir Kommunikation via Uart, falls man es 
verdrahtet. Wenn AVAbt Studio installiert ist, musst du glaube ich oben 
im Menü auf Tool und da irgendwo irgendwas mit STK500 auswählen. Da 
wählst du dann einfach den COM Port von deinem usb nach rs232 Konverter 
und fertig. Das STK muss dabei mit Spannung größer 7V versorgt werden. 
Dann erkennt das Studio das auch.

Bei den 8051 Dingern musst du aufpassen, ob RST invertiert wird oder 
nicht. Prüfe da anhand des Hanbuchs vom STK und dem Datenblatt des 8051 
ob die Pinbelegung passt. Je nachdem ob du ein Fabrikneuen 8051 hast 
oder einen wo ausgebaut hast, musst du ggf einen externen Quarz 
anschließen und ein oder zwei Jumper setzen.

Komme vielleicht kommende Woche heim und kann das nochmal nachsehen. 
Ansonsten kannst du das ja mal ausprobieren und schreiben wo es 
scheitert, dann versuche ich oder ggf jemand anderes zu helfen. Bzgl. 
Verdrahtung auf dem stk kannst du ja ein Foto machen oder aufzeichnen.

Viel Erfolg
Wally

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.