Motorüberwachung, Spritcomputer etc. mit Mikroprozessor  (wie alles begann) 




Achtung!

Das auf dieser Seite beschriebene ist mittlerweile überholt und dient nur noch als Beschreibung des "Werdegangs" der Schaltung.
Mittlerweile ist statt dem AVR Net-IO eine eigens entwickelte Leiterplatte im Europaformat im Einsatz. Dadurch hat sich der Verdrahtungsaufwand minimiert.
Eine gute Beschreibung eines Anwenders findet sich unter:  Boote-Forum


Hier gehts zur neuen Beschreibung.

Hinweise:

Ich veröffentliche hier in Form eines Blogs mein neues Projekt "Mikroprozessor an Bord". Wenn das Projekt dann abgeschlossen ist, werde ich an dieser Stelle eine entsprechende, zusammengefasste Beschreibung veröffentlichen. Diese Beschreibung dient mir selbst als Dokumentation, soll aber auch anderen für ähnliche Projekte eine Hilfestellung geben. ABER! Wie immer der Nachbau erfolgt auf eigene Gefahr, ich übernehme keinerlei Gewähr für die ordnungsgemäße Funktion und eventuell rechtliche Folgen für den Nachbauer.
Über eventuelle Kommentare, Fragen etc. zum Thema freue ich mich (Mailadresse siehe Startseite). Bitte aber um Verständnis, wenn ich Anfragen erst nach einigen Tagen beantworte. Ich arbeite beruflich täglich 8-10 Stunden mit dem PC und habe deshalb abends meist keine Lust mehr meine eigene Kiste an zuwerfen und verschiebe dies deshalb meist auf das Wochenende.
Links werde ich - wie immer - kaum angeben, ich habe einfach keine Lust mich eventuell für fremde Inhalte verantwortlich machen zu lassen. Aber Tante G.. findet die angegebenen Bezeichnungen etc. auf jeden Fall.

15.10.2009

Warum ein Mikroprozessor?

Nach den bisherigen, eigentlich guten Erfahrungen mit dem PC an Bord, möchte ich die Funktionalität weiter verbessern.
Der PC hat sich zwar grundsätzlich als geeignet erwiesen (im Auto möchte ich meinen Car-PC nicht mehr missen), aber es gibt leider auch einige Mankos.
So nützt der beste PC und auch das beste Überwachungsprogramm nichts, wenn der PC nicht läuft oder wie bereits einmal (aber nur ein einziges Mal) geschehen sich mit einem Bluescreen verabschiedet.
Der PC braucht einiges an Strom, auch die eigentlich geringen 3-4A saugen über Nacht die Batterie leer.
Und es sind einige Klimmzüge nötig um über den Startvorgang (Spannungseinbruch) zu kommen, ohne dass der Rechner abschmiert.
Trotz Ruhezustand braucht der PC einige Zeit um betriebsbereit zu sein. Auch das Display ist nicht gerade “sonnenlicht-tauglich” und zudem schwer vor Spritzwasser zu schützen.

Was plane ich deshalb?
-Unveränderte Datenerfassung mittels 1-wire Komponenten
-Meßwerterfassung über ATMega
-Grenzwerterfassung und Alarmierung über ATMega
-Weiterleitung der Messdaten an einen PC über serielle Schnittstelle
-Funktionen:
-Temperaturüberwachung
-Drehzahlmessung Motor
-Spritverbrauch Motor
-Geschwindigkeit (über GPS) und Log (eventuell auf SD-Karte)
-sämtliche denkbaren Spritcomputerfunktionen (u.a. aktueller Spritverbrauch, l/100km, l/h, Restmenge, voraussichtliche Reichweite..)
-Batteriemonitoring (Spannung, Strom, Batterieladezustand etc.)
-Alarmanlage (eventuell mit Alarmierung über Handy)
-Ausgänge (Relais, LED, Hupe)
-Display: graphisches, transflektives Display 2,1″

Hab ich was vergessen? Dürfte kein Problem sein, die Software ist geduldig..


Hier das entsprechende Schema:
Schema 



22.10.2009

AVR-NET-IO

Nachdem das Thema Mikroprozessor für mich neu ist brauche ich erst mal eine “Probier-Plattform” im Fachjargon auch Evaluation Bord genannt. Da bin ich den AVR-Net-IO von der Fa. Pollin gestoßen. Das ist zwar nicht direkt ein Evaluationboard aber sehr günstig, hat genügend Ein-/Ausgänge und sogar eine Netzwerkschnittstelle. Diese brauche ich zwar bei meinem Vorhaben nicht, aber mal sehen wozu diese noch gut ist.

Deshalb habe ich mir mal zwei Bausätze bestellt, welche auch schnell geliefert wurden.
Dass die Qualität, sprich Vollständigkeit der Bausätze, nicht besonders gut ist, hatte ich schon im Internet gelesen, war also vorbereitet.
Es hat dann auch so einiges gefehlt:
-Die ATMega32 waren völlig unprogrammiert
-2 Reihenklemmen haben gefehlt
-1x 24-polige Steckerleiste hat gefehlt
-1x 100nF und 2x 10nF Kondensatoren haben gefehlt
-1x 7805 hat gefehlt
Das meiste hat beim zweiten Bausatz gefehlt, als ich das merkte hatte ich die fehlende Programmierung der ATMegas bereits reklamiert und bereits einen neuen erhalten.
Die noch fehlenden Teile hat größtenteils meine Bastelkiste hergegeben, deshalb konnte ich die beiden Boards auch so in Betrieb nehmen.

Mit einem der Bausätze werde ich die geplante Funktionen entwickeln, den zweiten werde ich für die Simulation der Zähleingänge (Drehzahlmesser und Durchflussgeber) verwenden.



30.10.2009

BASCOM

Da ich schon über zwanzig Jahre in Basic programmiere bietet es sich an dies auch beim Mikroprozessor zu tun. Ich bin dabei auf Bascom AVR gestoßen und war echt erstaunt was damit alles möglich ist.


02.11.2009

Erste Erfolge..

Die Abfrage von 1-wire Sensoren hab ich als erstes in Angriff genommen und siehe da, es läuft schon..

AVR-NET-IO mit 1-wire

Links sieht man das AVR-NET-IO in der Mitte eine selbst gebaute Erweiterungsplatine, auf welcher die Anschlüsse für ein Display, ein Relais, zwei DS18B20, ein DS2405 und ein DS2413 vorhanden sind.  Das Relais ist über einen Transistor mit dem Mikroprozessor verbunden und steuert einen Summer (Warnton für Übertemperatur), der DS2413 steuert zwei LEDs an (rot und grün). Die Platine ganz rechts enthält die Beschaltung eines DS2423. Dieser 32-Bit Zähler dient später zur Ermittlung von Drehzahl und Spritverbrauch.

Display

Links auf dem Display wird die 1-wire ID ausgegeben, rechts daneben dann die Zählerstände bzw. die Temperatur.
Als Display wird ein WINTEK WD-C2704M-1HNN mit 4x 20 Zeichen verwendet. Dieses Display verwende ich aber nur für den Prototyp. Für das Display der endgültigen Version habe ich was besseres gefunden..


07.11.2009

Das Display ist angekommen..

Display

Für das Display werde ich ein  2.1" TFT-Minimodul mit Mikrocontroller ATMega 128 verwenden. Dieses ist bei Display3000 unter der Bezeichnung D072 erhältlich. Ich habe es mit 14,7456MHz, einem Uhrenquarz, steuerbarer Displaybeleuchtung und Abschaltoption bestellt. Eine 5V KFZ-Spannungsversorgung und eine Echtzeituhr vervollständigt das System. Um mir bei der Entwicklung leichter zu tun habe ich zudem die große Entwicklungsplatine gekauft.
Hinweis: Das Display und die Mikroprozessorplatine wie sie später in einem geeigneten, wasserdichten Gehäuse ins Boot kommt ist im Bild auf der linken Seite zu sehen  und nur unwesentlich größer als als Display selbst.
Vorerst werde ich aber mit dem NET-IO weitermachen, da ist nicht so viel kaputt, wenn mal was schief geht.



