Forum: Mikrocontroller und Digitale Elektronik dsPIC DAC/FFT Fragen


von Barnes (Gast)


Lesenswert?

Hallo,

für eine portable Anwendung brauche ich einen sparsamen µC mit DSP 
Architektur.
Ich habe da an einen dsPIC gedacht.

Nun fällt mir auf, dass kaum ein dsPIC einen DAC besitzt.
Ist das Normal ?

Ich muss eine FFT machen und weil es dafür bereits von Microchip 
Libraries gibt, habe ich an den dsPIC gedacht.

Eine allgemeine Frage noch:

Kann ich mit dem dsPIC (dsPIC33FJ128GP804), der einen DAC hat, 
Frequenzen im mHz Bereich erzeugen ? Mit einem DDS IC würde das 
natürlich gehen.
Aber es sollte auch mit dem dsPIC gehen, oder ?

Ich würde im Betrieb die Sampling Frequenz ändern und damit die 
Ausgangsfrequenz anpassen. Kann ich das über ca. 6 Dekaden machen (10mHz 
- 10kHz) oder geht das nicht so einfach, wie ich mir das denke ?

Ich bin noch neu auf dem Gebiet dsPIC und muss mir erstmal einen 
Überblick verschaffen.

Danke für die Antworten !

MfG

von Gerd G. (gege)


Lesenswert?

Hi Barnes,

falls Du mit dem DAC Audio-Frequenzen erzeugen willst: nimm einen 
Audio-Codec, da sind Filter etc. gleich mit bei und das klingt sehr gut. 
Bei Microchip findest Du Sourcen und Schaltungen dazu.

Gruß

Gerd.

von Gerhard (Gast)


Lesenswert?

Hallo Barnes

was verstehst du unter sparsam ? Ich habe mit den dsPIC33 noch nicht 
gearbeitet, nur mit dem dsPIC30. Die brauchen bei 8MIPS schon so 40mA. 
Die dsPIC33 sollen sparsamer sein, musst du aber im Datenblatt 
nachlesen.
Zu deinem dsPIC33: gibts den schon ? Bei Microchip hat der den Status 
"future product" (wenn ich mich nicht in der Zeile geirrt habe.)

Du kannst aber auch einen externen DAC verwenden, z.B. einen seriellen 
DAC mit SPI-Schnittstelle. Um damit aber einen 10kHz-Signal, evtl sogar 
als Sinus zu produzzieren musst du mindestens die 10fache 
Geschwindigkeit rechnen. Ob du da nicht mit einem kompletten Baustein a 
la XR2206 oä. bzw DDS besser dran bist ?

Gerhard

von Benedikt K. (benedikt)


Lesenswert?

Gerhard wrote:

> Zu deinem dsPIC33: gibts den schon ? Bei Microchip hat der den Status
> "future product" (wenn ich mich nicht in der Zeile geirrt habe.)

Ja, den gibts schon lange.

Barnes wrote:

> Kann ich mit dem dsPIC (dsPIC33FJ128GP804), der einen DAC hat,
> Frequenzen im mHz Bereich erzeugen ? Mit einem DDS IC würde das
> natürlich gehen.
> Aber es sollte auch mit dem dsPIC gehen, oder ?

Ja, geht wunderbar.

> Ich würde im Betrieb die Sampling Frequenz ändern und damit die
> Ausgangsfrequenz anpassen. Kann ich das über ca. 6 Dekaden machen (10mHz
> - 10kHz) oder geht das nicht so einfach, wie ich mir das denke ?

Ja, aber du scheinst DDS nicht ganz verstanden zu haben. Bei DDS ist die 
Samplerate konstant. Bei 6 Dekaden würde ich einen 24 oder gleich 32bit 
Accumulator verwenden, das ergibt bei 96kHz Samplerate etwa 0,02mHz 
Auflösung.

> Ich bin noch neu auf dem Gebiet dsPIC und muss mir erstmal einen
> Überblick verschaffen.

Dann wünsche ich viel Spaß. Du wirst dich mit Sicherheit mehr als einmal 
über die dsPICs und die vielen Ungenauigkeiten im Datenblatt, den Bugs 
in der Software und noch vieles mehr aufregen. Ich konnte mich 
zumindeste mit den dsPICs nicht anfreunden, da vieles einfach nicht so 
lief wie es laut Datenblatt sollte.

von Barnes (Gast)


Lesenswert?

Hallo,

danke für eure Beiträge.

Stimmt, das ist ein Future Product.

Aber ich kann schon die Sampling Frequenz vom DAC über einen Bereich von 
6 Dekaden einstellen oder ?
Das ist sehr wichtig.

Ich will mit dem DAC ein Sinusgemisch erzeugen. Dafür bräuchte ich
mehrere DDS und einen Summierer.
So hätte ich die Stützwerte schon digital und könnte einen nach dem 
anderen umsetzen.


MfG

von Barnes (Gast)


Lesenswert?

Hallo Benedikt,

ich hab mit Sicherheit die DDS-Technik verstanden.
Damit habe ich mich eine Zeit lang befasst.
Die Sampling Rate ist natülich konstant (Masterclock).

Ich habe mich vielleicht oben etwas missverständlich ausgedrückt.

MfG

von Benedikt K. (benedikt)


Lesenswert?

Barnes wrote:

> Aber ich kann schon die Sampling Frequenz vom DAC über einen Bereich von
> 6 Dekaden einstellen oder ?
> Das ist sehr wichtig.

