Am Sonnabend haben wir uns wieder getroffen, um weiter elektrinische Schaltungen zu erstellen und über unsere persönlichen Projekte zu reden. Wir haben vor allem mit KiCAD weiter gearbeitet und die digitale Audioworkstation fortgesetzt. Im Zentrum standen diesmal der USB Host-Controller für MIDI-Geräte und der Analog-zu-Digital Wandler.
USB Host-Controller
MIDI ist das Musical Instrument Digital Interface. Es gibt viele Keyboards, Drum-Pads, Schieberegler usw. als pure MIDI-Geräte. Sie haben keine Lautsprecher, stattdessen sind sie hervorragend als Eingabegeräte für andere Synthesizer geeignet. Früher war die 9-polige MIDI-Buchse sehr weit verbreitet. Die neuen Geräte liefern ihre MIDI-Signale nur noch über USB, weil das flexibler ist.
Wir brauchen also einen USB Host.
Der ESP32 Minicomputer kann genau wie die vielen Arduino Boards selber nur als USB Peripheriegerät arbeiten. Das heißt, man kann ihn an einen Computer anschließen aber man kann nicht ein anderes Peripheriegerät wie ein Keyboard an den ESP32 anschließen. Es gab versuche, dies durch geschickte Softwaretricks zu erreichen. Die waren aber nicht ganz erfolgreich und führten letztendlich zu der Entwicklung des ESP32-S2. Aber der hat andere Nachteile für uns. Stattdessen braucht man einen USB-OTG Host-Controller als Vermittler (USB On-The-Go).
Weitere Informationen über MIDI kannst du zum Beispiel hier erfahren:
Dazu gibt es zwei populäre Varianten: Der MAX3421E von Maxim Integrated und den CH554 Microcontroller aus China. Letzterer kann mit eigener Software ausgestattet werden und liefert eine Serielle Schnittstelle mit nur zwei Drähten zum Minicomputer. Aber die Dokumentation ist spährlich und es gibt wenig Beispiele im Internet. Vom Preis her haben wir für unsere Stückzahlen keinen großen Unterschied zum weiter verbreiteten MAX3421 gesehen und uns deswegen für diesen entschieden.
Das Datenblatt enthält viele Beispiele für den Schaltplan. Wir brauchen die Variante als USB Host mit eigener Stromversorgung, der auch den USB-Bus mit Strom versorgt. Um die USB Geräte einschalten zu können nachdem alles andere fertig gestartet ist, haben wir einen der programmierbaren Ausgänge benutzt, um die +5V Stromversorgung des USB-Bus per Software schalten zu können. Eine 500mA Polyfuse schützt uns vor Kurzschlüssen im USB-Gerät.
Das Bauteilsymbol gab es leider noch nicht in KiCAD. Dieses mal haben wir aber kein eigenes erstellt, sondern hatten Glück bei snapEDA. Dort haben wir auch ein Symbol und 3D-Modell für das ESP32 DevKitC Board gefunden und übernommen.
Analog-zu-Digital Wandler
Wenn wir schon einen Audioausgang basierend auf I2S haben, wäre es doch auch schön, einen Eingang zu haben. Wir haben verschiedene Module auf Amazon gesichtet, um zu lernen, welche Schaltkreise verwendet werden. Wir sind dann über Umwege auf den Schaltkreis PCM1862 von Texas Instruments gekommen. Es gibt etwas preisgünstigere Analog-Digital-Wandler, aber die brauchen einen eigenen Taktgenerator und mehr Steuerleitungen für die Konfiguration. Daher ist dieser Chip mit I2C-Steuerschnittstelle und integriertem Taktgenerator ein super Kompromis für uns.
Anmerkung zum ESP32: Der Minicomputer hat auch integrierte Analog-Digital-Wandler. Einer davon wird für den Betrieb der WiFi-Hardware benötigt. Der übrige ist sehr schnell, aber auch sehr verrauscht. Zudem gibt es viele Problemberichte bzgl. Stereo-Aufnahmen. Deswegen wollen wir die nicht weiter betrachten.
Das Schaltplan-Symbol haben wir mit dem Generator von snapEDA erstellt. Das Ergebnis braucht sicherlich noch einige manuelle Verbesserungen, aber uns hat es erstmal genügt. Die notwendige Beschaltung ist in dem Datenblatt abgebildet. Es gibt dort sogar ein Beispiel-Layout für die Leiterplatte.
Der Schaltkreis hat insgesamt 8 Eingänge, wovon 4 für den linken Kanal und 4 für den rechten Kanal sind. Man kann per Software zwischen den 4 asymmetrischen Stereo-Eingängen umschalten. Es gibt auch die Möglichkeit, symmetrische Audiosignale direkt anzuschließen, so dass 2 symmetrische Eingänge wählbar sind.
Das Datenblatt empfiehlt 10uF Kondensator zur Entkopplung von der Mikrofon-Versorgungsspannung. Und ein 100 Ohm + 10nF Tiefpassfilter gegen zu hohe Frequenzen. Der Widerstand wirkt auch als Überspannungsschutz für den Schaltkreis (ESD).
Foto des Keyboards von https://pixabay.com/photos/synthesizer-keyboard-octave-music-5255545/