Entwicklerboard (Gastbeitrag)

Vorwort

Ich stelle euch hier mein Entwicklerboard vor, welches von mir entwickelt wurde. Die unbestückte Platine kann über mich bezogen werden. Dazu aber später mehr. Ich habe sie so
entwickelt das auch Anfänger damit gut zurechtkommen, die zum ersten Mal in die Programmierung des Mikrocontrollers einsteigen wollen. Programmiert wird hier von der Firma Microchip der PIC18F45K50. Es kann aber auch ein anderer Controller verwendet werden, solange er Pin-Kompatible ist. Die Programmiersprache in dem der PIC programmiert werden kann, ist jedem selbst überlassen. Ob in C, Basic, Pascal oder was es sonst noch für Sprachen gibt, kann jeder für sich selbst entscheiden. Die Programmiersprache ist weder vom Board noch vom Mikrocontroller abhängig. Ich selber programmiere in MIkroBasic Pro von der Firma MikroElektronika. Zu jeder Hardware, die auf dem Board ist, kann ich auch Beispiele für geben. Natürlich dann nur in der Sprache in der ich programmiere. Aber im Forum gibt es genug User die auch andere Sprachen können.

Einleitung

Hier mal alle Funktionen des Boards aufgelistet:

  • Mikrocontroller ist ein PIC 18F45K50. Takt ist 48MHz
  • alle Ports sind nach draußen geführt
  • programmiert wird über USB oder ICSP Schnittstelle
  • LCD-Anzeige 16×2 Zeichen
  • GLCD Anzeige 64×32 Pixel
  • Drehimpulsgeber
  • Strommessmodul INA 218
  • Temperatursensor DS18B20
  • Real Clock DS1307
  • 4x 7-Segmentanzeige
  • Poti für AD-Wandler
  • Funkuhr DCF-77
  • EEPROM 256K
  • Digital Poti MCP42010
  • 8 Taster zur Eingabe
  • 8 LEDs zur Ausgabe
  • 5V oder 3V Betrieb möglich durch Umschaltung
  • Erweiterungs Bus (dazu später mehr)
  • hinzu kommen noch die ganzen Funktionen, die der Mikrocontroller in sich hat (siehe dazu im Datenblatt nach)

Im Weiteren werden nun die einzelnen Komponenten auf dem Board beschrieben. Ich werde im Einzelnen auf die Hardware eingehen und deren Funktion beschreiben. Wer noch mehr über die einzelnen Komponenten wissen möchte, findet im Internet zu jedem IC ein Datenblatt, wo dann alles beschrieben ist, was der Mikrocontroller kann. Alle Bauteile, die auf dem Board sind, bekommt man alle bei Reichelt Elektronik. (außer das GLCD) In der Stückliste ist der Name angegeben unter welcher man das Bauteil bei Reichelt findet. In der Stückliste, sind am Ende, einige Bauteile in grün und rot gekennzeichnet. Die in grün gekennzeichnete Bauteile, kann man zu Hause haben. Wenn nicht dann mit bestellen. Die in rot
gekennzeichnete Bauteile sind für die Funktion des Boards nicht erforderlich. Man kann sie dazu bestellen. Da sollte jeder dann mal bei Reichelt schauen um was es sich handelt und dann entscheiden, ob man es auch haben will. Sonst einfach Rücksprache mit mir halten, wenn man es nicht genau weis ob man es kaufen soll.

Aufbau

Die Platine ist vollständig beschriftet. Es kann sein das aus Platzgründen, manche Bauteile keinen Wert haben. Dann kann man aber mit dem Bauteilnamen in der Stückliste den Wert bekommen. Die Elkos haben Plus, Minus und man muss auf die Einbaulage achten. Auf dem Board sind der Plus beschriftet. Auf den Elkos ist der Minuspol beschriftet. Den Quarz sollte man mit einem kleinen Abstand zur Platine auflöten. Es reicht schon, wenn man ein Stück Papier zwischen Quarz und Platine legt und nach dem Auflöten kann man dann das Papier wieder entfernen. Den 3,3V Spannungsregler, lötet man am besten in seiner ganzen Länge ein.

