Hallo! Habe mir einen AT89S52 gekauft, habe ihn nach der im Anhang gezeigten "Anleitung" aufgebaut, also auch über RS232 angeschlossen, um zu sehen was passiert, habe mir auch ein Parallelportkabel zur Programmierung gebaut, genau nach diesem Schaltplan: http://chaokhun.kmitl.ac.th/~kswichit/IspPgm30a/ISP-Pgm30a.html Habe mit Keil etwas programmiert, aber das funktionierte schonmal nicht, habe jetzt den Controller nur an der RS232, und versuche etwas zu empfangen, was der Controller ja nach Betätigung des Reset-Tasters machen sollte. Also am "RST"-Pin kommt das richtige Signal an ("Vcc), wenn ich den Taster betätige, aber am Hyperterminal liest er nichts aus! Woran kann das liegen? Muss ich bestimmte Verbindungseinstellungen benutzen? Habe momentan: 9600 baud 8 Datenbits keine Parität Stoppbits 1 Flussteuerung Hardware Wäre für jede Hilfe dankbar!!
//Habe mit Keil etwas programmiert// was denn ? Hast also was programmiert und das .hex file mit dem Progger in den AT89S52 geschrieben ? poste mal das Sourcefile und beschreibe was du gemacht hast. Gruß Joe
Also, habe einfach "irgendwas" programmiert: #include<stdio.h> void main(void) { while(1); } Das ist das, was ich programmiert habe...es kommt dann beim Versuch der Übertragung "Buffer Verify Error @ Adress 0000 Data Read = 00 Prog Data = 02 " Wenn ich aber z.B. "Read" mache, also den aktuellen Inhalt des Controllers lese, dann macht er das anstandslos, und wenn ich den vorher so runtergeladenen Inhalt wieder schreibe, macht er das auch ohne Probleme... Es liegt also wohl an der Hex-Datei...obwohl ich an der RS232 immer noch nichts sehe.... :-/
Komisch finde ich auch, das die Hex-Datei nur 86Byte groß sein soll?!?! Aber da ist doch der gesamt "Text" aus der stdio.h drin, oder nicht?
Ich kann, wenn ich auf "Dips Buffer" gehe, alles mit "FF" füllen, das schreibt er dann auch, gerade habe ich versucht es mit "00" zu füllen, dann kommt: "Buffer verify Error at Adress 02E0 Data Read = 00 Prog Data = 00 Was kann das denn sein? Kann mir niemand helfen?
Hi Großmeister, was auch immer in dem .HEX File ist, es kann nicht programmiert werden. "Buffer verify Error at Adress 02E0" meint, das programmierte Datenwort an Adresse 02E0 wurde nicht erfolgreich in den AT89S52 geschrieben. Öffne mal das .HEX File mit Wordpad, vergleiche den Inhalt mit "Display Buffer" in deiner Prog. Software, Werte sollten identisch sein. Aus meiner sicht programmiert dein Proggi nicht korrekt. Joe
Mmmmh...danke erstmal für die Hilfe!! Komisch ist aber doch, das der die "00" und die "FF" programmiert... Die Programmier-Schaltung setzt an den RST eine Spannung von ca. 2.5V, bei Vcc = 5V...reicht das überhaupt aus, um den Controller zu programmieren? Wenn ich die Hex-Datei mit dem Notepad öffne, habe ich da 6 Zeilen mit vielen Zahlen, in der Programmiersoftware sind in der ersten Zeile (0000) in den ersten 4 Spalten was drin, dann ab 0800 relativ viel... Habe mal "so" einfach auf "Read" geclickt, das macht er auch, obwohl gar kein Controller dran hängt, also scheint das ganze wohl doch nicht zu laufen... Ich hatte den IC vorher falsch rum eingesetzt, kann er da Schaden genommen haben? habe ihn jetzt richtig herum drin, aber es läuft halt immer noch nicht...
hmmmm, falsch herum! der ist defekt, 2,5V ist definitiv zu wenig, FF programmiert er nicht (das ist der Wert einer gelöschten Zelle). Also, nimm irgendein sample von Keil und versuchs nochmal aber ich bin ziemlich sicher das der Proggi nicht proggt. Joe
Habe gerade mal "logsch" angefangen zu messen, wenn ich am PC auf "Write" clicke, dann ändern sich alle Pegel am Ausgang des Parallelports...ich denke mal das sollte so weit OK sein, oder?
Hab auch mal versucht, durch drücken des Reset-Tasters den RST-Port "manuell" auf Vcc zu setzen, aber klappt auch nicht... Dieser 74HCT541 ist wohl kaputt dann, er wird auch nicht warm...wie könnte man denn noch testen ob der funktioniert?
Also, wenn ich eine Beispiel-Hex nehme, und die versuche zu laden, geht die Spannung am RST kurz hoch, bis ca. 4.x, manchmal 3.x, dann kommt direkt der Fehler...glaube also nicht unbedingt das es an dem Baustein liegt...weil er in dem kurzen Moment ja die Spannung "hochzieht"...
Könnte es sein, das der Reset-Taster, der ja über den Kondensator und den 8k2-Widerstand angeschlossen ist (siehe "Mikrocontroller_Experimentierboard.pdf"), das Problem ist? Weil auf der Programmierplatine habe ich ja noch den 10nF-Kondensator, der ja direkt zwischen RST-Port und GND ist...der sollte dann, denke ich mal, das Potential am RST-Port "stabil" halten, aber jetzt ist ja direkt der 8.2k parallel dazu, der ihn also "entlädt", oder? Das könnte die nur 2.5V erklären...andererseits sollte es doch bei Betätigung des Reset-Tasters trotzdem laufen, oder nicht?
Probier mal folgendes, org 0000h signal: cpl p1.1 ljmp signal end an p1.1 wird ein Rechtecksignal erzeugt, also kompilieren und rein in den Flash. Joe
Welche Programmiersprache soll das sein? Einfach so 1 zu 1 in µVision als "Text"? Sorry das ich solche "Anfängerfragen" frage, aber haben an der FH nur in C programmiert auf einem ADuC812, von meinem Professor Bernd vom Berg (den kennen ja vielleicht einige hier)...
Ja, das kann es auf jeden Fall! Werde ich dann nachher mal ausprobieren, wobei ich wirklich denke es könnte auch an dem RST-Eingang liegen, da wie gesagt ein 10nF parallel zu einem 8k2 ist, was ja einer Zeitkonstante von 82µs entspricht, der Kondensator wird also dauerhaft entladen, und das schafft der Baustein dann wohl nicht denke ich...oder vielleicht ist er auch deswegen schon defekt... Aber das kann ich leider erst nachher testen, wenn ich bei Conrad war und mir die Teile neu besorgt habe... :-/ Aber ich danke dir auf jeden Fall schonmal für die Hilfe, werde dann nachher prüfen, auch mit dem Assembler-Programm von dir... ;-) Wie lange ist das Rechtecksignal denn, was er dann ausgibt? Habe nämlich kein Oscilloskop hier...:-(
Bei einem Takt von 12 MHz entspricht das 1uSec. Soweit ich mich erinnere ist beim Keil ein blinky.c dabei, macht das gleiche im Sekundentakt. Joe
Ja, dann gucke ich mal, wobei ich mir fast sicher bin das es an der Sache mit dem Kondensator liegt... Der "Asim Khan", von dem ich das Programmierinterface gebaut habe, der hat extra einen Jumper auf seinem Board, so das ENTWEDER der 10nF zwischen RST und GND ist, ODER der RST über 10µF und 8k2 dran ist...bei mir ist ja der 10nF parallel zum 8k2... Ich hol mir nachher neue Bausteine (brauche ich eh, da noch ein paar mehr Leute nen Controller haben wollen von mir...*gg*), teste dann mit den neuen Bausteinen, und bau mir einen Dip-Schalter ein, um zwischen 10nF und 10µF/8k2 am RST zu wählen... Dann benutze ich noch dein Assembler-Programm, und dann wird's schon klappen... ;-)
Hab jetzt leider keine Bausteine besorgen können, aber habe mal den Reset-Eingang zum umschalten Programmiermodus <=> Run-Modus umgebaut, also das er nur einen Power-On-Reset macht, hat auch jetzt die +5V am Reset-Eingang, aber bekommt immer noch keine Verbindung zum Controller...
du machst es einem nicht leicht, was geht, was geht nicht ? Mal ein anderer Ansatz: Pony Prog. ist soweit ich mich erinnere mit diesem Adapter lauffähig. Vergleich das mal und verwende Pony. Prog. Joe
Hallo!! Ja, ich weiß, bin selber auch am verzweifeln, habe glaube ich auch einen Fehler beim Anschluss des Quarzes gemacht, werde das gleich mal beheben, und dann mit neuen ICs mal testen... PonyProg versuche ich dann auch direkt mal!!
Hab jetzt den Quarz definitiv richtig angeschlossen, alle ICs ersetzt, alle Verbindungen geprüft, alles ist OK!! Es kommt weiterhin die Fehlermeldung!! Was mache ich falsch?!?!
Habe es mal mit PonyProg versucht, da kommt der Fehler "Device not responding" Mmmmh... bin echt am verzweifeln... Aber im PonyProg ist auch nur der AT89S53 und der AT89S8252 Habe beide probiert, aber geht nicht!! Woran kann es denn noch liegen?
Hier mal ein Bild im Anhang... Das ist das Controllerboard...am "Pt100" ist zur Zeit nix dran...also offen... Das Display ist auch nicht dran...die "Lötstifte" sind jeweils die Steckkontakte... Könnt ihr einen Fehler entdecken? Habe alles so verlötet wie auf dem Bild! Auch die Unterbrechung am Displayausgang zum Controller sind gemacht, so das die Pins die von der linken Seite kommen nicht auf die anderen Ports gelangt...
Habe jetzt mal den "AEC_ISP" "gebaut" und angeschlossen, er "meckert" nix, liest auch was aus und schreibt was rein ohne zu meckern... Heißt das jetzt, das Teil funzt?!?!? Oder wie kann ich das am besten überprüfen?
Am besten prüfen kannst du es meiner Meinung nach, indem du ein "relativ" großes Programm reinschreibst, und wieder ausliest. Und dann gilt: if(geschrieben == gelesen) return(OK); else return(FAIL); Ralf
Jetzt war ich gerade guter Dinge, das alles klappt, wenn ich jetzt das gleiche machen will wie gerade kommt "Error while programming flash memory Flash byte Error in address 0000" Mmmmh...sehr merkwürdig... :-/
Ich hab jetzt alles ausprobiert, PonyProg und AsimKhan-Adapter, dann jetzt diesen "AEC_ISP", da ging es auch irgendwie einmal, jetzt nicht mehr, ich weiß echt nicht mehr weiter! Auch auf der seriellen Schnittstelle kommt nix an! Au man, was mache ich denn jetzt bloß? Hab da schon so viel Geld reingesteckt, will das Zeug doch einfach nur am laufen haben... Kann es an irgendwelchen Einstellungen vom Parallelport des Rechners liegen? Welche Sachen könnte man noch prüfen? Und wie?
"Auch auf der seriellen Schnittstelle kommt nix an!" Kann ja auch gar nicht ! Die Programmierversuche über die UART hättest Du Dir schenken können, da geht absolut nix beim AT89S52. Steht doch deutlich in dem PDF. Und die Parallelport-Programmer sind immer sehr kritisch, da findest Du hier reichlich Proplemberichte. "Au man, was mache ich denn jetzt bloß?" Guck doch mal in Tabelle 1, welche Typen mit der Flip-Software laufen, z.B. der AT89C51ED2. Ist zwar etwas teurer als der AT89S52, aber dafür völlig problemlos. Programmieren über die UART geht immer, selbst mit USB/RS232-Adapter. Und wenn Du dann erstmal Erfolge hast, kannst Du ja immer noch versuchen, den Parallelprogrammer zum Laufen zu kriegen. Oder Du bruzelst Dir in den AT89C51ED2 selber einen rein, die Programierbefehle sind ja im Datenblatt beschrieben. Peter
Nicht verzweifeln, wenn Pony Prog. meckert dann ist der Prog. Adapter falsch aufgebaut. Schau dir mal die Brücken auf dem DB 25 Stecker an. Pony Prog kann den 89S52 sowieso nicht proggen aber immerhin kann man jetzt schon sagen das der Adapter nicht funktioniert. Peter hat recht, UART geht nicht bevor nicht ein sinnvolles Program im MC ist, SPI sollte aber gehen. Ich gehe davon aus das du MISO, MOSI, SCK und Reset nach Pony. Prog. Anleitung verkabelt hast. Quarz falsch ? was war denn falsch ? hoffe du verwendest 33pF am Quarz. Joe
Das die serielle Schnittstelle nicht gehen kann hab ich dann gestern auch "rausgefunden"...aber ein Kollege meinte, das er auf der seriellen Schnittstelle dann zumindest bei einem Reset irgendwelche Sachen ausspucken müsste, aber diese Info scheint wohl falsch zu sein... Aber habe gestern nochmal die Parallelportleitung geprüft, die Anschlüsse sind definitiv richtig, und die erste Hex-Datei hat der ja mit "AEC_ISP" auch wohl auf den Controller geschrieben...leider konnte/kann ich da nicht überprüfen, da er jetzt die genannte Fehlermeldung ausgibt... Vorher hatte ich ja PonyProg versucht, und da hatte ich die Anschlüsse wie auf den Bildern zu sehen, also über den 74HCT541... Werde dann wohl nochmal alles nach "PonyProg-Anleitung" aufbauen müssen, und dann nochmal testen... Beim Quarzanschluss hatte ich mich vertan, da war der Quarz nur von XTAL2 gegen Masse, dann ein Kondensator von XTAL1 gegen Masse, und der andere von XTAL2 gegen Masse...die Kondensatoren haben beide 33µF!! Also nicht Picofarad, sonder Microfarad...könnte da der Fehler liegen? Bin euch auf jeden Fall sehr dankbar für eure Hilfe! War gestern echt schon kurz vor der Verzweiflung... Habe auch schon überlegt mir erstmal sowas hier zu kaufen: http://myavr.de/shop/artikel.php?artID=2 Und damit erstmal mir alles "anzugeignen", und dann mich an den AT89S52 zu machen...was haltet ihr davon? Also von der Idee und von dem Bausatz??? :-)
Hallo B, dir ist schon klar, daß das "myavr"-Board eine andere Controllerfamilie ist?!? Sprich, mit Deinem Keil wirst du da nicht viel ausrichten können. Da brauchst Du ganz andere Software (z.B. AVR-Studio). Es liegt ganz bestimmt an den Kondensatoren. 15..37pF ist fein, 33µF definitiv zu viel, da schwingt der Quarz nie an. Bedenke auch, daß die Kapazität von zwei benachbarten Kupferbahnen, die von rechts bis links über die gesammte Länge der Leiterkarte laufen, auch im Bereich von einigen pF liegt. Deshalb gehören die Kondensatoren und der Quarz so nah wie möglich an xtal1/2 dran, und die weiterführenden Kupferbahnen gehören durchgetrennt. Mit einem Oszilloskop kannst Du nachmessen, ob der Quarz schwingt. Ohne schwingenden Quarz klappt die Programmierung nie... Viel Erfolg, Markus_8051
Hallo!! Solange ich die Software für das "myAVR"-Board kostenlos bekomme, ist das kein Problem, und so wie es ausschaut ist es kein Problem kostenlose Software zu bekommen...Keil habe ich ja auch nur in der Demo-Version mit max. 2k Code...das sollte für meine Anwendungen ausreichen... Aber das mit den Kondensatoren werde ich nochmal prüfen, die Leiterbahn daneben ist schon so kurz wie möglich, den Rest links davon werde ich dann unterbrechen, und kleinere Kondensatoren einbauen... Komplett ohne Kondensatoren wird es nicht laufen, oder? Habe wie gesagt leider kein Oszilloskop da... :-/ Aber werde mir dann wohl irgendwo mal eins ausleihen müssen... Danke aber erstmal für die Tips!!
Hab gerade gesehen, das ich mich tatsächlich bei den Kondensatoren vertan habe...aus der Datei oben (Mikrocontroller_Experimentierboard.pdf) ist ersichtlich, das dort 33PIKOFarad-Kondensatoren drin sind.... :-/ Also wieder nen Fehler gefunden, den ich nachher direkt abstellen werde...hehe... Wenn es dann läuft, dann bist du mein Held! ;-)
Hallo Nils, noch etwas: Wenn Du vom Keil nur die Demoversion hast, gibt es noch eine Beschränkung wenn Du C programmierst: Der Code, der erzeugt wird, läuft nur auf Prozessoren mit mehr als 8k ROM, da der Start der compilierten Programme auf 0x2000 gesetzt wird. Also schau mal ins Datenblatt, wieviel FLASH Dein µC hat. Der AT89S8252 hat definitiv nur 8k, sprich denn kannst Du nicht mit der Demoversion von Keil in c programmieren. Hier mußt Du dann Assembler benutzen, da gibt es diese Einschränkung nicht. Gruß, Markus_8051 P.S.: Du siehtst, je mehr Du hier im Forum über Dein Projekt erzählst, desto besser können wir Dir helfen. Ich weiß, gerade am Anfang ist das schwer, da Du Dir sicher nicht vorstellen kannst, welche - für dich unwichtige - Kleinigkeiten hier für die Freaks wertvolle Hinweise sein können.
Hehe...hatte ja extra oben schonmal den Screenshot meiner "Lochmaster-Platine" gezeigt... Zudem habe ich das Fach ja auch während meines E-Technik Studiums gehabt, bin also kein "vollkommener" Anfänger (auch wenn ich mich im Moment so fühle...hehe...) Der AT89S52 hat 8k würde ich sagen... "Atmel C51 In-System-Programmable Flash MCU Gehäuse: DIP-40 Clock-Speed: 0-24 MHz Vcc: 4,0-5,5V Flash: 8 KByte RAM: 256 Byte II/O Pins: 32 Timer: 3 " Oder was ist damit gemeint? Gibt es noch andere Programme, mit denen ich in C programmieren kann? Habe zwar auch mal was in Assembler gemacht, aber das war mir viel zu kompliziert... ;-) Das wäre dann nämlich auch ein "Problem", was es geben könnte... ;-)
Wenn du die korrekturen durchgeführt hast dann beginne mit dem Rechteck testprogramm, kann dir auch die *.Hex datei schicken. Joe
Ja, das wäre sehr gut!! Eventuell liegt es ja auch an dem Hex-Programm... Meine eMail-Adresse steht oben ja drin, wäre super wenn du mir da mal eine Hex-Datei zukommen lassen könntest, die an einem der Pins P2.0 bis P2.7 ein "Blinken" erzeugt oder so...was ja einem Rechteck entspräche...nach Möglichkeit aber dann so lange Impulse, das ich es mit "bloßem Auge" erkennen kann irgendwie (wie gesagt, hab (noch) kein Oszilloskop zur Hand) Danke schonmal im Voraus!
Wow, das ging schnell!! Dank dir erstmal soweit, fahr auf'm Rückweg bei Conrad vorbei (ja, ist ne "Apotheke"), und hol mir die passenden Kondensatoren, und dann wird nochmal gelötet, und dann überprüft... :-)
Nochmal so als "Zwischenfrage", bis ich gleich Feierabend hab und nach Conrad fahre etc. Welches Programm kann ich noch nehmen, außer Keil µVision2? Vielleicht eines, wo ich auf jeden Fall en AT89S52 verwenden kann?!?! Mein Professor hat noch den "Wickenhäuser C-Compiler" angegeben? Kennt jemand dieses Programm?
Alles klar, danke soweit!! In 2 Stunden wissen wir dann, ob's an den Kondensatoren gelegen hat... ;-)
Also!! Habe die Kondensatoren getauscht, alles nochmal überprüft, dann mit dem AEC_ISP die Hex-Datei von Joe versucht zu schreiben => geht nicht Dann das AsimKhan-Kabel wieder zusammengebaut, und damit versucht => geht nicht! Liegt es eventuell am ADC, der ja auf die gleichen Port-Bits geschaltet ist wie MISO, MOSI und SCK...?!?! (siehe Schaltplan) Woran kann es noch liegen??
Habe an dem Port mal gemessen, im "Ruhezustand" sind alle Pins auf "Vcc", nur der eine nicht, wo der ADC dran ist, der ist auf 0V...hat das irgendwelche Auswirkungen? Ich löte den ADC mal aus, und dann mal gucken was passiert... ;-)
Habe jetzt mal die Pins für MISO, MOSI, SCK und RST nicht angeschlossen, und mal gemessen was der Parallelport ausspuckt, wenn ich auf "Write" gehe, oder auch auf "Read", aber da kommt nix an?!?! Wie muss der Parallelport am Rechner konfiguriert sein? ECP? EPP? ECP+EPP? Normal? Das sind die Optionen die ich im BIOS habe...
Habe jetzt MISO, MOSI, SCK und RST auch wieder dran, aber z.B. am RST tut sich nix!! Keine +5V!! Au man, ich merk schon, dat wird nix mehr mit dem Ding!! Was soll/kann ich denn jetzt noch machen? Irgendeiner irgendeine Idee?
Hab mir jetzt erstmal das myAVR-Kit da bestellt, werde auf den AT89S52 später dann mal zurück kommen... Vielleicht bekomme ich es ja irgendwann mal hin, das er läuft, dann kann ich ihn zu sonstwas benutzen... ;-) Also dann mal direkt Tips für den myAVR her!! ggg
Hey! ich habe genau die selbe problems gehabt. ich habe keine ahnung was hier los ist. hier wo ich wohne (argentina) sind diese kits sehr teuer. konntest du etwas mit dem 89s52 schaffen? oder ist er jetzt schon lange tot? danke sehr!!
sir , i want the hardware circuit for programming of 89S51/52/8252. i also requires software for the same namedaec_isp. plz cooprate me . thanking you.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.