Forum: Mikrocontroller und Digitale Elektronik 8051 SST89E54RC kann nicht programmiert werden


von Alex R. (alex3)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ein Freund und ich versuchen nun schon seit längerem den SST89E54RC zu 
programmieren.
Unsere Aufgabe besteht darin, auf diesem µC eine UART zu programmieren. 
Laut Datenblatt müsste dieser einen vorporgrammierten Bootloader haben 
und somit über die serielle Schnittstelle angesteuert werden können. 
Dazu verwenden wir das Tool EasyIAP. Der µC ist fabrikneu.
Die µC haben wir so angeschlossen, wie es im Datenblatt vorgegeben ist. 
Spannungsversorgung von 5V funktioniert. Ursprünglich haben wir einen 
1,8432 Mhz Quarz verwendet. Nachdem dies aber nicht funktioniert hat, 
haben wir einen "original" 8051-Quarz ausprobiert (11,0592 Mhz). Mit 
Beiden haben wir sämtliche Baud-Raten ausprobiert. Die Quarze haben wir 
überprüft und sie funktionieren.
Zur Kommunikation mit dem PC verwenden wir eine USB to Serial bridge, 
dessen Signale kommen am µC auch an. Allerdings reagiert der µC nicht. 
Gibt es die Möglichkeit, zu überprüfen, ob der Bootstraploader überhaupt 
funktioniert?
Für den Boot-Up gibt es eine Grafik im Datenblatt auf S.48 (siehe 
Anhang), wie die Pins angesteuert werden müssen. Auch das haben wir 
mehrfach versucht.
Die Pins EA# und RST haben wir wie im Datenblatt angegeben 
angeschlossen. Leider hat all dies nicht zum Erfolg geführt.

Hat jemand von euch eine Idee, woran es liegen könnte, dass wir den µC 
nicht erreichen?
Im Voraus vielen Dank für Eure Unterstützung.

Beste Grüße
Alex und Stefan

: Bearbeitet durch Moderator
Beitrag #5023861 wurde von einem Moderator gelöscht.
von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

Wenn es ein 51er von STC ist:
Fuer die STC-Controller gibt es noch viel andere SW* um die
Dinger zu programmieren.
Das UI ist dann aber in chinesisch. Aber so viele Knoepfe
zum Druecken sind es ja nicht.


*) z.B.:
- SSCOM
- TV1023
- COMMIX

von ??? (Gast)


Lesenswert?

> Wenn es ein 51er von STC ist

Der SST89E54RC ist von Microchip bzw. wurde von denen aufgekauft:

http://www.microchip.com/design-centers/8051-80c51-legacy-microcontrollers

Aber wo kann man denn STC DIP-40 kaufen ausser bei Ebay? Dass deren 
Bootloader funktioniert ist bekannt.

von asker (Gast)


Lesenswert?

Habt ihr auch P1 richtig beschaltet und das Timing (300 CLK) beachtet?

von G. O. (aminox86)


Lesenswert?

Alex R. schrieb:
> Gibt es die Möglichkeit, zu überprüfen, ob der Bootstraploader überhaupt
> funktioniert?

Das sollte mit EasyIap möglich sein. Anbei der folgende Link:
http://www.kswichit.com/Flashflex/BSL11F_Users_Guide.pdf
Zur Überprüfung des Bootloaders würde ich folgendermaßen vorgehen:
Alle Verbindungen zum Mikrokontroller entfernen (ausser 
Spannungsversorgung natürlich), Quarzfrequenz 11.xxx MHz. Reset(Pin 
8)nach Datenblatt beschalten und mit einer Möglichkeit zum manuellen 
Reset versehen. /EA(Pin 31) auf '1'(interner Programmzugriff). RxD und 
TxD (s.Link) über geeignete Pegelwandler mit dem PC verbinden. Easyiap 
starten, ggf. den COMport, Chiptyp und geschätzte Baudrate auswählen, 
den Menüpunkt zum Verbindungsaufbau aktivieren. Manuellen Reset des 
Mikrokontrollers durchführen. Der Bootloader sollte sich jetzt in 
irgendeinem Fenster von EasyIap melden. Falls unleserliches Zeug 
erscheint, andere Baudrate versuchen. Falls gar nichts erscheint, tja, 
fehlerhafte elektrische Verbindungen, kein Bootloader oder Chip kaputt.

von Alex R. (alex3)


Lesenswert?

asker schrieb:
> Habt ihr auch P1 richtig beschaltet und das Timing (300 CLK) beachtet?

Bedeuten die 300 CLK, dass es exakt 300 CLK oder mindestens 300 CLK sein 
müssen?
P1 haben wir beschaltet wie in der Grafik angegeben.

