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
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.
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
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.
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
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
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.
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
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.
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
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
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
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
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