Forum: Mikrocontroller und Digitale Elektronik Passender µC


von Berti (Gast)


Lesenswert?

Hallo Leute!

Ich bin am entwerfen eines Lichtmischpultes (DMX512)
"Pflichtenheft" :
-> Dyn. Faderzuweisung (jeder Fader kann jeden Kanal Steuern)
-> Grafik LCD (KS0108 kompatibel)
-> Organisation der Lichtshow mit CUES(max 10 CUES Parallel)
-> Audio Trigger
-> Mischpult <--> PC via RS232
-> 512k SRAM fuer die Datenspeicherung

Jetzt meine Frage:

Welchen Kontroller würdet ihr verwenden?
8051 / AVR / C166

Ich habe schon einige kleinere Projekte mit 8051ern (ADuC812,
DS80C320,...) gemacht bin jetzt aber unschlüssig was ich wählen soll.
Das Hauptproblem ist der Grosse Speicher und die zeitintensiven
Rechenoperationen für gute Fade Ergebnisse.

Würde mich sehr über Ideen freuen!
ev. auch Codes und Schaltungen z.B. für den Audio Trigger oder Lösungen
für 512k RAM

Danke im Voraus!

mfg. Berti

von Stefan Kleinwort (Gast)


Lesenswert?

Wenn Du wirklich 512k RAM brauchst, dann würde ich einen Controller mit
entsprechendem Adressraum nehmen. Das Banking des Speichers kann sonst
sehr nervig werden. Hast Du schonmal den M16C oder M32C von Mitsubishi
angeschaut? Oder den neuen ARM von Philips, der hat massig internes RAM
(und ist schnell ...).

Wie viele Kanäle soll das Pult bekommen?

Für Szenen etc., die gleichzeitig im Speicher sein müssen, sollte auch
deutlich weniger RAM reichen. Was hälst Du von einer Memory-Card, um
Szenen, Programme etc. portabel abzuspeichern? Lässt sich an den
SPI-Port anschliessen.

Die Rechenleistung sollte eigendlich kein Problem (mehr) darstellen,
wenn es sinnvoll programmiert wird, für keinen der angesprochenen mc.

Um die ganzen Potis, Taster etc. anzusteuern, würde ich mehrere (z.B.)
AVRmega8 oder AVRmega16 nehmen und per IIC-Bus an den Haupt-mc
anhängen. Damit kann man da Pult schön modular halten, und viel
billiger geht es sicher auch nicht. In dieser Anwendung ist ja nichtmal
ein Quarz notwendig.

RS232 würde ich mir nicht mehr antun, schau mal nach USB-Bus über
FTDI-Chips. Viele Notebooks haben gar kein RS232 mehr, und von der
Geschwindigkeit ... kannst Du über den FTDI bis 1Mbaud (glaube ich)
fahren. Ausserdem bekommst Du bei RS232 Probleme mit der Baudrate, weil
Du 1. 115.200 und 2. 250.000 brauchst. Bei FTDI kannst Du die Baudrate
zum mc hin einstellen (hat mir der Messe-Fritze gesagt, nicht selber
ausprobiert).

Ich habe als Diplomarbeit ein DMX512-Mischpult gebaut, das ist
allerdings schon ne Weile her, als mc hatte ich den 68HC11 verwendet
gehabt.

Stefan

von Berti (Gast)


Lesenswert?

Danke erstmal für die Tips!

Welche SW is am besten für besagte Chips? Ich hab nur uVision 2 zuhause
und keine Lust um teures Geld noch was zu kaufen...
Weiteres problem: Die kleinen Dinger sind verdammt schwer zu löten!

Das Pult bekommt 24 Fader denen aber ein Kanal zwischen 1 - 512
zugewiesen werden kann (dadurch kann ich mit wenigen Fadern viele
Fixtures nutzen!!)

An Memory Card oder Flash card habe ich auch schon gedacht...
Da scheiterte es wieder an meinen Kenntnissen!
Aber SPI hört sich interresant an... was wären das zb für Karten?

Das mit dem IIC Bus und den AVR's ist auch ein interresanter
Ansatz...
Ich hatte eine Memory Mapped I/O Version vor Augen. Aber so ist das
wirklich viel besser! Vor allem übernimmt der AVR die entprellung und
ähnliche Kindereien...

Vor USB schrecke ich ein bisschen zurück weil ich keinerlei erfahrungen
damit habe.
Ich habe VC++ Programme für die RS232 geschrieben aber keine Ahnung wie
ich da mit USB arbeiten soll...
(Aber was nicht ist kann ja noch werden)

Danke erst mal!

mfg. Berti

von ERDI - Soft (Gast)


Lesenswert?

