AVR-NetIO als "Arduino" mit LAN

Begonnen von amithlon, 19 August 2016, 09:48:41

Vorheriges Thema - Nächstes Thema

amithlon

Hallo,,

eigenlich passt das Thema nirgens richtig, auch zu FHEM nur teilweise, aber vielleicht interessiert es doch.
Wer noch aus alten Zeiten ein Pollin AVR-NetIO liegen hat
http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bauelemente_Bauteile/Bausaetze_Module/Bausaetze/Bausatz_AVR_NET_IO.html
und inzwischen eher bei Ardiono & Co. gelandet ist:

das NetIO zum "echten Arduino" umzurüsten erfordert nur einen Kondensator und eine Leitungsänderung.
Einen ISP-Programmer sollte man verfügbar haben und ein Mega644 oder Mega1284 statt des Original Mega32 ist auch zu empfehlen.

Das Ergebnis ist dann ein Arduino mit max. 128k Flash und 16k Ram (mit dem 1284).
Ich hatte noch die Relaiskarte rumliegen, die Spannugsversorgung habe ich noch geändert, nun heizt das Teil auch nicht mehr wie ein Ofen.

Im Moment ist er MQTT-Client und schaltet die Relais. Natürlich kann man auch andere Protokolle einbinden, eigentlich sollte alles, was auf einem Arduino mit AVR läuft, darauf laufen.

Falls es also Interesse gibt, schreibe ich die Details dazu, will nicht unnötig das Forum zumüllen.

Gruß aus Berlin
Michael


devo

Hallo Michael,

sehr interessant Deine Lösung, an einer Beschreibung der Hardwareänderung und der eingesetzten Software
währe ich sehr interessiert.

Vielen Dank und viele Grüße

Detlev

amithlon

Hallo,

ok, bin gerade zeitlich etwas kanpp dran, aber als Anfang:

Nötige Änderungen am NetIO: Leiterbahn zum Pin 7 der RS232-Buchse auftrennen (wird ohnehin nicht genutzt) und statt dessen mit Pin 4 der Buchse verbinden, damit steht DTR für die Arduino-IDE zu Verfügung.
Kondensator 100n zwischen Pin 9 des MAX (ist frei) mit Pin 9 des AVR (Reset) verbinden, damit kann die IDE den Bootloader starten.

Jetzt ist ein ISP-Programmer nötig (oder ein Arduino mit dem ISP-Sketch).
In der IDE muß Mighty-Core installert werden, um den Mega32 bekannt zu machen. In Datei -> Einstellungen Boardveralter -URL also hinzufügen:
https://mcudude.github.io/MightyCore/package_MCUdu...
und in der Boardverwaltung das Paket installieren. IDE jetzt besser beenden und neu starten.

Jetzt einen USB-RS232-Adapter (diesmal ein echter mit RS232-Pegeln) an
das NetIO gesteckt. Wer ein NetIO hat, hat ja eigentlich ohnehin noch
rumliegen oder eben an eine echte Serielle soweit vorhanden.
Bei den Boards sollte jetzt der Mega32 verfügbar sein.

Den ISP-Programmer auswählen und Bootloader auf den Mega32 brennen.
Klappte bei mir prompt nicht, mit meinem China-AVR-ISP kam AVRDude wohl nicht zurecht. Also Bootloader und Fuses aus AVR-Studio geflasht.

Das AVR-NetIO hat sich anschließen problemlos in der IDE gemeldet, den Test-Sketch statt für den ProMini für den Mega32 geflasht und (erstmal) fertig.

Problem ist eigentlich nur, den passenden Bootloader zu flashen und die Fuses zu setzen, ich kenne jetzt Deine Vorkenntnisse nicht.
Die Bootloader liegen im MightyCore PAket, Fuses ist erstmal nur wichtig: Bootsize 2048 Byte und BOOTRST sowie die für den Takt.

Wenn es aus der Arduino-IDE klappt, setzt AVRDude die automatisch richtig.

Gruß aus Berlin
Michael

devo

Hallo Michael,

vielen Dank für Deine schnelle Antwort. Werde ich am Wochenende mal ausprobieren. Ich habe so einen AVR-NetIO noch hier rumliegen.

Viele Grüße

Detlev

andreas_n

Ach wenn der Beitrag alt ist - evt. habe ich ja Glück. Denn so ein Board habe ich auch noch und würde es gerne weiter nutzen.
In der Ethersex Konfiguration habe ich eine MQTT Client gesehen und konfiguriert. Versuche waren leider erfolglos. Beschreibung sind auch kaum vorhanden.
Deshalb ist dieser Lösungsansatz interessant und hätte Interesse an das Projekt.
Wäre also toll wenn Ihr den Quellcode und evt. weitere Erkenntnisse teilen könnt.

