Hallo, ich möchte gerne meinen Mikrocontroller AT89C51ED2 programmieren. Angeschlossen wird das ganze über einen FT232RL und eine MicroUSB Buchse. So weit so gut, wenn ich die ganze Geschichte anstöpsel, erscheint der FT232 unter den Geräten in Windows. Treiber ist automatisch installiert worden. Um den Bootloader des AT89 laden zu können, benötige ich folgendes: EA = High; PSEN = Low; RESET = fallende Flanke (High to Low); Nun habe ich im normalen Betrieb die Spannung am Reset Pin des Mikrocontroller gemessen, und komischerweise befinden sich dort 4,2V. (Normalerweise sollten dort erst 0V sein und wenn der Taster gedrückt wird, dann kommen die 5V....). Also habe ich den uC ausgebaut, das Beinchen hochgebogen, und das ganze wieder in den Sockel gesteckt. Nach dem Einschalten, erneut gemessen, und siehe da, aus dem Reset Pin des uC bekomme ich die 4,2V. Nun weiss ich nicht mehr weiter, vielleicht kennt sich hier jemand noch damit aus. Das wäre super, denn ich komme nicht mehr weiter. Vielen Dank im vorraus Patrick
Dafür gibt es eigentlich nur 2 Möglichkeiten. Entweder erreicht die Versorgungsspannung nicht den vorgeschriebenen 'Safe Level', das müssten 4,5 Volt sein. Oder der Quarzoszillator erreicht nicht den notwendigen Pegel über VIH und unter VIL, siehe Kapitel 11 im Datenblatt. Es geht nicht ganz klar hervor, ob die Pegelüberwachung des Oszillators auch am RST Pin den High Level erzeugt, oder ob das nur der Power Monitor macht. Lt. Fig. 10-1 tut das zumindest der Power Monitor und der (im Moment vermutlich inaktive) Watchdog.
Du wirst dazu doch irgend eine Software einsetzen, etwa wie diese hier: http://www.flashmagictool.com/ oder die: http://www.atmel.com/tools/flip.aspx auf jeden Fall wäre zu klären wie die Leitungen der seriellen Schnittstelle eingreifen. Sonst müssen wir alle in die Glaskugel sehen und Raten. Gruß T.
P.S. Der Reset - Pin ist ein Eingang. Wenn Du in heraus biegst so ist der Eingang offen oder "floated" - deine Messung ist also keine Hilfe. Wichtig ist das der Pin an einer R/C kombination hängt, die beim Einschalten einen kurzzeitigen High - Pegel hergibt. Eventuell ist aber die Reset - Schaltung auch verwoben mit der Programmier - Mimik. Das sollte ein Schaltplan darlegen, den Du uns für weitergehende Hilfe zukommen lassen solltest! Gruß T.
FPGASchubser schrieb: > Wenn Du in heraus biegst so > ist der Eingang offen oder "floated" - deine Messung ist also keine > Hilfe. Nein, der MC hat einen internen Pulldown, der es ermöglichen soll, die einfache Resetschaltung mit nur einem C gegen Vcc zu benutzen. Ausserdem (Kapitel 10) hängt der Power Monitor und der Watchdog so am RST Pin, das eine externe Schaltung Power- und Watchdog Ereignisse auswerten kann. Der Reset Pin ist hier also nicht ausschliesslich ein Eingang. Das steht aber alles im Datenblatt, in den schon öfter erwähnten Kapiteln 10 und 11.
>>> Matthias schrieb.... >>> FPGASchubser schrieb... >>> uns so weiter.... ...nett das wir uns hier um Kleinigkeiten kabbeln während es den TO gar nicht mehr juckt. Fakt ist doch das er zu wenig Infos kommen lässt. Gruß T.
so entschuldigung für die verspätete Antwort, habe euch nun mal den Schaltplan im Eagle Format angehängt. Habe momentan nur das Problem, erstmal nicht an eine Gleichspannungsquelle zu kommen. Ich werde mich wieder melden, wenn ich weitere Informationen habe, oder ihr noch etwas benötigt. Danke
Hallo, wie schon vermutet ist der RESET-Pin Teil einer größeren Schaltung. Offensichtlich wird versucht über einen Flankenwechsel an RTS ein Reset zu erzeugen über C9 (100n). In diesem Teil wird dein Problem sein. Hast du dich an eine Appnote gehalten ? Bist Du sicher das C9 so richtig angebracht wurde ? Du könntest den Wert mal variieren! Wenn ein Oszilloskop zur Verfügung steht, könntest du mal überprüfen ob sich auf RTS überhaupt etwas tut! Welche Programmier - Software wird denn verwendet ? Gruß T. P.S. Ein Bild deines Schaltplans wäre besser gewesen.
so ich habe mittlerweile ein Labornetzteil und den Fehler für die dauerhafte Spannung am RST Pin gefunden. Der Zuliefer hat mir den AT89C51ED2 geliefert, gefordert ist eingentlich der AT89C51CC03. Habe den Mikrocontroller nun ausgetauscht, und nun kann ich auch eine saubere fallende Flanke am RST Pin erzeugen. Jedoch hat sich an dem Timeout Fehler in Flip nichts getan. Die Hardware Bedingungen werden erfüllt; PSEN = Ground, EA = High, ALE = floatend ( HIGH). An was könnte es nun noch liegen?
Patrick F. schrieb: > habe euch nun mal den > Schaltplan im Eagle Format angehängt. Mach mal png oder pdf draus. Patrick F. schrieb: > Jedoch hat sich an dem Timeout > Fehler in Flip nichts getan. Über UART oder CAN und auch den passenden CC03 geordert? Wenn UART, dann geh mal mit der Baudrate runter (9600).
Der CC03 stammt aus einem meiner Experimentierboards, und wenn ich ihn in das für ihn vorgesehene Board stecke, kann ich ihn easy über USB programmieren. Jetzt könnte man sagen, programmiere ich ihn einfach auf dem anderen Board, jedoch möchte ich gerne wissen wo auf meiner Schaltung der Fehler liegt. Baudrate habe ich schon alle durchprobiert von 115200 bis 9600. Schaltpläne habe ich als .png angehängt.
habe gerade gemerkt, dass der erste doppelt ist, daher hier der zweite...
Da verstehe ich was grundsätzlich nicht! Du redest davon das Du einen AT89C51CC03 benötigst aber dein Schaltplan weist einen AT89C51AC2 auf. Was stimmt denn nun? Ist denn der CC03 Pinkompatibel zu dem AC2? Passt den der Schaltplan zur Platine? Was ist Evalboard und was ist Eigenbau? Wo sind denn die Unterschiede zum Schaltplan des Boards bei dem Flip korrket arbeitet? C9 ist problematisch. Ein Reset über RTS kann nur funktionieren wenn der Innenwiderstand des Reset - Pin mit einbezogen wurde - das kann aber vom Derivat abhängen. (wie Du ja schon selbst festgestellt hast!) Also - jetzt noch der Schaltplan vom Experimentierboard.... (oder mindestens die Bezeichnung!) Gruß T.
aaaaalso, geplant war ursprünglich der AT89C51AC2 ( wie im Schaltplan angegeben). Bestellt wurde leider der AT89C51ED2. Nachdem ich festgestellt habe, dass der ED2 ein komplett anderes Pinout besitzt, habe ich mir mein Experimentierboard zur Hand genommen und nach dem dort verbauten uC geschaut. Dort ist ein AT89C51CC01 gesteckt, welcher momentan in meiner Schaltung steckt. Das Pinlayout des CC01 ist identisch mit dem des AC2. Nun, da ich das Experimentierboard vor paar Jahren in der Schule zusammengeschustert habe, gibt es weder Hersteller, Modell oder Schaltplan dazu.... Könntest du sagen, was genau an C9 nicht stimmt? Bzw. mögliche Lösungsansätze? lg Patrick
Patrick F. schrieb: > Könntest du sagen, was genau an C9 nicht stimmt? Bzw. mögliche > Lösungsansätze? C7, C9, R13, R14 und der Innenwiderstand des Reset - Pin bilden zusammen ein RC - Glied. Die Idee ist dabei, das im Einschaltmoment C7 entladen ist und daher einen ziemlich gerigen Innenwiderstand aufweist. Dadurch zieht C7 eine Zeit lang den Reset - Ping auf 'H' obwohl schon Versorungsspannung anliegt. Der gleiche Effekt beginnt beim loslassen des Reset - Tasters. Beim Drücken wird der Kondensator C7 schnell entladen. Jetzt möchte Flip einen Reset auslösen um den Bootloader im AT89C51 zu starten. Dazu wird RTS für eine Zeit lang auf 'H' gestellt. Dazwischen entkoppelt aber C9. Das Verhältnis C7 zu C9 ist bei 27 zu 1 und damit ziemlich ungünstig für C9. Schafft es die kleine Ladung des C9 den Reset-Pin auf 'H' zu heben gegen den Widerstand von C7 und R14? Ist der Pegel des Wandlers FT232 an der anderen Seite des C9 hoch genug ? Hier brauchst Du Referenz - Designs des Herstellers. Evtl. findest Du so etwas bei Atmel auf deren Experimentierboards. Leider wieß ich dazu nicht mehr. Vielleicht kann ein anderer mehr dazu sagen. Allerdings ist das hier kein ausgemachtes 8031 - Forum. Es kann außerdem sein, das die RS232 - Pegel die u.U. höher ist als der Pegel den der FT232 liefert genutz wurden um den Reset an deine Experimentierboard auszulösen. Du kannst versuchen eine Diode 1N4148 mit der Kathode in Richtung C7 über den Kondensator zu legen (Testweise). Die Diode sollte den 'H' Pegel durchlassen und C7 Laden können. Gruß T.
FPGASchubser schrieb: > Es kann außerdem sein, das die RS232 - Pegel die u.U. höher ist als der > Pegel den der FT232 liefert genutz wurden um den Reset an deine > Experimentierboard auszulösen. Und hier noch in richtigem Deutsch: Es kann sein dass "echte" RS232 - Pegel genutzt wurden bei deinem anderen Board. Diese haben aber u.U. höhere Pegel (bis zu 9 Volt) und damit ganz andere Auswirkungen auf die Reset-Schaltung. So - Puhh... Gruß T.
als ich mein Board baute hatte der Michael seine Auto ISP Funktion für Flip veröffentlicht. Diese funktioniert hervorragend. Vielleicht hilft das weiter: Beitrag "Biete Layout brauche Platine für 89C51ED2 Eval Board" Gruß
zum Programmieren nur Flip starten, Reset drücken und los geht es. Flip beenden, Reset drücken und die MCU läuft.
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.