Ein einfacher JDM-Programmierer für PIC-Mikrocontroller – Mikrocontroller-Programmierer – Mikrocontroller-Geräteschaltungen. Der einfachste JDM-Programmierer für PIC auf passiven Komponenten. Port- und Protokolleinstellungen beim Anschluss des Programmierers

Eines Tages beschloss ich, ein einfaches LC-Meter für pic16f628a zusammenzubauen, und natürlich musste es mit etwas geflasht werden. Früher hatte ich einen Computer mit einem physischen COM-Anschluss, aber jetzt habe ich nur noch USB und eine pci-lpt-2com-Karte. Zunächst habe ich einen einfachen JDM-Programmierer zusammengebaut, aber wie sich herausstellte, wollte er weder mit der PCI-LPT-COM-Karte noch mit dem USB-COM-Adapter funktionieren (niedrige Spannung der RS-232-Signale). Dann beeilte ich mich, nach USB-PIC-Programmierern zu suchen, aber wie sich herausstellte, beschränkte sich dort alles auf die Verwendung des teuren PIC18F2550/4550, den ich natürlich nicht hatte, und es ist schade, so teure MKs zu verwenden, wenn ich sehr mache in Spitzenzeiten selten etwas (ich bevorzuge av- Ja, sie zu flashen ist kein Problem, sie sind viel billiger und es scheint mir, dass es einfacher ist, Programme darauf zu schreiben). Nachdem er sich lange im Internet in einem der vielen Artikel über den EXTRA-PIC-Programmierer und seine verschiedenen Varianten vertieft hatte, schrieb einer der Autoren, dass Extrapic mit allen COM-Ports und sogar einem USB-COM-Adapter funktioniert.

Die Schaltung dieses Programmiergeräts verwendet einen Max232-Logikpegelwandler.

Ich dachte, wenn man einen USB-Adapter verwendet, wäre es sehr dumm, den USB zweimal auf USART-TTL, TTL auf RS232 und RS232 wieder auf TTL-Pegel umzuwandeln, wenn man einfach die TTL-Signale des RS232-Ports vom USB nehmen kann. USART-Konverterchip.

So tat ich. Ich habe den CH340G-Chip (der alle 8 COM-Port-Signale hat) genommen und ihn anstelle von max232 angeschlossen. Und genau das ist passiert.

In meiner Schaltung gibt es einen Jumper jp1, der sich nicht in der zusätzlichen Spitze befindet. Ich habe ihn installiert, weil ich nicht wusste, wie sich der TX-Ausgang auf dem TTL-Pegel verhalten würde, also habe ich es möglich gemacht, ihn auf dem verbleibenden freien NAND zu invertieren Element und wie sich herausstellte, war es richtig, es gibt eine logische Eins am TX-Pin, und daher liegen beim Einschalten 12 Volt am VPP-Pin an, aber während der Programmierung passiert nichts (obwohl Sie TX in der Software invertieren können) .

Nach dem Zusammenbau der Platine ging es ans Testen. Und hier kam die größte Enttäuschung. Der Programmierer wurde sofort identifiziert (mit dem Programm ic-prog) und begann zu arbeiten, aber sehr langsam! Im Prinzip – wie erwartet. Dann stellte ich in den COM-Port-Einstellungen die maximale Geschwindigkeit (128 Kilobaud) ein und begann, alle gefundenen Programme auf JDM zu testen. Infolgedessen erwies sich PicPgm als das schnellste. Mein pic16f628a wurde etwa 4–6 Minuten lang vollständig geflasht (Hex, EEPROM und Konfiguration) plus Überprüfung (Lesen ist langsamer als Schreiben). IcProg funktioniert auch, aber langsamer. Es gab keine Programmierfehler. Ich habe auch versucht, EEPROM 24c08 zu flashen, das Ergebnis ist das gleiche - alles näht, aber sehr langsam.

