DIY-Looper - Auswahl der MCU

#4733104
Lesenswert?

Hallo,
ich möchte mir eine einfache Loopmaschine bauen.
Funktionsumfang:
Auf Knopfdruck sollte das Eingangssignal (Mikrofon o.Ä.) gesampelt und 
in den Speicher geschrieben werden. Beim 2. Knopfdruck wird die Aufnahme 
gestoppt und das Aufgenommene soll ausgegeben werden.
Und das ganze auf 3 getrennten Spuren.
Also keine Effekte (vorerst nicht, mal sehen wie weit ich komme).

Ich bin gerade beim Auswählen des Mikrocontrollers.
Dabei denke ich nicht an einen DSP, da ja eigentlich keine 
mathematischen Operationen auf das gesampelte Signal angewendet werden 
müssen.

Zur Samplingrate und Bittiefe:
Da ich jetzt nicht Studioqualität anstrebe, dachte ich dass eine 
Samplingrate von 60kHz und eine Bittiefe von 20 bit ein guter Kompromiss 
zwischen CD- und Studioqualität ist. Ein Loop sollte (bei v0.1 ;) ) 
nicht länger als 8 Sekunden dauern. Für eine Spur wären das dann 60kHz * 
20 * 8 = 1.2MB / Spur... Das ist schon eine Menge Speicher für einen uC 
(btw :P).

Meine Frage ist nun, welchen Controller (bzw. Dev-Kit) ich dafür 
verwenden sollte, bzw. welchen Systemtakt er mindestens haben sollte. 
Der Rest (Speicher, I/Os, etc) ist eh schon vorgegeben.
Ich dachte da z.B. an diesen hier mit externem ADC, DAC und SRAM:
https://www.adafruit.com/products/1342
Er Taktet mit 72MHz

Danke für die Hilfe!
#4733127
Lesenswert?

Samuel J. schrieb:
> Der Rest (Speicher, I/Os, etc) ist eh schon vorgegeben.

Wieso? Du kannst doch alle Komponenten auswählen, oder willst Du etwas 
vorhandenes umbauen?


Es würde noch helfen, wenn Du Deine Motivation mitteilst - Geld zu 
sparen ist es wohl nicht, denn so Geräte gibt es ja für 2stellige 
Euro-Beträge.

Willst Du eher programmieren lernen (externe Bausteine) oder was 
Anderes? Schon ein rauscharme Mikrofon-Umgebung, die 20 Bit wirklich 
ausnutzt, ist recht aufwändig.. oder möchtest Du ein fertiges Mikrofon 
mit USB benutzen?

usw.

Allgemein würde ich sagen, dass 70MHz ausreichen. Es können auch 16 oder 
20MHz ausreichen, aber dann musst Du um so mehr in der Lage sein, die 
Daten parallel zu verarbeiten, evtl. zeitkritische Programmteile in 
Assembler schreiben oder sehr viel Code-Optimierung zu betreiben.
#4733132
Lesenswert?

>> Der Rest (Speicher, I/Os, etc) ist eh schon vorgegeben.
> Wieso? Du kannst doch alle Komponenten auswählen, oder willst Du etwas
> vorhandenes umbauen?
Nein ich meinte mit den "Vorgaben" der Samplingrate und Bittiefe.

> Es würde noch helfen, wenn Du Deine Motivation mitteilst
Nein, Geldsparen ist es nicht :D
Ich hab mir ein Hobbyprojekt gesucht, dass 2 meiner Hobbys vereint... 
Ich wollte schon lange was mit digitaler Signalverarbeitung machen und 
dachte mir das ist ein guter Einstieg.

> Schon ein rauscharme Mikrofon-Umgebung, die 20 Bit wirklich
> ausnutzt, ist recht aufwändig..
Meinst du damit die Raumakustik? Oder die analoge Aufbereitung?

> oder möchtest Du ein fertiges Mikrofon mit USB benutzen?
Das ist keine schlechte Idee, da würde der ganze Analogteil wegfallen.
Ich könnte aber auch eine Soundkarte suchen, die für die Integration in 
eine uC-Umgebung gedacht ist (also mit paralleler Schnittstelle oder 
I2C). So müsste ich nicht noch das USB-Protokoll implementieren.
#4733483
Lesenswert?

