Forum: Mikrocontroller und Digitale Elektronik DIY-Looper - Auswahl der MCU


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Samuel J. (capstrovor)


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

: Bearbeitet durch User
von Rainer U. (r-u)


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

von Samuel J. (capstrovor)


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

: Bearbeitet durch User
von Samuel J. (capstrovor)


Bewertung
0 lesenswert
nicht lesenswert
Nachtrag zum USB-Mikrofon:
Ich hätte eigentlich gern, dass ich mittels Klinke Mikrofone und 
Instrumente anschließen kann.
... Aber die Idee mit dem Audiointerface schau ich mir genauer an!

von Samuel J. (capstrovor)


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

von Samuel J. (capstrovor)


Bewertung
0 lesenswert
nicht lesenswert
Habe nun endlich bei TI den PCM1870 gefunden, der UNGEFÄHR dem 
entspricht, was ich suche. Leider ist der Chip nur in einem für mich 
unlötbarem Gehäuse verfügbar. Er bietet auch etliche Funktionen, die ich 
eigentlich gar nicht brauche...

von Jobst M. (jobstens-de)


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

von Rainer U. (r-u)


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

von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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

von Eric B. (beric)


Bewertung
1 lesenswert
nicht lesenswert
Samuel J. schrieb:
> Ich wollte schon lange was mit digitaler Signalverarbeitung machen

Dann kann ich dir http://www.dspguide.com/pdfbook.htm empfehlen.
Kann man online lesen, gratis, oder sich im totem-Baum-Form erwerben.

von Samuel J. (capstrovor)


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

von Samuel J. (capstrovor)


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

: Bearbeitet durch User
von Axel R. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mikrofone mit "PulseDensityModulation" nützt nichts? Ist dann 1Bit breit 
seriell, oder?
Gibt es bei reichelt für 2.80

StromTuner

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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

: Bearbeitet durch User
von Samuel J. (capstrovor)


Bewertung
0 lesenswert
nicht lesenswert
Aus dem User-manual des Discoveryboards:
> The analog line input is connected to ADC of WM8994ECS/R through blue audio
> jack CN11.
das klingt so, als könnte ich da nicht einfach ein Mikrofon einstecken 
:P

: Bearbeitet durch User
von Rainer U. (r-u)


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

: Bearbeitet durch User
von Samuel J. (capstrovor)


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

von Samuel J. (capstrovor)


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

von Samuel J. (capstrovor)


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

: Bearbeitet durch User
von Samuel J. (capstrovor)


Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage zum PCM:
Unter den Parametrics ist angegeben, dass er folgende digitale 
Audiointerfaces unterstützt:
L, R, I2S und DSP.
Beudetet L und R hier left- und right justified. Das wäre also dann ein 
paralleler Ausgang, oder?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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

: Bearbeitet durch User
von Samuel J. (capstrovor)


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

von Rainer U. (r-u)


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

von Samuel J. (capstrovor)


Bewertung
0 lesenswert
nicht lesenswert
> hmm ok, dann schau ich mal ob ich noch ein billigeres Board mit mehr RAM
> finde
alles klar, ich suche anscheinend auf den falschen Seiten... Hab bei 
amazon gesucht, da kostet es 70€. Auf RS nur 30€!! Damit hat sich das 
jetzt auch erledigt.. :P

von Jobst M. (jobstens-de)


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

Liest Du eigentlich die Antworten? (in diesem Fall speziell meine)


Gruß

Jobst


Verwirrung: Hat ein Mod hier zwei Threads zusammen gepackt?

von Samuel J. (capstrovor)


Bewertung
0 lesenswert
nicht lesenswert
> Liest Du eigentlich die Antworten? (in diesem Fall speziell meine)
>> die anderen Formate werden nur Left-Justified oder Right-Justified genannt
Ich hab deine Antwort falsch verstanden, sry

> Verwirrung: Hat ein Mod hier zwei Threads zusammen gepackt?
jap

: Bearbeitet durch User

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]
  • [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.