Forum: Mikrocontroller und Digitale Elektronik Bootloader für 80C815C


von Sebastian (Gast)


Lesenswert?

Hallo zusammen, ich möchte für eine Anwendung den 80C515C einsetzen.
Soweit konnte ich bereits einiges an Erfahrungen sammeln, nur bekomme
ich den Bootloader nicht ans laufen... ich möchte den loader in den
OTP-Bereich des Prozessors schreiben und durch umschalten des EA-Bits
den externen Programmspeicher nutzen. Der Loader soll nun eigendlich:
Nach dem Reset eine 055H an den PC über SCON senden.
Danach soll der PC Byte für Byte senden und der MC schreibt die Daten
ins EEProm... Hat jemand von euch soetwas bereits fertig gebacht? MfG
Sebastian

von Peter Dannegger (Gast)


Lesenswert?

Warum muß es denn unbedingt ein 80C515 sein ?

Sind die nicht schon abgekündigt ?

Das Programm Entwickeln für einen OTP ist definitiv keine leichte Sache
und erfordert einen großen Mülleimer (da ja OTP).



Was gefällt Dir denn an den Atmels/Philips (z.B. AT89C51CC01) mit
internem Flash und Bootloader nicht ?

Einfacher und bequemer gehts doch nun wirklich nicht.


Peter

von Sebastian (Gast)


Lesenswert?

Ich möchte den 515 nehmen, gerade weil er abgekündigt ist. Er steht mir
"Haufenweise zur verfügung.

Nun dieser "blöder" Loader muß laufen, ansonsten finde ich das gute
Stück recht ok.

Mit dem Nutzen des OTPs habe ich ansonsten garkeine Erfahrung.
Ich habe bisher einen 80c517A verwendet. Für den habe ich mich mal an
die erstellung eines Bootloaders gemacht. Der läuft auch, nur halt
nicht auf dem 515???

von Manfred Schäfer (Gast)


Lesenswert?

Hallo,

wie sieht deine Beschaltung aus? Du mußt die Signale PSEN und WR
verküpfen.
Ein EEPROM braucht Zeit um ein Byte zu speichern bzw. einen extra
Impuls.
Was ist bei deinem Design für den 817 anders als beim 815?
Falls du beim 817 zwei Datenpointer benutzt, das sollte nicht so
schwierig sein die Software auf einen Datenpointer umzuschreiben.
Gib meht Infos.

Gruß

Manfred

von Peter Dannegger (Gast)


Lesenswert?

@Sebastian

"Der läuft auch, nur halt nicht auf dem 515???"


Wenn Du den 517 Bootloader wirklich selber geschrieben hast, sollte es
doch überhaupt kein Problem sein.

Hast Du denn mal die Datenblätter verglichen ?

Vielleicht mag der 80C515 ja das Umschalten des EA nicht.

Ich habe auch mal sowas gemacht, allerdings mit einem OTP, der nur 32kB
hat. Damit beim Umschalten des EA kein Mist passiert, habe ich die
Umschaltroutine ans Ende des Flash gelegt, also über die internen 32kB.
Damit wird in jedem Fall der Flash ausgeführt und der EA-Pin kann
gefahrlos wechseln, ohne das der nächste Befehl falsch gelesen wird und
der MC abstürzt.



@Manfred,

PSEN und WR verknüpfen ist Quatsch.
/WR gehört an /WE des Flash und PSEN gehört an /OE des Flash.


Peter

von Robert Teufel (Gast)


Lesenswert?