Hallo,
ich bin auf der Suche nach einem Mikrofoninterface, welches mir das 
Mikrofonsignal aufbereitet und digitalisiert.
Das ganze gibt es ja als USB-Audiointerface usw.
Ich brauche das ganze aber mit einem parallelen oder (einfacherem) 
seriellen Interface (also I2C o.Ä.), um das Audiosignal dann digital 
weiterzuverarbeiten.
Kennt jemand so ein Interface?

lg
#4733544
Lesenswert?

Wär ja schön, wenn Du schreibst, welche Anforderungen Du hast.
Dynamik, Klirr, Bandbreite ...
Telefon, Hifi, Messmicro, Ultraschall, ...etc.

Parallelwandler gibt es für Messzwecke wie Sand am Meer, d.h. um 
Filterung musst Du Dich selbst kümmern. DIL könnte mittlerweile 
schwierig werden.

Die Zeiten der parallelen Audiowandler sind laaange vorbei. Im 
DIL-Gehäuse auch.
Das serielle Audio-Interface nennt sich I²S, die anderen Formate werden 
nur Left-Justified oder Right-Justified genannt. Die meisten Wandler 
beherrschen alle. Allen ist gemein, dass es sich um eine synchrone, 
serielle Schnittstelle mit Word-Clock handelt. (also 3 Leitungen)


Samuel J. schrieb:
> Er bietet auch etliche Funktionen, die ich
> eigentlich gar nicht brauche...

Was brauchst Du denn nicht?
Ich meine, hast Du Dir mal überlegt, was Du dort schreibst? Damit kann 
keiner etwas Anfangen.

Hol die Leute dort ab, wo sie sich gerade befinden! Eine wichtige Regel, 
wenn man Dinge beschreibt!


Gruß

Jobst
#4733608
Lesenswert?

Samuel J. schrieb:
> Meinst du damit die Raumakustik? Oder die analoge Aufbereitung?
>
>> oder möchtest Du ein fertiges Mikrofon mit USB benutzen?
> Das ist keine schlechte Idee, da würde der ganze Analogteil wegfallen.

Wenn Du schon mal selbst einen einfachen Mikrofonverstärker 
zusammengebaut hast, wirst Du ein gewisses Grundrauschen feststellen. 
wenn Dieses Gtrundrauschen die untersten 6 bit komplett überdeckt, 
kannst Du gleich 16 bit nehmen - verarbeitet sich einfacher uns ist 
immerhin CD-Qualität.

Samuel J. schrieb:
> ... Aber die Idee mit dem Audiointerface schau ich mir genauer an!

Dann kannst Du Dich erst mal mit der digitalen Signalverarbeitung 
alleine beschäftigen. Es gibt schon so USB-Soundkarten-Stöpsel für 
HEadsets, also mit Klinken für Mikrofon und Kopfhörer dran, für < 10 
Euro. Damit kannst Du die analoge Seite erst mal simulieren, bis mit der 
Signalverarbeitung - für die Du Dich ja hauptsächlich interessierst - 
alles läuft.
(Firma: matzetronics) #4733628
Lesenswert?

Samuel J. schrieb:
> dachte ich dass eine
> Samplingrate von 60kHz und eine Bittiefe von 20 bit

Warum so krumme Werte - der Standard von 48kHz Rate und 16 Bit sollte 
für normale Looper durchaus reichen.
Überlege dir, wie lange die Loop maximal sein soll, davon hängt der 
Speicherplatz im RAM ab, denn du dafür brauchst.
Wenn wir mal Mono vorausetzen, brauchst du pro Sekunde etwa (48000*16 
Bit) = 96 kByte.
Als Hardware könnte ein STM32F429 Discovery brauchbar sein, weil es 
einen 8MByte SDRAM mit an Board hat und genügend I2S Schnittstellen, um 
einen ADC und einen DAC anzusteuern. Allerdinge belegt das Display 
mögliche Ports, so das du das evtl. entfernen solltest.
#4733776
Lesenswert?

