mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB DMX In/Out - Sinn oder Unssin folgenden Aufbaus


Autor: bte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich trage mich zur Zeit mit dem Gedanken einen DMX-Controller nach 
folgendem Schema zu bauen:

PC <-[USB(FTDI)RS232]-> Luminary LM3S811 Eval <-[SPI]-> mega32 <-> DMX

Folgendes lässt mir die Konstruktion sinnig erscheinen:

1) Auf allen Übertragungswegen lässt sich eine Datenrate>250kBit/s 
realisiern
2) der AVR soll gleichzeitig DMX empfangen und senden bei 44Hz 
Framefrequenz und 512 kanälen. Da selbiger lediglich einen UART hat,
erscheint SPI als sinvoller Kontakt zu Außenwelt.
3) Der mega32 hat mit seinen 2kB RAM genug Platz um den Kompletten 512 
Byte Outputframe und den kompletten Inputframe zu puffern
4) Das Evalkit hat genug Power um neben der RS232 zu SPI Brücke auch 
noch
intelligentes Merging durchzuführen.
5) Eine lösung mit mega8515 und USBN scheidet imo aus, da ich weder mit 
Material zu Ätzen eigener Boards ausgestattet bin, noch eine 
hinreichende Feinmotorik zum Löten von SMDs habe.
6) An den zweiten UART des LM3S811 ließe sich in Zukunft eine 
selbstgebaute Inputquelle anschließen (Fader/Taster die von nem 
zusätzlichen Board gelesen und nach RS232 gewandelt werden)

Die Firmware stelle ich mir wie folgt vor:
LM3S811
 - UART0 RX Interrupt:
    - Speichern und Puffern der Auszugebenden daten
    - Queuen von Kontrollanweisungen
 - UART0 TX Interrupt:
    - Senden der DMX-IN Daten zum PC
    - Senden von gequeueten Kontrollmeldungen
 - SPI Interrupt
    - Senden der gepufferten Ausgabedaten an den AVR
    - Puffern der vom AVR kommenden DMX daten.
 - main()
    - abarbeiten von Kontrollanweisungen
    - mergen von DMX-IN/OUT (einfache verknüpfung nach Maske,LTP und 
HTP)
AVR
 - UART TX Interrupt
    - DMX-Out
 - UART RX Interrupt
    - DMX-In
 - SPI Interrupt
    - Den Datenaustausch mit dem LM3S811
 - main
    - starten des DMX-Out nach der Break
    - start/stop des DMX-Out auf kommando vom M3

Sollte es einen besseren Weg oder Denkfehler geben, bitte ich darum dies 
aufzuzeigen.

mfg,
  bte

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist der Sinn an der Sache das ganze auf 2 und später sogar auf 3 
Prozessoren aufzuteilen wenn es locker mit einem geht? Nimm entweder ein 
AVR mit 2 UARTS (z.b.: ATMEGA162, MEGA64 oder MEGA128) oder du 
programmierst Software-UART. Eine weitere Möglichkeit wäre ein FTDI-Chip 
mit parallelem Ausgang. So solltest du keine Probleme haben das ganze 
mit einem Prozessor zu realisieren.
Es macht keinen Sinn, für fast jede Funktion einen eigenen Prozessor zu 
verwenden.

Grüße

Autor: K. B. (kbf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versteh jetzt dein Konzept nicht ganz, aber mitnem FTDI und nem 
RS485 Treiber kannste die Daten doch direkt verschicken und empfangen.


MfG
Karsten

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich mir auch schon gedacht, aber er will ja später noch Fader und 
Taster verwenden

Autor: bte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Controller, der das auszugebende Frame puffert macht doch sinn,
es mag vorkommen, das der PC so ausgelastet ist, das er Aussetzer bei 
der Signalerzeugung macht.

mega mit zwei Uarts klingt gut, wäre noch das Problem, der Verbindung 
zum FTDI - da muss ich doch selbst Platine machen und versuchen den 
aufzulöten.
Oder gibt es irgendwo günstig FTDI auf DIL adapter?
Oder gibt es evtl sowas direkt in nem DIP?

Alternativ, brauch ich dann ja nur nen RS485 Transceiver an den UART1 
vom LM3S811 anschließen oder seh ich das falsch?

mfg, bte

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Farnell gibt es z.B. den MM232R der geht einfach zu löten. 
Alternativ gibt es auch SMD-Adapter.

Grüße

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.