Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:controllers:5x-s0-hutschienencontroller_bauanleitung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:controllers:5x-s0-hutschienencontroller_bauanleitung [2011/12/14 21:49] – Anleitung Modul 3 fortgesetzt pepehardware: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 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
-    * {{:hardware:controllers:5xs0-controller_preisliste.pdf|Bauteile}}+    * {{:hardware:controllers:5xs0-controller_preisliste1.pdf|Bauteile}}
     * 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 67: Zeile 67:
  
 ====Grundleiterplatte mit Eingangsklemmen==== ====Grundleiterplatte mit Eingangsklemmen====
 +<note important>Achtung! Die Klemmenbezeichnungen KL1 bis KL5 stimmen nicht.\\
 +Siehe [[hardware:controllers:hutschienencontroller_v2|]]</note>
 {{:hardware:controllers:bau_grundplatte_mit_s0_eingaengen.jpg}} {{:hardware:controllers:bau_grundplatte_mit_s0_eingaengen.jpg}}
 ===Einlöten der Bauteile=== ===Einlöten der Bauteile===
Zeile 91: Zeile 93:
  
 ===Testen der Funktion=== ===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.+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== ==Test der LEDs==
 Hier können nur die LEDs getestet werden. Hier können nur die LEDs getestet werden.
Zeile 101: Zeile 104:
   - Aufbauen einer Verbindung mit dem Atmega   - Aufbauen einer Verbindung mit dem Atmega
 <code> <code>
-sudo avrdude -c arvisp2 -P usb -p m1284p -v+sudo avrdude -c avrisp2 -P usb -p m1284p -v
 </code> </code>
 Wenn alles gut gegangen ist sollte die Device signature angezeigt werden und am Ende "Fuses OK" stehen.\\ Wenn alles gut gegangen ist sollte die Device signature angezeigt werden und am Ende "Fuses OK" stehen.\\
 Jetzt werden die Fuses so eingestellt, dass das Taktsignal vom ENC28J60 kommt, und nicht intern generiert wird. Jetzt werden die Fuses so eingestellt, dass das Taktsignal vom ENC28J60 kommt, und nicht intern generiert wird.
 <code> <code>
-sudo avrdude -c arvisp2 -P usb -p m1284p -U lfuse:w:0xE0:m -U hfuse:w:0x99:m -U efuse:w:0xFF:m+sudo avrdude -c avrisp2 -P usb -p m1284p -U lfuse:w:0xE0:m -U hfuse:w:0x99:m -U efuse:w:0xFF:m
 </code> </code>
 Jetzt wird erneut getestet ob eine Verbindung mit dem Atmega aufgebaut werden kann. Jetzt wird erneut getestet ob eine Verbindung mit dem Atmega aufgebaut werden kann.
 <code> <code>
-sudo avrdude -c arvisp2 -P usb -p m1284p -v+sudo avrdude -c avrisp2 -P usb -p m1284p -v
 </code> </code>
-==Test der LAN-Verbindung== + 
-Ab jetzt wird Schritt für Schritt ein Ethersex für Udo's Hutschienencontroller erstellt. Es gibt zum grundsätzlichen Vorgehen eine [[software:controller:ethersex|allgemeine Beschreibung im Wiki]]Grundlagen werden hier also entsprechend nicht behandelt.\\ +==Vorbereitungen== 
-Es wird zuerst die aktuelle Software aus dem Repository geladen und in das Verzeichnis gewechselt.+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 TextdateiDiese 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, Gateway, DNS-Server) schon vorher mit einem anderen PC an dem gleichen Kabel zu testen. So kann man ausschließen dass hier ein Fehler passiert ist.\\ 
 +Nun wird die aktuelle Software aus dem Repository geladen und in das Verzeichnis gewechselt.
 <code> <code>
 git clone https://github.com/ethersex/ethersex.git git clone https://github.com/ethersex/ethersex.git
Zeile 127: Zeile 132:
 rm yport-node_enc28j60.zip rm yport-node_enc28j60.zip
 mv -f enc28j60.c hardware/ethernet/ mv -f enc28j60.c hardware/ethernet/
 +</code>
 +==Kompilieren der Software==
 +<code>
 make menuconfig make menuconfig
 </code> </code>
Zeile 134: Zeile 142:
 General Setup --> MCU frequency: 12500000 General Setup --> MCU frequency: 12500000
 General Setup --> Hardware/Periphery Class: Volkszaehler:Hutschienencontroller General Setup --> Hardware/Periphery Class: Volkszaehler:Hutschienencontroller
 +General Setup --> Enable Debugging: Einschalten
 General Setup --> VFS --> Atmel SPI Dataflash: Ausschalten 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 --> 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 --> 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 --> Ethernet (ENC28J60) support --> Netmask: 255.255.255.0 (die Subnetzmaske)
