Kostenlose technische Bibliothek ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK Programmierung serieller Speicherchips. Enzyklopädie der Funkelektronik und Elektrotechnik Lexikon der Funkelektronik und Elektrotechnik / Mikrocontroller Nichtflüchtige Speicherchips mit seriellem Datenein- und -ausgang werden heute häufig zum Speichern eingestellter Modi und fester Einstellungen in Fernsehgeräten, Radios und anderen Haushaltsgeräten verwendet. Bei der Reparatur ist es oft erforderlich, den Inhalt solcher Mikroschaltungen auszulesen oder neue Daten darauf zu schreiben. Normalerweise geschieht dies mit Hilfe spezieller Geräte – Programmierer. Aber um ein oder zwei Mikroschaltungen unter Amateurbedingungen zu programmieren, ist es unrentabel, einen ziemlich teuren Programmierer zu kaufen. Ein normaler PC reicht völlig aus. Einer der gebräuchlichsten nichtflüchtigen Speicherchips ist AT93C46 von ATMEL. Zur Kommunikation mit dem Mikrocontroller ist dieser mit einer seriellen Schnittstelle ausgestattet, die nur aus drei Single-Bit-Bussen SK (Synchronisation), D1 (Dateneingang) und DO (Datenausgang) besteht. Diese Busse sind mit allen Knoten im Gerät mit einer solchen Schnittstelle parallel verbunden. Die Daten werden Stück für Stück übertragen. Jedes Bit wird von einem Taktimpuls SK begleitet. Der AT93C46-Chip verfügt außerdem über CS-Eingänge (Chip Select), um ihn in den aktiven Zustand und ORG (Organisation) zu schalten. Wenn letzterer an eine Stromquelle angeschlossen ist, werden in der Mikroschaltung 64 Sechzehn-Bit-Speicherzellen gebildet, bei Verwendung eines gemeinsamen Drahtes 128 Acht-Bit-Zellen. Um Inhalte oder Programme mit einem Computer zu lesen, muss der AT93C46-Chip an den Sockel des LPT1- oder LPT2-Ports angeschlossen werden, wie in der Abbildung gezeigt. Da der ORG-Eingang der Mikroschaltung mit einem gemeinsamen Draht verbunden ist, beträgt die Speicherorganisation acht Bit. Es wird empfohlen, die +5-V-Spannung von einer externen Quelle anzulegen, Sie können jedoch jede freie Ausgangsleitung des Ports verwenden, indem Sie dort programmgesteuert einen hohen Logikpegel einstellen. Das in der Tabelle gezeigte Dienstprogramm ist in BASIC (Power Basic Compiler Version 2.10f) geschrieben. Das Programm fragt zunächst nach der Portnummer, an die der Chip angeschlossen ist. Abhängig von der Antwort des Portvariablenoperators wird der Wert der Basisadresse des ausgewählten Ports eingelötet: 888 (hexadezimal 378H) für LPT1 oder 632 (hexadezimal 278H) für LPT2. Der Befehl out port.0 setzt alle Port-Datenbus-Pins auf eine logisch niedrige Spannung. Als nächstes wird der Bediener aufgefordert, den Modus zum Lesen von Daten vom Chip oder zum Schreiben darauf auszuwählen und den Namen der Datei einzugeben, in der die gelesenen Informationen gespeichert werden oder die zum Schreiben vorbereiteten Informationen gespeichert werden. Wer andere BASIC-Versionen nutzt, sollte sich darüber im Klaren sein, dass die Syntax der Operatoren für die Arbeit mit Dateien unterschiedlich sein kann. Das Programm speichert die vom Chip gelesenen oder darauf geschriebenen Daten nicht nur in einer Datei bzw. liest daraus, sondern zeigt sie auch in Form eines hexadezimalen Dumps auf dem Bildschirm an. Die Verfahren zum Lesen und Schreiben von Daten sind etwas unterschiedlich, sie verwenden jedoch dieselben Operationen zur „Kommunikation“ mit der Mikroschaltung, die im Programm als Funktionen konzipiert sind:
Die interne Steuereinheit des AT93C46-Chips empfängt Befehle von der DI-Leitung und führt sie aus. Jeder Befehl beginnt mit einem Startbit von logisch 1, gefolgt von zwei Opcode-Bits und der erforderlichen Anzahl an Speicher- und Datenadressbits. Vor jedem Befehl muss der CS-Eingang auf einen hohen Logikpegel gesetzt werden, nach dessen Abschluss auf einen niedrigen. Der Befehl zum Lesen von Daten (READ) hat einen Opcode von 10, gefolgt von einer Standortadresse. Als Reaktion darauf gibt die Mikroschaltung das an der angegebenen Adresse gespeicherte DO-Datenbyte aus, das mit der Shiftin-Funktion gelesen werden kann. Nach dem Einschalten wechselt der AT93C46-Chip automatisch in einen Modus, in dem das Löschen und Schreiben von Daten verboten ist, wodurch deren versehentliche Beschädigung verhindert wird. Also vorher. Um Daten darauf zu schreiben, müssen Sie diesen Vorgang aktivieren, indem Sie den Befehl EWEN - Erase/Write Enable ausgeben. Sein Operationscode ist 00, gefolgt von der Adresse 11 xxxxx. Die Werte der letzten fünf Bits der Adresse werden vom EWEN-Befehl nicht analysiert und können beliebig sein. Sobald der EWEN-Befehl erteilt wurde, ist er gültig, bis er durch einen speziellen Befehl aufgehoben wird oder bis die Stromversorgung des Mikroschaltkreises abgeschaltet wird. Der Schreibbefehl (WRITE) hat den Opcode 01, gefolgt von der Standortadresse und dem zu schreibenden Datenbyte. Nach Erhalt eines solchen Befehls beginnt das Steuergerät mit der Ausführung eines internen Aufzeichnungszyklus, dessen Dauer nicht mehr als 10 ms beträgt. Bis zum Ende reagiert die Mikroschaltung nicht auf neue Befehle. Wenn zu diesem Zeitpunkt ein kurzer logisch niedriger Impuls an den CS-Eingang angelegt wird, wird der DO-Ausgang gesetzt und bleibt niedrig, bis der Zyklus abgeschlossen ist. Sobald es auf High geht, müssen Sie den CS-Eingang auf Low setzen. Danach ist der Chip bereit, neue Befehle zu empfangen. Wenn der genannte Impuls nicht an den CS-Eingang angelegt wird oder nach Abschluss des Schreibzyklus angelegt wird, bleibt der DO-Ausgangszustand hochohmig. Zusätzlich zu den betrachteten Befehlen gibt es noch weitere: Löschen/Schreiben verbieten (EWDS), eine Konstante in alle Speicherzellen schreiben (WRAL), alle Speicherzellen löschen (ERAL). In der Praxis werden sie relativ selten eingesetzt. Eine Beschreibung aller Befehle sowie weitere Details zum Aufbau und zur Funktionsweise des AT93C46-Chips finden Sie in [1, 2]. Mit dem beschriebenen Programm kann mit geringfügigen Modifikationen jeder Speicherchip der АТ9Схх-Familie programmiert werden, indem der entsprechende Adressbereich eingestellt wird. Beispielsweise enthält der AT93C56-Chip 256 und der AT93C66 512 Acht-Bit-Speicherzellen. 93X16.EXE - eine Version des Programms, die für die Arbeit mit dem AT93C46-Chip im Sechzehn-Bit-Modus ausgelegt ist (der ORG-Eingang ist an eine Stromquelle angeschlossen). Literatur
Autor: A.Goncharenko, Odessa, Ukraine Siehe andere Artikel Abschnitt Mikrocontroller. Lesen und Schreiben nützlich Kommentare zu diesem Artikel. Neueste Nachrichten aus Wissenschaft und Technik, neue Elektronik: Eine neue Möglichkeit, optische Signale zu steuern und zu manipulieren
05.05.2024 Primium Seneca-Tastatur
05.05.2024 Das höchste astronomische Observatorium der Welt wurde eröffnet
04.05.2024
Weitere interessante Neuigkeiten: ▪ Vollfarbiges OLED-WUXGA-Mikrodisplay ▪ Ausstellung von Haushaltsrobotern ▪ Smartphone Micromax Canvas XP 4G News-Feed von Wissenschaft und Technologie, neue Elektronik
Interessante Materialien der Freien Technischen Bibliothek: ▪ Bereich der Telefonie-Site. Artikelauswahl ▪ Artikel Pawlow Nikolai Filippowitsch. Berühmte Aphorismen ▪ Artikel Warum sitzt einer der Kosaken auf dem Bild der Kosaken ohne Hemd? Ausführliche Antwort ▪ Artikel Echinacea purpurea. Legenden, Kultivierung, Anwendungsmethoden ▪ Artikel Aussehen und Verschwinden brennender Kerzen. Fokusgeheimnis
Hinterlasse deinen Kommentar zu diesem Artikel: Alle Sprachen dieser Seite Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen www.diagramm.com.ua |