8051 MCU-Debugboard-Funktion

1140
user32569

In der Schule habe ich viele Programme für eine 8051-kompatible CPU geschrieben. Aber ich wusste nie, wie unsere "Debug-Sets" funktionierten. Ich meine, wir testen unsere Programme in speziellen Sets, mit denen Sie das Programm sehr einfach über die serielle Schnittstelle des PCs in die CPU laden können. Aber ich denke, du weißt das viel besser als ich.

Aber wie funktioniert das? Ich meine, ich weiß, dass es einen Chip gibt, der den Signalpegel vom seriellen PC-Anschluss an die TTL-Logik anpasst und dann an die serielle Leitung des 8051 anschließt. Aber das ist alles, was ich weiß. Eigentlich weiß selbst mein Lehrer nicht, wie es funktioniert, da die Schule alles gekauft hat.

Ich vermute also, dass im 8051 bereits ein Programm läuft, das die Kommunikation übernimmt und Ihr Programm in den Speicher speichert, habe ich Recht? Aber wie können Sie die 8051-Prozessanweisungen an einem anderen Ort als dem ROM erstellen? Wenn ich recht habe, können Sie nicht durch eine Anweisung in den ROM-Speicher schreiben, und 8051 kann nur Anweisungen aus dem ROM lesen.

2

2 Antworten auf die Frage

1
quack quixote

Die moderne Harvard-Architektur-MCU verwendet integrierten Flash-Speicher zum Speichern von Firmware. Obwohl sie ROM genannt wird, ist sie nicht wirklich schreibgeschützt. Laut dem Wikipedia-Artikel des 8051 umfasst der moderne 8051-basierte Mikrocontroller häufig:

eingebaute Reset-Timer mit Brown-Out-Erkennung, On-Chip-Oszillatoren, selbstprogrammierbarem Flash-ROM-Programmspeicher, Bootloader-Code im ROM, nichtflüchtiger EEPROM-Datenspeicher, I²C-, SPI- und USB-Host-Schnittstellen, CAN- oder LIN-Bus, PWM-Generatoren, analoge Komparatoren, A / D- und D / A-Wandler, RTCs, zusätzliche Zähler und Timer, In-Circuit-Debugging-Funktionen, weitere Interruptquellen und zusätzliche Energiesparmodi.

Der 8051 verfügt auch über einen integrierten UART, der die serielle Schnittstelle bereitstellt. Es ist schon eine Weile her, seit ich mit eingebetteten Geräten gearbeitet habe, aber ich erinnere mich an Folgendes: Ich habe mit PIC-Mikroprozessoren gearbeitet.

  • Beim Booten lädt die MCU den Bootloader-Code von einem bestimmten ROM-Speicherort.
  • Viele gängige Bootloader warten einige Sekunden und prüfen den seriellen Port auf ein bestimmtes Signal.
    • Wenn Sie die Debug-Karte an die serielle Schnittstelle Ihres Computers angeschlossen haben, können Sie dieses Signal senden (mit einem Terminalprogramm wie Hyperterm oder Minicom oder mit einem speziellen Firmware-Ladeprogramm).
    • Beim Empfang dieses Signals versetzt der MCU-Bootloader-Code die Karte in den Programmiermodus, und Sie können die neue Firmware übermitteln.
  • Wenn die MCU das Signal nicht erhält, fährt sie normal weiter mit der Firmware, die bereits im Programmspeicher geladen ist.

"Programmiermodus" bei einigen Mikrocontrollern beinhaltet die Verwendung höherer Spannungen zum Programmieren des EEPROM-Speichers. Dies ist jedoch nicht bei allen Mikrocontrollern erforderlich.

Einzelheiten entnehmen Sie bitte dem Datenblatt Ihrer MCU (in der Regel auf der Website des Herstellers erhältlich). Die Stack Exchange-Website ChipHacker ist der Heimwerker-Elektronik gewidmet und eignet sich gut für weitere Fragen.

0
Ivan Petrushev

Ja, ROM ist eigentlich EEPROM oder Flash. Also ist es Lese- und Schreibzugriff. Auf Ihrem Demo-Board können auch externe Speicherbanken zum Speichern von Programmen und ein Bootloader zum Ausführen gespeicherter Programme und zur Kommunikation mit dem PC vorhanden sein, damit Sie ein neues Programm hochladen können.