Forum: Mikrocontroller und Digitale Elektronik P51XAG30, Flash schreiben 80C51 Struktur


von Kai W. (Firma: Kai Weniger) (kaimehr)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe schon mal einen Beitrag zu dem Thema eröffnet, jedoch habe ich 
die falsche Platine erwischt wo das Hex-File rein muß.Jetzt nochmal neu 
mit einem anderen Prozessor P51XAG30 welcher wohl eine 80c51 Struktur 
hat und doppel Flash.

Also nochmal:
es betrifft eine Steuerplatine für eine Sat-Anlage auf unserem 
Wohnmobil, welche sich selbstänig ausrichtet. Beim Versuch eine 
update.hex via RS232 mit dem falschen file->falsche_Hex.S19 
einzuspielen, habe ich das Ding geschrotte.

Normalerweise funktioniert die Programmierung mit dem Flash16.exe 
Programm,
aber nach falscher Dateiauswahl geht nichts mehr. Es kommt kein 
Startbefehl vom Prozessor. Auf dem Screen steht nur : "Ready to program 
flashproms AM29F010 waiting for reset from microcontroller"

Das Board hat zwei Flashs wie im Bild zu sehen. Ich habe mal die Flashs 
ausgelötet und mit einem Programmer ausgelesen, s.h. original_main 01 
und 02.hex. Vor dem einbau werde ich die Dinger sockeln um 
evt.Vorschläge besser in die Flashs reinzubrennen.

In den ausgelesenen Dateien steht wohl nicht viel in den Flashs, sowie 
ich das erkenne, habe leider keine Ahnung von MC und Programmierung.

Meine Frage nun:

Wie kann ich das Ding wieder zu leben erwecken, bzw. wie bekomme ich die 
Update.hex in die Flashs. Brennen wäre möglich aber kommt dann in beide 
die gleiche rein ?

Ist es möglich den Prozessor anzuspupsen, sodas er ein update über RX/TX 
empfängt? s.h. Datenblatt PINs:
Pin35:(EA/VPP/WAIT) Pin33:(ALE/PROG) und Pin:32 (PSEN) wofür die auch 
immer gut sind.

Gibt es ein anderes Programm mit dem ich das Hex-File wieder einspielen 
kann ?

Der Hersteller liefert keinen Support mehr da das Ding schon 10 Jahre 
alt ist.

Ihr seit meine letzte Hoffnung,

und entschuldigung für den Fehler mit dem falschen Board auf dem aber 
auch ein 29F010 welcher gesockelt war, aber das Board mach nur die 
NIT-Auswertung der Satsignale.

LG

Kai

PS:genaue Daten sind im Bild zu sehen Habe gerade ein Fehler entdeckt:
der 22V10Z ist ein  GAL Adressenselektor, Chipselektor.

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

update.hex sieht wie eine HEX-Datei aus. Der Größe nach sollen 128kBytes 
gefüllt werden.

original_main.hex enthalten nur Müll.

falsche_HEX-Datei.S19 ist keine HEX Datei sondern ein anderes Format, 
vermutlich eine Abart des Motorola S19. Wenn das Update Programm das 
gefressen und programmiert hat, sollte man den Programmierer ...

Da der Prozessor 8 und 16 Bit als Datenbus Breite unterstützt, kann man 
ohne Kenntnis der Schaltung nicht sagen, wie das Update File in die 
beiden Eproms gefüllt werden muss. "Beide das Gleiche" ist mit 
Sicherheit falsch.

Den Prozessor extern wieder zu beleben wird nicht möglich sein.

Der sicherste Weg ist, ein gleiches Gerät zu beschaffen und die Eproms 
zu dublizieren. Das kannst du schaffen.

Alternativ kannst du nur versuchen, das Update File an der 64k Grenze zu 
splitten und dann untere und obere Hälfte in je eines der Eproms zu 
brennen. Dazu musst du aber wissen, welches Eprom oben und welches unten 
liegt. Und beachte, dass das update.hex Lücken enthält, die du mit 0 
oder 0xff füllen solltest. Ich habe auf die Schnelle nur 2 "Typ 2" 
Records gesehen, die die Zuordnung oben/unten machen. Sollten es mehr 
sein, muss entsprechend intelligent alles vorverarbeitet werden. Bei 
deinen Vorkenntnissen wirst du hier Probleme bekommen, die per Forum 
nicht lösbar sind.

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