08.11.2009

Der Simulator steht...

Simulator

Links sieht man die beiden AVR-NET-IO. Der untere der beiden simuliert mittels Rechtecksignal die Drehzahl und den Spritdurchfluss.
Hierzu kann die Frequenz der beiden Signale mittels Drehpoti eingestellt werden.


Bis jetzt bin ich begeistert wie easy die Mikroprozessor Programmierung ist. Als nächstes werde ich mich an die Programmierung eines Konfigurationsdialoges machen. Wobei ich hier zweigeteilt vorgehen werde. Der MC wird die Daten (IDs) der angeschlossenen 1-wire Sensoren an den PC übermitteln (über serielle Schnittstelle). Auf dem PC wird dann die Zuordnung der Sensoren und die Festlegung der Maximalwerte erfolgen, welche im Anschluss wieder an den MC gesendet und von diesem im EEPROM gespeichert wird.


13.11.2009

Nun läuft auch die RTC (Uhr). Leider erst nach stundenlanger Fehlersuche. Und was war's: Das Verbindungskabel von der Uhrenplatine zum MC hatte nur 9 Pole statt 10. Erst als ich anfing das Kabel durch zumessen ist mir aufgefallen, dass Pin 10 des 10-poligen Steckers keine Verbindung hatte. Beim Nachzählen dann die Erkenntnis "Mist das Flachbandkabel aus der Krustelkiste hat nur 9 Adern. Der Mist hat mich bestimmt zwei Stunden Suche gekostet...

14.11.2009
Meinen alten Etrex hab ich über eine entsprechende Wandlerplatine mit MAX232 an den MC angeschlossen. Nun folgt die Programmierung der GPS-Datenerfassung..
17:00:
Die Datenerfassung vom GPS steht. Das Einlesen der Geschwindigkeit, der Position und der UTC-Zeit läuft. Die RTC stelle ich jetzt beim ersten Lesen auf die UTC-Zeit. Muss nur noch sehen, welche der vielen NMEA-Datensätze ich verwende. Offen ist auch noch, ob ich die gefahrene Strecke aus der Geschwindigkeit bestimme oder aus der Strecke zwischen den einzelnen Positionen errechne. Ersteres wäre einfacher zu rechnen, zweiteres eventuell genauer.
Werde wohl irgendwann einen Test mit dem Auto durchführen müssen...

November 2010
Nun ist einige Zeit vergangen. So ganz untätig war ich dabei nicht.
Die Verbindung zwischen PC und MC steht. D.h. ich kann die einzelnen Sensoren incl. untere und obere Warn- und Fehlergrenze mittels Windows-Programm konfigurieren. Auch Werte wie Tankvolumen etc. werden auf diese Art und Weise übertragen.

Auch läuft im Boote-Forum ein Projekt zur Einbindung "meines" Mikroprozessors in den von einem Forumsmitglied entwickelten GPSMonitor um diesen auf diese Weise mit Sensordaten (1-wire, Spannungen, Spritdurchfluss etc) zu versorgen.  (Thread-ID 1996907 und 1996907).

Im Rahmen dieses Projekts werde ich das Hauptaugenmerk auf die Verwendung des Net-IO-Boards legen. Mein eigenes Vorhaben mit dem Display 3000 ATMega128 stelle ich deswegen noch etwas zurück.

Im weiteren nun die genaue Beschreibung, wie ich die einzelnen Komponenten zusammengefügt habe.
Das kann jeder gerne für seine eigenen Zwecke nachbauen. Aber, wie gesagt, ohne jegliche Gewähr von meiner Seite.

Hier mal die Stückliste der eingesetzten Bauteile.  Diese Liste werde ich im Verlauf des Projektes noch ergänzen, so dass sie erst nach Abschluss vollständig sein wird.

Stückliste (Tabelle 1)
Pos Anzahl Bestellnummer Benennung Lieferant (nur Empfehlung, kann woanders billiger sein) Preis (einzeln)
nur Richtwert
1 1 94-810058 Bausatz AVR-NET-IO Pollin 19,95 €
2 1 94-810036 Bausatz RS232-TTL-Wandler Pollin 3,95 €
3 1  *)


94-100996
ATMEGA 644P-20PU
101 100
AT Mega 644-20PU
ATMEGA 644P-20PU
ATMega 1284P-20PU
Pollin
Reichelt
Pollin
6,95 €
6,25 €
6,95 €
ACHTUNG! Das ist ein P-Typ auch wenn Pollin Bezeichnung ohne P!
Mittlerweile scheint Pollin leider wieder die "nicht P"-Typen zu versenden. Also diesen Typ bei Pollin nicht mehr bestellen. -> Besser den 1284P verwenden.
4 4 94-420090 Taster 145MT00C4001, rot, Gummihaube Pollin 1,00 €  (oder jeder andere)
5 beliebig
nach Bedarf
- DS18B20, Temperatur-Sensor ebay ca. 1,30 €
6a (1) 68-614-96 SMD-Step-down-Wandler SDW 1, Komplettbausatz ELV 7,95 €
6b
1
-
Universal KFZ Netzteil Stabilisiert 1,5-12V 800mA ebay ca. 7.- €
7 1 (2) 260 315 Sicherungshalter für Feinsicherung  Pollin
0,50 €
8 1+ 260 001 Feinsicherung  0,5 A Pollin 0,08 €
9 2 140 300 1N4148 - 0,2 A - 100 V - 10 Stück Pollin 0,15 €
10 1 250 258   Drosselspule, SMCC 47uH, axial Pollin 0,15 €
11 1 220 507 VDR-Widerstand 0,10 EUR. Pollin 0,10 €
12 1 440 260 Punktrasterplatine 2,5mm Raster mind. 110x75 mm. Pollin 1,60 €.
13 4+ 451 178
PFL 10
Pfostenbuchse 10-polig Pollin
oder Reichelt
0,25 €
0,10 €
14 1 561 047 Flachbandleitung 20-polig. 3m Pollin 0,90 €  (mehr als genug)
15 1 YMFC-C1602LDPSWSD LCD Display BIG HD44780 2x16 Black chr 8mm 16x2 White ebay, Zyscom 6,15 €
16 1 Schalter für Displaybeleuchtung beliebig ca. 0,50 €
17 1 PT 10-L 10K Einstellpotentiometer, liegend, 10mm Reichelt 0,23 €
18 2+ WSL 10G Wannenstecker 10-polig, gerade Reichelt 0,09 €
19 1 DS 1307 Real Time Clock I²C 56B NV SRAM, DIP-8           
Reichelt 2,35 €.
20 1 32,768 MS1V-12,5 Uhrenquarz 32.768 kHz Reichelt 0,35 €
21 2+ 10k Widerstand 10k
22 1 KZH 20-1
270 624
Knopfzellenhalter CR2032 Reichelt
Pollin
0,52 €
0,50 €
23 1 *) CR2032
270 104
Lithium-Knopfzelle, 3 Volt, 210 mAh, 20,0x3,2mm Reichelt
Pollin
0,33 €
0,35 €
24 3 - Reihenklemme 2-polig aus Net-IO od. Seriell Wandler-Bausatz -
25 1  *) ILD 74 Optokoppler Reichelt 0,50 €
26 2+ 4k7 Widerstand
27 2+ 1k Widerstand
28 2+ 100nF Kondensator
29 5 450 856 Leiterplatten-Anschlussklemme XY301 Pollin 0,10 €  (wenn mitgelieferte nicht reichen sollten)
30 1 *) ULN2803A Darlington-Array, DIL18 Reichelt
auch bei Pollin erhältlich
0,31 €
31 1 SPL64
Buchsenleiste, 64-polig, einreihig, RM 2,54, gerade
Reichelt 0, 99€
32 2+  ZD 5,6 Zener-Diode 1,3W 5,6V Reichelt 0,07 €
33 1 721 034 USB-Adapterkabel auf Seriell Pollin 4,80 €
(falls nicht schon vorhanden)
wird zur Verbindung des MC mit dem PC benötigt
34 1 je nach verwendeten GPS Verbindungskabel (seriell) zu GPS
   nachfolgende  Teile werden für optische Drehzahlmessung benötigt   