Danke Andreas

amithlon

Hallo,

schön, daß da noch jemad nach so langer Zeit drüber stolpert.
Die Gründe für meinen damaligen Umbau waren ja erstmal, daß die Teile alle ungenutzt in den Kisten lagen...
Ich verweise jetzt erstmal auf meinen thread im Microcontroller.net:
https://www.mikrocontroller.net/topic/404435

Meine NetIO sind inzwischen bei Bekannten im Einsatz, ich kann Dir aber gern weiterhelfen.

Gruß aus Berlin
Michael



andreas_n

Danke für die schnelle Antwort. Den Umbau habe ich schon durchgeführt. Den Artikel kenne ich auch.
(Mein Vorhaben ist im wesentlichen Digitale-Ausgänge mit MQTT anzusteuern)
Im Moment ist es mit nicht klar wie das Ganze zu verstehen ist.
Ich glaube...
Mit dem ISP (ich habe einen USBtinyISP) muss eine Art Bootloader über die ISP Schnittstelle auf dem NetIO installiert werden. Diesen werde ich irgendwo (AVR-Studio) finden.
Danach kann die eigentliche Programmierung mit der  Arduino-IDE. Dazu wird zwingend eine RS232-Anbindung benötigt.
Könnte dies so stimmen?


amithlon

Hallo,

Mit der IDE und dem Arduino-Bootloader drauf brauchst Du dann nur noch eine serielle Verbindung, hier ein üblicher USB-RS232-Adapter.

Kurzfassung: ArduinoIDE installieren.
Die ArduinoIDE kann man wahlweise auch portable installieren:
Nicht den Windows-Installer sondern das zip-Archiv runterladen.
zip irgendwohin entpacken, die IDE aber noch nicht starten.
Im entpackten Arduino-Ordner einen Ordner mit namen portable anlegen.
Jetzt die IDE starten. Es wird dann alles (Erweiterungen, Bibliotheken, Projekte) in diesem Ordner abgelegt und man kann den kompletten Arduino-Ordner einfach woanders hinkopieren oder z.B. von einem USB-Stick an einem anderen Rechner starten und hat alles dabei. 

Mighty Core in der IDE installieren:
https://github.com/MCUdude/MightyCore
Wenn Du mit der Anleitung dort nicht zurecht kommst, fragen.
Die Bootloader gehören zur ArduinoIDE und sind dort enthalten. Pfad müßte ich nachschauen.
Man kann die dann direkt aus der IDE brennen, Deinen Programmer einstellen, Deinen AVR-Typ einstellen usw. Fuses werden dann auch gleich richtig gestetzt. Wenn das nicht klappen sollte, schaue ich nach den Pfaden, dann kannst Du auch Dein Programmiertool nehmen und das hex flashen und die Fuses setzen.

Den Source für die Relaiskarte und MQTT müßte ich auch noch haben.

Gruß aus Berlin
Michael


andreas_n

#8
Danke!
Das mit dem Boot-Loader scheint erfolgreich gewesen zu sein. Jetzt muss ich noch eine serielle Schnittstelle finden. So was gibt es bei mir leider nicht mehr.
Aber an die Sourcen wäre ich noch interessiert... Wäre toll wenn du dies freigeben könntest.

OK das mit der seriellen Schnittstelle war auch OK. Konnte einen Testcode übertragen.

amithlon

Hallo,

schön wenn es soweit geht.
Ich habe erstmal mal was angehängt. War ein Test für die Pollin-Relaiskarte.
Die IPs im Sketch mußt Du natürlich an Dein Netzerk anpassen.
Die Libraries UIPEthernet und PubSubClient mußt Du in der IDE naoch installieren, sind bei bei github zu finden, einfach runterladen und mit Sketch->Bibliothek einbinden->.ZIP-Bibliothek hinzufügen.
Der Sketch passt noch auf einen Mega32, etwas Platz für Erweiterungen bleibt noch.

Gruß aus Berlin
Michael
 



andreas_n

Es funktioniert und ich kann es auf meine Bedürfnisse anpassen. Danke!

Übrigens, durch einen Zufall habe ich herausgefunden, dass es nicht notwendig ist die Hardwaremodifikation durchzuführen.
Es geht alles mit dem USBTiny Programmer. Die Übertragung des Sketches ging einfach (und nur) über den Menüpunkt "Sketch/Hochladen mit Programmer"
Als Programmer habe ich den "USBTinyISP (MightyCore" ausgewählt.

Gruß aus Osnabrück
Andreas