Also nicht ganz auf das Board den Regler drücken, sondern soweit in die Löscher führen das er gerade durchkommt. So kann man später den Kühlkörper leichter drauf montieren. Arbeitet man mit den 5V so braucht man keinen Kühlkörper.Braucht man die 3,3V so muss man drauf achten, dass der Regler nicht zu heiß wird. Wird er so heiß, dass man ihn nicht mehr anfassen kann, so ist zwingend ein Kühlkörper erforderlich. Bei dem Einbau der Dioden ist auchauf die Richtung zu achten. Eine Diode besitzt eine Anode und Kathode. Die Kathode ist auf der Diode immer mit einem weißen oder schwarzen Ring gekennzeichnet. Diese Kennzeichnung findet man auch auf dem Board wieder.

Die Widerstandsnetzwerke haben auf einer Seite einen Punkt, hier auf dem Bild links zu erkennen. Auf dem Board ist der erste Pin mit einem Rechteck umrandet. Der Anschlußpin mit dem Punkt ist der erste und kommt auf dem Board mit dem Rechteck gekennzeichneten Lötpunkt. Auf die Einbaulage der ICs muss man auch drauf achten. Auf den Bildern kann man erkennen, wie rum der IC Sockel eingebaut werden muss. Jeder IC Sockel hat auf einer Seite eine kleine Einkerbung. Diese sollte mit dem Bild auf der Platine übereinstimmen. Hat das Bild auf der Platine keine Einkerbung, so ist es mit einer eins beschriftet und dort muss die Einkerbung des IC Sockel hin. Unten auf den Bildern zu erkennen.

Die ICs können auch eine Einkerbung haben. Hier links zu sehen.

Es kann aber auch sein das sie einen Punkt in einer Ecke haben. Dreht man das IC nun so dass man die Aufschrift des ICs lesen kann, so befindet sich die Einkerbung oder der Punkt immer auf der linken Seite. Der erste Pin, der nun links unten ist, ist der 1. Pin. Nun werden die anderen Pins, gegen den Uhrzeigersinn durchnummeriert. Sollten noch Fragen zum Aufbau sein, so kann man jeder Zeit im Forum nachfragen.

Ich habe hier mal das Board so bestückt, wie ich meine es für Anfänger am einfachsten ist, in die Programmierung rein zu kommen. Sieht im Moment nicht viel aus, aber wenn man gerade mit der Programmierung anfängt, dann ist weniger mehr. Man wird nicht von Hardware erschlagen, man behält die Übersicht und je nach Wissenstand und können in der Programmierung kann man dann das Board, nach und nach mit weiterer Hardware bestücken. Ich habe deswegen mal 2 Bestückungslisten gemacht. Einmal fürdiese Bestückung und einmal die Vollbestückung. Wie man das Board aufbaut und benutzt, ist natürlich jedem Selbst überlassen.

Programmierung

Auf dem Board befindet sich ein PIC18F45K50 Mikrocontroller. Er hat einen 16MHz Quarz als externe Taktquelle. Um nun ein Programm auf den PC zu schreiben, benötigt man einen Compiler. Im Internet gibt es verschiedene Compiler, die entweder umsonst sind oder Geld kosten. Genauso gibt es verschiedene Programmiersprachen in der man programmieren kann. Als Programmiersprachen gibt es z.B. Basic, Pascal, C, Assembler usw. In welcher Sprache man den Mikrocontroller programmiert, ist eigentlich egal. Da schaut man sich als Anfänger am besten mal die verschiedenen Sprachen an und nimmt jene die einem am besten liegt. Da es verschiedene Compiler gibt, kann man auch nicht sagen, welcher gut ist und welcher nicht. Denn es hängt sehr davon ab wie man mit dem Compiler zurechtkommt. Der eine kommt mit diesem Compiler am besten zurecht der andere mit einem anderen Compiler besser zurecht. Da hilft eigentlich nur ausprobieren. Da die meisten Compiler nichts kosten oder eine Demo Version haben, kann man sich diese Versionen runterladen und es selbst ausprobieren, wie gut man damit zurechtkommt.