von ??? (Gast)


Lesenswert?

G. O. schrieb:
> Überprüfung des Bootloaders

Da steht "Pre-programmed into SST89E/V5x4Rx and SST89E/V5xRDx MCUs"

Was ist nun aber wenn Microchip den Bootloader tatsächlich nicht 
draufgemacht hat?

Woher bekommt man dann den Bootloader "F51MBLI5.HEX"? Und welcher 
Programmer kann verwendet werden? AT89 ISP geht ja sicher nicht. P89V51 
ICP ist teuer und lohnt nicht.

von Peter D. (peda)


Lesenswert?

Ab Werk ist da kein Bootloader drin. Du brauchst einen parallel 
Programmer:

http://ww1.microchip.com/downloads/en/DeviceDoc/25089A.pdf

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


Lesenswert?

Peter D. schrieb:
> Ab Werk ist da kein Bootloader drin.

Sicher?
Die SST 8051 die ich vor Jahren in der Hand hatte, hatten ab Werk alle 
einen Bootloader. Typenbezeichnung habe ich aber nicht mehr im Kopf.

von Peter D. (peda)


Lesenswert?

Der AT89C51RB2-3CSUM ist ähnlich und mit UART-Bootloader (auch von 
Microchip erhältlich).

: Bearbeitet durch User
von G. O. (aminox86)


Lesenswert?

G. O. schrieb:
> Das sollte mit EasyIap möglich sein.

Mich würde 'mal interessieren, ob mein Vorschlag funktioniert hat oder 
eben auch nicht. Solange die Jungs sich nicht melden kann man zwar 
munter spekulieren aber sicherlich nichts Konstruktives zur 
Problemlösung beitragen.

von Peter D. (peda)


Lesenswert?

Joerg L. schrieb:
> Die SST 8051 die ich vor Jahren in der Hand hatte, hatten ab Werk alle
> einen Bootloader.

Warum schreibt man das aber nicht ins Datenblatt rein?

Ich lese da nur, man kann einen (selber) reinbrennen:
"An example bootstrap loader can be pre-programmed into Partition1 to 
demonstrate the initial user program code loading or subsequent user 
code updating via the IAP operation."

von ??? (Gast)


Lesenswert?

Peter D. schrieb:
> Ich lese da nur, man kann einen (selber) reinbrennen

Im ISP Software Datenblatt steht aber wie gesagt:

??? schrieb:
> Da steht "Pre-programmed into SST89E/V5x4Rx and SST89E/V5xRDx MCUs"

von Alex R. (alex3)


Lesenswert?

Hallo zusammen,

erst mal vielen Dank an euch alle für eure Unterstützung!

G. O. schrieb:
> Das sollte mit EasyIap möglich sein.

Danke für deinen Vorschlag. Den haben wir so nun mehrmals getestet. 
Leider ohne Erfolg, der µC macht keinen Mucks!

Wir sind davon ausgegangen, dass der Bootloader bereits programmiert 
ist, da es so in dem Software Datenblatt steht.

Peter D. schrieb:
> Du brauchst einen parallel
> Programmer:

Das heißt wir müssen uns jetzt so einen Programmer besorgen um zu 
schauen, ob ein Bootloader drauf ist, richtig?

??? schrieb:
> Woher bekommt man dann den Bootloader "F51MBLI5.HEX"?

Und wo bekommen wir dann die Hex-File her, um den µC dann zu 
programmieren? Im Datenblatt wird hier auf die SST-Website verwiesen. 
Die Website scheint dies aber nicht mehr herzugeben.

Peter D. schrieb:
> Der AT89C51RB2-3CSUM ist ähnlich und mit UART-Bootloader

Danke für den Vorschlag. Wir müssen aber den genannten µC verwenden.

Grüße Alex und Stefan

von G. O. (aminox86)


Lesenswert?

Alex R. schrieb:
> Wir müssen aber den genannten µC verwenden.

Dann soll doch der-/diejenige, der/die euch im Nacken sitzt, sagen, wie 
ihr euer Programm in gerade diesen Prozessor hineinbekommt und wieviel 
ihm/ihr der damit verbundene Aufwand wert ist. :-|

Alex R. schrieb:
> Wir sind davon ausgegangen, dass der Bootloader bereits programmiert
> ist, da es so in dem Software Datenblatt steht