Der C515C ist meines Wissens nach nicht abgekuendigt (andere Technologie
als die abgekuendigten 80C515 (ohne C hinten).
Allerdings gibts es entweder einen 80C515 (ROM / ROMless) oder einen
C515C (OTP 32k), der 80C515C ist mir nicht bekannt.

Du sprichst vom OTP also ist es wohl der C515C. Es gibt wirklich
unterschiedliche Implementierungen in der 51-er Welt wie die
Umschaltung des EA-bits behandelt wird.  Als Test solltest Du mal
schaun ob der micro irgendwelche Busaktivitaeten zeigt nach der
Umschaltung des EA.

Falls nicht, dann ist der Zustand fuer External Access (EA) vielleicht
beim booten gespeichert und kann nicht durch Software veraendert
werden. Weiss das nicht ob es bem C515C so geloest ist, kenn ich aber
als einen moeglichen Ansatz um den Benutzer vor Irrlaeufern in der
Software zu schuetzen, ein ungewolltes Umschalten des EA-bits hat
katastrophale Folgen!

Gruss, Robert
p.s. Vielleicht solltest Du noch den Betreff korrigieren, war nur
neugierig was ein 80C815C wohl sein mag.

von Sebastian (Gast)


Lesenswert?

Erstmal vorab schon mal Danke für die vielen Antworten!

Das Umschlten zwischen OTP und Flash soll nicht durch die Software
sondern per Hardware geschehen.

Das ummünzen 517 Loaders auf dem 515 gestaltet sich aufgrund des OTPs
sehr auswendig. Daher die Hoffnung das jemand etwas hat fertig hat, das
mir einige Brennversuche ersparrt...

von Peter Dannegger (Gast)


Lesenswert?

Du könntest ruhig mal den genauen Typ des 515 angeben (erster bis
letzter Buchstabe), damit man endlich weiß, wovon Du sprichst.


Ich habe mal nen Bootloader für den SAB-C505CA-4EM geschrieben für den
AT29C512.
Der wird Dir aber nichts nützen, wenn Du einen anderen Flash
verwendest, da jeder Flash seinen eigenen Programmieralgorithmus hat.
Auch benötigt er, daß der OTP weniger als 64kB groß ist, damit man den
Flash auch bei EA=1 rücklesen kann.
Und der EA-Pin muß dazu über einen Portpin setzbar sein.


Ich würde die 515 aber trotzdem nicht nehmen. Theoretisch sparst Du
zwar die Kosten für den Chip, aber Du brauchst ja noch zusätzlich das
Adreßlatch und den Flash. Und dann wird ja das Layout komplizierter,
d.h. Du brauchst mehr Zeit dafür und auch mehr Platz.


Peter

von Sebastian (Gast)


Lesenswert?

Ich meine den SAF C515C-8EM. Er besitzt einen internen OPT-Bereich.

Als Flash möchte ich den 39F01 verwenden. Den habe ich auch noch
reichlich im Bestand.

Wo ist den das Problem wegen dem programmieren? Können die nicht auch
über den Daten-Pointer gefüttert werden.

Ich würde gerne einen anderen Prozessor nehmen, nur möchte ich auch bei
Infineon bleiben.

Wegen dem EA, ich möchte den Speicher nicht automatisch umschalten. es
soll später ein Jumper oder ein Schalter sein der den Bootloader
aktiviert. Danach muß halt kurz ein Reset gemacht werden (Händisch).

von Manfred Schäfer (Gast)


Lesenswert?

@Peter Danegger,

wenn die Verknüpfung von PSEN und WR Quatsch ist, wie willst du dann
Programmcode aus dem Flash ausführen?

Gruß

Manfred

von Peter Dannegger (Gast)


Lesenswert?

"Ich meine den SAF C515C-8EM."

Und warum schreibst Du dann was völlig anderes hin ?

Dann ist es ja kein Wunder, daß ich kein 80C515C Datenblatt gefunden
hab.


"Als Flash möchte ich den 39F01 verwenden."

Sagt mir erstmal nichts, aber da Du ja gerne völlig andere und
unvollständige Bezeichnungen nennst, werde ich nicht danach suchen.


"Wo ist den das Problem wegen dem programmieren? Können die nicht
auch
über den Daten-Pointer gefüttert werden."

Das Problem sind die unterschiedlichen Algorithmen. Mein AT29C512 muß
z.B. seitenweise (128 Byte) gefüttert werden, braucht aber kein extra
Erase.
Auch habe ich festgestellt, daß ohne Software-Data-Protection im Flash
beim Ein- oder Ausschalten durch Störimpulse Bytes kippen können.
Ich sende also vor jedem Pagewrite die SDP-Sequenz, damit die SDP
eingeschaltet ist und der Flash geschützt.


"Ich würde gerne einen anderen Prozessor nehmen, nur möchte ich auch
bei Infineon bleiben."

Gibt es einen rationalen Grund dafür ?
Was stört Dich an Atmel, Maxim, Silabs oder Philips ?

Soweit ich weiß, stellt Infineon keine Flash-8051 her und deshalb nehme
ich keine Infineons.

Und da ich die Layouts selber mache, zahlt sich das mehrfach aus (keine
zusätzlichen 2 Chips, keine vergeudeten IO-Pins, bessere EMV,
einfacheres Layout.
Auch ist ja der Code im internen Flash gegen Auslesen geschützt.


Peter

von Peter Dannegger (Gast)


Lesenswert?

@Micahel

Verknüpfung von PSEN und /WR ist und bleibt Quatsch.

Was höchstens geht, ist PSEN und /RD über ein AND nach /OE, damit man
auch per MOVX rücklesen kann.

Ich nehme zum Rücklesen aber MOVC und damit reicht PSEN nach /OE
völlig.


Peter

von Sebastian (Gast)


Lesenswert?

Das man den Vorgang beim Beschreiben eines EEProms teilweise ergänzen
muss, ist mir auch klar. Aber ändert sich dach dabei die Routine nicht
völlig!

Bei dem Speicher "39C01" ist die Bezeichnung ziemlich eindeutig!

Wegen dem 80C515, tut mir Leid. Macht der Gewohnheit...

Danke soweit.

von Peter Dannegger (Gast)


Lesenswert?

"Bei dem Speicher "39C01" ist die Bezeichnung ziemlich eindeutig!"


Google ist da aber völlig anderer Meinung. Es gibt ein Lego-Fenster mit
der Bezeichnung "39C01".

Auch sollte man grundsätzlich den Hersteller nennen, damit läßt sich
dann die Suche wenigstens etwas einschränken.
Bzw. es gibt auch ICs, die komplett gleich heißen, aber je nach
Hersteller unterschiedlich sind.


Wenn ich unserem Einkauf solche Bezeichnungsfragmente hinknallen würde,
könnte ich mir höchstens nen Satz warme Ohren abholen.

Es ist nunmal so, daß bei ICs jeder einzelne Buchstabe zählt.


Ich habe also nicht herausfinden können, was ein 39C01 ist.


Peter

von Sebastian (Gast)


Lesenswert?

Da findet man fast alles.

http://www.alldatasheet.com

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.