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