Forum: Mikrocontroller und Digitale Elektronik 80C31 defekt?


von khs (Gast)


Lesenswert?

Habe mich vor zig Jahren mit den 8048ern beschäftigt.
Nun versuche ich eine Telefonanlage mit einem Intel P80C31BH1
zu reparieren.
Da ich noch einen Eprommer habe, versuche ich den MC mit einem
Testprogramm auszutesten.
Habe schon einige Datenblätter und Seiten mit Assemblerbefehlen
runtergeladen, fand aber darin keine Angaben zur Timer-und
Interruptbedienung, wie z. B. Start/Stop Timer, EN I, Dis I
oder ähnliches.
In einem 89C51ED2-Datenblatt habe ich zwar eine genauere Beschreibung
der Interruptregister gefunden, vermute aber daß die nicht für
den alten 80c31 zutrifft.
Zum assemblieren habe ich den MIDE51.
Bitte um Tips, wo ich die Infos finden kann.
Oder noch anders gefragt, wenn ich mit dem Logigtester feststelle,
daß der MC grundsätzlich läuft (ALE, PSEN, usw.), kann man dann
annehmen, daß der intern auch richtig arbeitet?

Gruß
Hans

von Gast (Gast)


Lesenswert?

Tausch das Teil doch einfach aus, bevor du hier lange rumprobierst..!
(das Teil kostet ja nix..)

Ich vermute jedoch mehr, dass der Programmspeicher (EPROM?) vergesslich 
geworden ist.. ;-)

von khs (Gast)


Lesenswert?

Danke für die Antwort.

>Tausch das Teil doch einfach aus, bevor du hier lange rumprobierst..!
(das Teil kostet ja nix..)

Falls eine andere Bestellung angestanden hätte, hätte ich das auch 
gleich
gemacht, da mir aber gefühlsmäßig der MC als in Ordnung erschien, habe 
ich
noch mal gewartet.

>Ich vermute jedoch mehr, dass der Programmspeicher (EPROM?) vergesslich
geworden ist.. ;-)

Da hast Du mir meiner nächsten Frage vorgegriffen. Hatte bisher von
Gedächtnisschwund bei normalen EPROMs noch nichts gehört.
Ist das auch bei richtiger Verklebung des Fensters nach Jahrzehnten
doch manchmal der Fall?
Auslesen konnte ich es schon noch, aber das hätte ich halt früher
schon mal machen sollen.
Dann bleibt mir jetzt nur noch die Suche nach jemandem, der mir
den Hexcode übermitteln kann.
Ganz optimistisch gebe ich hier gleich mal die Beschreibung auf:
Telefonanlage AMEX 401, Programmversion 1.3

Beim MIDE 51 habe ich keinen Dissassembler gefunden, dürfte bei
16 KB ROM aber auch kaum aussichtsreich sein, da das entsprechende
Byte zu finden.

Da ich mich für eventuelle spätere Projekte doch mit der 8051er
Familie beschäftigt habe, noch mal die Frage zu Infoquellen.
In den speziellen Datenblättern, die ich gefunden habe,
habe ich keine Assemblerbefehle gefunden.
Beim googeln mit "8051 Assemblerbefehle" kommt man zu Seiten
zu Seiten mit Befehlen die alle 51er haben, aber wo finde ich
die oben genannten spezifischen?

Gruß
Hans

von Ralf (Gast)


Lesenswert?

Hi Hans,