Als Compiler gibt es einmal den XC8 (mit MPLABX IDE) von Microchip. Dann noch den Great Cow Basic. Und als drittes Beispiel noch die Compiler von Mikroelektonika. Das sind nicht alle, es gibt da noch weitere, aber man kann nicht alle aufzählen und alle kenne ich auch nicht.Wenn man nun seinen Compiler und seine Programmiersprache gefunden hat, muss das Programm, vom PC noch auf den Mikrocontroller übertragen werden. Das Board bietet dafür 2 Möglichkeiten an, um das geschriebene Programm auf den Controller zu übertragen.
Die erste Möglichkeit wäre, die Programmierung über die ICSP Schnittstelle.

An dieser Schnittstelle kann man ein Programmiergerät oder auch Brenner genannt, anschließen. Es wird zusätzlich Hardware benötigt. Die Schnittstelle ist genormt auf ein PICKIT3 oder PICKIT4. Es können auch andere Programmiergeräte angeschlossen werden, dann muss man nur die Belegung der ICSP Schnittstelle mit Kabelbrücken ändern. Das PICKIT wird über USB an den Rechner angeschlossen. Nun kann der Brenner das Programm auf den Controller übertragen. Das Programm bleibt nun solange im Controller, bis ein neues Programm in den Controller gebrannt wird. Auch ohne Spannung am Controller, bleibt das Programm in ihm erhalten. Nach wieder anlegen der Spannung an den Controller, fängt das
Programm im Controller wieder von vorne an zu laufen. Die zweite Möglichkeit wäre, die Programmierung über die USB-Schnittstelle.

Hierbei wird keine weitere Hardware benötigt. Man verbindet über diese Buchse das Board mit dem PC. Dafür benötigt man so ein Kabel.

Viele Drucker besitzen ebenfalls so ein Kabel. Daher kann man auch das Kabel vom Drucker nehmen. Ist die Verbindung mit dem PC hergestellt, so leuchtet die orange Led auf. Um nun sein selbst geschriebenes Programm, in den Mikrocontroller zu bekommen, braucht der Mikrocontroller einen Bootloader. Ein Bootloader ist ein kleines Programm welches die Kommunikation und die Übertragung des eigenen Programms, übernimmt. Der Bootloader legt sich ans Ende des Speichers, vom Mikrocontroller und kann nicht von dem selbstgeschriebenen Programm überschrieben werden. Um den Bootloader in den Controller zu bekommen, braucht man einen Brenner. Hat man einen Brenner braucht man keinen Bootloader mehr, denn dann kann man den Controller direkt programmieren, über die ICSP Schnittstelle. Wer sich am Anfang noch keinen Brenner kaufen will, kann mich gerne anschreiben und ich brenne den dann in den Controller und schick ihn dann zu oder einfach im Forum nachfragen ob es jemand machen kann. Da findet man immer Leute die sowas gerne machen. Mit dieser Anleitung wird auch das Programm, dass der Bootloader ist, mitgeliefert. Wenn nun der Bootloader auf dem Mikrocontroller ist, so kann man dann ohne weitere Hardware den Controller beschreiben. Dazu ist folgendes zu machen. Jeder Compiler erzeugt beim Kompilieren, ein xx.HEX File. Dieses File kann man mit diesem Programm in den Mikrocontroller laden. Es heißt Mikrobootloader.