> Was brauchst Du denn nicht?
Oh man, ich hab vergessen den Link zum anderen Beitrag hinzuzufügen.
Beitrag "DIY-Looper - Auswahl der MCU"
hier steht, für was ich ihn brauche, sry nochmal.

> d.h. um Filterung musst Du Dich selbst kümmern.
hmm... genau das wollte ich umgehen.

> DIL könnte mittlerweile schwierig werden.
es muss nicht unbedingt DIL sein... Aber TSSOP wäre noch gut zu löten 
für mich. Dann kann ich mir einfach Adapterplatinen bestellen. Bin 
leider an Lochraster gebunden.

> Die meisten Wandler beherrschen alle.
Aber es sind einfach nur ADC-Wandler, oder? Also ohne integrierter 
analoger Aufbereitung?

Danke für die Hilfe!
#4733791
Lesenswert?

@r-u:
> Es gibt schon so USB-Soundkarten-Stöpsel
Ja aber dann müsste ich ja noch das USB-Protokoll implementieren. Gibt 
es keine Soundkarten für Embedded Systems? Habe gestern schon gesucht, 
hab aber nichts brauchbares gefunden, weil ich nicht wirklich weiß nach 
welchen Stichworten ich suchen muss.

@Markus:
> Das Discovery-Kit hätte schon Mikrophone und einen guten Audio-DAC
Ja aber ich möchte eigentlich nicht die onboard-Mics verwenden. In der 
Produktbeschreibung ist aber ein Audio Line-in und out aufgelistet. Die 
Frage ist jetzt nur, ob diese Eingänge entsprechend gefiltert und 
aufbereitet (also vorverstärkt) werden .

@mschoeldgen:
> Warum so krumme Werte - der Standard von 48kHz Rate und 16 Bit sollte
> für normale Looper durchaus reichen
Ja, ich hab auch gestern gesehen, dass es für solche Werte keine 
Audio-Wandler gibt (v.a. für 20 bit). Ich werde mich also wirklich auf 
48kHz und 16 bit festlegen.

> Ein Loop sollte (bei v0.1 ;) ) nicht länger als 8 Sekunden dauern. Für eine > 
Spur wären das dann 60kHz x 20 x 8 = 1.2MB / Spur
Das wären jetzt 48kHz x 16bit x 8s = 960kB und für das gesamte Gerät 
dann 960kB x 3 Spuren = 2.88MB

> Als Hardware könnte ein STM32F429 Discovery brauchbar sein, weil es
> einen 8MByte SDRAM mit an Board hat und genügend I2S Schnittstellen, um
> einen ADC und einen DAC anzusteuern.
Würde also gut passen!

@beric:
> Dann kann ich dir http://www.dspguide.com/pdfbook.htm empfehlen.
Danke für den Link! :)
(Firma: matzetronics) #4733821
Lesenswert?

Ein z.B. CS5331A ist ein Stereo 18 Bit ADC mit I2S Interface und kann 
direkt an o.a. STM32 angeschlossen werden. Enthalten ist im dem Chip ein 
AnitAliasing Filter, das mit der Masterclock mitläuft. Ohne viel 
Bauteile und lötbar im SOIC8 Gehäuse.
Ein Gegenstück dazu als DAC wäre z.B. der CS4334, der ebenfalls im SOIC8 
kommt und nur ein minimales Ausgangsfilter benötigt.
#4733846
Lesenswert?

Samuel J. schrieb:
> das klingt so, als könnte ich da nicht einfach ein Mikrofon einstecken
> :P

Nee, das mußt Du vorverstärken. Wenn Du nicht USB verwenden willst, 
kannst Di Dir auch ein (einfaches, billiges, gebrauchtes, kleines) 
Mischpult kaufen. Da hast Du auch alles dran an Eingängen und Ausgängen 
inkl. Mixer und Mikro-Verstärker, was Du so brauchst, und kannst es 
später in klein perfektionieren.
#4733861
Lesenswert?

> kannst Di Dir auch ein (einfaches, billiges, gebrauchtes, kleines)
> Mischpult kaufen
Stimmt, das wäre auch eine Möglichkeit. Wahrscheinlich auch die 
einfachste. Ist dann eben am Anfang nicht hoch integriert :D

