Forum: Mikrocontroller und Digitale Elektronik 89C2051


von Simon (Gast)


Lesenswert?

Hallo 8051er Profis,

habe im Moment ein kleines Projekt mit einem 89C2051 in Arbeit.
Hierbei zeigt sich, dass der Prozessor manchmal nicht sauber anläuft.
Habe hier im Forum schon gesucht und dabei festgestellt, dass andere
das Problem auch schon hatten. Die wirkliche Ursache für das Verhalten
wurde aber bei keinem Beitrag deutlich. Ich betreibe den Prozessor mit
einem 3,686MHz Quarz und daran jeweils 33pF. Der Reset ist mit 10µF
(nach Vcc) und 10 kOhm nach GND beschaltet (Parallel zum Widerstand
noch eine Diode). Versorgungsspannung beträgt 5 V stabilisiert und ich
denke, dass sie sauber abgeblockt ist.
Schwingt der Quarz zu langsam an und der Reset ist längst vorbei
(Grösserer Kondensator brachte keine wirkliche verbesserung) oder ist
der Prozessor "Layoutkitisch" (habe einen Aufbau auf einer
Lochrasterplatine, aber eigentlich einen sauberen Aufbau)?

Gruss

Simon

von Martin (Gast)


Lesenswert?

Versuch mal einen Reset-Baustein.
Durch das Aufladen des Kondensators wandert der Reset-Eingang langsam
dahin.
Durch einen Reset-Baustein erhält der Reset-Eingang klare Signale.
Ich empfehle den TLC7705IP

Tschüss
Martin

von Michael (Gast)


Lesenswert?

Ich bevorzuge Dallas DS1812, TO 92, ich glaube keine 50 Cent.
Michael

von Eddi (Gast)


Lesenswert?

Der TL7705 hat dafuer den Vorteil sowohl RES als auch /RES zur
Verfuegung zu stellen. Ausserdem gibt's noch einen Reset-Eingang und
die Dauer ist einstellbar.
Lohnt sich dann aber eher fuer Projekte mit viel Peripherie. Wenn's
nur ein Controller ist, reicht der DS1812 vollkommen aus.

Eddi

von Martin (Gast)


Lesenswert?

Gibt es den DS1812 auch mit Low-Aktiven Reset?

Martin

von Peter D. (peda)


Lesenswert?

Zu Hause nehme ich auch oft diese 10µF+10k ohne Probleme.

Auf Arbeit nehme ich den MAX813L, damits idiotensicher ist.


Solche Fehler können aber durchaus auf nicht initialisierte Variablen
hindeuten. Fülle mal nach dem Reset den kompletten RAM mit 00.


Peter

von Michael (Gast)


Lesenswert?

@ Martin,
dann heißt er DS 1813. Die Extension stellt die Triggerspannung dar.
Ich nehme für die AVR's den DS 1813-10.


@ Eddi,
du hast recht. Evtl ist deine Wahl die bessere, da lt. deiner
Beschreibung ja ein Watchdog mit drin sein muß. Die alten 89CX51 haben
keinen internen Watchdog.
Michael

von Benedikt (Gast)


Lesenswert?

Was hast du denn für eine Betriebsspannung ?
Ich verwende so ziemlich alles für den Reset was gerade rumliegt, oft
auch ohne Pulldown Widerstand, der ja eingebaut ist. Mit 100nF-1uF
hatte ich noch keine Probleme. 33pF für den Quarz ist auch mein
Standartwert -> Bisher Null Probleme.
Das einzige problem das ich mal hatte war eine Propeller Clock. Hier
bekommt dern uC seine Spannung über eine Spule. Das ganze ist leider
sehr hochohmig, weshalb ich
a) sehr große Elkos verwendet habe (um den hohen Strombedarf der LEDs
zu decken), was aber dazu führt, das es einige s dauert bis die
Spannung von 5V am uC anliegt -> Reset muss auf 5s eingestellt sein)
b) im Leerlauf etwa 25V Betriebsspannung habe.

von Simon (Gast)


Lesenswert?

Danke für Eure Antworten.

Werde am Reset noch mal optimieren. Hatte bisher eigentlich (zwar
andere Prozessoren) auch noch nie so richtig ein Problem mit dem
Reset.

@Peter
Werde mir die Software noch mal genau vornehmen. Probiere es auch noch
mit einem Einfachstprogramm um festzustellen ob damit die Probleme auch
noch bestehen.

Gruss

Simon

von Markus_8051 (Gast)


Lesenswert?