Der Bootloader startet immer, wenn ein Reset ausgelöst wird, oder wenn der Controller, Spannung bekommt. Dabei wartet er 5 Sekunden ob ein Connect von dem Programm Mikrobootloader kommt. Einfach innerhalb von 5 Sekunden auf den Botton Connect drücken und man ist mit dem Controller verbunden. Dann einfach noch das File (.hex) aussuchen und auf Uploaden gehen und schon ist es im Controller vorhanden. Das Programm Mikrobootloader hat selbst auch nochmal eine Anleitung drin. Es hört sich komplizierter an, als es ist. Wie gesagt, das Programm Mikrobootloader und das Programm für den Bootloader, wird mit dieser Anleitung, mitgeliefert. Im Compiler, den man benutzt, muss man die CPU-Clock auf 48MHz stellen, denn damit läuft der Controller. Programmiert man später über die ICSP Schnittstelle, so wird der Bootloader gelöscht. Will man den Bootloader wieder benutzen, so muss er neu auf den Controller aufgespielt werden.

Stromversorgung

Das Board braucht eine Spannung von 5V und 3,3V. Aus den 5V Spannung werden auf dem Board auch die 3,3V Spannung erzeugt. Alle Komponenten auf dem Board laufen mit 5V. Sollte weitere Hardware an das Board angeschlossen werden, so ist drauf zu achten ob diese Hardware mit 5V oder 3,3V läuft.

Mit dem Jumper K3 wird zwischen 3V und 5V gewechselt. Es gibt zwei Möglichkeiten das Board mit Spannung zu versorgen.

Einmal über die USB-Buchse und einmal über die Klemme links neben der USB-Buchse. Versorgt man das Board über den USB-Anschluss so reicht ein normales Handy Ladegerät. Es sollte aber einen Strom abgeben von mindestens 1A Strom oder mehr.

Ihr benötigt für die Verbindung vom Netzteil zum Board, das oben abgebildete Kabel. Ist aber auch in der Stückliste enthalten. Wollt ihr das Board über die Klemme, neben der USB-Buchse versorgen, so ist drauf zu achten, dass die Spannung höchstens 5V sein darf. Damit das Board vor zu hoher Spannung geschützt ist, besitzt es eine Schutzschaltung.

Die drei roten LEDs signalisieren einen Fehler mit der Spannungsversorgung. Es darf keine der drei LEDs leuchten. Wenn das der Fall ist, dann sofort die Spannung ausschalten und auf Korrektheit überprüfen. Dabei signalisiert die untere LED, dass eine Spannung größer 5V anliegt. Das Board lässt sich dann auch nicht einschalten. Die mittlere LED signalisiert das eine Überlast aufgetreten ist. Das bedeutet das die Thermosicherung ausgelöst hat. Die Sicherung hat 500mA, braucht das Board mehr so erhitzt sie sich und unterbricht so die Spannung zum Board. Das Auslösen kann mehrere Sekunden dauern. Ist die Überlast behoben, so ist die Sicherung wieder einsatzfähig und man braucht sie nicht zu wechseln. Man hätte auch eine Glassicherung nehmen können, nur ist diese dann defekt und muss gewechselt werden. Wenn man das Board mit einem Netzteil betreibt, so sind diese meistens gegen Kurzschluss oder Überlast geschützt. Daher reicht hier die Thermosicherung (Polyfuse genannt). Die obere LED zeigt an, wenn man Plus, Minus, vertauscht. Die Spannung wird dabei über eine Diode, direkt kurzgeschlossen. So wird verhindert, dass die falsche Spannung nicht weiter auf das Board gelangt und schützt so die Hardware. Schließt man an die Klemme eine Spannung an, so sollte man zuerst einmal den Schalter auf Aus lassen. Leuchtet nach ein paar Sekunden keine rote LED, dann scheint mit der Spannung alles ok zu sein und man kann den Schalter auf An stellen und so das Board mit Spannung versorgen. Und hier der Schaltplan zu der Schutzschaltung:

Ein- und Ausgabe