Schlussfolgerungen: Der Programmierer ist recht einfach, er enthält keine teuren Teile (CH340 - 0,3-0,5 $, k1533la3 findet man im Allgemeinen im Radioschrott), funktioniert auf jedem Computer, Laptop (und Sie können sogar Tablets unter Windows 8/10 verwenden). ). Nachteile: Es ist sehr langsam. Außerdem ist eine externe Stromversorgung für das VPP-Signal erforderlich. Daher schien es mir, dass dies für seltene Spitzenblitze eine einfach zu wiederholende und kostengünstige Option für diejenigen ist, die keinen alten Computer mit den erforderlichen Anschlüssen zur Hand haben.

Hier ein Foto des fertigen Geräts:

Wie es in dem Lied heißt: „Ich habe ihn aus dem gemacht, was war.“ Der Teilesatz ist sehr vielfältig: sowohl SMD als auch DIP.

Für diejenigen, die es wagen, die Schaltung zu wiederholen, wird fast jeder als USB-UART-Konverter geeignet sein (ft232, pl2303, cp2101 usw.), anstelle von k1533la3 wird k555 geeignet sein, ich denke sogar die k155-Serie oder ein ausländisches Analogon 74als00 funktioniert es möglicherweise sogar mit logischen NOT-Elementen vom Typ k1533ln1. Ich schließe meine eigene Leiterplatte an, aber jeder kann dort die Verkabelung für die vorhandenen Elemente neu zeichnen.

Liste der Radioelemente

Bezeichnung Typ Konfession Menge NotizGeschäftMein Notizblock
IC1 ChipCH340G1 Zum Notizblock
IC2 ChipK1533LA31 Zum Notizblock
VR1 Linearregler

LM7812

1 Zum Notizblock
VR2 Linearregler

LM7805

1 Zum Notizblock
VT1 Bipolartransistor

KT502E

1 Zum Notizblock
VT2 Bipolartransistor

KT3102E

1 Zum Notizblock
VD1-VD3 Gleichrichterdiode

1N4148

2 Zum Notizblock
C1, C2, C5-C7 Kondensator100 nF5 Zum Notizblock
C3, C4 Kondensator22 pF2 Zum Notizblock
HL1-HL4 LeuchtdiodeBeliebig4 Zum Notizblock
R1, R3, R4 Widerstand

1 kOhm

3

Der vorgeschlagene Programmierer basiert auf einer Veröffentlichung aus der Zeitschrift „Radio“ Nr. 2, 2004, „Programming modern PIC16, PIC12 on PonyProg“. Dies ist mein erster Programmierer, mit dem ich zu Hause PIC-Chips geflasht habe. Der Programmierer ist eine vereinfachte Version des JDM-Programmierers, die Originalschaltung verfügt über einen RS-232-zu-TTL-Konverter in Form einer MAX232-Mikroschaltung, er ist universeller, aber man kann ihn nicht „auf den Knien“ zusammenbauen. Diese Schaltung verfügt überhaupt nicht über eine einzige aktive Komponente, enthält keine knappen Teile und ist sehr einfach; sie kann ohne Verwendung einer Leiterplatte zusammengebaut werden.

Reis. 1: Schematische Darstellung des Programmierers.

Beschreibung der Schaltungsfunktion
Die Programmierschaltung ist in Abb. dargestellt. 1. Widerstände in den Schaltkreisen CLK (Taktung), DATA (Information) und Upp (Programmierspannung) dienen zur Begrenzung des Stromflusses. PIC-Controller sind durch eingebaute Zenerdioden vor Ausfällen geschützt, sodass eine gewisse Kompatibilität zwischen TTL- und RS-232-Logik besteht. Die vorgestellte Schaltung enthält die Dioden VD1, VD2, die die positive Spannung vom COM-Port relativ zu Pin 5 „abnehmen“ und zur Stromversorgung des Controllers übertragen, wodurch in manchen Fällen auf eine zusätzliche Stromquelle verzichtet werden kann.