Ist das wirklich notwendig ? Oder reicht es nicht aus, den DAC mit einer 
festen Frequenz laufen zu lassen, und alleine per DDS die Frequenz 
einzustellen ?
Die meisten Audiocodecs die ich kenne, können meist nur 5kS/s bis 
200kS/s. Das sind gerade mal 2-3 Dekaden. Ein normaler DAC würde zwar 
auch gehen, aber der braucht dann je nach Samplerate ein umschaltbares 
Antialiasing Filter. Von daher wäre eine feste Samplerate die beste 
Lösung, und dank DDS sollte ein Bereich über viele Dekaden kein Problem 
sein.

von Thornton (Gast)


Lesenswert?

Hallo,

also vielleicht drücke ich mich hier unverständlich aus.

Ein DDS-Ic ist erstmal außen vor.

Ich will ein f-Gemisch mit Frequenzen zwischen 10mHz und 10kHz erzeugen.

Da ich die Summation nicht analog mit mehreren DDS ausschließe, da es 
sehr unflexibel ist, würde ich die Addition digital erledigen.

Die erhaltenen Worte (20) will ich mit einem DAC umsetzen.

Es soll immer dasselbe Signal nur mit unterscheidlichen Frequenze 
erzeugt werden ! Also zuerst 10mHz, dann 100mHz, ..., 10kHz.
Die Ausgangsfrequenz hängt natürlich voll von der Samplerate ab: 
fOUT=fSAMPLE/(20).

Man könnte natürlich bei gleicher Samplerate die Anzahl der 
Punkte/Periode erhöhen. Das wäre auch eine Lösung. Bei kleinen 
Frequenzen würde dann aber die Worte nicht in das RAM passen.

Beispiel: fSAMPLE=100kHz -> fOUT=10kHz für 10 Worte/Periode
          fSAMPLE=100kHz -> fOUT=10mHz für 10 000 000 Worte/Periode

Da sieht man schon, dass 10^7 Worte für eine Frequenz von 10mHz 
gebraucht werden bei einer konstanten Samplerate.

Deswegen würde ich gerne bei kleinen f die Samplerate mit erniedrigen.

MfG

von Benedikt K. (benedikt)


Lesenswert?

Thornton wrote:

> Beispiel: fSAMPLE=100kHz -> fOUT=10kHz für 10 Worte/Periode
>           fSAMPLE=100kHz -> fOUT=10mHz für 10 000 000 Worte/Periode
>
> Da sieht man schon, dass 10^7 Worte für eine Frequenz von 10mHz
> gebraucht werden bei einer konstanten Samplerate.

Es zwingt dich ja keiner eine 10^7 Word große Tabelle zu nehmen. Dies 
ist total unnötig, denn bei 16bit Auflösung der Amplitude stehen in der 
Tabelle dann mehrmals die gleichen Werte nebeneinander.
Es würde also eine Tabelle mit 16bit reichen. Die hätte dann 128kByte. 
Die sollte in den Flash eines dsPICs passen.
Als nächstes nimmst du einen 32bit großen Accumulator für die DDS und 
dessen 16bit MSBB als Pointer für das 16bit große Array im Flash.

von Barnes (Gast)


Lesenswert?

Hallo,

gibt es eigentlich DDS-ICs, deren Look-Up Table man programmieren kann ?

Ich habe in Verbindung mit DDS bisher nur von ROM-Speichern gehört.

MfG

von Rick Dangerus (Gast)


Lesenswert?

Ja, wenn man das ganze im FPGA nachbaut z.B.

Rick

von Barnes (Gast)


Lesenswert?

Hallo,


Also nochmal.

Ich bräuchte Samplingraten zwischen 320mHz und 32kHz.
Das sind 5 Dekaden.

Kann man die DA Umsetzung nicht per Timer steuern ?
Mit einem Timer kann ich sicherlich diesen Bereich abdecken.

Beim MSP430 geht das.

Müsste dann doch auch bei einem dsPIC gehen, oder ?

MfG

von Gerhard (Gast)


Lesenswert?

Hallo barnes

für eine genaue Angabe musst du selber im Datenblatt nachschauen. Die 
dsPIC30 mit nem 12Bit-ADC schaffen 50kHz Samplerate, die 10-bitter 
schaffen um einiges mehr. Ich nehem jetzt mal an, dass der dsPIC33 nicht 
schlechter ist. An Timern dürfte es nicht mangeln. Den ADC kannst du 
auch vom Timer-int starten.

Dein Begriff "Samplerate" macht mich etwas irr. Sprichst du von einer 
AD-Wandlung oder von einer DA-Wandlung ? Den internen DAC des 804 kannst 
du sicher auch über einen Timer steuern. Ist der 804 überhaupt noch 
aktuell für dich, da es den doch noch gar nicht gibt ?!

Gerhard

von Barnes (Gast)


Lesenswert?

Hallo,

ja, von Samplerate spricht man sowohl bei DA- als auch bei AD-Wandlern.

Ich finde es manchmal auch verwirrend.

Wenn es timergetriggert gemacht werden kann, dann bin ich zufrieden.

Danke.

MfG

von Gerhard (Gast)


Lesenswert?

Hallo Barnes

auch für detaillierte Infos kannst du dich an das Microchip-Forum 
wenden, besonders, da die dsPIC33 doch noch verhältnismässig neu sind.

http://forum.microchip.com

Ist zwar englishsprachig, die Moderatoren dürften aber grossteils 
Mitarbeiter von Microchip sein.

Gerhard

von Barnes (Gast)


Lesenswert?

Hallo,

danke Gerhard !

Und auch an alle anderen.

MfG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.