Der Mikrocontroller besitzt mehrere Ein und Ausgänge, diese werden PORTS genannt. Dieser Controller besitzt die Ports A, Ports B, Ports C, Ports D und Ports E. Jeder Port ist nochmal unterteilt von 0-7. Nicht jeder Controller hat Ports von 0-7. Das kann unterschiedlich sein. Genauso die Anzahl der Ports kann unterschiedlich sein.

Alle Ports, die der Controller hat, sind auf eine zweireihige Stiftleiste heraus geführt. An der Beschriftung sieht man welche Ports und welche Nummer, wo hingeführt wurde. Einige Portnummern sind nicht herausgeführt. Das liegt daran das diese Ports für interne Zwecke, verwendet werden. Diese können dann auch nicht benutzt werden. Es ist darauf zu achten, dass an diesen Stiftleisten, eine maximale Spannung von 5V nicht überschritten wird. Ansonsten würde der Mikrocontroller Schaden nehmen. An den Stiftleisten kann man diese Kabel anschließen. Man nennt sie, flexible Drahtbrücken.

Hiermit bekommt man eine Verbindung vom Controller zu seinem Steckboard, wo dann weitere Schaltungen aufgebaut werden können.

Hier der Schaltplan.

LED und Taster

Das Board besitzt insgesamt 8 Leds und 8 Taster. Diese können einzeln angesteuert werden. Die Taster und Leds sind am Port RD0 bis RD7 angeschlossen. Mit dem Dip-Schalter 3, werden die Leds mit Strom versorgt. Die Taster sind immer abfragbar und brauchen keine Einstellung auf dem Board. Da das LCD Modul auch an PortD hängt, sind bei Benutzung des LCDs die Tasten RD0 bis RD5 nicht zu benutzen. RD6 und RD7 können weiter benutzt werden.

Hier der Schaltplan.

LCD Modul

 

Das LCD kann 2×16 Zeichen darstellen. Es besitzt einen festen Zeichensatz, den man benutzen kann. Hier findet man weitere Informationen von dem LCD. An dem LCD wird eine Stiftleiste und auf dem Board eine Buchsen Leiste angelötet.

Beides findet man in der Stückliste. Mit Hilfe des Potis R7 kann man den Kontrast des Displays einstellen.

Die Beleuchtung des LCDs wird über den 10 poligen Dip-Schalter eingeschaltet.

Der erste Schalter ist für das Display, ein zu schalten. Über die Ports RD0-RD5 wird das Display mit dem Controller verbunden. Dabei sind RD0 bis RD3 die Datenleitungen und RD4 und RD5 die Steuerleitungen. Und zum Schluss noch der Schaltplan für das Display.

 

 

OLED Modul

Hierbei handelt es sich um ein 0,91 Zoll Grafikdisplay. Mit einer Auflösung von 128×32 Pixel. Im Gegensatz zum LCD, besitzt dieses Display keinen festen Zeichensatz. Aus einzelnem Pixel muss man sich jedes Zeichen selbst machen. Angesteuert wird das Display über den I2C Bus des Controllers. Um das Display ein zu schalten, sind folgende Dip-Schalter einzuschalten.

Es sind die Schalter 4,5 und 6, ein zu schalten. Dieses Modul ist nicht über Reichelt zu beziehen. Man kann es über Ebay beziehen. In das Suchfeld einfach 0.91"128x32 eingeben. Oder in Google dies eingeben. Dort findet man einige Händler, die es anbieten. Es muss nur darauf geachtet werden, dass das OLED Modul über I2C Bus an zu steuern ist. Wie beim LCD wird auch hier dieselbe Stiftleiste und Buchsen leiste verwendet.

Und hier der Schaltplan.

7-Segmentanzeige