Einrichten
In der Praxis kommt es nicht immer vor, dass dieser Programmierer beim ersten Versuch ohne Anpassung funktioniert, weil... Der Betrieb dieser Schaltung hängt stark von den Parametern des COM-Ports ab. Bei mir funktionierte jedoch auf zwei Mainboards Gigabyte 8IPE1000 und WinFast unter XP alles auf Anhieb. Wenn Sie zu faul sind, sich mit einer kaputten, komplexeren Programmierschaltung herumzuschlagen, sollten Sie versuchen, diese zusammenzubauen. Hier sind einige Dinge, die Auswirkungen haben können:

Je neuer die Matte. Board widmen die Entwickler diesen Ports weniger Aufmerksamkeit, da diese Ports längst veraltet sind. Sie können dies durch den Kauf eines USB-COM-Adapters vermeiden, auch wenn das gekaufte Gerät möglicherweise nicht geeignet ist. Die erforderlichen Parameter sind wie folgt: Die variable Spannung muss sich relativ zum 5. Pin des Steckers um mindestens -10 V bis +10 V (log. 0 und 1) ändern. Der zugeführte Strom muss mindestens so groß sein, dass bei Anschluss eines 2,7-kOhm-Widerstands zwischen dem 5. Kontakt und dem zu prüfenden Kontakt die Spannung nicht unter 10 V abfällt (solche Platinen habe ich selbst noch nicht gesehen). Außerdem muss der Port die vom Controller kommenden Spannungen korrekt ermitteln; bei einem Spannungspegel nahe 0 V, aber nicht mehr als 2 V wird Null ermittelt, und dementsprechend wird bei einem Spannungspegel über 2 V Eins ermittelt.

Auch softwarebedingt kann es zu Problemen kommen.
Dies gilt insbesondere für LINUX OS, weil... Aufgrund des Vorhandenseins von Emulatoren wie Wine und VirtualBox funktionieren Ports möglicherweise nicht ordnungsgemäß und es werden viele Funktionen von ihnen benötigt. Auf diese Probleme werde ich in einem anderen Artikel ausführlicher eingehen.

Wenn wir diese Funktionen kennen, beginnen wir mit der Einrichtung.
Hierzu ist es sehr wünschenswert, über das Programm ICProg 1.05D zu verfügen.
Im Programmmenü müssen Sie zunächst in den Einstellungen die entsprechende Einstellung auswählen. Port (COM1. COM2), JDM-Programmierer auswählen. Öffnen Sie dann im Menü „Einstellungen“ das Fenster „Hardware-Check“. In diesem Menü müssen Sie die Kontrollkästchen nacheinander aktivieren und mit einem Voltmeter die Spannung an den Kontakten des angeschlossenen Steckers messen. Wenn die Spannungsparameter nicht der Norm entsprechen, kann dies leider die Ursache für Funktionsunfähigkeit sein, dann müssen Sie eine Schaltung mit einem RS-232-TTL-Konverter aufbauen. Nachdem Sie alle Kästchen angekreuzt haben, müssen Sie sicherstellen, dass an der Zenerdiode eine Versorgungsspannung von ca. 5 V erzeugt wird. Wenn die Spannungen normal sind und keine Installationsfehler vorliegen, sollte alles funktionieren. Wir stecken den Controller in den Sockel, öffnen die Firmware, programmieren ihn. Es ist nicht erforderlich, Kontrollkästchen wie „Daten invertieren“ zu aktivieren (alle sind deaktiviert). Vergessen Sie auch nicht, dass einige Controller-Chargen möglicherweise nicht standardmäßige Parameter haben und es nicht möglich ist, sie zu flashen. In solchen Fällen können Sie mit diesem Programmierer nur versuchen, die Versorgungsspannung von 5 V auf 3-4 V zu reduzieren entsprechend verbinden. Zenerdiode, überprüfen Sie den Controller auf eine fehlerhafte Aktivierung des LVP-Modus (Low-Voltage-Programming). Wie Sie dies verhindern können, können Sie im Internet für einen bestimmten Controller-Typ nachlesen. Es ist wahrscheinlich nur möglich, die Programmierspannung des problematischen Controllers zu erhöhen, indem die Schaltung komplizierter wird, indem eine Verstärkungsstufe mit einem gemeinsamen Emitter eingeführt wird, die von einer zusätzlichen Stromquelle gespeist wird.

