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
Beim AT89S8253 bin ich mir nicht sicher, aber der AT89S52 hat keinen internen RC Oszillator. Gruss, Bernd
Gast
#1291284
Dir ist schon klar das es ein 8051 Derivat ist ?
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
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
Gast
#1291343
>Dann würde es mit freiliegenden XTAL funktionieren?
Nein. Der hat keinen interenen Osci.
Entweder Oscillator an XTAL dranhängen oder Quarz.
Gast
#1291346
>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.
> @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
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 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
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 | |
2 | |
3 | |
4 | |
ansonsten:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
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
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
Gast
#1293479
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 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
Gast
#1294024
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 | |
2 | |
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
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).
Gast
#1298793
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)
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 | |
2 | |
3 | |
4 | |
5 | |
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
Gast
#1309867
Hallo probiers mal mit diesem hex-file. meine fuse-settings
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
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
Gast
#1311798
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.
Gast
#1430841
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
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
Gast
#3416549
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
Gast
#3416609
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.


