Forum: Mikrocontroller und Digitale Elektronik BLJB (boot loader jump bit) AT8XC5122


von Cesaire F. (cesaire)


Lesenswert?

Hallo,
ich habe eine AT89C5122 Platine die nach dem Reset automatisch im 
Bootloader einspringt. Es scheint so laut Dokumentation, dass das BIT 
(BLJB) dafür verantwortlich ist und dementsprechend gesetzt ist.
Ich will ja das Bit zurücksetzen damit mein Firmware angesprochen wird.

Eine Kommunikation mit dem Bootloader ist über den UART möglich nur ist 
mir nicht bekannt mit welchem Protokoll ist das ganze angehen soll.
Ich habe rausgefunden wie man beispielweise Daten zu den Bootloader 
sendet aber kann nicht überprüfen der Antwort auf Richtigkeit 
Überprüfen.

Hat jemand eine Ahnung wie das Ganze laufen soll?

würde mich auf jeden Hinweis freuen.

MFG

von Peter D. (peda)


Lesenswert?

Lade mal von Atmel das Flip, vielleicht steht der ja drin.

von TomA (Gast)


Lesenswert?

Hallo Cesaire Fondjo,

es liegt am Portbit P3.7. Wenn das direkt nach Reset auf Low-Pegel ist, 
startet der Bootloader. Ist das Bit nach Reset auf High-Pegel, startet 
das Programm im Flash-Speicher (Anwenderprogramm).

Ich hoffe, das hilft dir weiter.

Gruß. Tom

von Cesaire F. (cesaire)


Lesenswert?

Danke für die Rückmeldungen, ich werde mir es anschauen und bescheid 
geben.

von Cesaire F. (cesaire)


Lesenswert?

Hallo,
Die Schaltung erlaubt mir leider nicht am PIN 3.7 Änderungen 
durchzuführen, da es festverdrahtet ist.
Ich habe mir das FLIP 2.4.6 installiert auf Windows 7. Ich kann leider 
nicht mi dem Devise Synchronisieren.
Die Messung zeigt, dass die Pakete des Synchronisierungszeichen "U" 
ankommen aber die Chips reagieren nicht drauf.
Ich bekomme demzufolge einen Time Out Fehler.

1) Wie kann ich den die Baudrate ändern, ich habe hier nur die 
Möglichkeit 11500 auszuwählen obwohl die COM1 eine Baud von 9600 
eingestellt hat?

2) Das Command Windows sollte auch diese Einstellungen ermöglichen, habe 
versucht es dadurch mit dem "set" zu ändern aber auf dem GUI des 
Software wird immer noch 115200 gezeigt. Welche Baudrate wird dann 
benutzt?

Danke für eure Hilfe.

MFG

von TomA (Gast)


Lesenswert?

Hallo Cesaire Fondjo,

verfolge bitte die Leiterbahn von P3.7. Auf deinem Board befindet sich 
sicher eine Steckbrücke (Jumper), oder ein Schalter zum umschalten des 
Bootmodus.

Bei mir funktioniert der 5122 nur mit Flip 2.4.6

Will ich eine kleinere Baudrate, muß ich zuerst einen anderen Baustein 
wähen (z.B: AT89C5131), dort die andere Baudrate wählen und dann wieder 
den AT89C5122 einstellen - dann hat er die neue Baudrate.

Gruß. Tom

von TomA (Gast)


Lesenswert?

Ich habe das umschalten der Baudrate jetzt mit meiner Platine versucht. 
In Flip schaltet die Baudrate zwar um, aber der 5122 kann dann keine 
Verbindung mehr mit Flip aufbauen. Es funktioniert nur mit 115kBaud!

Der 5122 ist eine Diva, toller Baustein, aber etwas zickig!

Ich bin, bei meinen Versuchen, jetzt wieder über den Low-aktiven Reset 
und die 8MHz Taktfrequenz gestolpert.

Bei mir funktioniert die Verbindung zu Flip nur mit 8MHz Taktfrequenz. 
Dann kann ich den 5122 aber über RS232 oder USB mit Flip verbinden.

Gruß. Tom

von Cesaire F. (cesaire)


Lesenswert?

Schöner Dank!!
ich habe in der Tat einen Jumper gefunden um den p3.7 auf Grund zu 
ziehen um den Chip im Boot-Loader anzuhalten und ihn mit dem FLIP zu 
verbinden.
Danke!!!

Nach Untersuchung habe ich festgestellt, dass mein Chip an der Adresse 
7FFDh einen falschen Wert beinhaltet, was dazu führt, dass sie Anwendung 
nicht mehr gestartet werden kann.
Meine Frage:
Welcher kann der Grund sein warum diese Adresse in den laufenden Betrieb 
umgeschrieben werden kann.
NB: wird nicht von Außer geschrieben, zumindest nicht absichtlich ;).

Danke!!

von TomA (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Cesaire Fondjo,

ich denke das liegt am "Bootloader Jump ROM Bit" BLJRB. Wenn das 
gelöscht ist, liegt der Bootloader im Bereich ab F800h und überschreibt 
dort alles.

Wenn deine Firmware ab Adresse 0000h laufen soll, ist dieses Bit zu 
setzen. Das geht aber nicht mit der Firmware, sondern nur mit dem 
Programmer (z.B: FLIP).

Ich habe dir den Auschnitt aus dem Datenblatt und eine Bildschirmkopie 
von FLIP, in denen das Bit BLJRB rot markiert ist, in den Anhang 
gestellt.

Gruß. Tom

von TomA (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

habe jetzt eine kleine Schaltung gebaut, um den P3.7 Bootselector zu 
automatisieren. Die Schaltung arbeitet ähnlich einem Monoflop. Wird ein 
Reset am µC ausgelöst (Low-Pegel), folgt der Ausgang der Schaltung dem 
Signal. Wird das Reset-Signal aufgehoben (High-Pegel), folgt der Ausgang 
um ca. 30ms verzögert. Dadurch sieht der µC, nach Reset, noch Low-Pegel 
am Portbit 3.7 und startet seinen Bootloader. Nach ca. 30ms schaltet der 
Ausgang automatisch ab und stört das Portbit P3.7 nicht mehr. Ist der 
Jumper nicht gebrückt, kommt das Signal nicht zum P3.7 und der µC 
startet sein Programm im Programmspeicher.

Die Diode D1 ist nur bei kurzen Reset-Signal (<50ms) nötig. Ich habe 
meine 89C5122-Platine damit nachgerüstet und sie funktioniert damit 
tadellos. Die Verzögerungszeit kann durch ändern von R1/C1 verändert 
werden.

@Moderator: Ihr könnt den Beitrag unter "8051" einordnen, denn der 
89C5122 ist ein Mitglied der großen MCS51-Familie. Dort wird er von 
Interessierten vielleicht schneller gefunden. Danke!

Gruß. Tom

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.