Lassen Sie uns nun näher auf das Problem mit der Stromversorgung des Geräts eingehen. Der Programmierer wurde mit ICProg-Programmen und Konsolen-Picprog unter Linux getestet. Er sollte mit jedem funktionieren, der JDM unterstützt, wenn Sie eine zusätzliche Stromquelle anschließen (diese ist über einen 1-kOhm-Widerstand mit der Zenerdiode verbunden, in diesem Fall können Dioden mit Widerständen sein). völlig ausgeschlossen). Tatsache ist, dass die Steuerungsalgorithmen der Programmierer für einzelne Software unterschiedlich sind, das Programm ICProg ist das unprätentiöseste. Es wurde festgestellt, dass dieses Programm im Windows-Betriebssystem die erforderliche Versorgungsspannung an ungenutztem Pin 2 erhöhte, das gleiche Programm unter dem Emulator unter Linux auf einer anderen Matte. Das gelang der Platine nicht mehr, es wurde jedoch ein Ausweg gefunden, indem die Stromversorgung über die Programmierspannung bezogen wurde. Im Allgemeinen denke ich, dass Sie diesen Programmierer mit ICProg ohne zusätzliche Stromversorgung verwenden können. Bei anderer Software kann dies kaum gewährleistet werden, beispielsweise erkennt das „native“ Picprog aus den Ubuntu-Repositories ohne Strom den Programmierer einfach nicht und zeigt die Meldung „JDM-Hardware nicht gefunden“ an. Wahrscheinlich empfängt er einige Daten, ohne dass die Programmierspannung angelegt wurde, oder dies geschieht zu schnell, sodass der Filterkondensator noch keine Zeit zum Aufladen hat.

Als einfachen Programmierer empfehlen wir Ihnen, einen JDM-kompatiblen Programmierer, den wir NTV-Programmierer nennen, unter Verwendung des Originaldesigns zusammenzustellen. Unten finden Sie ein Diagramm des NTV-Programmierers (unter Verwendung einer DB9-Buchse; nicht zu verwechseln mit einem Stecker).

Der Programmierer baute nach diesem Schema wiederholt und präzise geflashte Controller (und eine Reihe anderer) zusammen und kann unerfahrenen Funkamateuren zur Wiederholung empfohlen werden.

Dieser Programmierer FUNKTIONIERT NICHT, wenn er an Laptops angeschlossen ist, weil... Die Signalpegel der RS-232-Schnittstelle (COM-Port) in mobilen Systemen werden unterschätzt. Es funktioniert möglicherweise auch nicht auf modernen PCs, bei denen die Hardware am Port Strom spart. Seien Sie also nicht verurteilend, sammeln Sie es und testen Sie es auf allen Computern, die Ihnen zur Verfügung stehen.

Strukturell wird die Programmierplatine zwischen die Kontakte des DB-9-Steckers eingefügt, die mit den Kontaktpads der Leiterplatte verlötet sind. Unten finden Sie eine Zeichnung der Platine und ein Foto des zusammengebauten Programmierers.



Um die Informationen zu vervollständigen, sollte gesagt werden, dass es einen anderen ähnlichen Programmierer gibt, den ich für Mikrocontroller in einem 8-Pin-Gehäuse ( und ) zusammengebaut habe. Auch mit diesen Mikrocontrollern funktioniert der Programmierer hervorragend. Unten finden Sie eine Zeichnung der Tafel und Fotos.

Der schnelle Aufbau einer beliebigen Schaltung auf einem Mikrocontroller ist für viele Funkamateure kein Problem. Doch viele Menschen, die anfangen, mit Mikrocontrollern zu arbeiten, stehen vor der Frage, wie man sie programmiert. Eine der einfachsten Programmieroptionen ist der JDM-Programmierer.