Naja, wenn man sich das Datenblatt dieses Prozessors, insbesondere die 
Einleitung, ansieht, dann liest man, wie PeDa schon bemerkte, nichts 
über einen vorprogrammierten Bootloader, im Gegensatz zu den 
Datenblättern von anderen Prozessoren aus dieser Familie, in denen ein 
Bootloader ausdrücklich erwähnt wird. Im Datenblatt dieses Prozessors 
ist zu lesen, dass ein Bootloader bei Bedarf von der SST-Seite (die 
offensichtlich nicht mehr existiert) heruntergeladen werden kann.
Der Loader kann im Internet zwar noch gefunden werden, allerdings ist 
der Download an Bedingungen geknüpft und wohl auch nicht ganz ohne 
Risiko.

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


Angehängte Dateien:

Lesenswert?

Die CPU aus meinem letzten Design mit SST war ein SST89V58RD2 (Foto).
Booloader war ab Werk drin, Programmierung war über EasyIAP SW-Rev06, 
11/1/05 problemlos möglich, über eine USB/UART Bridge eines bekannten 
schottischen Herstellers.
Den Unterschied 89V5x zu 89e5x habe ich als 3V/5V Betriebsspannung in 
Erinnerung. Einen 89e5x Chip habe ich nicht vorliegen, kann also keine 
Tests damit machen. Mir fehlt momentan auch die Zeit dazu.

Details aus der Schaltung damals:
- An das Bild aus dem Datenblatt mit P1.0 und P1.1 auf GND für den 
Bootloader kann ich mich nicht erinnern. Das muß ich damals übersehen 
haben. In meiner Schaltung liegen beide über Pullups nach VCC. 
Programmieren war meiner Erinnerung nach möglich.
- RTS und CTS von der USB/UART Bridge sind verbunden, und sind über eine 
Diode mit dem Reset-Eingang verbunden. Damit kann das EasyIAP einen 
Reset des 8051 auslösen.
- Quarz ist wie auf dem Foto erkennbar der Standard-11.0592MHz

HTH,
Jörg

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Die alten Philips P89C51RD2 hatten auch nen schönen Bug. Man konnte sich 
für immer aus dem Bootloader aussperren, indem man den Bootvector 
verstellte:

"If the factory default setting for the Boot Vector (0FCH) is changed, 
it
will no longer point to the ISP masked-ROM boot loader code. If this
happens, the only way it is possible to change the contents of the
Boot Vector is through the parallel programming method"

von Route_66 H. (route_66)


Lesenswert?

Joerg L. schrieb:
> Die CPU aus meinem letzten Design mit SST war ein SST89V58RD2 (Foto).
> Booloader war ab Werk drin, Programmierung war über EasyIAP SW-Rev06,
> 11/1/05 problemlos möglich, über eine USB/UART Bridge eines bekannten
> schottischen Herstellers.

Nein!
Das was intern (ab Werk bei allen SST89...) enthalten ist, ist nicht der 
angesprochene Bootloader, sondern eine IAP-Software 
(In-Application-Programming).
Diese Programmoierung funktioniert nur gemeinsam mit "EasyIap" oder 
einem vergleichbaren Programm.

Die klassische Bootloader-Funktion (Download Intel-Hex via serieller 
Schnittstelle) benötigt eine extra Software im Mikrocontroller.

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


Lesenswert?

Route 6. schrieb:
> Nein!
> Das was intern (ab Werk bei allen SST89...) enthalten ist, ist nicht der
> angesprochene Bootloader, sondern eine IAP-Software
> (In-Application-Programming).

Für mich ist das das Gleiche.
Die "alten" 8051 hatten das alle gar nicht, jedes ab Werk enthaltene 
Stück Software zur IAP ist damit ein riesen Fortschritt, und verdient in 
meinen Augen diesen Namen.

Wenn Du es aber genau nehmen willst, darfst Du einen Bootloader nur dann 
so nennen, wenn er zum Laden der Firmware von einem externen Speicher 
ins RAM dient (SPI-Flash, Festplatte, usw). IAP ist streng genommen kein 
Bootloader.

von Alex R. (alex3)


Lesenswert?

Hallo zusammen,

nochmal vielen Dank für eure Unterstützung.

Wir werden das Projekt mit diesem µC an dieser Stelle abbrechen.

Grüße
Alex und Stefan

von Peter D. (peda)


Lesenswert?

Alex R. schrieb:
> Wir werden das Projekt mit diesem µC an dieser Stelle abbrechen.

Neue Projekte startet man ja auch nicht mehr mit nem bereits 
abgekündigten Chip.

von A. B. (Gast)


Lesenswert?

Alex R. schrieb:

> Danke für den Vorschlag. Wir müssen aber den genannten µC verwenden.
>
> Grüße Alex und Stefan

Alex R. schrieb:
> Wir werden das Projekt mit diesem µC an dieser Stelle abbrechen.

So etwas nennt man wohl heiße Luft. Erst ein großes Fass aufmachen und 
dann Pfffffffffffffffft.

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.