Georg G. schrieb:
> Ich habe auf die Schnelle nur 2 "Typ 2"
> Records gesehen, die die Zuordnung oben/unten machen

Super danke für die Antwort, höhrt sich ja nach einem Hoffnungschimmer 
an.

Die Flashs sind beschriftet mit 01 und 02. Da das Programm Flash16 heist 
denke ich mal das es 16 Bit ist.

Wenn du das splitten kannst und mir evt. schicken kannst, wäre das doch 
schon mal ein super Versuch, danke danke....

mail: Kai_mehr@yahoo.de

Ps: wie hat der Hersteller die Daten darein bekommen, da die Flashs ja 
nicht gesockelt sind ?
und
es gibt kein Chance ein so seltenes Stück hier in DE zu bekommen da es 
eigentlich nur in USA verkauft wurde.

Kai

Ps: bei Erfolg soll die Mühe auch nicht kostenlos sein.

: Bearbeitet durch User
von tommy (Gast)


Lesenswert?

Kai Weniger schrieb:
> Ps: wie hat der Hersteller die Daten darein bekommen, da die Flashs ja
> nicht gesockelt sind ?

Die muss er vor dem Bestücken programmiert haben.
Es gibt folgende Versionen des Controllers:
P51XAG30 = ohne ROM
P51XAG33 = mit ROM
P51XAG37 = mit EPROM (UV oder OTP)

Auf Deinem Board ist also der Controller ohne ROM, also war der
Bootloader im Flash.

Hast Du mal versucht in amerikanischen Foren zu suchen / fragen?

von rk (Gast)


Angehängte Dateien:

Lesenswert?

Hier die update.hex als update.bin und von 16-Bit auf 2x8 gesplitted..

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

rk schrieb:
> Hier die update.hex als update.bin und von 16-Bit auf 2x8 gesplitted..

Super, danke, das ist doch schonmal ein erster Schritt. Werde es mal 
ausprobieren sobald ich die Sockel habe.
evt. haben wir ja glück, und der Bootloader ist auch noch mit drin.

von rk (Gast)


Lesenswert?

Wie lautet denn die komplette Bezeichnug des P51XA?

Ich glaube dass das Teil auch einen Bootloader im OTP-ROM hat,
weil Flash16 anscheinend den String "?PGM" erwartet.
Der kommt aber in update.bin nicht vor.

Gibt es irgendwelche Jumper auf dem Board mit denen man
den EA-Pin für Boot von Flash/OTP-ROM einstellen kann?

Ausserdem gibt es im Reset-Vector einen Call auf eine Adresse
die nicht in Update-Bin vorhanden ist:

fcall   3:8000h

Es fehlen auch Einstellungen der System-Register.

Das Teil hat zu 99% OTP-ROM..

Sieht man was wenn man ein Terminal-Programm an das Board anschliesst?

PS: Das Sockeln der Flashs stelle ich mir etwas schwierig vor.
Wie willst Du das machen? Heissluft?
Hättest vielleicht erstmal drin lassen sollen..

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

rk schrieb:
> komplette Bezeichnug des P51XA

danke für deine Mühe, sie lautet P51XAG30KFA-C21992 .Einen Jumper gibt 
es leider nicht, vom Board kommt leider nichts mehr und wie du schon 
schreibst kam früher ein ?PGM.

Da ich Radio-Fernsehtechniker bin verfüge ich über eine Heissluftstation 
und auch eine IR-Station.Das mit dem löten ist für mich das kleiner 
Problem, aber von den Sachen die die oben schreibst habe ich leider 
keine Ahnung.

Wenn du Jumper brauchst bau ich dir gerne welche dran, nur wo ??

:-)

: Bearbeitet durch User
von Kai W. (Firma: Kai Weniger) (kaimehr)


Angehängte Dateien:

Lesenswert?

rk schrieb:
> Gibt es irgendwelche Jumper auf dem Board mit denen man
> den EA-Pin für Boot von Flash/OTP-ROM einstellen kann?

kann mann mit dem Pin 32:
Program Store Enable:
The read strobe for external program memory. When the microcontroller
accesses external program memory, PSEN
is driven low in order to enable memory devices. PSEN
is only active when external code accesses are performed