Auf dem Board befindet sich eine 4×7 Segment Anzeige. Die Beleuchtung ist hier grün. Es kann aber auch eine andere Farbe eingebaut werden. Es muss nur die Baugröße gleich sein. Die Anzeige läuft im Multiplex Betrieb, d.h. die erste Anzeige wird eingeschaltet und die Zahl wird dargestellt. Nun wird die erste Anzeige wieder ausgeschaltet und die zweite Anzeige eingeschaltet und die Zahl dargestellt. Macht man dies sehr schnell das ein und ausschalten, so sieht es aus, als seien alle Anzeigen immer an.

Die 4×7 Segment Anzeige wird auf zwei 20 polige Buchsen Leisten gesteckt. So kann man sie jeder Zeit auswechseln und gegen eine andere Anzeigenfarbe ändern. Die Buchsen Leiste ist nicht dieselbe, wie sie bei dem LCD benutzt wurde. Um die Buchsen Leiste möglichst gerade auf die Platine zu löten, denn sonst passt die Anzeige nicht auf die Buchsen Leiste, sollte man die Anzeige Segmente, zuerst auf die Buchsen Leiste aufstecken und dann auf die Platine stecken, um sie zu verlöten. So bekommt man sie am einfachsten, gerade auf die Platine.

Eingeschaltet werden die 4 Anzeigen über den Dip-Schalter wie oben zu sehen. Jedes Display verfügt über 7 Segmenten und den Punkt. Diese werden über den PortD vom Controller angesteuert. Um die 4 Anzeigen, ein und aus zu schalten, werden die Ports A0 bis A3 verwendet.

Und hier der Schaltplan:

Echtzeituhr

Der DS1307 ist eine Echtzeituhr. Das heißt dass das IC Uhrzeit und Datum ausgeben kann. Mit Hilfe der Batterie, bleiben auch bei Stromausfall, Datum und Uhrzeit erhalten. Da der DS 1307 nur sehr wenig Strom verbraucht, hält die Batterie über mehrere Jahre lang. Ausgelesen und programmiert wird der DS1307 über I2C Bus.

Eingeschaltet wird der DS1307 über die Dip-Schalter 7 und 8.

Hier der Schaltplan dazu:

Temperatursensor

Hierbei handelt es sich um einen DS18B20 Temperatur Sensor von Dallas. Er hat eine Auflösung von 0,1 Grad Celsius. Aus der Familie gibt es noch den DS1820, DS18S20 und DS1822. Diese haben jeweils eine andere Auflösung. Auf dem Board kann jeder dieser Typen eingesetzt werden. Es ist darauf zu achten, dass der Sensor wie auf dem Bild zu sehen ist, eingesetzt wird. Mit dem Jumper wird der Sensor in Betrieb genommen und mit dem Port RA5 des Controllers verbunden. Das Protokoll des Sensors, mit dem er ausgelesen wird, nennt sich 1-Wire.

Hier der Schaltplan:

AD-Wandler

AD Wandler ist die Abkürzung für Analog zu digital Wandler. Mit Hilfe des AD Wandlers, werden analoge Spannungen, hier 0-5V in digitale Werte gewandelt. Der Controller hat einen 10bit Wandler. Das heißt dass die 5V Spannung in 2 10 = 1024 Werte zerlegt wird.

Beispiel:

Bekommt der AD Wandler eine Spannung von 5V, so ist sein digital Wert 1023. Warum nicht 1024? Weil der Wandler Werte von 0 bis 1023 darstellen kann. 0 bis 1023 Werte entspricht insgesamt 1024 Werte, da die Null mitgezählt wird. Eine Spannung von 2,5V entspricht einem digital Wert von 512 und 0V hat einen Wert von 0. Weitere Infos findet man hier. Eingeschaltet wird der Wandler mit dem Jumper. Die Spannung wird dann an den Port RA0 geleitet. Es ist darauf zu achten das die Spannung an den Ports nicht höher wie 5V sein darf. Das Poti ist zwischen 5V und 0V geschaltet und an seinem Mittelabgriff wird die Spannung an RA0 geleitet. Dadurch wird ein Spannungsteiler aufgebaut und es kann eine Spannung zwischen 0V und 5V eingestellt werden. Diese Spannung wird dann durch den AD Wandler in digital Werte umgesetzt. 0-1023 = 10Bit

