Entwicklungsboard mit PIC
von Denys Maiier
Dieser Artikel nimmt am Artikelwettbewerb 2012/2013 teil.
Vorwort
Dieses Kit dient als Lehrmittel für Studenten, Schüler und diejenigen, die Grundlagen und Funktionalität der Mikroprozessortechnik, am Beispiel des Microcontrollers der PIC18 Familie von der Firma Microchip, beherrschen möchten. Mit Hilfe der im Kit erhaltenen Modulen können folgende Programmieraufgaben gelöst werden:
• Ein- und Ausgabe über I/O Ports und Kontrolle der Ausgabe über 16 LED’s
• Externe Programmunterbrechung über 3 Interruptquellen(3 Buttons)
• Verbindung mit dem PC über UART
• Datenübertragung über IR
• Tonausgabe (Buzzer)
• Datenübertragung über SPI und I²C im Halb-Duplex-Mode
• Schrittmotorensteuerung
• Dynamische Tastatureingabe
• AD- Umwandlung
• Datenausgabe auf dem HD44780 Display
Projektinhalt
a. Mainboard b. SPI-Board c. I²C-Board d. Com-Board e. Hitachi LCD Board
Hardware
Projekt der Entwicklungsplatine basiert sich auf dem PIC 18F4520 Microcontroller und besteht aus dem Main-board und Peripherie-Modulen , die mit Hilfe der Kabelverbindungen mit Main-board verbunden werden.
Mainboard
Mainboard verfügt über 33 I/O Ports, die allerdings spezifisch benutzt werden können. Die PORTB I/O Pins können softwaremäßig an die innere Pull-Up Widerstände angeschlossen werden. Das MCU wird über Quarz/Keramik Oszillator taktversorgt.Die Kapazität der Kondensatoren liegt im Bereich 15-25pF und von den Quartzeigenschaften abhängig.Die empfohlene Größe steht üblicherweise im Datenblatt. Buzzer SG1 kann anhand dem Jumper JP2 an Port RE2 angeschlossen werden. Drei Tasten (INT1-INT3) zusammen mit Widerständen R69 bis R71 und R20 bis R23 ermöglichen die externe Programmunterbrechung. Mikrocontroller PIC18 verfügt über ICSP Modul und kann über ICSP Input direkt im Board programmiert werden. 16 separat gesteuerte LED sind über JP5 und JP10 an die Output-Pins von PIC18 anzuschließen.
PIC 18 verfügt über Master Synchronous Serial Port und kann im SPI oder I²C Modus arbeiten. Dieses Entwicklungsboard hat zwei Module womit die Grundlagen der seriellen Übertragung geübt werden können.
SPI-Interface Board
Wenn MSSP als SPI eingestellt ist, sollen die Pins RC3-RC5 des PIC18 entsprechend softwaremäßig eingestellt und mit ISP – Modul verbunden werden. Benötigt wird auch noch ein Port-Pin des MCU um den Chip Select Eingänge der MCP23S17 zu steuern. SPI Interface Modul – Platine ermöglicht separate Steuerung von zwei MCP23S17 Bausteinen, die allerdings mit dem gemeinsamen Chip Select Signal und unterschiedlichen HW-Adressen (000 und 111) als I/ O Serial – zu –Parallel Treiber funktionieren. IC2 ist mit 4 Binär zu Dezimal Wandler ausgestattet und wird zur Ausgabe der 16 Bit Daten benutzt. Die ersten 8 Bit vom IC3 können über JP15 mit zwei L293D Schritt-Motoren –Treiber beschaltet werden. Die Bits 9 bis 16 dienen als Inputs und können mit externer Tastatur 4x4 angeschlossen werden.
I²C Interface Board
Wenn MSSP im I²C Modus ist, wird die I²C Interface Platine benötigt. Entsprechende MCU Pins RC3 und RC4 sollen dann mit I2C-Input beschaltet werden. Über I²C Protokoll können folgende Peripherie-Bauteile angesteuert werden: Real Clock Modul, EEProm, ADU Umwander mit 4 über Potis beschalteten Analog- Eingängen, Serial-to-Parallel Wandler mit 8 LED , Serial-to-Parallel Wandler mit 4x4 Tastatur und ein Temperatursensor. Zugang zu den einzelnen Bauelementen erfolgt über verschiedene Adressen der Peripherie. Damit werden die Kollisionen vermieden.
HW-Adressen der I²C Peripherie
Comm-Modul
Peripherie- Com-Modul ermöglicht die Datenübertragung zwischen dem PC und MCU über eine UART Schnittstelle. Dafür müssen gewisse Änderungen im Software vorgenommen werden. Außerdem sollen die Port-Pins RC6 und RC7 mit den entsprechenden Kontakten der JP18 JP17 verbunden sein(Siehe Videobeispiel "Anschluß mit PC über USB").
LCD-Modul
Über die Pin-Heads JP8(JP6 oder JP7) und JP19 kann die parallele Steuerung des LCD-Moduls organisiert werden. In meinem Fall habe ich ein Display PVC200403P von PICVUE genommen. Das ist ein Hitachi HD44780 Standard- Display, und verfügt über 8–bit Daten-Bus + 3 Steuerung-Wires. Erlaubt ist auch die Datenübertragung über 4-bit Daten-Bus+3 Steuerung-Wires. D.h. benötigt werden mindestens 7 Adern des MCU + Stromversorgung. Im Beispiel 3 und 4 (Siehe Anhang "Videobeispiele"), habe ich mein Display mit insgesamt 8 Adern gesteuert(-,+ -Stromversorgung, E-Enable, RS-Register Select, 4-bit Datenbus). Alle anderen Eingänge wurden mit "-" verbunden. Diese Lösung spart Euch I/O, benötigt allerdings bisschen komplexere LCD-Initialisierung. Die im Datenblatt"PVC200403P" angegebene Zeitverzögerungen zwischen den Initialisierungsbefehlen habe ich mit Timer1 realisiert und damit die Abfrage des Busy-Flags gespart.
ICSP Programmierung
Ein ICSP I/O ermöglicht die interne Programmierung des Microcontrollers, Z.b. via PicKit2 oder PicKit3. In meinem Fall habe ich ein EEPRom Programmiergerät mit ZIF-Socket zu ICSP Adapter genommen(Siehe Anhang).
EEPROM_Programmer + ICSP Adapter
Leiterplatte
Schaltplandesign und Leiterplattenentwurf wurde im Eagle realisiert. Der Prototyp wurde auf der doppelseitigen Leiterplatte gefräst und bestückt. Das MCU wurde im Sockel befestigt. Hiermit können die weitere Erweiterungen und MCU-Wechsel ohne Löten durchgeführt werden. Der Spannungsregler wurde auf die Leiterplatte gelegt und übers Wärmeleitpad mit dem Lötzinn befestigt. Somit spielt die Plattenfläche auch die Rolle des Kühlkörpers.
Praktische Anwendung
Eine der möglichen Anwendungen der Entwicklungsplatine ist ein Real-Clock mit der Ausgabe auf dem LCD-Display (siehe Bild). Hiermit werden die Prinzipien der I2C-, Parallel Datenübertragung und der dynamischen Tastenabfrage geübt. In dem Fall benötigen wir ein HD44780 Modul, Mainboard- Modul und ein I2C Modul. Die 4x4 Tastatur wird direkt an PortB des MCU angeschlossen. Die ersten 4 Bits sind als Ausgange konfiguriert und die letzten 4 Bits dienen als Eingange mit den inneren Pull-Up Widerständen. Die parallele Datenübertragung zwischen dem MCU und LCD-Modul erfolgt über Port D und Port E des Microcontrollers. Die beiden Peripherie – Bausteine PCF8574 und PCF8583 benötigen serielle Datenübertragung im I²C Mode mit Taktfrequenz <100kHz. Damit es nicht zu Kollisionen führt, haben die beiden Bausteine verschiedene Adressen. Achten Sie auch darauf, dass alle Bausteine der I²C Peripherie eigene Protokollspezifik haben. Z.B.:
Fazit
Der Einstieg in die moderne Mikroprozessor- und Mikrocontroller-welt ist praktisch ohne Evaluations-Kits nicht möglich. An manchen Stellen ist die Simulationsprogramm ungenau, insbesondere ist sehr von der Prozessorbelastung abhängig,und lässt die äußere Einflüsse nicht simulieren.In dem Fall ist der Einsatz der Entwicklungsplatine unvermeidlich. Mehrere auf dem Markt vorgestellte Platten sind wegen ihren hohen Preisen nicht an einen durchschnittlichen Käufer(Studenten oder Schüler) gedacht und beziehen sich auf den konkreten Mikroprozessor, der nicht auszutauschen ist. In diesem Zusammenhang , bietet die angebotene Entwicklungsplatine die Universalität, kann leicht nachgebaut und erweitert werden. Der IC-Sockel ermöglicht den unkomplizierten MCU-Tausch, Upgrade oder Übergang zu dem MCU anderer Hersteller.
Kontakt
Nach Anfrage kann ich auch die Quellcode, sowie PCB-Design und Programmierbeispiele zur Verfügung stellen. Ihre Fragen bitte an : maiierok@t-online.de
Videobeispiele
Video "Anwendung Real-Time Clock" Simulation im Proteus
Video "Versuch #1 LED& Buzzer- Steuerung" LED&Buzzer TEST#1
Beispiel 3 "Liebeserklärung Mainboard + HD44780
Beispiel 4 "Anschluß mit PC über USB Mainboard+ Comm-Board+ HD44780
Link
- PIC18 Datasheet - Datei:Pic18f2420-2520-4420-4520.pdf
- A200_ua7805 - Datei:A200 ua7805.pdf
- PCF8583 - Datei:Clock and Calendar.pdf
- PCF8574 - Datei:PCF8574.pdf
- I²C_ Temperature Sensor - Datei:Thermo I²C.pdf
- Mcp23s17 SPI Expander - Datei:Mcp23s17.pdf
- HD44780 Display - Datasheet
- PIC18-Entwicklungsboard - StartPIC18