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
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
Ich versteh jetzt dein Konzept nicht ganz, aber mitnem FTDI und nem RS485 Treiber kannste die Daten doch direkt verschicken und empfangen. MfG Karsten
Hab ich mir auch schon gedacht, aber er will ja später noch Fader und Taster verwenden
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
Bei Farnell gibt es z.B. den MM232R der geht einfach zu löten. Alternativ gibt es auch SMD-Adapter. Grüße
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.