40 1 130 665 BC337 - 10 Stk.  (NPN Transistor) Pollin 0,40 €
41 1+ 4k7 Widerstand 4k7
42 2+ 20k Widerstand 20k Reichelt
43 1 962-20 10K
Spindeltrimmer, waschbar, 19mm, 10 K Reichelt 0,28 €
44 1 LM393 DIP Comparator, DIP-8
Reichelt 0,18 €
45 1+ CNY 70 OPTOKOPPLER
Reichelt 0,70 €
46 7 220 Ohm Widerstand ca. 220Ohm Reichelt
47 2 ZD 5,6 Zener-Diode 1,3W 5,6V  Reichelt  0,07 €
                 
   nachfolgende Teile für Schaltfunktionen und Anzeige / akustische Warnung
50 nach Bedarf 340 426 Relais AXICOM FP2-D3009  5V Pollin 0,40 €
51 nach Bedarf    LEDs, Farbe nach Bedarf   
52 nach Bedarf Vorwiderstand für LED  ca. 180 -200 Ohm
53 1  Summer 6V Summer 6 V Reichelt  1,10 € 
*) Reserveteile empfehlenswert!    ..+ mehr bestellen, immer gut vorrätig zu haben.
Diese Liste dient für mich selbst als Stückliste bei einem eventuellen Nachbau.  Ich garantiere nicht die Verwendungsmöglichkeit der Teile für bestimmte Zwecke.


zu 2) Zum Anschluss eines "normalen" GPS-Gerätes oder -Modules mit RS232 nötig. Module mit TTL-Pegel können direkt angeschlossen werden.
zu 4) Taster zum steuern des MC, z.B. Tanken, Anzeige wechseln etc. Kann natürlich jeder beliebige Taster (Schließer) sein.
zu 5) Dallas/Maxim Temperatursensoren. Anzahl nach Bedarf. Die gibt es bei Pollin auch relativ günstig (2,50). Ich kauf meine immer über Ebay vom Verkäufer Zyscom, da sind sie noch günstiger.
zu 6a) Das ist ein Spannungsregler, welcher den MC direkt aus dem Bordnetz (12V) versorgen kann. Dazu ist der Spannungsregler auf Pos. 1) wegzulassen und die entsprechenden Pins sind  zu überbrücken.
zu 19) Eigentlich ist beim Anschluss eines externen GPS-Gerätes keine Uhr nötig, da die Uhrzeit (UTC) von den GPS-Satelliten geliefert wird. Bei Verwendung als Spritcomputer ist jedoch ein unbegrenzt beschreibbarer Speicher (RAM) nötig. Damit dessen Inhalt nicht verloren geht wird dieser batteriegepuffert. Dieser Speicher befindet sich im Uhrenbaustein.
Der EEProm-Speicher des MC ist dazu nicht geeignet, da dieser nicht unbegrenzt oft überschrieben werden kann.
zu 9) Schutzdioden zum Schutz der Eingänge des MC (Verwendung nach Bedarf)

 
13.11.2010
Der Bootloader ist nun integriert.
Hintergründe:
Der Bootloader ermöglicht es ein Update des Mikroprozessor-Programms über die serielle Schnittstelle einzuspielen.

Der Ablauf ist dabei folgender:
Nach dem Einschalten bzw. nach einem Reset lauscht der MC eine kurze Weile auf ein bestimmtes Zeichen an der seriellen Schnittstelle. Erkennt er dieses, so beginnt er eine Kommunikation mit dem entsprechenden PC-Programm. Diese Programm auf dem PC schickt das neue MC-Programm an den MC, der es in seinem Flash (=dauerhafter Programmspeicher) ablegt.

Erhält der MC dieses Zeichen nicht innerhalb der eingestellten Zeit, so springt er in das normale Programm.

Hier der gesamte Ablauf eines Updates.

Portbelegung des Mikroprozessors
Der verwendete ATMega644P hat insgesamt 32 Ports. Teilweise sind diese frei verfügbar, teilweise haben diese spezielle Aufgaben wie z.B. serielle Schnittstelle, A/D-Wandler etc.

Nun mal eine Aufstellung was wir brauchen:
Liste der benötigten Funktionen (Tabelle 2)
Funktion Bezeichnung Port am MC Sonstiges
RXD0 Serial 0  (Inp) PD0 fixer Pin
TXD0 Serial 0  (Out)    PD1  Fix
RXD1 Serial 1  (Inp)    PD2 Fix
TXD1 Serial 1  (Out, not nec.) PD3 Fix
Analog 0 (12V1)  Spannung Bat. 0 (eventuell über 1-wire) PA0 vorerst über 1-wire
Analog 1 (12V2)  Spannung Bat. 1 (eventuell über 1-wire) PA1 vorerst über 1-wire
Analog 2 (12C1)  Shuntspannung Bat. 0    (eventuell über 1-wire) PA2 vorerst über 1-wire
Analog 3 (12C2)  Shuntspannung Bat. 0    (eventuell über 1-wire) PA3 vorerst über 1-wire
Count 0 Durchflussmesser 0 PB0 Fix
Count 1 Durchflussmesser 1 (wahlweise auch Drehzahl) PB1 Fix
1-wire 0 1-wire Bus 0 PA1 beliebiger Pin
1-wire 1 1-wire Bus 1 (optional) PA0 bel.
1-wire 2 1-wire Bus 2 (optional) - bel. -   vorerst nicht verwendet
1-wire 3 1-wire Bus 3 (optional) - bel. -   vorerst nicht verwendet
Out 0 Ausgang 1 PB3 bel.
Out 1 Ausgang 2 PB6 bel.
Out 2 Ausgang 3 PB7 bel.
Out 3 Ausgang 4 PB5 bel.
Out 4 Ausgang 5 PA3 bel.
Inp 0 Taster 1 PD4 bel.
Inp 1 Taster 2 PD5 bel.
Inp 2 Taster 3 PD6 bel.
Inp 3 Taster 4 PD7 bel.
SPI SS SPI Slave Select  PB4 Fix  nicht benötigt
MOSI MOSI  PB5 Fix  nicht benötigt
MISO MISO  PB6 Fix  nicht benötigt
SCK - PB7 Fix  nicht benötigt
RS Display (4-Bit Mode) PA2 bel.
E Display (4-Bit Mode) PC2 bel.
E2 Display (4-Bit Mode) Displays mit 2 Kontrollern PC3 bel.
DB4 Display (4-Bit Mode) PC4 bel.
DB5 Display (4-Bit Mode) PC5 bel.
DB6 Display (4-Bit Mode) PC6 bel.
DB7 Display (4-Bit Mode) PC7 bel.
SCL RTC PC0 fix
SDA RTC PC1 fix