Programmierer ProgCode v 1.0

Dieses Programm läuft unter WindowsXP. Ermöglicht die Programmierung von PIC-Controllern der mittleren Familie (PIC16Fxxx) über den COM-Port des Computers. Die Programmiergerät-Verbindungsanzeige (in der oberen rechten Ecke des Fensters) wird rot, wenn an dem in den Einstellungen ausgewählten Port kein Programmiergerät vorhanden ist. Wenn das Programmiergerät angeschlossen ist, erkennt das Programm es und die Anzeige in der oberen rechten Ecke nimmt die in Abbildung 1 gezeigte Form an.

Auf der linken Seite des Programmfensters befindet sich ein Bedienfeld. Dieses Bedienfeld kann minimiert werden, indem Sie auf die Schaltfläche in der Symbolleiste oder auf den linken Rand des Fensters klicken (dies ist praktisch, wenn das Programmfenster auf Vollbild maximiert ist).

Abbildung (Screenshot des Programms ProgCode v1.0)


Wenn eine HEX-Datei in das Programm geladen wird, empfiehlt es sich, zunächst in der Liste der Controller den MK auszuwählen, für den die geladene Firmware ausgelegt ist. Geschieht dies nicht, wird die Datei, die für einen Mikrocontroller mit einem größeren Speicher als dem in der Liste ausgewählten gedacht ist, abgeschnitten und Teile des Programms gehen verloren – bei dieser Option zum Laden der Datei wird eine Warnung angezeigt.

Sollte dies nicht der Fall sein, können Sie nach dem Laden der Datei in das Programm den gewünschten Controller auswählen.

SFR-Dateiformat

Der ProgCode-Programmierer unterstützt das Arbeiten mit seinem eigenen Dateiformat. Diese Dateien haben die Erweiterung .SFR und ermöglichen das Speichern zusätzlicher Informationen über das für den Mikrocontroller vorgesehene Programm. In dieser Datei werden Informationen über den Typ des Mikrocontrollers gespeichert. Dadurch müssen Sie sich beim Laden einer SFR-Datei keine Gedanken über die Vorauswahl des MK-Typs in den Einstellungen machen.

Port- und Protokolleinstellungen beim Anschluss eines Programmiergeräts

Nach der Installation des Programms sind standardmäßig alle Einstellungen vorgenommen, die der Programmierer benötigt, um mit der auf dieser Seite angegebenen JDM-Schaltung zu arbeiten.
Die Signalinvertierung in der obigen Schaltung ist nur für den OutData-Ausgang erforderlich, da in dieser Schaltung das Signal durch den Anpassungstransistor invertiert wird. An allen anderen Pins ist die Invertierung deaktiviert.



Die Impulsverzögerung kann gleich 0 sein. Ihre Anpassung ist für „besonders schwierige“ Controller-Instanzen vorgesehen, die nicht geflasht werden können. Gleiches gilt für die Aufnahmepausenzulage – diese ist standardmäßig Null. Wenn Sie diese Einstellungen erhöhen, erhöht sich die Programmierzeit des Controllers erheblich.

Das Kontrollkästchen „Beim Schreiben prüfen“ sollte aktiviert sein, wenn Sie „on the fly“ alles, was in den Mikrocontroller geschrieben wird, auf Richtigkeit und Übereinstimmung mit der Quelldatei überprüfen müssen. Wenn Sie dieses Kontrollkästchen deaktivieren, wird die Prüfung überhaupt nicht durchgeführt und es werden keine Fehlermeldungen angezeigt, auch wenn solche Fehler tatsächlich vorliegen.
Wählen Sie die Portgeschwindigkeit aus – die Geschwindigkeit kann beliebig sein. Für einen JDM-Programmierer hat dieser Parameter keine Bedeutung.

