www.mikrocontroller.net

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


Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.