hardware:controllers:5x-s0-hutschienencontroller_bauanleitung
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hardware:controllers:5x-s0-hutschienencontroller_bauanleitung [2011/12/03 10:12] – [Spannungsversorgung und D/A-Eingänge] udo1 | hardware:controllers:5x-s0-hutschienencontroller_bauanleitung [2012/10/21 21:16] (aktuell) – [Leiterplatte für den µC, das LAN, USB und die USART-Anschlüsse] tomtel289 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
======5x-S0-Hutschienencontroller Bauanleitung====== | ======5x-S0-Hutschienencontroller Bauanleitung====== | ||
- | Der [[hutschienencontroller_v2|5x-S0-Hutschienencontroller]] | + | Der [[hutschienencontroller_v2|5x-S0-Hutschienencontroller]] |
Es wird detailliert auf Zusammenbau und Tests eingegangen. Sollte einer der Tests fehlschlagen wird die Diagnose wegen der Fülle an möglichen Fehlern jedoch nicht weiter erläutert. | Es wird detailliert auf Zusammenbau und Tests eingegangen. Sollte einer der Tests fehlschlagen wird die Diagnose wegen der Fülle an möglichen Fehlern jedoch nicht weiter erläutert. | ||
Zeile 12: | Zeile 12: | ||
Hier eine Liste mit den Dingen, die benötigt werden: | Hier eine Liste mit den Dingen, die benötigt werden: | ||
* Zusammenbau | * Zusammenbau | ||
- | * {{: | + | * {{: |
* Bestückungspläne aus dem [[hutschienencontroller_v2|Hauptartikel zum Controller]] | * Bestückungspläne aus dem [[hutschienencontroller_v2|Hauptartikel zum Controller]] | ||
* Lötkolben | * Lötkolben | ||
Zeile 31: | Zeile 31: | ||
===Tipps zum SMD-Löten=== | ===Tipps zum SMD-Löten=== | ||
- | Grundsätzlich hat jeder seine eingene | + | Grundsätzlich hat jeder seine eigene |
==Bauteile mit 2-3 Pins== | ==Bauteile mit 2-3 Pins== | ||
- Eins der Lötpads mit Lötzinn versehen | - Eins der Lötpads mit Lötzinn versehen | ||
- Bauteil mit einer Seite an das verzinnte Pad löten (nun ist es fixiert) | - Bauteil mit einer Seite an das verzinnte Pad löten (nun ist es fixiert) | ||
- | - Restliche Pins festlöten | + | - Restliche Pins fest löten |
==ICs== | ==ICs== | ||
- Lötpads mit Flussmittel bestreichen | - Lötpads mit Flussmittel bestreichen | ||
- IC aufsetzen | - IC aufsetzen | ||
- Ganz sicher gehen dass das IC richtig herum sitzt | - Ganz sicher gehen dass das IC richtig herum sitzt | ||
- | - 2 Pins festlöten | + | - 2 Pins fest löten |
- Lötzinn auf die Pins geben und in eine Richtung wegstreichen | - Lötzinn auf die Pins geben und in eine Richtung wegstreichen | ||
- Letzte Pins mit Entlötlitze von Lötbrücken befreien | - Letzte Pins mit Entlötlitze von Lötbrücken befreien | ||
Zeile 64: | Zeile 64: | ||
- Am 27V-Anschluss werden 27V gemessen | - Am 27V-Anschluss werden 27V gemessen | ||
- An SIG6 - SIG12 werden jeweils 3,3V gemessen | - An SIG6 - SIG12 werden jeweils 3,3V gemessen | ||
- | ( - Je 2 gegenüberliegende Pins im Pfostenstecker überbrücken. Der Korrespondierende SIG-Pin sollte auf 0V wechseln.) das ist unklar. | + | |
====Grundleiterplatte mit Eingangsklemmen==== | ====Grundleiterplatte mit Eingangsklemmen==== | ||
+ | <note important> | ||
+ | Siehe [[hardware: | ||
{{: | {{: | ||
===Einlöten der Bauteile=== | ===Einlöten der Bauteile=== | ||
Zeile 89: | Zeile 91: | ||
Die 3, | Die 3, | ||
Einige ICs haben auf dem Bestückungsplan eine vertikale Linie anstatt einem Punkt. Die entsprechenden ICs sind auf der Seite mit dem Strich abgerundet (siehe Bild). Außerdem ist es ratsam die Anschlüsse der Versorgungsspannungen vorher auf Kurzschlüsse gegen Masse zu prüfen.\\ | Einige ICs haben auf dem Bestückungsplan eine vertikale Linie anstatt einem Punkt. Die entsprechenden ICs sind auf der Seite mit dem Strich abgerundet (siehe Bild). Außerdem ist es ratsam die Anschlüsse der Versorgungsspannungen vorher auf Kurzschlüsse gegen Masse zu prüfen.\\ | ||
+ | |||
+ | ===Testen der Funktion=== | ||
+ | 3,3V Spannungsversorgung muessen, wie bei den anderen Messungen, anliegen. Dieses Modul wird zu einem kleinen Teil elektrisch getestet. Danach wird mit einem ISP und Ethersex gearbeitet um alle Funktionen zu testen. Beim Erstellen dieser Anleitung wurde auf Linux mit avrdude und einem AVRISP MKII gearbeitet. Die Optionen "-c arvisp2 -P usb" müssen also unter Umständen angepasst werden. Es lassen sich natürlich nach Belieben andere Tools verwenden.\\ | ||
+ | Zum kompilieren sollte der gcc Version 4.6.1 oder höher verwendet werden. Weitere Informationen über die benötigten Pakete gibt es hier im Wiki. | ||
+ | ==Test der LEDs== | ||
+ | Hier können nur die LEDs getestet werden. | ||
+ | - Eine Messleitung an 3,3V anschließen | ||
+ | - Einzeln mit D_SIG1 bis D_SIG5 verbinden | ||
+ | - Es sollte die jeweils zugehörige LED leuchten | ||
+ | ==Test der grundlegenden Funktionen== | ||
+ | - Verbindung mit dem ISP herstellen | ||
+ | - Aufbauen einer Verbindung mit dem Atmega | ||
+ | < | ||
+ | sudo avrdude -c avrisp2 -P usb -p m1284p -v | ||
+ | </ | ||
+ | Wenn alles gut gegangen ist sollte die Device signature angezeigt werden und am Ende "Fuses OK" stehen.\\ | ||
+ | Jetzt werden die Fuses so eingestellt, | ||
+ | < | ||
+ | sudo avrdude -c avrisp2 -P usb -p m1284p -U lfuse: | ||
+ | </ | ||
+ | Jetzt wird erneut getestet ob eine Verbindung mit dem Atmega aufgebaut werden kann. | ||
+ | < | ||
+ | sudo avrdude -c avrisp2 -P usb -p m1284p -v | ||
+ | </ | ||
+ | |||
+ | ==Vorbereitungen== | ||
+ | Fuer den Test der S0-Eingänge benötigen wir 5 Testkanäle. Diese erstellt man am besten bei volkszaehler.org und kopiert sich die generierten UUIDs in eine Textdatei. Diese brauchen wir später beim kompilieren vom Ethersex. Sie werden später UUID_Test1 bis UUID_Test5 genannt.\\ | ||
+ | Es bietet sich außerdem an die IP-Einstellungen (IP, Subnetmaske, | ||
+ | Nun wird die aktuelle Software aus dem Repository geladen und in das Verzeichnis gewechselt. | ||
+ | < | ||
+ | git clone https:// | ||
+ | cd ethersex | ||
+ | </ | ||
+ | Dann werden die modifizierten Dateien aus dem [[hutschienencontroller_v2|Hauptartikel]] eingepflegt und die Konfiguration gestartet. | ||
+ | < | ||
+ | wget http:// | ||
+ | mv volkszaehler_so_server.m4 pinning/ | ||
+ | wget http:// | ||
+ | unzip yport-node_enc28j60.zip | ||
+ | rm yport-node_enc28j60.zip | ||
+ | mv -f enc28j60.c hardware/ | ||
+ | </ | ||
+ | ==Kompilieren der Software== | ||
+ | < | ||
+ | make menuconfig | ||
+ | </ | ||
+ | Als nächstes werden in der Konfiguration folgendende Werte modifiziert: | ||
+ | < | ||
+ | General Setup --> Target MCU: ATmega1284p | ||
+ | General Setup --> MCU frequency: 12500000 | ||
+ | General Setup --> Hardware/ | ||
+ | General Setup --> Enable Debugging: Einschalten | ||
+ | General Setup --> VFS --> Atmel SPI Dataflash: Ausschalten | ||
+ | General Setup --> VFS --> SD/MMC-Card Access: Einschalten | ||
+ | General Setup --> VFS --> VFS File Inlining --> Inline configuration page: Einschalten | ||
+ | General Setup --> VFS --> Debugging --> SD-Reader: Einschalten | ||
+ | Network --> Ethernet (ENC28J60) support --> Etherrape IP address: 192.168.1.50 (eine freie IP in deinem LAN) | ||
+ | Network --> Ethernet (ENC28J60) support --> Netmask: 255.255.255.0 (die Subnetzmaske) | ||
+ | Network --> Default gateway: 192.168.1.1 (das Gateway im LAN) | ||
+ | Network --> DNS support: Einschalten | ||
+ | Network --> DNS support --> DNS-Server IP address: 192.168.1.1 (normalerweise die IP des Gateways) | ||
+ | Network --> Debugging Flags --> Networking: Einschalten | ||
+ | Network --> Debugging Flags --> NTP: Einschalten | ||
+ | Applications --> System clock support: Einschalten | ||
+ | Applications --> System clock support --> Date and Time support: Einschalten | ||
+ | Applications --> System clock support --> Use 32 kHz crystal to tick the clock: Einschalten | ||
+ | Applications --> System clock support --> Adjust clock to NTP clock signal: Einschalten | ||
+ | Applications --> System clock support --> Syncronize using NTP protocol: Einschalten | ||
+ | Applications --> System clock support --> NTP Server: 0.de.pool.ntp.org (oder einen anderen NTP-Server) | ||
+ | Applications --> System clock support --> Uptime: Einschalten | ||
+ | Applications --> System clock support --> Debugging Flags --> NTP Clock-Adjust: | ||
+ | Applications --> Http Server: Einschalten | ||
+ | Applications --> Http Server --> Debugging Flags --> HTTPD: Einschalten | ||
+ | Applications --> watchasync service: Einschalten | ||
+ | Applications --> watchasync service --> Server: volkszaehler.org | ||
+ | Applications --> watchasync service --> Path in front of pin identifier: "/ | ||
+ | Applications --> watchasync service --> Include unix timestamp: Einschalten | ||
+ | Applications --> watchasync service --> Path in front of timestamp: " | ||
+ | Applications --> watchasync service --> Path at the end: "" | ||
+ | Applications --> watchasync service --> Summarize Events: Einschalten | ||
+ | Applications --> watchasync service --> Path in front of eventcount: " | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port A --> Use Pin 0 of Port A: Einschalten | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port A --> Pin 0 on Port A Identifier: UUID_Test5 | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port D --> Use Pin 4 of Port D: Einschalten | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port D --> Pin 4 on Port D Identifier: UUID_Test1 | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port D --> Use Pin 5 of Port D: Einschalten | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port D --> Pin 5 on Port D Identifier: UUID_Test2 | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port D --> Use Pin 6 of Port D: Einschalten | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port D --> Pin 6 on Port D Identifier: UUID_Test3 | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port D --> Use Pin 7 of Port D: Einschalten | ||
+ | Applications --> watchasync service --> Pin Configuration --> Port D --> Pin 7 on Port D Identifier: UUID_Test4 | ||
+ | Applications --> watchasync service --> Debugging Flags --> WATCHASYNC: Einschalten | ||
+ | </ | ||
+ | Die gespeicherte Konfiguration wird kompiliert und auf den Controller geflashed. | ||
+ | <note important> | ||
+ | < | ||
+ | make | ||
+ | sudo avrdude -c avrisp2 -P usb -p m1284p -U flash: | ||
+ | </ | ||
+ | Am Ende sollte der ISP-Programmer fuer die weiteren Tests wieder entfernt werden. | ||
+ | |||
+ | ==Test der USB-Schnittstelle== | ||
+ | Das Modul wird zunächst über USB an den PC angeschlossen. Es meldet sich als USB-RS232-Adapter und kann über das Programm der Wahl (Hyperterminal bei Windows oder GTKTerm bei Linux) angesprochen werden.\\ | ||
+ | Die Einstellungen sind wie folgt:\\ | ||
+ | * Speed: 115200 | ||
+ | * Parity: none | ||
+ | * Bits: 8 | ||
+ | * Stopbits: 1 | ||
+ | * Flow control: none | ||
+ | Wenn man jetzt erstmal nichts sieht schaltet man die Spannungsversorgung aus und wieder an. Spätestens beim Booten werden einige Eigenschaften des Moduls angezeigt. Es ist übrigens Sinnvoll die Verbindung bei den nächsten Tests bestehen zu lassen um Fehlermeldungen zu sehen. | ||
+ | |||
+ | ==Test der LAN-Verbindung== | ||
+ | Nachdem ein Netzwerkkabel angeschlossen wurde sollte man im Debugfenster "got Link" lesen können. Wenn der DNS-Eintrag stimmt sollte auch irgendwann der NTP-Client melden dass er die Zeit einstellt. Über den Browser der Wahl kann man über http:// | ||
+ | |||
+ | ==Test der SD-Karte== | ||
+ | Die SD-Karte wird für den Volkszähler nicht zwingend benötigt. Wenn man sowieso keine SD-Karte hat kann man sich diesen Schritt sparen.\\ | ||
+ | Die SD-Karte muss mit FAT16 formatiert sein. An einem anderen PC wird eine Textdatei " | ||
+ | |||
+ | ==Test der S0-Eingänge== | ||
+ | Da die Grundleiterplatte schon getestet wurde und funktioniert, | ||
+ | Jetzt werden, wie auch schon bei dem Test der Grundleiterplatte, | ||
+ | |||
+ | |||
+ | ===TODO=== | ||
+ | Test S0-Eingaenge | ||
+ | Gehaeuse |
hardware/controllers/5x-s0-hutschienencontroller_bauanleitung.1322903551.txt.gz · Zuletzt geändert: 2011/12/03 10:12 von udo1