Forum: Mikrocontroller und Digitale Elektronik Midi Controller eigenbau Externe AD-Wandler oder USB-Hub 1.1


von Manuel (Gast)


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

von Sebastian (Gast)


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.

von Sebastian (Gast)


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.

von Manuel (Gast)


Lesenswert?

Also wenn dann sollte es schon der  TLC2543 sein!
Hab nicht mehr so viele Ports frei:-)

Ok, und wie Programmier ich das?
Bräuchte da Hilfe :-(

LG

von Sebastian (Gast)


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.

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.