Ich würde da Richtung gehen.
Ich plane derzeit selbst ein Mischpult (allerdings für Audio). Da
werden alle Poti's (Lautstärke, Gain, Bass, Treble...) von nem
ATtiny26 abgefragt. Der hat bis zu 11 analoge Eingänge. Hab mal
ausgerechnet, dass man mit einem ATtiny26 gut 20 Kanäle mittels
Analogswitch abfragen kann, ohne etwas zu verpassen.
(Da werden sich jetzt einige Fragen, nur 20? Natürlich gehen mehr, aber
es wird immer aus meheren Werten pro Poti ein Mittelwert gebildet. So
verhindert man Sprünge in der Lautstärke durch Wandlungsfehler des AVR
oder einfach Widerstandsschwankungen der Potis ...)

Dieser AVR gibt seine Werte an den Hauptprozessor per SPI weiter,
allerdings nur, wenn sich auch wirklich was ändert. So kann sich der
Hauptprozessor um andere wichtige Dinge kümmern und es braucht auch
keinen so Leistungsstarken.

Nimm doch am Anfang die serielle Schnittstelle. Ist für den Anfang am
einfachsten. Wenn du dann mal Zeit und Lust hast, kannst du immer noch
USB mit besagtem Chip nachrüsten.

von Berti (Gast)


Lesenswert?

Auch ein interresanter Ansatz!

Aber da steht wieder das Problem mit den 512k...

vielleicht kommt ja noch ne Lösung!

von Nik Bamert (Gast)


Lesenswert?

Hi!

Also die karten mit spi sind mmc (MultiMediaCards).
siehe z.b.http://homepage.ntlworld.com/seanellis/mmcserial.htm

Nik

von ERDI - Soft (Gast)


Lesenswert?

Für was brauchst du die 512K RAM?
Um Bilder und Schriften für das Display zu speichern, kannst du ein
serielles EEPROM nehemn. Auch für Variablen, die nur selten geändert
werden oder die nach abschalten erhalten bleiben sollen, ist EEPROM zu
empfehlen.

Durchsuch mal das Forum. Da gab es erst vor kurzem nen Thread, in dem
es um Speicher ging. (War der vielleicht sogar von dir?)
Da kam dann serieller SRAM als antwort. Ich muß ehrlich sagen, dass ich
sowas noch nicht gesehen habe, aber wenn andere das sagen, dann wird da
schon was dran sein. Vielleicht kannst du auch in der Richtung was
machen.

Hab bei meinem vorigen Beitrag leider was verschluckt:

"Ich würde da Richtung gehen."
Sollte heißen: Ich würde da Richtung -AVR- gehen.

Vielleicht kannst du ja mal zeigen, wie genau dein Pult aussehen wird.
Ich denke, dass es interessant wäre, Lichtmischpult und Audiomischpult
in einem ähnlichen Design zu bauen. :-)

von Stefan Kleinwort (Gast)


Lesenswert?

>Welche SW is am besten für besagte Chips? Ich hab nur uVision 2
>zuhause
>und keine Lust um teures Geld noch was zu kaufen...
>Weiteres problem: Die kleinen Dinger sind verdammt schwer zu löten!

Für M16C gibt es einen C-Compiler von Mitsubishi als 4-Monate-Trial. Es
gibt auch noch eine alte DOS-Version (2.0), die wohl komplett frei ist.
In Stuttgart bastelt schon länger jemand an einem gcc-Port für den
M16C.
Für ARM sollte es den gcc geben, und für AVR ja sowieso.
Mir persönlich kommt das Konzept von gcc sehr entgegen, damit kann ich
verschiedene mc mit meiner Lieblings-Entwicklungsumgebung bearbeiten,
aber es gibt auch genug Leute, die mit einem nakten Compiler wenig
anzufangen wissen.
Wenn Dir das Löten Pobleme macht, dann nimm doch eine fertige
Testplatine. Für den M16C gibts die von Glyn für 50€, der ARM ist hier
auf der Seite angeboten. Die eigendliche Peripherie dann über AVR-mc im
DIL-Gehäuse anbinden, dafür reicht ein 10-pol-Stecker.

Der M16C hat den Vorteil, dass er schon genug serielle Schnittstellen
on-board mitbringt (5, jeweils verschiedene Modi: eine DMX, eine IIC,
eine PC-Schnittstelle [FTDI-USB oder RS232], eine SPI für mmc-Card,
eine zum Debuggen). Ausserdem liefert Mitsubishi einen ganz brauchbaren
Debugger mit (debuggen und Programm-Download über serielle
Schnittstelle). Die 16kbyte internes RAM müssten eigendlich auch
ausreichen, damit kann man den M16C im Single-Chip betreiben. Es gibt
aber auch CS-Logik etc. auch onboard, externes RAM wäre also auch kein
Problem.

>Das Pult bekommt 24 Fader denen aber ein Kanal zwischen 1 - 512
>zugewiesen werden kann (dadurch kann ich mit wenigen Fadern viele
>Fixtures nutzen!!)

Gutes Konzept. Aus eigener Erfahrung kann ich Dir aber nur raten, viel
Zeit in die Bedienungsanleitung zu stecken, jedenfalls wennd das Pult
hinterher von anderen Leuten bedient werden soll. So virtuelle Fader
scheinen in die meisten Köpfe schwer reinzugehen ;-))