ich wollte gestern schon antworten und ein ZIP-File mit allgemeinen 
Infos anhängen, aber 5MB waren zuviel fürs Forum, da hab ich's gelassen, 
wollte es nicht erst auseinander dröseln... :(

> Ist das auch bei richtiger Verklebung des Fensters nach Jahrzehnten
> doch manchmal der Fall?
"Jahrzehnten" ist das Stichwort. Typischerweise halten EPROMs den Inhalt 
10-20Jahre, danach kann's bergab gehen. Ist ganz normal und wird auch im 
Datenblatt erwähnt.

> Beim googeln mit "8051 Assemblerbefehle" kommt man zu Seiten
> zu Seiten mit Befehlen die alle 51er haben, aber wo finde ich
> die oben genannten spezifischen?
Welche oben genannten Befehle? Zum Starten von Timern setzt man das 
Run-Flag des Timers im entsprechenden SFR.
Es bringt jetzt glaub ich nix, über die Befehle zu diskutieren, wenn du 
noch nicht ausreichend Hintergrundwissen zum 8051 hast. Ich guck heut 
abend mal, ob die Zeit finde, die Unterlagen einzeln zu posten, ich 
denke, sie werden dir weiterhelfen, den 8051 zu verstehen.
Ich hab während der Ausbildung 8051er gehabt, und die Prüfung auf nem 
8048 gemacht, der Unterschied ist doch relativ groß. Wenn du also länger 
nix mit µC gemacht hast, und dann von 8048 auf 8051 willst, könnt's ein 
bisschen holpern.
Wie gesagt, ich guck, dass ich dir heut abend was poste (hoffentlich 
vergess ich's nicht). Kannst alternativ auch deine Email mal posten.

Ralf

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Nun versuche ich eine Telefonanlage mit einem Intel P80C31BH1
> zu reparieren.
Was ist denn kaputt? Was tut die nicht?

Der P80C31BH1 ist meines Wissens ein maskenprogrammierter uC (im 
Gegensatz zum 87c51). Mit etwas Glück ist der Pin EA auf GND geschaltet 
und das ganze Programm residiert im externen EPROM. Sonst wären die 
ersten 4k im Controller, und der Rest in externen EPROM(s).

> Oder noch anders gefragt, wenn ich mit dem Logigtester feststelle,
> daß der MC grundsätzlich läuft (ALE, PSEN, usw.), kann man dann
> annehmen, daß der intern auch richtig arbeitet?
Eher ja.
Aber ich würde sagen, an der Anlage ist was anderes kaputt (gern mal die 
Sieb-Elkos im Netzteil). Kontrollier mal die Versorgungsspannung, ob da 
evtl. Ripple drauf ist.

von Johann D. (khs)


Lesenswert?

Danke für die Antworten,
Eile ist übrigends nicht notwendig, da hier das Telefonnetz und Inet
auch ohne Anlage erreichbar sind.

Gleich die Themen von Lothar vorweg
Soweit mir bekannt hat der 8031 gar kein internes ROM und läuft hier
mit einem ext. EPROM
Die Versorgungsspannung wird ganz simple mit einer Zehnerdiode
stabilisiert, habe kein Oszi, dürfte aber ok sein.
Daß auch noch was anderes defekt sein kann ist natürlich jetzt noch
nicht auszuschließen, doch hier noch einige weitere Details, die
auf die Vermutung von Ralf hindeuten.

Der Reset des 80c31 wird von einem Quasi-Rechteckgenerator angesteuert,
der nur bei Low bleibt, wenn von P3.2(Pin12)alle paar ms ein Low-
Impuls kommt.
Ich war von der Schaltung auch gleich ganz überrascht, hat aber
vermutlich den Grund darin, daß die Anlage bei einem Programmabsturz
wie bei einem (220 V-)Stromausfall die Hauptstelle direkt ans
Telefonnetz legt.
Das ist hier auch der Fall.
Ich habe dann den Resetanschluß unterbrochen und eine Standard-
schaltung mit einem RC-Glied angebracht, aber auch da kam
vom Pin 12 kein Impuls.
Zum weiteren Vorgehen hatte ich ein kleines Testprogramm angedacht,
um den entsprechenden Pin (und auch andere Ports) auszutesten.
Eine andere Möglichkeit wäre vieleicht mit einem Dissassembler das
Hexfile zu dissassemblieren und wieder zu assemblieren.
Kann natürlich dann auch bei 0-Fehlermeldung doch noch irgend ein
Byte verändert sein.
Soweit mir bekannt hat der Mide keinen Dissassembler, falls sich
jemand bereiterklärt, mir das Hexfile zu knacken, würde ich es direkt
an ihn schicken.
Habe gestern noch beim Googeln mit "amex 401" in einem Telefonforum
einen Eintrag gefunden, wo jemand schreibt, daß er das Eprom schon
ausgelesen hat. Der war aber schon 2005 und der Autor nicht registriert,
so daß es nicht so einfach sein dürfte, ihn ausfindig zu machen.

Nun noch zu den Assemblerbefehlen, Stichwort -SFR- macht mir schon
klar, daß da einige Unterschiede zum 8048 sind.
Vermute, daß da unter den zig Varianten schon einige Unterschiede sind.
Wenn ich mir das Datenblatt eines 89C51ED2 anschaue, muß ich schon
sagen, daß ich kaum mehr soweit einsteigen werde, daß ich alles
ausnutzen könnte oder müsste.
Mir fiel bei den allgemeinen Befehlen noch auf, daß nicht nur
die Timer- und Interruptbedienung, sondern auch die Portbedienug
fehlte.
Was ich so in Beispielen aufgeschnappt habe, wie z. B.:
mov p1,p2 oder
mov a,th0, mov a,tl0
Da hätte ich gedacht, daß die auch für die ganze Familie gültig wären.

Dein Angebot nehme ich gerne an, bin meistens zu faul mich einzuloggen
(weil es bei Modemzugang auch wieder Zeit braucht), weiß jetzt aber
nicht, ob Du als Gast an mich über das Forum mailen kannst, deshalb
hier die Adresse: jpd@oleco.net

Danke schon im voraus, Gruß
Hans

von Johann D. (khs)


Lesenswert?

Habe inzwischen herausgefunden, daß der Adresspuffer zwischen
µC und EPROM (hier ein 74HC573) nicht richtig funktioniert.
Hoffe, daß nach dem Einbau eines neuen das Gerät wieder funktioniert
und das Eprom in Ordnung ist.

Gruß
Hans

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.