Ich hatte beim 89C2051 auch schon oft Probleme mit sauberem Anlaufen
gehabt, und ich denke schon, daß es am Reset und nicht an fehlender
Variableninitialisierung liegt. Denn nach Einbau eines Resetcontrollers
lief es hervorragend. Es lag an der Versorgungsspannung. Wenn diese zu
langsam hochfährt, ist der µC mit seinem Reset fertig, bevor eine
sichere Betriebsspannung erreicht ist. Habe dann einen MAX811 (oder war
es 812, jedenfalls der mit dem highaktiven RESET) verwendet. Der ist
allerdings - verglichen mit dem 89C2051 - schweineteuer.
Auch die oben erwähnte Variante für 50cent ist im Vergleich zum µC
immer noch sehr viel.

Warum kriegt ATMEL das nicht mal geregelt, einen 8051 zu bauen, der
sauber anläuft?!?

Gruß,
Markus_8051

von W. (Gast)


Lesenswert?

@Michael:
Wo kann man den für etwa 50Cent kaufen?

von Benedikt (Gast)


Lesenswert?

@Markus_8051
Dann musst du das RC Glied entsprechend groß auslegen. Mit einem 10uF
Elko und keinem Pulldown kommt man auf ein paar Sekunden Resetdauer.
Das funktioniert dann auch bei der hochohmigsten Spannungsquelle nich
Problemlos.

von Michael (Gast)


Lesenswert?

@ Wilhelm,
jetzt, wo Dallas von Maxim gekauft worden ist, bekommst du ihn bei
Spezial Elektronik. Preis bei 100 Stück
Bei RS ist der Einzelpreis 1,91.
Michael

von Markus_8051 (Gast)


Lesenswert?

@Benedikt:
Da das Netzteil nicht fest zur Schaltung dazugehört, ist die nötige
Anlaufzeit nicht zu bestimmen. Natürlich kann man den Elko größer
auslegen (beim 89S8252 gibt es dann Probleme mit dem ISP), aber
wirklich sicher kann man sich da nur mit einem Resetcontroller sein,
derhalt die Spannung überwacht.

Markus_8051

von Benedikt (Gast)


Lesenswert?

Die Probleme mit ISP und zu großen Resetkondensatoren kenne ich.
Daher habe ich mir ein eigenes Programmiergerät gebaut, da es keine
Seriell Port Software für ISP von AT89S51/52 gibt !
In dem Programmiergerät arbeitet ein AT89C2051. Das Ding programmiert
AT89S51/52, AT90Sxxxx. AT89S8252/53 werden noch nicht unterstützt, da
ich dafür keinen Bedarf habe und diese komplett andere Befehle und
Routinen haben.
Der Reset Ausgang läuft über eine Transistorendstufe, da sind auch  ein
paar uF kein Problem. Außerdem ist das Gerät etwa 10x schneller als
Ponyprog.

Wenn man 1uF für den Reset nimmt, und es dann nicht läuft sollte man
sich wirklich Gedanken machen, ob man nicht ein anderes Netzteil
nimmt...

von Simon (Gast)


Lesenswert?

Hallo zusammen,

es sind hier ja einige Anregungen zur Resetschaltung für einen 89C2051
zusammengekommen. Zwischenzeitlich kann ich berichten, dass die
einfache RC-Schaltung wie ich sie eingesetzt habe und glaubte sie mache
mir Probleme nicht so schlecht ist wie ihr Ruf. Will damit sagen, ich
hab die Ursache für mein Problem gefunden. Es war nicht der Reset,
sondern ein Softwarefehler (Stacküberlauf - ja Asche auf mein Haupt).

Danke für Eure Hilfe

Gruss

Simon

von Ralf Altmann (Gast)


Lesenswert?

@Simon:

Macht doch nix, immerhin lässt sich feststellen, dass es doch besser
und sicherer wäre, einen Resetcontroller zu verwenden. Auch wenn es bei
einigen mit RC-Glied wunderbar läuft und nie Probleme gibt.

Gruß Ralf

von Bastian (Gast)


Lesenswert?

Hallo,

auch wenn dieses Thema aus grauer Vorzeit stammt, eine Frage:

Ich hatte nun auch das Probleme mit dem Reset/sauberen Anlauf.
Benutze auch die Variante Kondensator 10µF nach 5V+ (vom 
Spannungsregler), Diode nach minus sowie 10k nach minus.
 Jetzt habe ich einfach mal die Diode weg gelassen, läuft!!
Super!
Aber welche funktion hat die Diode? Freilauf für den Kondensator?
kann ich die einfach weg lassen ohne Schäden befürchten zu müssen?

MfG
Basti

von Gast (Gast)


Lesenswert?

>auch wenn dieses Thema aus grauer Vorzeit stammt, eine Frage:

Die RC-Lösung ist schwarze Vorzeit.
Aktuell ist: Reset-Controller und fertig!

von Bastian (Gast)


Lesenswert?

Hallo
Nagut, was gibt es denn da, er sollte wenn genau wie der 89c2051 
verwendet werden können, (Progammierung, Pinbelegung)
Aber das war jetzt auch keine Antwort auf meine Frage!
Basti

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.