Midi Controller eigenbau Externe AD-Wandler oder USB-Hub 1.1

Gast #1929870
Lesenswert?

Morgen ,

also folgendes:

Ich baue mir einen MIDI-Controller. Mit Fadern, Potis und vielen Knöpfen 
:-)
Dieser wird über V-USB mit dem PC verbunden. Prototyp funktioniert schon 
einwandfrei :-)

Nur habe ich dabei ein Problem:
Ich würde gern mehr als 4 Fader und 4 Potis realisieren. :-)

NOCH reichen meine Programmierkentnisse nicht aus um meine Interne 
AD-Wandler rutine (ich benutze die AD Wandler vom Mega16, um die werte 
des Potis/Fader abzufragen) durch mehrere Externe AD-Wandler IC´s zu 
ersetzen :-(

Also meine Idee:
2 bzw. 3 Mega16 Über einen USB-Hub an den PC :-)
Nur soll der USB-Hub mit auf die Platine.

Gibt es da einen IC? Oder wie muss ich da vorgehen?

Lieber wäre mir das mit externen AD-Wandlern :-)
Hat einer ne ahnung wie ich den Controller dazu bringe externe AD 
Wandler zu benutzen?

Das ist mein "Grundstein" :-)
http://cryptomys.de/horo/V-USB-MIDI/

LG
Gast #1929881
Lesenswert?

Externe ADCs gibt es als parallele und serielle Typen.
Bei einem parallelen ADC braucht man einen ganzen Port für die 
Datenleitungen (mindestens 8) und eventuell zwei bis drei 
Steuerleitungen. Im einfachsten Fall geht das so: Die Messung wird über 
eine Art "Start"-Eingang angestoßen, ein Ausgang des ADC (BUSY/READY, 
DONE oder ähnlich, je nach Typ) zeigt an, daß die parallelen 
AUsgangsdaten nun gelesen werden können. Also Pinregister einlesen, an 
dem der Datenport dranhängt, das ist das Ergebnis der Messung.
Ein serieller ADC wird meistens über SPI angeschlossen, eine 
Schnittstelle mit einem Dateneingang, einem Datenausgang, einer 
Taktleitung und ebentuell einer Select-Leitung. Der Mikro sendet einen 
Kanalauswahlbefehl, laut Datenblatt des ADC, wartet kurz und liest dann 
das Ergebnis. Das kann über Hardware-SPI erfolgen, geht dann ähnlich wie 
über den UART, man konfiguriert die Schnittstelle, legt die Daten in ein 
Register, und wartet bis Senden fertig. Empfang analog dazu.
Gast #1929894
Lesenswert?

Nachtrag: Ich weiß ja nicht, wieviele Kanäle es sein sollen, aber als 
kleiner Tip: Der TLC2543 (serieller Typ) bietet 11 davon.
http://focus.ti.com/lit/ds/symlink/tlc2543.pdf

In dem vorhandenen Programm muß dann die Funktion, die den internen ADC 
ausliest, ersetzt werden durch eine, die diesen Chip benutzt.

Alternativ kann man auf zusätzlichen ADC verzichten und einen 
Analogmultiplexer vorschalten, der mehrere Eigänge nacheinander auf 
einen internen ADC schalten kann.
Gast #1930258
Lesenswert?

Ich kenne das interne Programm nicht (ja, gibt es im Netz, habe aber 
keine Zeit, es zu studieren). Es sollte möglich sein, die Funktion für 
den ADC zu erkennen und durch eine eigene zu ersetzen. Aber wie man dann 
die zusätzlichen Kanäle in Midi-Befehle verpackt, weiß ich nicht. Ich 
vermute aber, daß es möglich ist, im Program die Anzahl der Kanäle 
anzupassen, ohne wesentliche Teile neu schreiben zu müssen.

Übrigens, falls der TLC2543 zu schwer beschaffbar ist - Reichelt hat den 
TLC541, der ist ähnlich, mißt aber jeden Kanal nur mit 8 Bit statt 12 
Bit Auflösung, also 256 Stufen statt 4096.

Vielleicht wäre es der Problemlösung dienlich, hier im Forum ein paar 
relavante Ausschnitte (Codeschnipsel) des Programms zu posten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren