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