Und nun die Tabelle 3 die zeigt am MC zur Verfügung steht und wo dieser Port am Net-IO angeschlossen ist:
Port    Sonderfunktion  MC Anschluss Net-IO Sonstiges
PA0 Analog 0  /  PCINT0     (PCI0 =  Pin Change Interrupt 0 ) J3-10 1-wire Data 2
PA1 Analog 1  /  PCINT1     (PCI0) J3-11 1-wire Data 1
PA2 Analog 2  /  PCINT2     (PCI0) J3-12 RS Display
PA3 Analog 3  /  PCINT3     (PCI0) J3-13 Ausgang #5
PA4 Analog 4  /  PCINT4     (PCI0) Kl-J9b   (Net-IO ADC1) nuutn
PA5 Analog 5  /  PCINT5     (PCI0) Kl-J9a   (Net-IO ADC2) nuutn
PA6 Analog 6  /  PCINT6     (PCI0) Kl-J7b   (Net-IO ADC3) nuutn
PA7 Analog 7  /  PCINT7     (PCI0) Kl-J7a   (Net-IO ADC4) nuutn
PB0 External Timer/Counter Input 0  /  PCINT8     (PCI1) Ext-7 Zähleingang - Optokoppler Drehzahlmesser  (8-Bit)
PB1 External Timer/Counter Input 1 /  PCINT9     (PCI1) J11 Zähleingang - Optokoppler (16-Bit)
PB2 INT2 (External Interrupt 2)   /  PCINT10     (PCI1) ENC28J60 nuutn
PB3 AIN1 / OC0A  /  PCINT11     (PCI1) Ext-8 Ausgang #1
PB4 SPI SS  /  PCINT12     (PCI1) ENC28J60 nuutn
PB5 MOSI  /  PCINT13     (PCI1) ISP-1 + ENC28J60 nuutn
PB6 MISO  /  PCINT14     (PCI1) ISP-9 + ENC28J60 Ausgang #2
PB7 SCK  /  PCINT15     (PCI1) ISP-7 + ENC28J60 Ausgang #3
PC0 SCL  /  PCINT16     (PCI2) J3-2 RTC DS1307
PC1 SDA  /  PCINT17     (PCI2) J3-3 RTC DS1307
PC2 TCK  /  PCINT18     (PCI2) J3-4 E1 Display
PC3 TMS  /  PCINT19     (PCI2) J3-5 E2 Display (optional)
PC4 TDO  /  PCINT20     (PCI2) J3-6 DB4 Display
PC5 TDI  /  PCINT21     (PCI2) J3-7 DB5 Display
PC6 TOSC1  /  PCINT22     (PCI2) J3-8 DB6 Display
PC7 TSOC2  /  PCINT23     (PCI2) J3-9 DB7 Display
PD0 RXD0  /  PCINT24     (PCI3) MAX232 (RS232 onbord) 1. serielle Schnittstelle
PD1 TXD0  /  PCINT25     (PCI3) MAX232 (RS232 onbord) 1. serielle Schnittstelle
PD2 RXD1 / INT0  /  PCINT26     (PCI3) Ext-1 2. serielle Schnittstelle
PD3 TXD1 /  INT1  /  PCINT27     (PCI3) Ext-2 2. serielle Schnittstelle
PD4 OC1B / XCK1  /  PCINT28     (PCI3) Ext-3 Taster #1
PD5 OC1A  /  PCINT29     (PCI3) Ext-4 Taster #2
PD6 ICP1 / OC2B  /  PCINT30     (PCI3) Ext-5 Taster #3
PD7 OC2A  /  PCINT31     (PCI3) Ext-6 Taster #4

nuutn  = not used up to now (bis jetzt nicht verwendet ;-) )

Zusammenbau  AVR-Net-IO
20.11.2010
Achtung!
Die gedruckte Anleitung, welche dem Net-IO beiliegt ist/war teilweise falsch (Stückliste fehlerhaft). Deshalb unbedingt nach der Anleitung arbeiten, welche Pollin als Download anbietet.

Hier gibt es erstmal einige Teile, welche ich gleich auf die Seite lege, da diese nicht benötigt werden.
Das sind erstmals alle Teile, welche mit der Netzwerkschnittstelle zu tun haben. Wer beabsichtigt diese später doch mal zu verwenden, kann auch alle Teile bis auf den Spannungsregler  IC2=LM317 und den IC3=ENC28J60 einbauen. D.h. der Spannungsregler wird nicht eingelötet und der ENC28J60 nicht in den Sockel gesteckt.  Theoretisch kann man auch diese Bauteile ohne funktionelle Probleme einbauen, die Schaltung wird dann jedoch wesentlich mehr Strom verbrauchen als nötig.
Wegzulassende Teile (Netzwerkschnittstelle):  R1, R2, R4, R6, R7, R8, R9, R10, R11, C6, C7, C8, C9, C10,  IC2, IC3,  L2 und J2.

Um die Leiterplatte und alle sonstigen Schaltungsteile später vernünftig  in ein Gehäuse einbauen zu können lasse ich den 25-poligen Stecker  J3 ebenfalls weg. Die Verbindungsdrähte werden später direkt eingelötet.
Wegzulassende Teile (Sonstige):  J3
Auch die blauen Klemmen löte ich nicht auf. Auf dem Boot ist jede Klemmstelle eine potentielle Fehlerquelle, deshalb werde ich wenn möglich auf Lötverbindungen zurückgreifen. (J1, J6 – J10)

Es verbleiben somit nur noch die Teile: R3, R12, R13, L1, C1, C2, C4, C11, C14, C15, C16, C17, C12, C13, C4, D3, D5, IC1, IC4, J4, J11, J5, Ext., ISP, Netz und Q2.
Wer ganz auf Nummer sicher gehen will kann auch noch die 10uF Kondensatoren C14-C17 durch 1uF ersetzen, dann entspricht die Beschaltung des MAX232 dem Datenblatt. Funktionieren dürften aber beide Beschaltungen.

Die Netzdiode löte ich nicht auf die Leiterplatte sondern verlängere den Anschluss mittels zweier ca. 15cm langer Drahtstücke. So kann die LED später ins Gehäuse eingebaut werden.


Verwendung des Netzteils Pos 6b (Spannungsversorgung Typ 1):
Da nicht vorgesehen ist das Teil an Wechselspannung zu betreiben, aber beim Betrieb im Boot bzw. in einem KFZ erhöhte Störpegel auftreten können, wird die Spannungsversorgung etwas umgebaut.
Die Diode D1 entfällt ersatzlos, D2 wird durch eine Induktivität von 47uH (Pos.10) ersetzt und anstatt der Diode D2 eine S10K20 (Pos.11) Überspannungsschutz-Diode eingesetzt.
Durch die verbleibende Diode D5 ist die Schaltung weiterhin gegen Verpolung geschützt, benötigt aber ca. 0,6V mehr Spannung.
Nach diesem Umbau liegt der Plus-Pol der Schaltung am äußeren Pin von J1 (neben der Bohrung für die Befestigung), der negative Pol liegt in Richtung RS232-Schnittstelle.
Der Pluspol der Eingangsspannung wird über einen Feinsicherungshalter mit einer Feinsicherung von 500mA geführt (Pos, 7 und 8).

Versorgt wird die Schaltung später mittels eines KFZ Netzteils (Pos. 6b), welches 7,5V und mind. 200mA liefert. Das Teil gibt's z.B. bei ebay mit der Bezeichnung "Universal KFZ Netzteil Stabilisiert 1,5-12V 800mA" um ca.  7 € incl. Versand. 

Hinweis:  Der verbaute Linearregler 7805 benötigt eine Eingangsspannung, welche ca. 2V über der Ausgangsspannung (5V) liegt. Da auch an der Diode D5 und an der Induktivität noch etwas Spannung abfällt liegt die Mindesteingangsspannung knapp unter 8V. Theoretisch könnte die Eingangsspannung auch 12V betragen, dann muss der 7805 aber entsprechend mehr Leistung (Differenzspannung * Stromaufnahme der Schaltung) verheizen, wird entsprechend wärmer und die Leistung sollte über einen Kühlkörper abgeführt werden. Ich empfehle deshalb den Einsatz eines entsprechenden KFZ-Schaltnetzteils. Auch die gesamte Leistungsaufnahme wird dadurch geringer.


Verwendung des Netzteils Pos 6a (Spannungsversorgung Typ 2):
Hier werden die Dioden D1, D2, D3, D4 und D5 weggelassen und D3 und D5 jeweils durch eine Drahtbrücke ersetzt. Statt D2 wird der Feinsicherungshalter  (Pos. 7) angeschlossen. Die Kondensatoren C1, C2, C3, C5 können ebenfalls weglassen werden. Diese Schaltung ist komplett ungeschützt! Liegt nun eine Spannung über 5,5- 6V an der Klemme J1 oder wird die Spannung verpolt angeschlossen, so ist der Mikroprozessor hinüber. Der Schutz der Schaltung wird komplett vom Netzteil (Pos. 6a) übernommen.
Diese Schaltungsart empfehle ich nur geübten Elektronikbastlern, die auch noch das letzte Quäntchen Strom sparen möchten.