oder

Pin 35:
External Access/Wait:
The EA
input determines whether the internal program memory of the
microcontroller is used for code execution. The value on the EA
pin is latched as the external reset
input is released and applies during later execution. When latched as a 
0, external program
memory is used exclusively, when latched as a 1, internal program memory 
will be used up to its
limit, and external program memory used above that point. After reset is 
released, this pin takes on
the function of bus Wait input. If Wait is asserted high during any 
external bus access, that cycle
will be extended until Wait is released. During EPROM programming, this 
pin is also the
programming supply voltage input

evt. was anfangen ?

von rk (Gast)


Lesenswert?

Ok, die CPU hat OTP-ROM und Du schaffst es vielleicht die Flashs zu 
sockeln.
Keine Ahnung ob's dann geht.

Bevor Du das Board wegschmeisst Mail an koixx23@yahoo.de.

Viel Glück!

von rk (Gast)


Lesenswert?

Hast Du PSEN mal mit einem Oszillosop gecheckt?

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

Nö, ich weiss ja noch nicht mal wofür der gut ist und was da drauf sein 
soll.
Kann ich aber gerne tun wenns weiterhilft, ich mauß nur erst die Sockel 
verbauen die ich morgen geliefert bekomme.

Ps: mir fällt gerade noch ein:
wo das Board noch lief, kam bei dem Update am Anfang noch erase Flash, 
dann programm und dann error.

leer scheinen die Dinger ja zu sein.

: Bearbeitet durch User
von rk (Gast)


Lesenswert?

Sieht so aus als würde es auch mit Flash16 klappen wenn die Flashs
erased sind, also alles 0xFF.

Dann geht der Booloader vielleicht in den Prompt.

Auf Deinen Flashs ist aktuell ja Junk drauf.
Welchen Eprommer hast Du denn? GALEP?

Auf PSEN sollten nach dem Reset ein paar Flanken kommen..

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

rk schrieb:
> Sieht so aus als würde es auch mit Flash16 klappen wenn die Flashs
> erased sind, also alles 0xFF.
>
> Dann geht der Booloader vielleicht in den Prompt

sowas habe ich mir auch schon überlegt und ich werde sie erstmal 
komplett löschen und dann mal probieren.

Es ist ein PCB5.0E Willem EPROM programmer. Mit dem habe ich schon 
kopien des AM29F010 auf dem anderen Board gemacht und das klappte 
reibungslos.

Nun schau ich erstmal das ich die Sockel darein bekomme, danke, danke, 
danke.

PS: ganz ohne Flashs kam auch kein PGM.

: Bearbeitet durch User
von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

so, Sockel sind drin, aber:

rk schrieb:
> Hast Du PSEN mal mit einem Oszillosop gecheckt?

da ist durchgehend eine gleichbleibende Frequenz drauf.

leider hat es mit den beiden gesplitten Dateien nicht geklappt und auch 
nicht mit leeren Flashs.

Noch irgendeine Idee ?

von Georg G. (df2au)


Lesenswert?

Miss mal nach, ob die D0 Pins der beiden Flash miteinander verbunden 
sind (Null Ohm). Wenn ja, dann ist es 8 Bit Busbreite (und muss anders 
gesplittet werden).

von tommy (Gast)


Lesenswert?

Ich zitiere mich mal selbst:

tommy schrieb:
> Es gibt folgende Versionen des Controllers:
> P51XAG30 = ohne ROM
> P51XAG33 = mit ROM
> P51XAG37 = mit EPROM (UV oder OTP)

