Forum: Mikrocontroller und Digitale Elektronik AT89C51ED2 Signal aus Reset


von Patrick F. (Gast)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von FPGASchubser (Gast)


Lesenswert?

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.

von FPGASchubser (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von FPGASchubser (Gast)


Lesenswert?

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

von Patrick F. (Gast)


Angehängte Dateien:

Lesenswert?

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

von FPGASchubser (Gast)


Lesenswert?

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.

von Patrick F. (Gast)


Lesenswert?

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?

von Peter D. (peda)


Lesenswert?

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

von Patrick F. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Patrick F. (Gast)


Angehängte Dateien:

Lesenswert?

habe gerade gemerkt, dass der erste doppelt ist, daher hier der 
zweite...

von FPGASchubser (Gast)


Lesenswert?

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.

von Patrick F. (patrickf)


Lesenswert?

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

von FPGASchubser (Gast)


Lesenswert?

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.

von FPGASchubser (Gast)


Lesenswert?

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.

von Stephan (Gast)


Lesenswert?

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ß

von Stephan (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.