Im weiteren Teil der Beschreibung verwende ich die Spannungsversorgung vom Typ 1

Nun wird der RS232-TTL-Wandler-Bausatz (Pos. 2) zusammen gelötet. Auch hier wird auf die Klemmen J2-J4 verzichtet.

Die Leiterplatte Pos. 17 schneiden wir auf die Größe der Leiterplatte des Net-IO zu und bohren auch die 4 Befestigungslöcher entsprechend. Achtung es müssen auf der Schmalseite mindestens 29 Lochreihen zur Verfügung stehen!

Zwischenstand: Net-IO und RS232-TTL-Wandler Anzeichnen der Platinenabmessungen


Nun beginnt die Verdrahtung:

Hinweis!  Ich habe zur Anfertigung dieser Beschreibung in der dargestellten Reihenfolge gearbeitet. Rückwirkend betrachtet werde ich zukünftig die Verbindung zwischen Net-IO und Zusatzleiterplatte erst ganz zum Schluss durchführen. Die umfangreichen Lötarbeiten an der Zusatzplatine sind dann leichter auszuführen und die Kabelverbindungen werden weniger belastet.
Stecker und Lötanschlüsse    Lötanschlüsse
Achtung! Auf den Bildern sind die Anschlüsse noch von Pin 2 bis Pin 13 des J3 abgeführt! Ich habe den Fehler in der Net-IO-Beschreibung erst beim Test der Schaltung bemerkt! Pin 13 ist also frei!

