Kostenlose technische Bibliothek ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK Programmierung moderner PIC16, PIC12 auf PonyProg. Enzyklopädie der Funkelektronik und Elektrotechnik Lexikon der Funkelektronik und Elektrotechnik / Mikrocontroller Wie Sie wissen, ist der PonyProg-Programmierer für die Programmierung einer begrenzten Anzahl von PICmicro-Mikrocontrollertypen von Microchip (PIC12C50x, PIC16F8x, PIC16F87x) konzipiert. Allerdings lassen sich damit auch andere programmieren, darunter auch neue Mikrocontroller der Serien PIC12 und PIC16. Der Artikel beschreibt, wie das geht. Viele Funkamateure bauen ihre Designs auf Basis des beliebten PIC-Controllers PIC16F84 (PIC16F84A). Die Zeit steht jedoch nicht still und die Palette der produzierten PICmicro-Mikrocontroller (MCUs) wird ständig erweitert. Neue, fortschrittlichere MCUs der Serien PIC16F und PIC12F sind erschienen (z. B. PIC12F629, PIC12F675, PIC16F628, PIC16F630, PIC16F676). Sie enthalten einen Komparator, der mit einer Eingangsspannung nahe Null arbeiten kann, was bei einer Einzelversorgung sehr verlockend ist. Der in ihrer Zusammensetzung enthaltene 10-Bit-ADC weist eine Genauigkeit auf, die nicht schlechter ist als die spezialisierter Mikroschaltungen, was Ihnen zusammen mit größeren Fähigkeiten zur Verarbeitung und Anzeige von Informationen die Erstellung einzigartiger Geräte mit einer minimalen Anzahl externer Elemente ermöglicht. Neue MKs verfügen über einen größeren Speicher, zusätzliche Timer, einen universellen Kommunikationsanschluss und andere Verbesserungen. Darüber hinaus sind ihre Kosten deutlich niedriger als bei PIC16F84 und FLASH PIC16F630 ist günstiger als PIC16C505 (beide in 14-Pin-Gehäusen). Die Speicherorganisation des PIC12Fx ist die gleiche wie die des PIC16F84 (eine Seite), was die einfache Anpassung von Programmen ermöglicht, die nicht den Einsatz von MCUs in Multi-Pin-Gehäusen erfordern. Wenn Sie sich für die Verwendung neuer Mikrocontroller in Ihren Designs entscheiden, überlegen Sie sich, worauf Sie sie programmieren möchten, bevor Sie sie studieren und Programme schreiben. Der Kauf eines Markenprogrammierers zu einem Preis, der mit den Kosten einer Computersystemeinheit vergleichbar ist, ist für Funkamateure nahezu unmöglich. Viele von ihnen haben jedoch den PONYPROG-Programmierer zusammengestellt [1]. Lassen Sie uns herausfinden, wie Sie damit neue MKs programmieren können. Alle MKs werden über einen Dreidrahtbus programmiert. Zur Programmierung werden die Signale Upp (Übernahme in den Programmiermodus), CLK (Synchronisation) und DAT (Daten) benötigt. Bastler, die keinen Programmierer haben, können ein einfaches Gerät verwenden, das gemäß dem Diagramm in Abb. zusammengebaut ist. 1. Es wird an den COM-Port des PCs angeschlossen; zur Stromversorgung des MK wird eine separate Quelle mit einer Ausgangsspannung von 5 V verwendet. Geben Sie in den „Geräteeinstellungen“ den Typ des Programmierers an – JDM API. Der Anschluss der Klemmen erfolgt gemäß Tabelle. Die Programmierung kann direkt im fertigen Gerät über dessen Stromquelle erfolgen (es ist lediglich erforderlich, die Überbrückung der MK-Programmierstifte durch die Produktelemente zu beseitigen). Die Versorgungsspannung während der Programmierung sollte im Bereich von 4,5...5,5 V liegen (ggf. Zenerdiode VD1 wählen). Die Tabelle zeigt, dass der Zweck der beim Programmieren verwendeten Pins PIC16F84 und PIC16F628 derselbe ist, sodass sie im selben Sockel des Programmiergeräts programmiert werden können. Für andere Mikroschaltungen müssen Sie zusätzliche Steckdosen installieren, die gemäß der Tabelle an den Adapter angeschlossen sind. Ausführlichere Informationen zu PIC-Controllern finden Sie auf der Website [2]. Weitere Erläuterungen erfolgen am Beispiel des PIC16F628, da dieser keine Hardware-Änderungen am PonyProg-Programmierer erfordert und leichter im Handel erhältlich ist als andere. Wie bereits erwähnt, werden alle PICmicro MKs über drei Drähte (genauer gesagt zwei) programmiert. Auch das Programmierprotokoll (Befehle) ist gleich. Der Programmspeicher beginnt bei Adresse 0000 und endet je nach Größe in einem bestimmten Chiptyp. Das bedeutet, dass Sie durch Auswahl des für diesen Parameter passenden MK aus der PonyProg-Liste das gewünschte Programm aufzeichnen können. In unserem Fall ist PIC16F871 geeignet. Es ist zu beachten, dass die untere Zeile des PonyProg-Fensters die Speichermenge in Bytes angibt und die technischen Eigenschaften des MK normalerweise die Anzahl der Wörter (14 Bit) angeben. Mit anderen Worten: Der Programmierer zeigt eine größere Lautstärke an. PIC16F871 und PIC16F628 haben eine Speicherkapazität von 2048 Wörtern. Darüber hinaus kann dies in der .Ikr-Datei des entsprechenden MK (im MPLAB-Installationsordner) überprüft werden, indem man sie mit dem Standard-Notepad-Programm liest. Die Programmspeicheradresse wird wie folgt angezeigt: CODEPAGE NAME=Vektoren START=0x0 END=0x4 PROTECTED (bedingte Übertragungen) CODEPAGE NAME=Seite START=0x5 END=0x7FF (bedingte Übertragungen) Zu diesem Zeitpunkt können Sie bereits versuchen, Informationen in den Programmspeicher zu schreiben. Hierfür eignet sich jede HEX-Datei, die nicht größer als 2048 Wörter ist. Nachdem Sie das Serviceprogramm gestartet haben, schließen Sie das Gerät an den Computeranschluss an, stecken Sie den MK in die entsprechende Buchse und schalten Sie dann den Programmierer ein. Wählen Sie im Menü PIC16F871 aus, laden Sie die ausgewählte HEX-Datei und klicken Sie auf die Schaltfläche „Programmspeicher schreiben (FLASH)“. Es erscheint eine Fehlermeldung, die Sie über Probleme mit dem MK informiert und drei Schaltflächen enthält (Abb. 2): „Abort“ (Abbruch), „Retry“ (Wiederholen), „Ignore“ (Ignorieren). Klicken Sie auf die letzte Option („Ignorieren“) und der Programmiervorgang beginnt. Nach Abschluss sollte eine Meldung erscheinen, dass die Aufnahme erfolgreich war. Wenn der Programmierer einen „Write Error“ generiert, prüfen Sie den Inhalt des Programmspeichers und berücksichtigen Sie dabei den entsprechenden Befehl. Das Vorhandensein von Fehlern weist darauf hin, dass der Programmierer möglicherweise zu schnell läuft (dies passiert, wenn auf dem Computer WINDOWS XP installiert ist; unter WINDOWS 98 läuft das Programm langsamer und schreibt zuverlässiger). Die Ursache können auch Störungen (bei zu langen Verbindungskabeln) und in seltenen Fällen Antiviren- und andere Hintergrundprogramme sein. Fehlt der Eintrag komplett, ist die Hardware des Programmiergeräts defekt oder das Programm (im Menü) falsch konfiguriert. Der nächste, wichtigste Schritt ist das Schreiben des Konfigurationsworts. Seine Adresse finden Sie auch in der .Ikr-Datei des entsprechenden MK. Die Zeile in der Datei sieht so aus: CODEPAGE NAME=.config START=0x2007 END=0x2007 GESCHÜTZT (bedingte Übertragungen). Das Konfigurationswort befindet sich an der Adresse 0x2007. In unserem Fall haben PIC16F871 und PIC16F628 die Adressen 2007, sind also zur Substitution geeignet (es ist zu beachten, dass sich an dieser Adresse das Konfigurationswort für alle PIC16 und PIC12F befindet). Es ist nicht ratsam, Konfigurationsbits direkt im Programmiergerät zu setzen, da ihre Bezeichnung auf dem Programmiergerät für PIC16F628 und PIC16F871 unterschiedlich ist und Fehler möglich sind und einige Bits ausgegraut sind und nicht direkt gesetzt werden können. Es ist besser, die MK-Konfiguration beim Kompilieren eines Programms aufzuschreiben. Für MPLAB könnten diese Zeilen etwa so aussehen: in lude p16f628.inc> list p=16f628_config H'0242" Der Wert von „0242“ wird entsprechend dem Zweck jedes Bits im Konfigurationswort zusammengestellt und kann in Ihrem speziellen Fall unterschiedlich sein. Eine detaillierte Beschreibung aller Bits finden Sie auf der Website [2]. Die Abkürzungen für die Konfigurationsbits sind in der .INC-Datei des entsprechenden MK im MPLAB-Installationsordner enthalten. Ungefähre Ansicht: BODEN AUF EQU H'3FFF' BODEN OFF EQU H'3FBF' CP ALL EQU H'03FF' CP 75 EQU H'17FF' CP 50 EQU H'2BFF' CP AUS EQU H'3FFF' DATEN CP AUF EQU H'3EFF' DATEN CP AUS EQU H'3FFF' PWRTE AUS EQU H'3FFF' PWRTE ON EQU H'3FF7' WDT AUF EQU H'3FFF' WDT AUS EQU H'3FFB' LVP AUF EQU H'3FFF' LVP AUS EQU H'3F7F' MCLRE AUF EQU H'3FFF' MCLRE AUS EQU H'3FDF' ER OSC CLKOUT EQU H'3FFF' ER OSC NOCLKOUT EQU H'3FFE' INTRC OSC CLKOUT EQU H'3FFD' INTRC OSC NOCLKOUT EQU H'3FFC EXTCLK OSC EQU H'3FEF' LP OSC EQU H'3FEC XT OSC EQU H'3FED' HS OSC EQU H'3FEE' Unter Verwendung dieser Notationen könnte die Eingabezeichenfolge wie folgt aussehen: __config CP_ALL & WDT OFF & BODEN ON & _PWRTE_ON & _HSJ3SC &_LVP OFF ; (Übertragungen sind an Bedingungen geknüpft). Auf diese Weise können Sie für jeden MK mithilfe seiner .INC-Datei ein Konfigurationswort schreiben. Dies ist praktisch, wenn Sie ein vorgefertigtes Programm anpassen, beispielsweise wenn PIC16F627 durch einen günstigeren PIC16F627A ersetzt wird. Wenn Sie die Konfiguration in den Programmtext einfügen, wird sie in die HEX-Datei übernommen und die schattierten Bits werden ebenfalls gesetzt. Nachdem Sie das Konfigurationswort durch Lesen der HEX-Datei des Programms, in dem es enthalten ist, in den Programmierer eingegeben haben, erfolgt die Aufzeichnung wie gewohnt durch Eingabe des entsprechenden Befehls. Ebenso kann es aus MK gelesen werden. Sie können sicherstellen, dass die Konfiguration geschrieben wird, indem Sie entweder nach dem Schreiben das Konfigurations-Programmierfeld des Programmiergeräts löschen und dann die Konfiguration aus dem MK lesen, oder indem Sie den Programmspeicher von einem lesegeschützten Chip lesen: Vor dem Schreiben der Konfiguration wird diese gelesen , aber nach dem Schreiben ist dies nicht der Fall (sofern der Schutz gesetzt ist). In diesem Fall ist die Konfiguration auch im geschützten Mikroschaltkreis lesbar. Es wird nicht empfohlen, Sicherheitsbits zu setzen, es sei denn, dies ist unbedingt erforderlich. Tatsache ist, dass einige MKs unterschiedliche Löschbefehle haben und Sie sie nicht neu programmieren können, da die Schutzbits auf PonyProg nicht gelöscht werden. Wenn jedoch über die darin enthaltene „Firmware“ auf einen ungeschützten Chip geschrieben wird, löscht der geschriebene Code die vorherigen Informationen und es besteht keine Notwendigkeit zum Löschen. Dies gilt jedoch nicht für PIC16F627, PIC16F628; die darin enthaltenen Informationen können ohne Angst geschützt werden. Die Daten werden auf die übliche Weise in das EEPROM geschrieben, da die Daten in den PIC16F- und PIC12F-MCUs ab Adresse 2100p platziert werden. Sie können dies auch in der .Ikr-Datei anzeigen. Eine Beispielzeile: CODEPAGE NAME=eedata START=0x2100 END=0x217F PROTECTED (bedingte Übertragungen). Sonstiges für PIC-Controller - nur das Ende des Datenbereichs (aufgrund unterschiedlicher Volumina): für PIC16F628 - 128, für PIC16F871 - 64 Bytes, aber wenn das für die Arbeit benötigte Volumen die Größe des EEPROMs des ausgewählten Ersatzes nicht überschreitet Chip (für PIC16F871 - 64 Bytes) , dann können Sie programmieren, ohne den MK-Typ im Menü umzuschalten: Der überschüssige Speicher des PIC16F628 wird einfach nicht genutzt. Wenn Sie ein größeres Volumen schreiben müssen, sollten Sie im Programmiermenü den MK-Typ durch eine Speicherkapazität ähnlich dem PIC16F628 ersetzen (in unserem Fall ist es ein PIC16F874 mit EEPROM 128 Byte) und wie gewohnt schreiben. Sie können den MK-Typ in jeder Phase der Programmierung im Menü ändern. Es ist zu beachten, dass der PIC16F874 zwar über einen doppelt so großen Programmspeicher wie der PIC16F628 verfügt, Sie jedoch Informationen darauf schreiben können, indem Sie im Menü PIC16F874 und sogar PIC16F877 (16K) einstellen. Bei der Überprüfung der Aufnahme zeigt der Programmierer jedoch eine an Fehlermeldung. Tatsache ist, dass der MK beim Lesen eines Teils des Speichers, der nicht im PIC16F628 implementiert ist, Informationen erzeugt, die in niedrigere Adressen geschrieben werden (hohe Adressbits werden ignoriert), d. h. der Programmspeicher wird zweimal gelesen (im PIC16F877 - vier). mal). Mit anderen Worten handelt es sich hierbei nicht um einen Fehler im Programm, sondern um ein erneutes Auslesen des Speichers; das Programm wird normal geschrieben. Literatur
Autor: A.Sizov, Ivanovo 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: ▪ Verbessern Sie Ihre Breitbandverbindung ▪ 4 Milliarden GSMA-Abonnenten ▪ Extremes Smartphone Ulefone Armor 12 5G ▪ Tragbare Festplatte von Seagate mit 4 TB News-Feed von Wissenschaft und Technologie, neue Elektronik
Interessante Materialien der Freien Technischen Bibliothek: ▪ Standortabschnitt Blitzschutz. Artikelauswahl ▪ Artikel Hängematte auf dem Land. Tipps für den Heimmeister ▪ Artikel Was ist eine Lawine? Ausführliche Antwort ▪ Artikel Arbeiten mit einer Wasserpumpe. Standardanweisung zum Arbeitsschutz ▪ Artikel UKW-UKW-Tuner. Enzyklopädie der Funkelektronik und Elektrotechnik ▪ Artikel Eine der 15 Karten erraten. Fokusgeheimnis
Hinterlasse deinen Kommentar zu diesem Artikel: Alle Sprachen dieser Seite Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen www.diagramm.com.ua |