WindowsXP verwendet die Pufferung von Informationen, die über COM-Ports übertragen werden. Dabei handelt es sich um sogenannte FIFO-Puffer. Um Fehler bei der Programmierung per JDM zu vermeiden, muss dieser Mechanismus deaktiviert werden. Sie können dies im Windows-Geräte-Manager tun.

Gehen Sie zur Systemsteuerung und gehen Sie dann wie folgt vor:
Verwaltung – Computerverwaltung – Geräte-Manager

Wählen Sie dann den Port aus, an den der JDM-Programmierer angeschlossen ist (z. B. COM1) – schauen Sie sich die Eigenschaften – Registerkarte Portparameter – Zusätzlich an. Und deaktivieren Sie das Kontrollkästchen „FIFO-Puffer verwenden“

Abbildung – Einrichten eines COM-Ports für die Arbeit mit einem JDM-Programmierer



Starten Sie anschließend den Computer neu.


Lokaler Projekt-Explorer

Neben der direkten Programmierung der Steuerungen bietet das Programm einen komfortablen Browser für Projekte auf dem MK, der sich sowohl in lokalen Computerordnern als auch im Internet befindet. Dies geschah aus Gründen der Benutzerfreundlichkeit. Oftmals befinden sich die benötigten Projekte in unterschiedlichen Ordnern und man muss zeitaufwändig in das richtige Verzeichnis gelangen, um das Projekt anzusehen. Hier können Sie ganz einfach die benötigten Ordner zur Ordnerliste hinzufügen und jedes Projekt mit zwei oder drei Mausklicks anzeigen.

Wenn Sie im Browserfenster darauf doppelklicken, wird jede Datei im Programm selbst geöffnet – dies gilt für Bilder, HTML-Dateien, Doc, RTF, DJVU (mit installierten Plugins), PDF, TXT, ASM. Die Datei kann auch per Doppelklick in einem Browser mit einem externen, auf dem Computer installierten Programm geöffnet werden. Dazu muss in der Liste „File Associations“ die Erweiterung des gewünschten Dateityps eingetragen werden. Wenn Sie den Pfad zum öffnenden Programm nicht angeben, öffnet Windows die Datei standardmäßig im Programm (dies ist praktisch, um Archive zu öffnen, die nicht immer eindeutig geöffnet sind). Wenn in der Liste der Pfad zum öffnenden Programm angegeben ist, wird die Datei im angegebenen Programm geöffnet. Auf diese Weise können Dateien wie SPL, LAY und DSN bequem angezeigt werden.

Abbildung (Screenshot des Programmbrowsers ProgCode v1.0)



So sieht das Fenster mit den Dateizuordnungseinstellungen aus:




Internet-Projektbrowser

Der Projektbrowser im Internet ermöglicht Ihnen ebenso wie der lokale Projektbrowser, mit wenigen Klicks schnell zur gewünschten Seite im Internet zu gelangen, das Projekt anzusehen und bei Bedarf das Programm sofort in MK zu flashen.



Wenn bei der Überprüfung von Projekten im Internet auf der Projektseite ein Link zu einer Datei mit der SFR-Erweiterung (dies ist das Dateiformat des ProgCode-Programms) vorhanden ist, wird eine solche Datei beim Klicken darauf in einer neuen Datei geöffnet Programmregisterkarte und ist sofort zum Flashen in den Mikrocontroller bereit.
Die Liste der Links kann über die Schaltfläche „Bearbeiten“ bearbeitet werden. Es öffnet sich ein Fenster zum Bearbeiten der Linkliste:





Beschreibung des Chip-Programmierungsprozesses

Die meisten modernen ICs enthalten Flash-Speicher, der mit I2C oder ähnlichen Protokollen programmiert wird.
Wiederbeschreibbarer Speicher findet sich in PIC, AVR und anderen Controllern, Speicherchips wie 24Cxx und ähnlichen, verschiedenen Speicherkarten wie MMC und SD, gewöhnlichen USB-Flash-Karten, die über einen USB-Anschluss an den Computer angeschlossen werden.

