Forum: Mikrocontroller und Digitale Elektronik at89s52 Reset problem?


von x7r (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Kennt jemand noch die AT89C51/AT89S51 /AT89S52?
Bei einer Baugruppe die diesen Chip (AT89S52) verwendet, gibt es das 
Problem, dass kurz nach dem Einschalten, die GPIO´s P1.7 und P1.6 nicht 
high-Z sind sondern auf Ground liegen.

Während der µC im Reset liegen sollte (der Resetpegel ist zu diesem 
zeitppunkt tastächlich bei VCC), sind ab und an einige GPIO´s vom PORT0 
auf GND potential. Zu diesem Zeitpunkt hat der Controller noch keinen 
einzigen gültigen Clockcycle gesehen.
Die "GND" impuls ist immer nur 4ms breit. Hat jemand eine Idee was das 
sein könnte?

von Thomas Z. (usbman)


Lesenswert?

x7r schrieb:
> die GPIO´s P1.7 und P1.6 nicht
> high-Z sind sondern auf Ground liegen.
hat vielleicht mit den programming modes zu tun. Ist es nicht so dass 
die Dinger beim programmieren im Reset sein müssen?

> einige GPIO´s vom PORT0 auf GND potential
P0 ist ein Sonderfall weshalb man da ein Widerstandsnetzwerk (10k) als 
Pullup spendieren sollte, wenn der Chip im Portmode läuft

von Peter D. (peda)


Lesenswert?

x7r schrieb:
> Bei einer Baugruppe die diesen Chip (AT89S52) verwendet, gibt es das
> Problem, dass kurz nach dem Einschalten, die GPIO´s P1.7 und P1.6 nicht
> high-Z sind sondern auf Ground liegen.

Das Problem kannte ich bisher nur vom AT89S8252, aber der ist ja schon 
lange abgekündigt. Ich hatte mich gewundert, warum Relais kurz klickten 
nach dem Einschalten. Das war zum Glück für die Anwendung nicht 
problematisch.
Die Ports bleiben auf low, bis der Quarz angeschwungen ist. 4ms kann das 
schon dauern.

Vermutlich wurde dieser Designfehler für alle AT89Sxx übernommen. Ich 
hatte ja gedacht, daß der AT89S8252 wegen diesem Fehler abgekündigt 
wurde.

Bei den AT89Cxx und AT89LPxx konnte ich diesen Fehler nicht beobachten.

: Bearbeitet durch User
von x7r (Gast)


Lesenswert?

Danke Peter,
Leider habe ich das glück nicht. Bei einigen Baugruppen kippen die 
"latch relais" bei jedem 25. einschalten.
Ich habe das GLück, dass in Serie zu den Mosfets Widerstände + Pull 
Widerstand verbaut wurde. So kann ich noch ein C huckepack draufmachen 
um den 4ms puls zu befiltern.
Bei den älteren chips (AT89C51) ist das Problem extremst selten 
aufgetreten, bei den AT89S52 passiert es sehr viel häufiger.

von Peter D. (peda)


Lesenswert?

Du kannst ja mal den AT89C51RD2 probieren, da steht im Datenblatt 
explizit "Asynchronous Port Reset".
Das Programmieren erfolgt nicht über SPI, sondern über UART-Bootloader 
(Flip).

von Peter D. (peda)


Lesenswert?

Man könnte auch einen AVR nehmen. Weitgehend pinkompatibel ist der 
ATmega162.

"The I/O ports of the AVR are immediately reset to their initial state 
when a reset source goes active. This does not require any clock source 
to be running."

von data sheet (Gast)


Lesenswert?

Port0 hat keine Pullups und ist open drain.

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.