Nun haben wir auf der Zusatzleiterplatte folgende Anschlüsse (dazu liegt die Zusatzleiterplatte so vor uns, dass sich die angelöteten Flachbandkabel auf der linken Seite befinden. Wir zählen nun von oben nach unten die Lochreihen beginnend mit 1.

            Tabelle 4
Zusatzplatine Reihe
ZP #
Belegung Verwendet für
(wird nach und nach ergänzt)
verbunden mit
(wird nach und nach ergänzt)
#1 (vorerst noch frei!) PB1 Counter
ILD74 #6
#2 PD2 Seriell 2 RS232-Wandler TXD
#3 PD3 Seriell 2 RS232-Wandler RXD
#4 PD4 Taster 1 WS2 #3
#5 PD5 Taster 2 WS2 #5
#6 PD6 Taster 3 WS2 #7
#7 PD7 Taster 4 WS2 #9
#8 PB0 Drehzahlmesser - Motor ILD 74 Pin #7
#9 PB3 Ausgang #1 ULN2803 #4
#10 Gnd WS1 #1, (WS1 #10)
WS2 #2-#10, Gnd DS1307 etc.
#11 5V WS1 #2, Vcc DS1307, LM393,CNY70 etc.
#12 Gnd Pin #9 ULN2803
#13 PB6 Ausgang #2 ULN2803 #5
#14 PB7 Ausgang #3 ULN2803 #6
#15 Reset
#16 5V
#17 PB5 Ausgang #4 ULN2803 #7
#18 PA3 Ausgang #5 ULN2803 #8
#19 PA2 RS Display WS1 #3
#20 PA1 1-wire Data Reihenklemme
#21 PA0 optional 2.  1-wire Bus opt. Reihenklemme
#22 PC7 DB7 Display WS1 #9
#23 PC6 DB6 Display WS1 #8
#24 PC5 DB5 Display WS1 #7
#25 PC4 DB4 Display WS1 #6
#26 PC3 E2 Display (optional) WS1 #5
#27 PC2 E(1) Display WS1 #4
#28 PC1 SDA  RTC DS 1307 Pin 5
#29 PC0 SCL RTC DS 1307 Pin 6

Die Bezeichnungen in der zweiten Spalte entsprechen den Anschlüssen am ATMega 644P.
Da die fehlerfreie Belegung der Anschlüsse von enormer Wichtigkeit ist, wird dies folgendermaßen überprüft:  Download des Datenblatts des ATMega 644P von der Atmel Homepage (doc8011.pdf). Darin ist auf der Seite 2 "Pinout ATMega164P/324P/644P" die genaue Pinbelegung dargestellt. Nun wird bei ausgebauten ATMega mittels eines Durchgangsprüfers der Durchgang zwischen Prozessor-Sockel und Lötpunkt auf der Zusatzleiterplatte sichergestellt. Diese Anschlüsse werden im folgenden Text als ZP#.. bezeichnet werden.

Nun können wir bereits die RS232-Wandlerplatine anschließen:

Der nächste Schritt wird der Anschluss der Relais-Platinen und des Displays sein.  Wegen dem Display warte ich allerdings noch auf die Lieferung aus Polen.
Aber hier mal die benötigten Anschlüsse (Tabelle 5):
LCD Pin Bez. Fkt. Anschluss an Verbindungskabel Verbindung intern Pin # 10-pol. Stecker WS 1 Pin MC
#1 Vss Gnd ja, Gnd - 1 -
#2 Vdd +5V ja, +5V - 2 -
#3 Vo Kontrast - Poti -
#4 RS Register select ja - 3 PA2
#5 R/W read/write - Gnd
#6 E enable ja - 4 PC2
#7 DB0 Data - - -
#8 DB1 Data - - -
#9 DB2 Data - - -
#10 DB3 Data - - -
#11 DB4 Data ja - 6 PC4
#12 DB5 Data ja - 7 PC5
#13 DB6 Data ja - 8 PC6
#14 DB7 Data ja - 9 PC7
#15 A Backlight +5V - +5V -
#16 K Backlight Gnd ja 10 GND

Wir benötigen also neun über das Kabel geführte Anschlüsse, es reicht somit ein 10-poliger Stecker. Den verbleibenden Pin verwenden wir für ein zweites "enable" (E2). Dies ist für Displays mit zwei Kontrollern nötig.
Da die Spannung für das Backlight ebenfalls über das Kabel geführt wird, besteht theoretisch die Möglichkeit dieses über den MC ein-/auszuschalten. Um dafür nicht einen kostbaren Port des MC zu "verheizen" werde ich hierfür (optional) einen 1-wire Baustein vorsehen. Es erscheint mir aber sinnvoller (zumindest zusätzlich) einen mechanischen Schalter direkt ins Displaygehäuse einzubauen.

23.11.2010
Die Displays und weitere DS18B20 sind gestern angekommen. Super schnelle Lieferung aus Polen!

Display
Nun wird das 10-polige Flachbandkabel an das Display gelötet, dabei wird auf der Displayseite das Kabel #5 abgetrennt. Dieses findet nur bei Displays mit zwei "Enable"-Leitungen Verwendung.
Reihenfolge und genaue Anschlüsse siehe Tabelle oben.
Nun fehlt noch eine Drahtbrücke von LCD Pin#1 (GND) nach LCD Pin#5 (R/W). Diese wird auf der Displayseite angebracht.
Auf der Rückseite wird ein ca . 7cm langes Kabel am LCD Pin #2 (+5V) und ein ca. 7cm langes Kabel am LCD Pin "A" (Backlight +5V) fest gelötet. Diese beiden Kabel werden dann über einen Schalter (Pos. 16), der später im Displaygehäuse sitzt, verbunden (Backlight ein/aus). Der LCD Pin #3 (Kontrast) wird mit dem mittleren Pol des Drehpotis (Pos. 17) verbunden. Die beiden anderen Anschlüsse des Potis werden an +5V und an Gnd gelegt. Mit dem Poti kann der Kontrast eingestellt werden.
Achtung: Wie ich leidvoll feststellen musste entspricht der Pin "A" auf der Display-Schmalseite nicht dem Pin "A" am Anschlussfeld. Der Pin "A" am Anschlussfeld ist der richtige für den +5V-Anschluss. Der Pin "A" an der Schmalseite ist ohne Vorwiderstand!.
Bei den gemessenen 140mA waren am falschen Pol angeschlossen. Lange hat das das Backlight nicht ausgehalten. Jetzt ist es deutlich dunkler und braucht nur noch 30mA (richtig angeschlossen).

Displayanschlüsse   Display-Rückseite

Der 10-polige Stecker wird so angebracht wie auf dem Foto ersichtlich:   Stecker am Displaykabel
Das rot markierte Kabel ist #1.

Auf die Zusatzplatine wird unten links der Wannenstecker WS 1 (Pos. 18) so aufgelötet, dass die Öffnung zum Platinenrand zeigt. Somit liegt der Pin #1 des Displaykabels links unten. Die Reihe der ungeraden Pins #1, #3, #5, #7, #9 liegt damit am Leiterplattenrand (Reihe #28) und die Reihe der geraden Pins #2, #4, #6, #8 , #10 genau eine Reihe weiter innen (Reihe #27). Abstand des Steckers ca. 2,5-3cm vom linken Rand der Leiterplatte.
Die einzelnen Pins werden entsprechend der vorstehenden Tabelle(n) mit dem Flachbandkabel am linken Rand der Platine verbunden. Die vorderste Reihe macht dabei etwas Probleme. Ich bohre deshalb links und rechts neben dem Stecker jeweils zwei 1,5mm Löcher und führe durch diese Bohrungen die isolierten Drähte nach unten. Das verdient sicherlich keinen Schönheitspreis, erfüllt aber den Zweck. WS 1 Pin#10 wird über einen etwas längeren Draht auf Masse gelegt. Hier wird in einer späteren Ausbaustufe eine Schaltung ergänzt, welche es ermöglichen wird, das Backlight vom MC aus ein- und auszuschalten.
Anschließend werden dann die Anschlüsse noch mit dem Durchgangsprüfer getestet (richtige Verbindung zum MC Pin und kein Durchgang zu den benachbarten Pins.).
Wannenstecker für Display    Verkabelung Wannenstecker unten  gesamter Aufbau



Bedientaster
Nun folgt der Anschluss der Bedientaster. Auch diese werden über einen 10-poligen Stecker angeschlossen. Durch die Verwendung eines eigenen Steckers besteht die Möglichkeit die Taster vom Display abzusetzen.
Die Taster werden an die MC Pins PD4, PD5, PD6 und PD7 angeschlossen. Sie schalten den entsprechenden Pin nach Ground (Gnd). Diesmal wird die entsprechende Aussparung an der Wanne nach hinten gesetzt. So haben wir einen gewissen Schutz gegen vertauschen mit dem Displayanschluss.
Die vordersten fünf Anschlüsse (Pin 2, 4, 6, 8, 10) werden auf Ground gelegt, die linken vier der hinteren Anschlüsse werden zu den entsprechenden Verbindungspunkten geführt. So kann die Verkabelung einfach durchgeführt werden. Damit liegt Pin #1 des Wannensteckers WS2 rechts hinten. WS2 Pin #1 bleibt frei, WS2 Pin #3 wird mit Anschluss #4 (PD4), WS2 Pin #5 mit Anschluss #5 (PD5), WS2 Pin #7 mit Anschluss #6 (PD6) und WS2 Pin #9 mit Anschluss #7 (PD7) verbunden (siehe Tabelle 4 oben). WS2 Pin#1 bleibt frei.
Stecker für Bedientaster   Anschluß Bedientaster
Durch die Zugentlastung (fehlt im Bild noch) ergibt sich die richtige Anordnung des Steckers.

RTC
Ich habe mich entschlossen doch nicht auf die käufliche RTC-Platine zurückzugreifen, sondern die wenigen Bauteile direkt auf die Zusatzplatine zu löten.
Das Datenblatt des DS1307 liegt auf der Maxim-Webseite (Datenblatt DS1307)  Hieraus ist die Pinbelegung ersichtlich.
Benötigt werden folgende Anschlüsse:  VCC(+5V), GND, SCL und SDA. Der RTC Clock wir vorerst nicht verwendet.
Der benötigte Batteriehalter wird rechts neben WS2 auf die Zusatzplatine gesetzt. Der Plus-Anschluß liegt dabei auf der linken Seite. Der rechts liegende Minus-Anschluss wird mit den Groundanschlüssen des WS2 verbunden und weiter zum Pin 4 des DS1307 geführt. Den Sockel des DS1307 positionieren wir dabei so, dass die Kerbe zum Batteriehalter zeigt. Somit liegt der Groundanschluss hinten rechts (schwarzes Kabel auf dem Bild).
Der Pluspol des Batteriehalters wird mit Pin 3 des DS1307 verbunden.
Der Quarz (Pos. 20) wird auf der Rückseite zwischen Pin 1 und 2 (X1 und X2) des DS1307 gelötet. Das Gehäuse des Quarz wird an die darunterliegenden Lötpunkte angelötet und mit Gnd verbunden.
Vcc des DS1307 wird mit 5V (Anschluss # 11 Tabelle 4) verbunden.  Zusätzlich werden zwei Pull-Up Widerstände (Pos26) von Vcc nach SCL und SDA geführt. Anschließend wird SDA zum Anschluss #28 und SCL zum Anschluß #29 (nach Tab.4) geführt.
Diese beiden Verbindungen sind auf der Lötseite der Platine besser aufgehoben.
Bevor der DS1307 in den Sockel eingesetzt wird, werden die Verbindungen zum MC überprüft:
Beginnend unten rechts am DS1307 (Pin 1) und dann gegen den Uhrzeigersinn herum:
Pin DS1307 Angeschlossen an
1 - X1 Quarz
2 - X2 Quarz
3 - Vbat Batteriehalter + Pol  (seitlich)
4 - GND Batteriehalter - Pol  (Mitte)
Gnd (Platine Anschl. # 10)
5 - SDA Platine Anschl. # 28  = MC  PC1 
6 - SCL Platine Anschl. # 29  = MC  PC0
7 - SQW unbelegt
8 - Vcc 5V (Platine Anschl. # 11)  
Zusätzlich liegt je ein Widerstand (10k) zwischen Pin 8 und Pin5, bzw. zwischen Pin 8 und Pin 6.

Ansicht Lötseite    RTC



1-wire   
Zwei Reihenklemmen (Pos. 24) aus dem Net-IO-Bausatz werden zusammengesetzt und oben links auf die Platine positioniert.
Daran wird von links nach rechts (von hinten gesehen, Lage wie auf Bild unten) angeschlossen:   
Klemme # Belegung angeschlossen an
1 unbelegt
optional 2. 1-wire Bus
optional an Platine Anschluss #21 = MC PA0
2 Ground (-) Platine Anschluss #10
3 1-wire Data Platine Anschluss #20   = MC  PA1
4 +5V Platine Anschluss #11
Zwischen Klemme 3 und 4 wird ein 4k7 Widerstand (Pos. 26) angebracht. Das ist der Pull-Up Widerstand für das 1-wire Netz.
Findet der 2. 1-wire Bus Verwendung ist auch zwischen Klemme 1 und 4 ein 4k7 Widerstand anzubringen.

Zum Testen der Schaltung kann an die drei Klemmen (GND, 1-Wire Data und +5V) direkt ein 1-wire Netzwerk angeschossen werden. Später auf dem Boot wird zum Schutz vor Überspannung noch eine entsprechende Schutzschaltung dazwischengeschaltet werden. Am besten wäre hierfür eine DS9503 geeignet, leider ist diese relativ schlecht zu bekommen. Deshalb werde ich diese Schutzschaltung selbst erstellen.(ähnlich siehe)
   

Stand 27.11.2010  Stand 27.11.2010



Optokopplereingänge für Zähler
Um bei den Zähleingängen möglichst universell zu sein, werden hierfür Optokoppler (Pos. 25) eingesetzt. Der Aufbau entspricht hierbei weitestgehend den von Digmessa in ihren Datenblättern vorgeschlagenen "optocoupler interface". Damit können diese Sensoren direkt angeklemmt werden.
Es werden drei 2er-Klemmen aus den Net-IO-Bausatz zusammengesetzt und rechts aussen auf der Leiterplatte positioniert. Die Zählung der Klemmen beginnt mit #15 von rechts oben nach unten.
Im Abstand von ca. 5 Lochreihen wird ein entsprechender Sockel für den Doppeloptokoppler angebracht und zwar mit der Nut nach unten zeigend.  Somit liegt der Pin 1 rechts unten und die weitere Numemrierung der Pins erfolgt gegen den Uhrzeigersinn.
Verbindungen:
Sockel bzw. ILD74 Pin # verbunden mit
1 +5V  +   Klemme #20
2 über 1k Widerstand (Pos. 30) mit Klemme #19
3 über 1k Widerstand (Pos. 30) mit Klemme #16
4 +5V +   Klemme #17
5 GND + Klemme #15
6 zu ZP#1 = MC PB1 (noch unbelegt)
7 zu ZP#8 = MC PB0
8 GND + Klemme #18
Zusätzlich werden noch jeweils 1 Widerstand 4k7 von Pin #6 auf +5V und von Pin #7 auf +5 gelegt (Pullup-Widerstände  Pos. 26).
Zwischen Klemme #2 und GND bzw. zwischen Klemme #5 und GND wird jeweils ein 100nF Kondensator (Pos. 28) geschaltet.

Wird nur ein Zähleingang benötigt, so reicht die Verkabelung wie oben beschrieben aus. Theoretisch könnte man sogar noch die Pins #3, #4, #5 und #6 des Optokopplers unbeschaltet lassen.
Benötigt man jedoch einen zweiten Zähleingang so muss nun noch die Verbindung zum MC hergestellt werden. Dazu wird der ZP#1 der Zusatzleiterplatte mit Pin PB1 des Mikroprozessors verbunden.
PB1 liegt beim Net-IO an der Steckerleiste J11 auf dem mittleren Pin. Von dort wird eine Leitung zu ZP #1 geführt.

Zwischenstand 04.12.2010
 Zwischenstand 04.12.2010   Detailansicht Optokoppler


Schaltausgänge (kein 1-wire)
Um auch einige direkt schaltbare Ausgänge zu haben wird ein ULN2803 (pos. 30) eingesetzt. Dieser schaltet die entsprechenden Ausgänge nach Masse und hat auch schon Freilaufdioden eingebaut. So lassen sich (5V-)Relais, LEDs oder sonstige Signalgeber schalten.
Auch dieser Baustein wird gesockelt um ihn bei Bedarf schnell austauschen zu können. Es finden 5 2er-Reihenklemmen Verwendung. Die Zählung dieser Klemmen beginnt links mit #5 und endet ganz rechts mit #14.
Verbindungen:
Sockel bzw. ULN2803 Pin# verbunden mit Funktion
1 unbelegt
2 unbelegt
3 unbelegt
4 ZP#9  =MC PB3
5 ZP#13 = MC PB6
6 ZP#14 = MC PB7
7 ZP#17 = MC PB5
8 ZP#18 = MC PA3
9 GND (Kabel nicht zu dünn!)  zu ZP#12
10 +5V  + Klemme #5, #7, #9, #11, #13  +5V Verbraucher auf (Lötseite verbunden)
11 Klemme #14 Ausgang 1
12 Klemme #12 Ausgang 2
13 Klemme #10 Ausgang 3
14 Klemme #8 Ausgang 4
15 Klemme #6 Ausgang 5
16 unbelegt
17 unbelegt
18 unbelegt
Es bleiben noch drei Ein-/Ausgänge des ULN2803 frei. Theoretisch könnte man diese noch mit freien Anschlüssen des MC verbinden. Jedoch wären hierfür weitere Kabel vom Net-IO zur Zusatzplatine nötig. Da mittles 1-wire aber eine schier unendliche Anzahl von Schaltmöglichkeiten besteht, werde ich diese nicht benutzen. Die noch nicht verwendeten Anschlüsse des MC wie z.B. PA4..7 (Analog/digital-Wandler-Eingänge) können eventuell später noch Verwendung finden. Vorerst reicht die bis jetzt erzielte Funktionalität aus.
Die noch unbelegten Lötanschlüsse der Klemmen #5, #7, #9, #11, #13 werden mit +5V verbunden.
Anschluss ULN2803





Nach Anschluss eines Summers an Ausgang 1 und von 4 LEDs mit Vorwiderstand (330Ohm->schwaches Leuchten, ca.200 Ohm helles Leuchten) an die restlichen 4 Ausgänge ist der Versuchsaufbau nun fast komplett:
vorläufiger Versuchsaufbau

Hier mal der Schaltplan:
Schaltpaln

Was nun noch fehlt ist die Erfassung der Drehzahl! Für diese fertige ich eine eigene kleine Platine an, welche dann an den entsprechenden Optokopplereingang angeschlossen wird. Dies hat den großen Vorteil, dass die Drehzahl auf unterschiedlichste Weise erfasst werden kann. Es muß nur die Zusatzschaltung entsprechend modifiziert werden.

Drehzahlmesser

Hierzu verwende ich eine "Quick and Dirty"-Lösung, welche aber in meinem Boot bereits seit gut zwei Jahren so problemlos funktioniert, dass ich derzeit keinen Grund sehe etwas daran zu ändern.Die Lösung ist aus dem Versuch entstanden meinen Gaszähler (im Haus nicht im Boot ;-) ) elektronisch abzutasten. Dazu wird ein sog. Reflexkoppler CNY70 verwendet. Das ist im Grunde genommen eine (IR-)Sende- und Empfangsdiode in einem Gehäuse.
Das Ausgangssignal wird mittels eines Komparators "digitalisiert" und vom MC gezählt.
Ich habe dazu auf einer Riemenscheibe am Motor, welche mit Kurbelwellendrehzahl läuft einen Reflektor aus Alufolie angebracht. Die Alufolie überdeckt dabei ca. 180°. Der Reflexkoppler befindet sich ca. 5mm davor.
Der große Vorteil dieser Vorgehensweise ist, dass keinerlei elektrische Verbindung mit der Motorelektronik nötig ist und somit auch die Gefahr für den MC an Überspannungen zu sterben gering ist. Auch spielt es keinerlei Rolle, ob es sich beim Motor um einen Benziner, Diesel, Viertakter, 1-, 2-, 4-, 6- oder 8-Zylinder handelt. Es treten immer genau zwei Helligkeitswechsel pro Umdrehung auf. Sollte es mal nicht möglich sein eine mit Kurbelwellendrehzahl laufende Scheibe abzutasten, so kann der MC selbstverständlich eine entsprechende Anpassung vornehmen.

Selbstverständlich sind auch andere Arten der Drehzahlmessung möglich. Wichtig ist nur, dass am entsprechenden Optokopplereingang ein entsprechendes digitales Signal (open collector) ankommt.
In einer späteren Ausbaustufe werde ich z.B. den an meinem Motor bereits vorhandenen aber nicht benützten Kurbelwellensensor verwenden. Aber das ist dann eine Speziallösung für meinen Mercruiser 4,3L.

Bei "meiner" Lösung auf dem Boot geht der Ausgang des LM393 nicht direkt zum MC bzw. Optokoppler sondern wird von einem 1-wire Baustein DS2423 gezählt und der Zählerstand von dort über 1-wire zum PC (bisher) übertragen. Das hat den Vorteil, dass ich keine langen Verbindungsdähte zwischen MC und CNY70 bzw. überbrücken muss. Leider wird dieser Baustein nicht mehr hergestellt, deshalb werde ich dem MC das Zählen überlassen. Ob sich hier die langen Anschlussdrähte negativ bemerkbar machen wird sich noch zeigen müssen.

Die Schaltung wird auf einer eigenen kleinen Leiterplatte aufgebaut. Diese Leiterplatte nenne ich nachfolgend nur DS1.

Sensor (Reflexkoppler) CNY 70:
Diesen Sensor wird über drei Anschlussdrähte mit DS1 verbunden (Länge nach Bedarf), da man zwei der vier Pins zusammenfassen kann.
Jetzt wird's etwas tricky. Grund ist, dass es den CNY70 von verschiedenen Firmen und leider mit unterschiedlichen Ausführungen der Anschlüsse gibt.
Der von mir verwendete Vishay-Typ wird folgendermassen angeschlossen:
Sensor so halten, dass die Anschlüssen von einem weg zeigen, man also auf die Linsen blickt. Den Sensor so drehen, dass die beschriftete Seite nach rechts zeigt (3 Uhr).
Nun den Anschluss der sich links oben befindet mit dem Anschluss, welcher sich rechts unten befindet, diagonal verbinden. An die beiden verbundenen Pins einen Anschlussdraht löten. Das ist der +5V Anschluss. Dieser wird mit einem schwarzen Strich am Kabel markiert.
Den Pin links unten ebenfalls mit einem Draht verbinden, das ist die Kathode der Sendediode. Dieses Kabel wird mit zwei schwarzen Strichen markiert. Dieser Anschluss wird dann über den Vorwiderstand auf Masse gelegt.
Nun wird noch der Pin rechts oben mit einem Draht verbunden, das ist er Emitter des Fototransistors. Dieses Kabel bleibt unmarkiert.
Das sieht dann so aus:  Anschluss CNY70 Auf dem Photo nicht gut zu sehen: Das mittlere Kabel geht an die zwei diagonal liegenden Pins.

Um zu überprüfen, ob der Sensor richtig beschaltet ist, sprich ob die IR-LED leuchtet verwende ich meine Digitalkamera.
Wenn man damit den eingeschalteten Sensor fotografiert, dann sieht das so aus:  Sensor CNY 70
Achtung!  Auch wenn man das Licht nicht, bzw. kaum sieht, kann es für die Augen schädlich sein! Nicht reinsehen! Nur durch die Digicam!

Hier nun der Schaltplan des Messverstärkers:  Schaltung optische Drehzahlmessung

Die Verbindungen können fest verlötet oder über Klemmen ausgeführt werden.


Hier die fertig aufgebaute Schaltung beim Abgleich der Empfindlichkeit:
Drehzahlsensor - geschaltet    Drehzahlsensor - ausgeschaltet
Im linken Bild befindet sich der Reflexkoppler über der Alufolie -> die LED leuchtet.
Im rechten Bild befindet sich der Reflexkoppler über dem schwarzen Klebeband -> die LED ist aus.

Wer den Abgleich nicht nur nach Gefühl machen will sollte folgendermassen vorgehen:

Die LED1 und der Widerstand R5 kann selbstverständlich auch weggelassen werden. Sie dienen nur zur einfacheren Einstellung des Sensors.


Für den Test der Schaltung habe ich mir einen Drehzahlsimulator aus einem alten Lüfter gebaut.
Da dieser Lüfter nur mit ca. 2000/min läuft wurde durch entsprechende Gestaltung des Reflektors dafür gesorgt, dass sich mehrere Helligkeitswechsel pro Umdrehung ergeben.
So kann ich wesentlich höhere Drehzahlen simulieren. Im gegebenen Fall mit Faktor 4, also bis zu 8000/min. Das sollte reichen.


Testaufbau Stand: 11.12.2010
Testaufbau

Die Plantine DS1 wurde an die Klemmen #18, #19 und #20 angeschlossen. Mit einem Ozilloskop habe ich nun am Ausgang des Optokopplers bzw. am Eingang PB1 des MC die entsprechenden Drehzahlsignale gemessen.
Ozsibild
So wollte ich das haben, astreine Rechtecksignale. Da sollte der MC keine Probleme haben die Drehzahl zu ermittlen.


Nach dem nun der Testaufbau steht, werde ich mich nun wieder der Programmierung zu wenden.

26.12.2010

Verwirrung um Prozessoren

Wie ich leider feststellen mußte liefert die Fa. Pollin nun nicht mehr wie früher die 644P-Typen (bei Bestellung mittels Best-Nr.94-100996) , sondern die Typen ohne P. Damit stimmt zwar deren Bezeichnung ATMega644-20PU wieder mit dem tatsächlichen Teil überein, aber damit ist mir leider auch nicht geholfen.  Ich muss nun wohl oder übel beide Typen unterstützen.
Der markanteste Unterschied zwischen den 644 und den 644P ist der zweite serielle UART des 644Ps. Auf diesen hatte ich eigentlich gesetzt und beide serielle Schnittstellen (zum PC und GPS) damit ausgestattet.  Vorteil des UART ist die gepufferte Ein-/Ausgabe, welche den Prozessor entlastet und höhere Datenübertragungsraten ermöglicht.
Bisher hatte ich den PC an COM1 und das GPS an COM2 vorgesehen. Da beim 644 nun nur noch COM1 über einen Puffer verfügt, habe ich die Schnittstellen getauscht. Nun wird das GPS mit COM1 und der PC mit COM2 verbunden. Da das GPS fortlaufend Daten sendet ist hier der Puffer absolut nötig, bei der Kommunikation zum PC ist er verzichtbar, wenn man mit der Datenübertragungsrate kleiner gleich 9600 Baud bleibt (durch Versuche ermittelt).
Der Tausch der Schnittstellen hatte auch eine Änderung des Bootloaders zur Folge. Auch er mußte auf COM2 umprogrammiert werden.
Bei dieser Gelegenheit gibt es aber einen unerwarteten Lichtblick: Pollin vertreibt nun den ATMega1284P-20PU (Best. 101 100). Das ist ein 644P aber mit doppelt soviel Speicher und das nur für 0,60 € mehr. Wenn's den schon früher gegeben hätte, hätte ich von Anfang an darauf gesetzt.
Ich empfehle jeden, der noch keinen ATMega gekauft hat, diesen Typ einzusetzen. Ich werde ihn ebenfalls unterstützen.


30.01.2011
Mittlerweile war ich nicht untätig. Das Programm umfaßt nun die geplante Grundfunktionalität und wird gerade einen eingehenden Test unterzogen.
Die Leiterplatten haben sich leider verzögert. Mein deutscher Leiterplattenlieferant hat sich erst auf Nachfrage gemeldet und hatte offensichtlich (trotz Eingangsbestätigung per E-Mail) meine Anfrage nicht erhalten.
Mittlerweile habe ich ein Angebot über 19,40€ pro LP incl. Versand.  In der Zwischenzeit hatte ich jedoch bereits bei einen Hersteller in Bulgarien angefragt und auch dort schon zwei Stück bestellt. Hier kosten die beiden incl. Versand  43,61€.  Wenn man die höheren Versandkosten berücksichtig also in etwa der selbe Preis pro LP.  Ich hab nun bei beiden Lieferanten bestellt und bin auf den Vergleich der beiden gespannt.

Bisher verwirklichte Funktionalität der MC Software:

Konfiguration am PC

Das hierzu erstellte Programm ermöglicht den Zugriff auf sämtliche im EEPROM gespeicherten Konfigurationswerte und Zählerstände (Expertenmodus). Bei einer späteren Version ist ein Usermodus geplant in welchen sich nur allgemeine Werte beeinflussen lassen.

Hier mal ein paar Screenshots der Einstellungsdialoge:

Einstellungsdialog

Einstellungsdialog

Einstellungsdialog

Einstellungsdialog

Einstellungsdialog

Einstellungsdialog

(c) Erich Freibert, Januar 2011

Hinweis: Sämtliche Warenzeichen, Markennamen, Trademarks etc. sind Eigentum der jeweiligen Firmen auch wenn dieses nicht ausdrücklich kenntlich gemacht ist und der Trademarks-Eigener nicht namentlich genannt wird und werden selbstverständlich anerkannt!
Weiterführende Links dienen nur der Information, liegen deshalb außerhalb meiner Verantwortung und bedeuten nicht, automatisch, dass dortige Inhalte mit meiner eigenen Meinung übereinstimmen müssen


Das hier gezeigte ist nur eine Beschreibung von mir vorgenommer Um- bzw. Einbauten. Es ist keine Aufforderung dies ebenfalls zu tun und ist auch keine entsprechende vollständige Bauanleitung. Fehler und Irrtum ist vorbehalten. Auch die rechtliche Zuläßigkeit wird von mir nicht garantiert.


Zurück..

Zähler