mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik suche kleinen Controller mit I2S


Autor: Jörg H. (idc-dragon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich suche einen möglichst bastelfreundlichen Controller, der eine 
audiotaugliche I2S Schnittstelle hat. Sonst braucht er nicht viel 
können, wenige Pins reichen.
Mit meinen geliebten 8bit Atmels wird es wohl diesmal nicht reichen, 
weil der SSC nicht dafür taugt?

Vielleicht den kleinsten AVR32, den AT32UC3B164, hätte den Vorteil daß 
ich meinen Debugger dafür verwenden kann. Habe aber noch kein 
Bastelmodul mit dem gefunden.
Oder ein ARM, oder...?

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg

Also die ARMs sind denke ich dafür sehr gut geeignet. Ein SAM7S256 hat 
I2S mit drauf, kostet nicht viel, kann einiges und ist einigermaßen 
bastelfreundlich. Habe selbst schon ein bissl damit gespielt. Klappte so 
ziemlich auf Anhieb. Ist aber auch schon wieder was her wo ich damit 
rumprobiert hab, aber funktionieren tut es ohne weiteres.

Autor: Nik Bamert (nikbamert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du koenntest dir auch die dsPIC33F ansehen, die gibts sogar in 28pin 
DIP. Leider nicht ganz leicht zu bekommen, ich habe meine von Digikey 
aber ich denke man kann sie auch bei Farnell bestellen.

Der DSPIC33FJ64GP802 hat zB 64kB Flash, 16kB Ram, i2s, dac, adc in einem 
28pin dip/soic.
Was er wirklich bringt kann ich noch nicht sagen, ich habe die mir 
einfach interessehalber einmal bestellt, da es mir die Features und die 
Gehaeseform recht angetan haben. ^^

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Sonst braucht er nicht viel
> können, wenige Pins reichen.

Was soll das ganze den werden? Ich meine du kannst die ganze 
Schnittstelle ja auch in Software machen. Und fallst du jetzt stoehnst 
das sei zu langsam, was kann man denn mit I2S machen woefuer so ein 
oller AVR schnell genug ist?

Olaf

Autor: Rene B. (themason) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich meine du kannst die ganze Schnittstelle ja auch in Software machen.

Das wage ich mal zu bezweifeln. Selbst wenn man nur 8kHz hat liegt die 
Datenrate dennoch bei 2,048MHz, was zwar per HW-SPI zu schaffen ist, 
aber die LRClk dürfte einem da einen Strich durch die Rechnung machen.
In Software würd ich sagen kannst du das ganze vergessen. So jedenfalls 
meine Einschätzung. Und wenns dann auch noch CD-Qualität sein soll hast 
du in SW gar keine Chance.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardware-SPI / Hardware-USI kannste doch verwenden, das einzige was du 
beim Datenschreiben machen musst ist die WS-Leitung toggeln.

Autor: Jörg H. (idc-dragon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das soll schon nicht ganz so langsam werden, spricht deutlich gegen 
Bitbanging.
Der Tipp mit dem dsPIC klingt ganz gut. Nik, leihst du mir deinen?  ;-)
Wie sieht's denn mit der Toolchain aus?

Übliche DACs brauchen auch noch einen MCLK, z.B. 256*Fs, für ihre 
interne Signalverarbeitung oder so. I2S muß also voll synchron dazu 
laufen. Zweckmäßigerweise würde ich den MCLK auch als CPU-Clock nehmen 
(mit einem passenden Oszillator/Quarz).

Jörg

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Passt doch, nimm nen at tiny2313, den clockausgang als MCLK, 
Hardware-USI-Interface mit eingestellten Vorteiler, und im 
usi-complete-register immer das Wordselect toggeln.
Dann läuft alles synchron und die (fast) nichts belastet die Rechenzeit 
des Prozessors. ;-)

Autor: Rene B. (themason) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>das einzige was du beim Datenschreiben machen musst ist die WS-Leitung
>toggeln.

Ganz so einfach ist das nicht. Gerade wenn man das Timing einfach halten 
will kommt es darauf an das die WS-Leitung synchron zum Bitclock ist, 
sonst erzeugt man sich Jitter bzw das Datenwort wird falsch übernommen.


@Jörg

Der dsPIC würde auch gehen. Hatte mal selbst vorgehabt damit was zu 
machen. Aber der ARM war zu verlockend :-) Und ich hatte nicht unbedingt 
Lust wieder Ewigkeiten auf der Suche nach ner IDE, nem Developmentboard 
und nem Programmer zu sein mal ganz abgesehen vom Geldausgeben :-)

Autor: Vorbeigeschaut (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ein AVR als I2S Slave? Der LRCLK geht auf einen Interrupt-Pin, 
Bitclock und Daten dann per HW-SPI...

Autor: Rene B. (themason) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@vorbeigeschaut

Das geht. Das macht TravelRec in seinem Wave SD Karten Recorder mit 
XMega genauso. Nur da werden die Clocks eben von außen (bzw vom Wandler 
selbst) erzeugt und nicht vom uC.

Edit:
Der AVR macht aber dann auch nichts anderes außer die Daten in Empfang 
zu nehmen und an den XMega durchzureichen. Also mit Verarbeitung ist da 
nichts.

Wenn es zur Verarbeitung von I2S unbedingt ein AVR sein muß und man eben 
mit 8kHz leben kann, kann man auch einen kleinen CPLD nehmen der I2S 
serialisiert/deserialisiert und dem AVR über ein paralleles Interface 
zur Verfügung stellt.
Nur denke ich das der AVR dennoch recht beschäftigt ist wenn die Daten 
auch noch verarbeitet werden sollen.

Autor: Nik Bamert (nikbamert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe zu dem Thema DAC/I2s an ATmega gerade noch was gefunden, 
scheinbar hat Elmchan mal wieder was wahnsinniges gebaut ;-)

http://elm-chan.org/works/pcmp/report.html

Zitat:
DAC controls

The software DAC control is the main feature in this project. The sampling clock (LRCK) is generated with PWM function of TC1. The audio data is sent via USART1 configured in SPI mode. When LRCK is low, the left sample is sent to the DAC, and vice versa. Two separated interrupts are generated on both edge of the LRCK and each ISR reads audio data from data FIFO, mix beep sound (if it in sound) and send it to the USART1. These background processes occupy the CPU power of about 3.8MHz at sampling rate of 48kHz. The left processing power for the main process is about 11MHz. Some CPU registers are reserved for the background process so that it must be declared in all modules.

Autor: Jörg H. (idc-dragon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nik Bamert schrieb:
> Ich habe zu dem Thema DAC/I2s an ATmega gerade noch was gefunden,
> scheinbar hat Elmchan mal wieder was wahnsinniges gebaut ;-)
>
> http://elm-chan.org/works/pcmp/report.html

Abgefahren! Das werde ich mir mal genauer anschauen, danke!

ATmega hat den Vorteil, daß ich die Tools schon habe. Im Hinblick auf 
dsPIC habe ich am Wochenende erfolglos auf einen MPLAB ICD 3 geboten...

Jörg

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.