Zeile 141: Zeile 152:
 Network --> DNS support: Einschalten Network --> DNS support: Einschalten
 Network --> DNS support --> DNS-Server IP address: 192.168.1.1 (normalerweise die IP des Gateways) 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: Einschalten
 Applications --> System clock support --> Date and Time support: Einschalten Applications --> System clock support --> Date and Time support: Einschalten
Zeile 148: Zeile 161:
 Applications --> System clock support --> NTP Server: 0.de.pool.ntp.org (oder einen anderen NTP-Server) 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 --> Uptime: Einschalten
 +Applications --> System clock support --> Debugging Flags --> NTP Clock-Adjust: Einschalten
 Applications --> Http Server: Einschalten 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: "/demo/middleware.php/data/"
 +Applications --> watchasync service --> Include unix timestamp: Einschalten
 +Applications --> watchasync service --> Path in front of timestamp: ".json?ts="
 +Applications --> watchasync service --> Path at the end: ""
 +Applications --> watchasync service --> Summarize Events: Einschalten
 +Applications --> watchasync service --> Path in front of eventcount: "000&value="
 +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
 </code> </code>
 Die gespeicherte Konfiguration wird kompiliert und auf den Controller geflashed. Die gespeicherte Konfiguration wird kompiliert und auf den Controller geflashed.
 +<note important>Bei einigen Compilern tritt ein Fehler in der Datei services/watchasync/watchasync_strings.c in Zeile 146 auf. In diesem Fall ist die Verwendung einer Ubuntu-Live-CD zu empfehlen, bei der anstandslos kompiliert wird.</note>
 <code> <code>
 make make
-sudo avrdude -c arvisp2 -P usb -p m1284p -U flash:w:ethersex.hex+sudo avrdude -c avrisp2 -P usb -p m1284p -U flash:w:ethersex.hex
 </code> </code>
-Jetzt wird der ISP entferntder Controller nochmal neugestartet und ein Netzwerkkabel angeschlossen. Über den Browser der Wahl kann man über http://192.168.1.50 (Hier die entsprechende IP eintragen) auf seinen Controller zugreifen. Es erscheint die Ethersex Begrüßungsseite. +Am Ende sollte der ISP-Programmer fuer die weiteren Tests wieder entfernt werden. 
-==TODO== + 
-Test RS232/USB (vor LAN?) \\ +==Test der USB-Schnittstelle== 
-Test SD-Karte \\+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://192.168.1.50 (Hier die entsprechende IP eintragen) auf seinen Controller zugreifen. Es erscheint die Ethersex Begrüßungsseite. 
 + 
 +==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.txt" mit beliebigem Inhalt erstellt und auf der Karte gespeichert. Die SD-Karte wird in den Slot am Modul gesteckt und das Modul wieder eingeschaltet. Über das Debugfenster meldet Ethersex dass eine SD-Karte gefunden wurde. Über http://192.168.1.50/test.txt (Hier die entsprechende IP eintragensollte die Datei jetzt aufrufbar sein. 
 + 
 +==Test der S0-Eingänge== 
 +Da die Grundleiterplatte schon getestet wurde und funktioniert, werden jetzt die Grundleiterplatte und die Platine mit dem uC zusammen gelötet.\\ 
 +Jetzt werden, wie auch schon bei dem Test der Grundleiterplatte, die einzelnen Kanäle mit einer Drahtbrücke mehrfach überbrückt. Die LEDs unter der Netzwerkbuchse sollten dabei anzeigen, welcher Kanal gerade kurzgeschlossen wird. Über die Debugkonsole zeigt Ethersex an, dass watchasync eine Verbindung zum Server herstellt. Die Verbindung per watchasync kommt nur zustande, wenn permanent ein DNS-Server zur Verfügung steht, der den in E6 hinterlegten application --> watchasync service --> Server auflösen kann. Andernfalls gilt: keine Namensauflösung --> keine Datenspeicherung. Die einzelnen Events sollten nun auf der Demoseite von Volkszaehler.org angezeigt werden.\\ 
 + 
 + 
 +===TODO===
 Test S0-Eingaenge Test S0-Eingaenge
 +Gehaeuse
hardware/controllers/5x-s0-hutschienencontroller_bauanleitung.1323895767.txt.gz · Zuletzt geändert: 2011/12/14 21:49 von pepe