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.
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.