Betrachten wir das Schreiben von Informationen in den Flash-Speicher des Mikrocontrollers Bild 16 F 628 A

Es gibt 2 Zeilen DATA und CLOCK , über die es übertragen wirdInformation. Linie UHR dient der Versorgung mit Taktimpulsen und der Leitung DATEN Informationen zu übermitteln.

Um 1 Bit an Informationen an den Mikrocontroller zu übertragen, müssen Sie auf der Datenleitung (DATA) 0 oder 1 (je nach Wert des Bits) einstellen und auf der Taktleitung einen Spannungsabfall (Übergang von 1 auf 0) erzeugen ( UHR).
Ein Bit für einen Controller reicht nicht aus. Er wartet weitere fünf, um diese 6-Bit-Nachricht als Befehl wahrzunehmen. Der Controller mag Befehle wirklich und sie müssen aus 6 Bits bestehen – das ist die Natur des PIC 16.
Hier ist die Liste und Bedeutung der Befehle, die PIC verstehen kann. Es gibt nicht so viele Befehle – der Wortschatz dieses Controllers ist klein, aber denken Sie nicht, dass das völlig dumm ist – es gibt Geräte mit weniger Befehlen

„LoadConfiguration“ 000000 – Konfiguration wird geladen

„LoadDataForDataMemory“ – 000011 – Laden von Daten in den Datenspeicher (EEPROM)
„IncrementAddress“ 000110 – Erhöhen Sie die Adresse des PC MK
„ReadDataFromProgramMemory“ 000100 – Daten aus dem Programmspeicher lesen
„ReadDataFromDataMemory“ 000101 – Daten aus Datenspeicher (EEPROM) lesen
„BeginProgrammingOnlyCycle“ 011000 – Programmierzyklus starten
„BulkEraseProgramMemory“ 001001 – Vollständiges Löschen des Programmspeichers
„BulkEraseDataMemory“ 001011 – Vollständiges Löschen des Datenspeichers (EEPROM)

Der Controller reagiert auf diese Befehle unterschiedlich. Auf unterschiedliche Weise müssen Sie nach Erteilung des Befehls das Gespräch mit ihm fortsetzen.
Um einen vollwertigen Programmiervorgang zu starten, müssen Sie außerdem eine Spannung von 12 Volt an den MCLR-Pin des Controllers anlegen und anschließend eine Versorgungsspannung daran anlegen. In dieser Reihenfolge der Spannungsversorgung liegt eine gewisse Bedeutung. Wenn der PIC nach dem Anlegen der Stromversorgung für den Betrieb mit dem internen RC-Oszillator konfiguriert ist, beginnt er möglicherweise mit der Ausführung seines eigenen Programms, was beim Programmieren nicht zulässig ist, da ein Ausfall unvermeidlich ist.
Durch die vorläufige Versorgung des MCLR mit 12 Volt können Sie eine solche Entwicklung vermeiden.
Beim Schreiben von Informationen in den Flash-Speicher von MK-Programmen nach dem Befehl

„LoadDataForProgramMemory“ 000010 – Daten werden in den Programmspeicher geladen

es ist notwendig, die Daten selbst an den Controller zu senden - 16 Bit,
die so aussehen:

„0xxxxxxxxxxxxxxx 0.“

Die Kreuze in diesem Wort sind die Daten selbst, und die Nullen an den Rändern werden als Rahmen gesendet – das ist der Standard für PIC 16. Es gibt nur 14 signifikante Bits in einem Wort. Diese Controller-Serie verfügt über einen 14-Bit-Befehl Darstellungsformat.
Nachdem die Übertragung des Datenworts abgeschlossen ist, wartet der PIC auf den nächsten Befehl.
Da unser Ziel darin besteht, ein Wort in den Programmspeicher des MK zu schreiben, sollte der nächste Befehl der Befehl sein

„BeginEraseProgrammingCycle“ 001000 – Beginnt einen Programmierzyklus

