Forum: Digitale Signalverarbeitung / DSP / Machine Learning dac dspic33fj64gp802 krazt


von Maik W. (werner01)


Lesenswert?

Guten Tag Leute,

mein Problem ist ,das der DAC krazt!
Hab den DAC so konfiguriert, das bei four deep FIFO Lehrlauf ein 
Interrupt
ausgelöst wird und in der Serviceroutine ein neur Wert reinkommt.
Hier wird initialisiert:
  ;dac konfigurieren
  mov  #0b0000011100000000,w0
  mov  w0,  ACLKCON
  mov  #15,w14
  mov  w14,DAC1CON
  ;bset  DAC1CON,#AMPON
  bset  DAC1STAT,#LOEN
  bset  DAC1STAT,#LEMPTY
  ;Interrupt an
  mov  #0b0001000000000000,w0
  mov  w0,IPC19
  bclr  IFS4,#DAC1LIF
  bset  IEC4,#DAC1LIE

  bset  DAC1CON,#DACEN

und hier der Interrupt:
__DAC1LInterrupt:
    push.s
    push  w14
    mov  ergebnis,w14
    mov  w14,DAC1LDAT
  bclr  IFS4, #DAC1LIF
  pop.s
  pop  w14
  retfie

Das audiosignal koppel ich über 25K Widerstand aus auf opv ist also 
wirklich kein analoges Problem.
kann ja mal noch ,wenn gewünscht nen Audiomitschnitt machen:

danke für eure Hilfe

bis denne
Der Interrupt geht auch, aber was mach ich falsch

von Maik W. (werner01)


Lesenswert?

Hallo Leute,

hab den Fehler gefunden es lag am spi-in den muß man auf maximal 3,3 
Volt
Pegel begrenzen weil der Pin nicht 5V tollerant ist.

by

von Dieter W. (dds5)


Lesenswert?

Maik Werner schrieb:
> Hallo Leute,
>
> hab den Fehler gefunden es lag am spi-in den muß man auf maximal 3,3
> Volt
> Pegel begrenzen weil der Pin nicht 5V tollerant ist.
>
> by


Daran kann es nicht allein gelegen haben, wenn das hier

>    push.s
>    push  w14
>    mov  ergebnis,w14
>    mov  w14,DAC1LDAT
>  bclr  IFS4, #DAC1LIF
>  pop.s
>  pop  w14

stimmt, waren (sind?) auch noch push und pop in der falschen 
Reihenfolge.

Und aufpassen!  push.s benutzt einen eigenen Hardware Stack mit nur 
einer Ebene, darf also nicht mehrfach in verschachtelten Ints benutzt 
werden!

von Maik W. (werner01)


Lesenswert?

hallo Dieter,

das mit der Reihenfole habe ich schon bemerkt, danke!
Ich hab ja den genannten Dspic mit Audio-Dac welcher über spi mit nem
Pic16f labert der 16'er ist Slave.

Wenn ich nun einen Sinus ausgebe kann ich immer ein surren hören auch 
wenn ich den Sinus bis auf 0 runtertransponiere ist immer dieses surren 
da. (benutze die Dacs bei 45 KHz)

ich habe mitbekommen so durch probieren ,wenn ich keine daten mehr ins 
SPIBUF-Register schreibe und das passiert so 100 mal pro Sekunde bei 1 
Mbit Übertragungsgeschwindigkeit dann ist das Störgeräusch weg.

Ich habe die Pins remappt tja vieleicht übersspricht da was im Chip?

Heute Abend will ich das mal mit Originalpins ausprobieren.

meld mich dann mit neuen Ergebnissen...


bis denne

von Maik W. (werner01)


Lesenswert?

Servus Leute,

ich hab das Problem das die Spi Kommunikation auf die DAC's überspricht.

Also wenn ich beim DSPIC einen 1 kHz Sinus über Die Dac's ohne 
Fernregelung über SPI mache ,dann klingt der TOn rein, jedoch mit SPI 
(Tonhöhensteuerung z.B. dann hört man das auf dem Sinus als surrenden
Piepston.(1 Mhz Transferrate oder auch niedriger aber immer zu hören).
Vom Layout her sind DAC und SPI-Leitungen weit voneinader entfernt.
Geroutet habe ich SDI, DSO und SCL auf PORT RB0..2.

Das Dac-Analogsignal greife ich symetrisch mit 10 K Vorwiederständan auf 
OPV µa741 ab so wie es die Spezifikation will ab.

Woran kann das liegen, daß ich die Datenkommunikation im Kopfhörer höre?


jetzt brauche eure Vorschläge als Lösungsansatz.


Werner

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Ich würde mir mal die Versorgungsspannungen genauer anschauen, 
vermutlich spricht die Digitalversorgung auf die Analogversorgung über. 
Besonders bei der Masseführung muss man da immer aufpassen.

Grüße,

Peter

von Maik W. (werner01)


Angehängte Dateien:

Lesenswert?

Hallo Leute,


und danke Dieter für deine Mühe!

Also wie gesagt ich hab ja das Problem ,daß ich da Störgeräusche vom SPI
aud die dac Ausgänge bekomme .

Hab da jetzt mal ein Schaltbild entworfen. Würde mich freuen wenn mich 
jemand auf mögliche Fehler hinweisen Könnte ,denn ich seh einfach den 
Grund
für das Problem nicht.


Danke schon mal im vorraus

Grüße

Werner

von Maik W. (werner01)


Lesenswert?

Hallo Peter,



oh wie peinlich ich hab den Fehler endlich gefunden, hm ist ja auch klar 
wenn man avdd uns avss nicht benutzt.

Ist aber erstaunlich, daß da trotzdem ein hörbarer Ton rauskam.


Jetzt klingt's kristallklar und ich bin zu frieden!

Danke noch mal für deine Hilfe


Grüße,


Werner

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.