>An Memory Card oder Flash card habe ich auch schon gedacht...
>Da scheiterte es wieder an meinen Kenntnissen!
>Aber SPI hört sich interresant an... was wären das zb für Karten?

Die mmc-Card hat einen "SPI-Compatibility-Mode", damit kannst Du sie
direkt an den SPI-Bus anschliessen. Wenn Du sie nur in Deinem Lichtpult
verwenden willst, brauchst Du ja kein Filesystem o.ä., dann ist die
Software dafür auch recht einfach.

>Das mit dem IIC Bus und den AVR's ist auch ein interresanter
>Ansatz...
>Ich hatte eine Memory Mapped I/O Version vor Augen. Aber so ist das
>wirklich viel besser! Vor allem übernimmt der AVR die entprellung und
>ähnliche Kindereien...

>Vor USB schrecke ich ein bisschen zurück weil ich keinerlei
>erfahrungen
>damit habe.
>Ich habe VC++ Programme für die RS232 geschrieben aber keine Ahnung
>wie
>ich da mit USB arbeiten soll...
>(Aber was nicht ist kann ja noch werden)

FTDI stellt Dir im Prinzip eine virtuelle UART zur Verfügung. Deine
Software muss garnicht merken, dass es kein UART ist. Es gibt aber DLLs
von FTDI, mit denen Du die Ansteuerung auch direkt in Dein Programm
einbauen kannst, aber wie gesagt: nur als Option.
Auf der mc-Seite sieht die Hardware so aus, dass Du statt dem
RS232-Treiber den FTDI nimmst. Dieser ist über RXD/TXD seriell an den
mc angeschlossen. Braucht halt noch einen Quarz (und optional noch ein
EEPROM, näheres auf der FTDI-Seite).
Ist wirklich narrensicher, habe noch niemand mit Problemen damit
gehört.

Bei meinem eigenen Pult war das eigendliche Problem übrigens die
Mechanik. Ich hatte 32 Kanäle, 16 Szenen, insgesamt 52 Fader, die
Schlitze haben mich fast zum Wahnsinn getrieben. Heute würde ich mir
das industriell machen lassen. An den Fadern zu sparen rächt sich
hinterher bitter, wenn Du sie herbekommst, dann verwende welche mit
einer gleitenden Kunststoffabdeckung über dem Schlitz.

Stefan

von Stefan Kleinwort (Gast)


Angehängte Dateien:

Lesenswert?

Hab mal ein Bild von meinem Pult angehängt. (Vorsicht:500kbyte).

Stefan

von Hans (Gast)


Lesenswert?

ähmm.. gaaaanz andere idee... nimm einen arm..aber einen richtig grossen
der einige MB an ram drinnen hat...

dann www.uclinux.org ... dann hast du linux drauf laufen...

programme schreibst in der sprache die du willst...sprich die du unter
linux laufen lassen willst (basic, c, perl, python,...)

anbinung an den pc machst mit gemütlich mit ethernet ;)

das ist richtig fix und einfachst zu verwenden..ich denke da an ein web
interface per cgi das einfach die gewünschen befehle dir wegschickt...

oder nimm gleichen einen industrial pc... die haben alles drauf...

also auch 5.1 sound, lcd, VGA, usb,...

das wär glaub ich eh das schönste...die bekommst um ca 200e...da läuft
tust ein richtiges linux...booten tuts z.b von compact flash und
braucht unter 10W ;)

ein fertig bestücktes board sammt arm für uCLinux kostet um die 100e

ich hab das noch nicht probiert werd ich aber bald machen weil ich
glaube das wird für viele einsatzzwecke das einfachste sein...

73 de oe6jwf | hans

von Peter D. (peda)


Lesenswert?

@Hans

Ich kenne viele Projekte, die alle nie fertig wurden, weil es unbedingt
immer sofort die eierlegende Wollmilchsau werden sollte.

Siehe auch Maut Debakel.


Daher lieber klein anfangen aber was auf die Beine stellen, was erstmal
läuft.

Und dann erst größer werden.

Das geht auch viel schneller, weil man da ja auf den bereits gewonnen
Erfahrungen aufbauen kann.


Peter

von Berti (Gast)


Lesenswert?

Danke erst mal für die Zahlreichen Tipps!

Werd mir jetzt erst mal gedanken machen und mich dann wieder Melden!

mfg. Berti

PS: ATTiny als ADC mit I^2C ist schon fix...
Auch MMC ist jetzt als fixer Bestandteil zu sehen!

von Berti (Gast)


Lesenswert?

Hallo Leute!

Will nicht nerven... ABER:

Ich hab mir jetzt schon die Augen Wund gegoogelt aber noch imma nix
brauchbares zum Thema MMC gefunden...

Hat jemand von Euch vielleicht fertige C Libraries für einen AVR?

zb. MMC_Send(addr,data)

oder so was ähnliches...

__________

Beim Thema DMX hab ich keine Probleme!
Erledigt sowiso alles die UART...


Danke im Voraus für die Hilfe

mfg. Berti

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
Noch kein Account? Hier anmelden.