Nach Erhalt trennt sich der Controller für 6 Millisekunden von der Außenwelt, die er benötigt, um den Aufnahmevorgang abzuschließen.

Die Signale an den Pins des Mikrocontrollers werden von einem Computer mit speziellen Programmen – Programmierern – erzeugt. Zur Signalübertragung können COM-, LPT- oder USB-Ports genutzt werden. Programme wie PonyProg, IsProg, WinPic800 arbeiten mit dem JDM-Programmierer.


JDM-Programmierschaltung

In der Abbildung ist eine sehr einfache Programmierschaltung dargestellt. Obwohl diese Schaltung keine Steuerung der Spannungsversorgungssequenz implementiert, ist sie sehr einfach und es ist möglich, eine solche Schaltung sehr schnell und mit einem Minimum an Teilen zusammenzubauen.
Abbildung (JDM-Programmierschaltung)


Eine der Fragen beim Anschluss eines Programmiergeräts an einen Computer ist, wie eine selektive Isolierung gewährleistet werden kann. Um Schäden am COM-Port im Falle einer Störung im Stromkreis zu vermeiden. Einige Designs verwenden den MAX232 IC, der selektive Isolierung und Signalpegelanpassung bietet. Bei diesem Schema wird das Problem einfacher gelöst – durch die Verwendung von Batteriestrom. Der vom Computer kommende Signalpegel wird durch die Zenerdioden VD1, VD2 und VD3 begrenzt. Trotz der Einfachheit der JDM-Programmierschaltung kann sie zum Programmieren der meisten Arten von PIC-Mikrocontrollern verwendet werden.

Die Brücke zwischen den Pins COM6(DSR) und COM7(RTS) ist so konzipiert, dass das Programm erkennen kann, dass das Programmiergerät mit dem Computer verbunden ist.

Der Anschluss der Programmer-Ausgänge an einen bestimmten MK hängt vom MK-Typ ab. Oftmals sind auf der Programmierplatine mehrere Panels montiert, die für einen bestimmten Steuerungstyp ausgelegt sind.

Die Tabelle zeigt den Zweck der Beine einiger MK-Typen während der Programmierung.

Die MCUs PIC16F84 und PIC16F84A verfügen über die gleiche Anordnung von Pins, die für die Programmierung vorgesehen sind.



Die Belegung der Pins für Mikrocontroller der PIC16Fxxx-Serie ist je nach Gehäusetyp in den meisten Fällen Standard, bei Zweifeln ist es jedoch am zuverlässigsten, das Datenblatt für eine bestimmte Instanz des MK zu prüfen. Ein Teil der Dokumentation ist auf der russischen Website verfügbar http://microchip.ru Eine vollständige Sammlung von Datenblättern und anderen Dokumentationen finden Sie auf der Website des PIC-Mikrocontroller-Herstellers: http://microchip.com

Projektindex

Mit dem Programm können Sie direkt zur Indexseite gehen, mit wenigen Klicks die Beschreibung des gewünschten Projekts anzeigen und das Programm sofort in die Steuerung flashen.



Wenn Sie den Controller mit der ausgewählten Firmware flashen müssen, klicken Sie auf die SFR-Datei, zum Beispiel Timer_a.sfr
Das Programm lädt die Datei vom Server auf einen neuen Tab herunter.



Danach müssen Sie nur noch den MK in den Programmiersockel stecken, sofern dies noch nicht geschehen ist, und auf die Schaltfläche „Alle schreiben“ klicken.
Das Programm ist in MK aufgezeichnet. Anschließend wird der Controller auf die Geräteplatine gesteckt und das Gerät ist betriebsbereit.
Fortsetzung des Themas:
Lösungen

Die Registrierung bei VKontakte ist einfach, viele meiner Kollegen im fortgeschrittenen Alter halten es jedoch für schwierig. Ich zeige Ihnen, wie Sie sich jetzt kostenlos bei VKontakte registrieren können....