Hier der Schaltplan:

Stromsensor

Bei dem Stromsensor handelt es sich um einen INA219. Man kann ihn als fertige Platine kaufen. Maximal können damit 3,2A gemessen werden, bei einer maximalen Spannung von 26V. Über die grüne Klemme, wird ein Verbraucher in Reihe geschaltet. Über einen Shunt, das ist ein ganz kleiner Widerstand, hier 0,1 Ohm, wird die Spannung gemessen und in einen Stromwert umgerechnet, der dann über die I2C Schnittstelle zum Controller geschickt wird. Mit den 2 Jumpern wird das Modul mit dem Controller verbunden. Hier noch drei Links die das Modul ganz gut erklären [1] [2] [3].

Das Modul wird mit einer Stiftleiste geliefert. Man kann aber auch die Stiftleiste nehmen die für das GLCD verwendet wurde.

Hier der Schaltplan:

 

Funkuhr DCF-77

Mit diesem Modul kann man die genaue Uhrzeit und Datum empfangen. Auf einer Frequenz von 77,5KHz, werden die Signale gesendet. Der Sender steht in Mainfingen bei Frankfurt am Main. Er hat eine Reichweite von ca. 2000 KM. Damit ist er in Deutschland überall zu empfangen. Empfängt das Modul kein Signal, so liegt das meistens an der Umgebung wo das Modul betrieben wird. Starke Störquellen sind, LED-Lampen, Schaltnetzteile, dicke Beton Wände, unsaubere Betriebsspannung usw. Wie man sieht gibt es viele Ursachen dass der Empfang gestört sein kann. Da hilft nur das Modul an einer anderen Stelle im Raum zu betreiben. Manchmal hilft es auch, wenn man die Antenne was dreht. Insgesamt werden in 1 Minute, 59 Bits gesendet. Darin enthalten sind die Uhrzeit und das Datum. Nach einer Minute wird wieder von vorne empfangen. Weitere Informationen gibt es hier.

Hier die Unterseite des Moduls mit der Stiftleiste. Eingeschaltet wird es über die beiden Jumper oberhalb des Moduls. Dabei wird der Port RC0 und RC1 benutzt. Bei der Programmierung ist darauf zu achten das mit RC1 das Modul eingeschaltet wird und an RC0 die Nutzdaten bereitstehen. Hier das Datenblatt dazu.

Hier der Schaltplan:

EEPROM

Dieses EEPROM hat eine Speicherkapazität von 256 KB. Es behält die Daten auch, wenn es keine Spannung mehr bekommt. Sie bleiben also erhalten. Das EEPROM hat nur eine bestimmte Anzahl von Schreibzyklen auf seinen Speicher. Man sagt es kann bis zu 1 Million Mal beschrieben werden. Danach kann man es nicht mehr beschreiben. Deshalb sollte man den Speicher nicht ständig beschreiben.

Die Dip-Schalter 9 und 10 sind für das Einschalten des EEPROM. Angesteuert wird es über den I2C Bus. Hier das Datenblatt dazu.

Und hier der Schaltplan:

Digital Poti

