Günstige (und bessere) alternative zur DMX Extension

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • pmayer
    kommentierte 's Antwort
    Finde ich einen absolut validen Punkt, aber welches Board für Ethernet zu DMX meinst du? Habe überall nur ArtNET-Nodes gefunden Hast du ein Beispiel?

    Ich bin sicher schaltungstechnisch nicht der Oberguru aber wenn es möglich ist, macht es natürlich Sinn mehrere Optionen zu ermöglichen.
    Würde der Speicher vom ATMega328p dafür reichen? Mit welchem Protokoll könnte man sowas ansprechen, damit es ordentlich einbindbar ist? Gibt es eventuell schon fertige Software dafür?

    Gast, wie ist deine Meinung dazu?
    Zuletzt geändert von pmayer; 18.11.2017, 18:51.

  • Labmaster
    kommentierte 's Antwort
    Wenn man das so sieht, hätte man aber das Board für Ethernet zu DMX nehmen können und sich das design einer eigenen Platine komplett sparen können.


    Ich finde es echt schade, denn ganzen Aufwand zu machen und dann wegen einer zusätzlichen RX Leiterbahn und einer Leiterbahn für ein Schaltsignals das ganze RS485 Interface erheblich einzuschränken. :-(
    Das ist doch Unfug !
    Die Lib wuid trotzdem funktionieren, weil die von der externen Beschaltung gar nix mit bekommt, man müsste nur beim Programmstart das Richtungssignal entsprechend anlegen.

    Die Beschaltung wäre wirklich trivial, siehe z.B.


    Mit P1.0 kann man die Richtung bestimmen, im DMX Fall würde die halt per Software die ganze Zeit fix high geschaltet bleiben. Die Leitung also einfach auf einen freien Pin am Prozessor legen, diesen am Anfang auf Ausgang konfigurieren und auf High schalten, sicherheitshalber den Pin auf welchem RX am prozessor liegt auf Eingang konfigurieren.
    Fertig, mehr Zusatzaufwand ist es nicht aber man könnte mit geeigneter Software halt alles was RS 485 ist anfahren, wer weis für was man das mal brauchen kann.
    Zuletzt geändert von Labmaster; 18.11.2017, 12:37.

  • Robert L.
    antwortet
    für RS485 gibts schon fertige Lösungen:
    https://www.kmpelectronics.eu/en-us/...oethernet.aspx (W5200 Ethernet)
    oder der "originale"
    http://sigma-shop.com/product/73/web...ount-rail.html (ENC28J60 Ethernet)

    RS485 Terminierung vorhanden, kann ausgelötet werde (bei ProDino auf der Platinen unterseite,..)

    (oder einfach mint den 2 Shields zusammenstecken, wenns nicht hutschiene sein muss, aber das ist bei DMX ja auch so..)

    Einen Kommentar schreiben:


  • hismastersvoice
    antwortet
    Die Idee ist zwar berechtigt, aber dann muss auch RX TX verdrahtet werden.

    Ich denke wir sollten das ganze jetzt nicht komplizierter neben als es schon ist.
    Mach die Platine fertig und dann kann man immer noch eine für modbus machen. Die Frage ob modbus überhaupt Sinn macht? Modbus > UDP? Modbus TCP mit 5 Sekunden Beschränkung?

    Ich hab mich damit beschäftigt als ich das Plugin für die SDM Smart Meter für den Loxberry gemacht habe. Ein reines ModBus Gateway macht mit den 5 Sek. wenig Sinn.
    Das RS485 jedoch schon eher.

    Einen Kommentar schreiben:


  • pmayer
    antwortet
    Ich habe mich an den Aufbau der von Robert verwendeten DMXSimple Bilbiothek gehalten. Für Modbus muss der Max ja auch an den UART des ATMega, oder? Ich weiß halt nicht, ob dann der hier gezeigte Code noch funktionieren würde... oder könnte man den umschreiben?

    Gebe aber zu, dass ich vielleicht nicht gut genug in der Materie drin bin und mit "Portpin" auf die Schnelle nichts anfangen kann.

    Die Idee einer programmierbaren DMX/RS485/MODBus Bridge finde ich aber absolut überlegenswert ^^ Ist dann halt ne Ethernet-Protokoll Frage...

    Einen Kommentar schreiben:


  • Labmaster
    antwortet
    Warum wird der RS485 Tranceiver nicht eh per Portpin schaltbar gemacht, dann könnte man alternativ statt DMX auch einfach normales RS485 Bidir oder Modbus verwenden ?

    Einen Kommentar schreiben:


  • pmayer
    antwortet
    Ach sorry, ich dachte ich müsste die Pull-Up/Downs auf 1440Ω (1k5) herab setzen...ich habe sie jetzt in Version 0.3 entfernt und auch nRE wieder auf 5V gelegt. Lustigerweise habe ich hier im Breadboard-Aufbau nRE unbeschaltet und es funktioniert alles... aber du hast natürlich recht, dass da ein definierter Zustand sein sollte.

    Wenn ich richtig liege, läuft der ATMega328p bei 3,3V nur auf 8MHz, ich glaube das könnte etwas knapp werden, könnte man aber sicher mal testen. Dan würde er sogar ohne Crystal laufen auf internem Taktgeber. Der Oki für 3,3V liegt preislich auch gleich und man könnte den AP2210k LDO sparen...

    Im Anhang mal die aktuelle (!) Version des Schaltplans.

    Vielen Dank für dein Input/Feedback!!!

    @all: Hat irgendwer die Software schon mal auf einem 3,3V/8MHz Arduino laufen gehabt?
    Angehängte Dateien
    Zuletzt geändert von pmayer; 15.11.2017, 22:47.

    Einen Kommentar schreiben:


  • Gast
    Ein Gast antwortete
    habe mir das Schema und den Print auf deinem Blog angesehen. Wahrscheinlich zeigen sie nicht den gleichen Stand. Ich gehe aber davon aus, dass du nur den Sender des RS485 Treibers angeschossen hast. Du müsstest den Empfänger über nRE abschalten, indem du nRE auf 5V legst. Die Anschlüsse DE und nRE liegen nebeneinander, du kannst von Hand eine Lötbrücke machen. Wie gesagt, den Pull-up und Pull-down Widerstand kannst weglassen / nicht bestücken, braucht ansonsten alles nur unnötig Strom.

    Man könnte die ganze Schaltung auch nur mit 3.3V speisen, inkl. Controller und RS485 Treiber.

    Einen Kommentar schreiben:


  • Robert L.
    kommentierte 's Antwort
    boa, du haust dich ja ganz schön rein,
    ich komm nicht mal dazu deinen Code anzuschauen..
    hab jetzt dann auch noch Urlaub, und Weihnachten usw.
    von mir deshalb leider aktuell wenig Unterstützung..

  • pmayer
    antwortet
    Hab mal ein bisschen was zur Entwicklung und zu den zu Grunde liegenden Entscheidungen im Blog geschrieben: https://allgeek.de/2017/11/15/ethern...e-im-eigenbau/

    Robert L., wenn du dort namentlich nicht erwähnt werden willst, nehm ich das natürlich gerne raus.

    Einen Kommentar schreiben:


  • pmayer
    antwortet
    Sitze übrigens schon seit ein paar Stunden an der Bauteilliste. Da ich die Sachen über die Firma kaufe, habei ich auf Chinaware verzichtet. Das heißt allerdings auch, dass ich ein paar Prozent Gewinn drauf schlagen muss, da sich das Finanzamt sonst beschwert.

    Ich bin die kompletten Bauteile bei digikey, reichelt und rs-components durchgegangen Bis auf die Netzwerkbuchse war rs-components immer teurer als einer der beiden anderen. Die Versandkosten würden den Preisvorteil sogar wieder auffressen.
    Die Kondensatoren und Widerstände (Murata, Panasonic, Kemet) nehme ich komplett von digikey, da dort bessere Mengenrabatte ab 10 Stück zu holen sind. Reichelt ist in manchen anderen Dingen (Dioden, Crystal, SN75176, LED's, Pin-Header) günstiger als digikey. Es werden also diese beiden werden.
    Zuletzt geändert von pmayer; 14.11.2017, 00:02.

    Einen Kommentar schreiben:


  • pmayer
    antwortet
    Übers Wochenende hab ich mich mal durch das Platinenlayout gekämpft und soeben bei OSHPark die Prototypen bestellt.
    Als Neuerung gibt es noch eine Power-LED :-D

    Die Woche werde ich dann die Bauteile ordern nachdem ich mich durch die BOM gewühlt habe.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 
Ansichten: 0
Größe: 33,0 KB
ID: 127188Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 
Ansichten: 0
Größe: 14,6 KB
ID: 127187
    Zuletzt geändert von pmayer; 12.11.2017, 21:47.

    Einen Kommentar schreiben:


  • pmayer
    antwortet
    Ich hab den Code um die Funktion für MAC-aus-EEPROM erweitert und und für Ethernet DHCP eingebaut (schaltbar). Außerdem habe ich ein wenig aufgeräumt und die Konfiguration in einen Block oben in der Datei verschoben. SPI wird jetzt auch nur noch bei Ethernet inkludiert, auch wenn das der Compiler natürlich wegoptimiert hat.
    Die paar Strings zur Debug-Ausgabe habe ich mit dem F()-Makro in den Flash verschoben um ein paar Byte Speicher zu sparen.

    Der Code kompiliert bei mir als Arduino Uno/Nano mit der offiziellen Ethernet Bilbiothek (W5100) sowie auch mit Paul Storffregens Ethernet Lib: https://github.com/PaulStoffregen/Ethernet und Robert L.'s Version von DMXSimple.
    Als ESP8266 kompiliert er (nur DHCP, keine MAC) mit https://github.com/Rickgg/ESP-Dmx.

    Kann das vielleicht mal jemand auf der ESP/Arduino Hardware testen?

    Robert L.: Bin natürlich auf dein Feedback gespannt.
    Angehängte Dateien
    Zuletzt geändert von pmayer; 12.11.2017, 12:57.

    Einen Kommentar schreiben:


  • pmayer
    antwortet
    HEUREKA!!! Funktioniert... wenn man den I2C richtig verkabelt geht es meistens besser :-D

    Robert L. Ich habe UDP_TX_PACKET_MAX_SIZE (300) auskommentiert, da EthernetUDP es selbst auf 24 definiert. Paull Stoffregens Ethernet Bibliothek macht intern viele Sachen mit dem Buffer besser als die offizielle Lib UND der W5500 hat größere Buffer als der W5100.
    Und habe "static myip" in "const myip" geändert... ;-)
    Zuletzt geändert von pmayer; 12.11.2017, 12:33.

    Einen Kommentar schreiben:


  • pmayer
    kommentierte 's Antwort
    Ich mach es vor Ethernet.begin(), weil dort brauch ich ja die MAC.

    Aber ich schau mir das noch mal an, hab mal einen Kumpel mit guten C und Microcontroller Kentnissen dazu gebeten...
    Zuletzt geändert von pmayer; 11.11.2017, 20:04.
Lädt...