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
Lade mal von Atmel das Flip, vielleicht steht der ja drin.
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
Danke für die Rückmeldungen, ich werde mir es anschauen und bescheid geben.
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
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
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
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!!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.