Das IC besteht aus zwei 10K Ohm Potis. Wie bei einem analogen Poti besteht es auch aus 3 Abgriffe. L1 für links, M1 für den mittel Abgriff und R1 für den rechten Abgriff. Die Ausgänge sind auf die Stiftleiste K12 herausgeführt. Über die drei Jumper wird das Poti eingeschaltet und mit dem Controller verbunden. Die Daten werden über den SPI Bus übertragen. Die 10K Ohm des Potis, können über den Controller eingestellt werden. Dabei sind 256 Schritte möglich. Das heißt die 10K Ohm werden in 256 Schritte geteilt. Im Gegensatz zu einem analogen Poti, ist hier nicht jeder Widerstandswert, einstellbar. Wenn man die 10K Ohm durch die 256 teilt, so hat man pro Schritt einen Widerstandswert von ca. 39 Ohm. 39 Ohm mal 256 ergeben 10K Ohm. Es gibt auch digital Potis die mehr Schritte haben und so kann man mehr Widerstandswerte einstellen. Man muss darauf achten, dass der maximale Strom über das Poti, nicht über 1mA geht. Die Spannung beträgt hier 5V. Mehr dazu im Datenblatt.

Hier der Schaltplan:

Hier mal eine Schaltung mit dem Poti. Hier kann man die Spannung regeln.

Drehimpulsgeber

Der Drehimpulsgeber sieht aus wie ein Poti. Jedoch lässt er sich unendlich drehen und gibt keinen Widerstandswert aus, sondern hat einzelne Rasterungen wo dann 2 Schalter an und aus geschaltet werden. Diese Impulse von an und aus, werden dann mit dem Controller ausgewertet und man kann so eine einfache Menüsteuerung realisieren. Es gibt sie auch mit mehr Rasterpunkte oder weniger Rasterpunkte. Dieser Drehimpulsgeber hat noch einen Taster eingebaut. Wenn man auf die Achse drückt, wird ein Taster geschlossen. Hier eine Ausführlichere Dokumentation des Drehimpulsgebers.

Eingeschaltet wird er über den Dip-Schalter 2. Ausgewertet wird der Drehgeber über den Port B5 und B6. Der Taster ist an Port B7.

Hier der Schaltplan:

Erweiterungsbus

Mit dieser Schnittstelle kann das Board um verschiedene Hardware erweitert werden. Die Schnittstelle ist ein Standard der Firma Mikroelektronika. Sie bietet auch eine Menge an Module an, die mit der Schnittstelle laufen. Hier der Link zu den einzelnen Modulen. Es kann sein das die Software für die einzelnen Module, angepasst werden muss.

Hier der Schaltplan:

Schaltplan

Hier der Bereich um den PIC:

Bezugsquelle der Platine

Die unbestückte Platine kann bei mir gekauft werden. Sie kostet 6,50 € plus Versandkosten. Sie wird in einem gepolsterten Umschlag mit DHL verschickt. Möchte jemand den Bootloader direkt auf den Mikrocontroller haben, so kann ich ihn für euch auf den Controller Programmieren und ich schicke euch den Controller zu. Berechnet wird dann nur der Preis was der Controller aufgerundet kostet. Oder ihr schickt mir den Controller zu und ich programmiere ihn für euch. Oder im Forum nachfragen ob es einer übernehmen kann. Wenn einer es sich nicht zutraut das Board selbst zu löten, so fragt bei mir nach ob ich es mache. Es ist viel Arbeit es komplett zu löten und ich habe nicht immer die Zeit, sowas zu machen. Aber nachfragen kostet nichts. Zu erreichen bin ich hier im Forum unter dem Username Peter. Überweisen kann man das Geld über PayPal oder Bank-Überweisung.

Download

Im ZIP File (ca. 5MB) findet ihr die gesamte Dokumentation (diesen Artikel) noch einmal als PDF Format. Darüber hinaus ist eine vollständige Stückliste, sowie Software und und den bereits vorkompilierten Bootlader.

Links

Dein Gastbeitrag

Würdest du auch gerne einen Gastbeitrag auf meinem Blog veröffentlichen? Schreib mir gerne ein Nachricht  mit kurzer Beschreibung des Themas. Wenn der Beitrag einen thematischen Bezug zum Blog hat, freue ich mich schon auf deinen vorbereiteten Beitrag inkl. Fotos, ggf. Schaltplan und Quelltext.

Add a Comment

Your email address will not be published. Required fields are marked *