Hab jetzt diese ARM Audio-Devboard gefunden:
https://www.tindie.com/products/Elemental/cortex-m4-audio-effects-development-board/
Sieht sehr gut aus, nur das es 1. teuer ist und 2. zu wenig RAM hat. Da 
bräuchte ich noch extra Hardware...

Aber nur mal so: ist es überhaupt möglich für mich, so einen Analogteil 
zu bauen? Angenommen ich verstärke das Signal auf 10V, dann wären das 
10V/65536bit = 150uV/bit.. Ich hab nicht mal ein Oszi das so genau 
messen kann (habe nur das Analog Discovery)... :D
Also werde ich eher bei einer fertigen Lösung bleiben müssen...
#4733900
Lesenswert?

> Mikrofone mit "PulseDensityModulation" nützt nichts?
Nein leider nicht. Ich möchte verschiedene Audioquellen anschließen, 
also sollte am fertigen Gerät dann 1 oder mehrere Klinke-Buchse(n) zur 
verfügung stehen.

> Enthalten ist im dem Chip ein AnitAliasing Filter, das mit der Masterclock
> mitläuft.
Das klingt schon mal nicht schlecht, danke! Das würde aber heißen, dass 
ich das Mic-Signal zuerst Vorverstärken müsste, oder?
#4733917
Lesenswert?

Ich glaube ich habe jetzt eine gute Lösung gefunden.
Der PCM1804 (ADC mit integriertem Filter) in Verbindung mit dem OPA1632 
als Eingangsverstärker.

OPA1632: 
http://www.ti.com/product/OPA1632/description&lpos=Middle_Container&lid=Alternative_Devices
PCM1804:
http://www.ti.com/product/pcm1804-q1/description?keyMatch=pcm1804&tisearch=Search-EN-Everything

Die Frage ist jetzt, ob ich wirklich direkt das Klinkenkabel vom 
Mikrofon auf den OPA verbinden kann.
(Firma: matzetronics) #4733938
Lesenswert?

Samuel J. schrieb:
> Sieht sehr gut aus, nur das es 1. teuer ist und 2. zu wenig RAM hat. Da
> bräuchte ich noch extra Hardware...

Du kannst keinen RAM auf diesem Board nachrüsten - kannste vergessen. 
Nimm dir lieber ein Board, wo schon satt RAM drauf ist und stricke den 
Audioteil dazu, das ist viel einfacher, deswegen mein Vorschlag mit dem 
F429 Discovery.

Samuel J. schrieb:
> Beudetet L und R hier left- und right justified. Das wäre also dann ein
> paralleler Ausgang, oder?

Nö, das sind nur unterschiedliche serielle Formate. I2S ist ein 
Standard, die anderen unterscheiden sich etwas von Hersteller zu 
Hersteller.
#4733947
Lesenswert?

> Du kannst keinen RAM auf diesem Board nachrüsten
hmm ok, dann schau ich mal ob ich noch ein billigeres Board mit mehr RAM 
finde

Ich glaube die Cortex-Prozessoren unterstützen DMA. Könnte ich dann von 
über diesen I2S-Bus über den DMA-Controller direkt in den RAM schreiben? 
Ich hab leider noch nie was mit DMA gemacht... funktioniert das mit I2S?

Könntest du auch mal kurz über den OPA schauen? Also ob ich da wirklich 
das Mic direkt anschließen kann?
Danke für eure Hilfe!
#4734018
Lesenswert?

Samuel J. schrieb:
> Könntest du auch mal kurz über den OPA schauen? Also ob ich da wirklich
> das Mic direkt anschließen kann?

Googel mal nach "Mikrofonverstärker Schaltung" und geh auf "Bilder" - 
das siehst Du, dass sie meist kapazitiv eingekoppelt werden.

Samuel J. schrieb:
> Ich hab leider noch nie was mit DMA gemacht... funktioniert das mit I2S?

Ich glaube, Du solltest erst mal beim "Hallo Welt" anfangen.. ;-) Danach 
nimmst Du Dir einen I2C-Chip vor (z.B. einen Temperatursensor), um das 
Protokoll zu lernen, und viel später nochmal DMA.

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