Also: Die Version mit der 30 hat kein ROM, kann also
keinen Bootloader enthalten :-(

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

Georg G. schrieb:
> Miss mal nach, ob die D0 Pins der beiden Flash miteinander verbunden
> sind (Null Ohm). Wenn ja, dann ist es 8 Bit Busbreite (und muss anders
> gesplittet werden).

habe ich gemacht, wenn du DQ0 Pin13 meinst, die sind nicht verbunden, 
ca.1,8kOhm.

von Georg G. (df2au)


Lesenswert?

Dann ist es ein 16 Bit Bus. Bleibt die Frage, welches Flash die oberen 
und welches die unteren Bits hat. Hast du mal die Flash vertauscht?

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

tommy schrieb:
> Also: Die Version mit der 30 hat kein ROM, kann also
> keinen Bootloader enthalten :-(

heist das jetzt mann brauch keinen Bootloader ?

vertauscht:
wollte ich noch machen, habe ich vergessen, mach ich nochmal,bin aber 
erst morgen wieder auf der Arbeit.

: Bearbeitet durch User
von rk (Gast)


Lesenswert?

Der Bootloader muss im Flash an Adresse 3:8000 sein.
Wenn da kein Bootloader ist geht's nicht.
In upgrade.hex ist der Bootloader nicht drin..

von Kai W. (Firma: Kai Weniger) (kaimehr)


Angehängte Dateien:

Lesenswert?

Hallo nochmal an alle,

habe heute festgestellt, das beim auslesen der Flashs was schief 
gegangen ist, Die Platine war mit einem leichten Film Schutzlack 
überzogen und dadurch haben die Flashs im Eprommer keinen richtigen 
Kontakt gehabt.

Anbei jetzt nochmal die HEX und Bin der beiden Flashs.

Sie sind nicht ganz leer, ich habe an der Stelle 006FC2 und 0X1C000 
Daten gefunden. evt. ist das ja ein Bootloader ????

Kai

von Dieter W. (dds5)


Lesenswert?

x1C000 klingt sehr gut, das ist nämlich genau die Hälfte der oben 
genannten x38000 als Bootadresse.

Mein ZIP behauptet übrigens die angehängte Datei wäre korrupt.

von Kai W. (Firma: Kai Weniger) (kaimehr)


Angehängte Dateien:

Lesenswert?

Dieter Werner schrieb:

> Mein ZIP behauptet übrigens die angehängte Datei wäre korrupt.

klingt ja nach Hoffnung, hier noch mal die Dateien einzeln, einmal als 
Hex und als bin gespeichert.

von Dieter W. (dds5)


Lesenswert?

Prima!

Die beiden Teile jetzt jeweils ab x1C000 in die gesplitteten Daten von 
rk(Gast) einfügen und es sollte wieder laufen.

Da unklar ist welche Teile zusammengehören, ist die Chance 50% dass es 
im ersten Anlauf klappt.

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

Dieter Werner schrieb:
> Prima!
>
> Die beiden Teile jetzt jeweils ab x1C000 in die gesplitteten Daten von
> rk(Gast) einfügen und es sollte wieder laufen.
>
> Da unklar ist welche Teile zusammengehören, ist die Chance 50% dass es
> im ersten Anlauf klappt.

habe leider keinen vernünftigen Hex editor....

von Dieter W. (dds5)


Lesenswert?

Das geht doch mit jedem beliebigen Texteditor. Einfach aus dem Original 
herauskopieren und in den gesplitteten Dateien die FF an den gleichen 
Adressen überschreiben.

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

Dieter Werner schrieb:
> Das geht doch mit jedem beliebigen Texteditor. Einfach aus dem Original
> herauskopieren und in den gesplitteten Dateien die FF an den gleichen
> Adressen überschreiben.

OK danke, rk(Gast) kümmert sich drum, mal schauen obs klappt.

von Kai W. (Firma: Kai Weniger) (kaimehr)


Angehängte Dateien:

Lesenswert?

so jetzt habe ich die angehängten Dateien mit Bootloader in die Flashs 
gebrannt mit mäßigem Erfolg, und zwar:

Jetzt scheint das Ding schon mal zu booten und macht einen kleinen 
Initialisierungslauf, bleibt stehen und fängt wieder von vorne an. Auf 
dem RS232 Port ist leider mit dem Terminalprogramm nichts zu sehen, kein 
PGM etc.. Mit dem Oszi. kann mann Datenpakete erkenn.

hat jemand noch ne Idee was da noch falsch ist in den Dateien ?

: Bearbeitet durch User
von rk (Gast)


Lesenswert?

>also mit dem Testprogramm passiert nichts,
>egal in welcher Reihenfolge ich die Chips reinpack.
>die Chips heissen AM29F010B-120 JC und JD, die originalen -90 Jf

In meinem XA51-Board war für 22.1184 MHz ein AM29F040-55 drin
und es läuft auch mit einem AT49F512-90, aber 120 ns?
Sind die /CE Pins auf GND?

Hast Du jetzt mal gecheckt ob die Address-Pins und /CE /OE /WE
der beiden Sockel untereinander Verbindung haben?
Und die Daten-Pins Verbindung zum XA51 haben?

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

rk schrieb:
>>also mit dem Testprogramm passiert nichts,
>>egal in welcher Reihenfolge ich die Chips reinpack.
>>die Chips heissen AM29F010B-120 JC und JD, die originalen -90 Jf
>
> In meinem XA51-Board war für 22.1184 MHz ein AM29F040-55 drin
> und es läuft auch mit einem AT49F512-90, aber 120 ns?
> Sind die /CE Pins auf GND?
>
> Hast Du jetzt mal gecheckt ob die Address-Pins und /CE /OE /WE
> der beiden Sockel untereinander Verbindung haben?
> Und die Daten-Pins Verbindung zum XA51 haben?

Hab ich noch nicht, werde ich aber morgen machen.Die Daten Pins sind die 
mit DQ0-7 oder A0-16 ? an welche Eingänge des Prozessors gehen die ?

soll ich evt. einfach doch mal die Original Flashs mit 90ns 
überschreiben anstatt der 120ns Flashs die ich jetzt drin habe, oder 
doch noch lieber liegen lassen als Reserve ? ausgelesen sind sie ja 
jetzt.

: Bearbeitet durch User
von Bernd N (Gast)


Lesenswert?

>> Die Daten Pins sind die mit DQ0-7

so ist es, A0-16 sind die Adressen.
>> soll ich evt. einfach doch mal die Original Flashs mit 90ns
>> überschreiben

ist nen Versuch wert.

von Georg G. (df2au)


Lesenswert?

Eproms sind eigentlich bei Raumtemperatur immer schneller als angegeben. 
Aber ein Test mit den originalen Teilen kann nicht schaden. Die sind ja 
eh verflasht.

Ich würde alle Lötstellen an den Eproms mit einer Lupe kontrollieren, 
vorher am besten mit Isopropanol die Reste von Flussmittel entfernen.

Wenn an der seriellen Schnittstelle Signale erscheinen, kann man mit 
einem Terminal Programm die gängigen Baudraten durchprobieren. Eventuell 
hilft die Meldung dann weiter.

von Joerg L. (Firma: 100nF 0603 X7R) (joergl)


Lesenswert?

Der Benutzer 'kaimehr' hat Ihnen die folgende Nachricht geschickt:
====================================
Hallo,
bitte schauen Sie sich mal meinen weiter Thread an, evt. können Sie da
weiterhelfen:
Beitrag "80C320 programmieren, bzw update einspielen"
MfG
Kai Weniger
====================================

Bitte nicht die Leute direkt anschreiben, nur weil sie auch versucht 
haben zu helfen.
Wenn ich hätte weiter helfen können, hätte ich es getan.
Aber ich habe echt keine Zeit, mich in den P51XAG30 einzuarbeiten.
Das Ding ist mir viel zu exotisch.

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

rk schrieb:
> Sind die /CE Pins auf GND?
nein

> Hast Du jetzt mal gecheckt ob die Address-Pins und /CE /OE /WE
> der beiden Sockel untereinander Verbindung haben?
/CE ja /OE ja /WE nein

> Und die Daten-Pins Verbindung zum XA51 haben?

DQ 0-7 gehen alle u.a. an den XA51 und haben Verbindung.

Habe nochmals alles gesäubert und mir unter einem Stereomikroskop die 
Lötstellen angeschaut, alles OK.

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

Kai Weniger schrieb:
> DQ 0-7 gehen alle u.a. an den XA51 und haben Verbindung.

Weiter oben schreibst du, dass die DQx Pins nicht miteinander verbunden 
sind.

von Kai W. (Firma: Kai Weniger) (kaimehr)


Lesenswert?

Hallo nochmal an alle,

Dank der mithilfe von rk(Gast) läuft die Schüssel wieder einwandfrei, 
Ursache war nun eine fehlende GND Verbindung und das die 
Originalbeschriftung an der Schüssel für RX/TX vom Hersteller falsch 
bedruckt wurde (vertauscht).

Danke nochmal an alle die sich mit um das Problem gekümmert haben.Ohne 
das Forum hier wäre das Ding schrott gewesen.

Kai...

: Bearbeitet durch User
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.