Forum: Mikrocontroller und Digitale Elektronik PCM1803ADB Problem beim Auslesen


von Thorsten D. (stan1)



Lesenswert?

Hallo Leute,
nach etlichen gelesenen Beiträgen muss ich mich jetzt auch einmal an 
euch wenden.
Wie im Schaltplan hoffentlich zu sehen ist, möchte ich mit einem 
AD-Wandler einen analogen Beschleunigungssensor auslesen.Der AD-Wandler 
ist wie hoffentlich nach Datenblatt richtig verschaltet. Die Schaltung 
wird mit 3,3V betrieben. Für die analoge Spannungsversorgung verwende 
ich den LM2775DSGT Boost-Konverter der mir die (hoffentlich Rauscharmen) 
5V liefert. Der WS gibt auf den LRCK 48,0762 kHz, der BCK bekommt 
3,07689 MHz und mit einem ICS570 Frequenzmultiplizierer erzeuge ich mir 
aus dem BCK mit dem Faktor sechs 18,4616 MHz (384x fs), die an SCKL 
anliegen. Zum Testen hatte ich den Beschleunigungssensor erstmal 
abgenommen und auf einen Analogeingang ein 100Hz, 1V Sinussignal 
gegeben. Der AD-Wandler wird als Slave (MODE) verschaltet, das I²S 
Protokoll ist eingestellt (FMT) und OSR wird für 3MHz (64x fs) auf GND 
gesetzt. Ausgelesen wird DOUT dann mit einer Software, die eigentlich 
digitale I²S Mikrofone (ADMP441 jetzt ICS43432) ausließt. Ich habe mal 
die hoffentlich wichtigsten Fotos vom Oszi angehängt (rot WS, gelb BCK, 
lila DOUT, grün SCKI) und Fotos von dem, was mir die Software anzeigt. 
Es lassen sich die 100Hz schwer in den Messungen wieder erkennen, aber 
wie man sieht, kommt kein Sinus raus und nur ein großes Rauschen.
Hat jemand eine Idee was schief läuft? Passen die Frequenzen oder habe 
ich einen Denkfehler in der Verschaltung? Oder passt was mit den Daten 
nicht?
Die Mikrofone geben wie der AD-Wandler 24 Bit raus (ich kann nur 21 
zählen beim AD) brauchen aber ein 32 Bit Signal. Gibt es da evtl. 
Probleme?
Ich hoffe jemand hat eine Idee, weil sie mir so langsam ausgehen.

Vielen Dank im Voraus und Gruß von Thorsten

von Gebhard (Gast)


Lesenswert?

Über den PCM1803 kann ich nix sagen, aber über den PCM1801, der ziemlich 
ähnlich zu sein scheint.
Diese Teile sind sehr empfindlich auf Änderung des Teilungsverhältnisses 
SCKL zu LRCLK.
Ich habe in meiner Schaltung über eine PLL (74HC4046) die SCLK mit ca. 
4MHz erzeugt und von dieser dann mit Synchronzählern (74HC4520) die 
LRCLK und BCLK. Ein anderes Teilungsverhältnis als 1/256 für die LRCLK 
hat auch nicht funktioniert, warum kann ich leider nicht sagen, bin der 
Sache damals nicht nachgegangen.
Weiterer Punkt ist natürlich auch die Einstellung der I²S Schnittstelle. 
da musst du die datenblätter akribisch vergleichen.

Grüsse

von Thorsten D. (stan1)


Lesenswert?

Hallo Gebhard,
ich habe mir die Teilungsverhältnisse mal ausgerechnet und komme auf 
sehr genaue Werte (64-LRCK/BCK, 384-LRCK/SCKI, ungenauigkeiten durch 
Messfehler). Sollte ja auch, denn alle Takte werden in der 
Treiberharware aus einem CLK erstellt. Ich habe es ein weiteres Mal mit 
einem anderen Systemclock versucht; statt dem Multiplikator x6, also 18 
MHz (384x fs) habe ich dann x12 für 36 MHz (768x fs) im 
Frequenzmultiplizierer eingestellt. Interessanterweise konnte ich dann 
meine 24 Bit zählen. Am Signal hat sich leider nichts geändert. Oben in 
den Fotos ist ja zu erkennen, dass ein sehr großes niederfrequentes 
Rauschen vorhanden ist. Nach Abklemmen des Frequenzgenerators für den 
Eingang ist das Rauschen recht gering und wird scheinbar nur noch von 
meiner analogen Spannungsversorgung und die gemeinsame analoge und 
digitale Masse verursacht. Sobald ich irgendeine Quelle anschließe kommt 
ein großes Rauschen. Für einen weiteren Test habe ich einmal eine 
einstellbare DC-Quelle bis 1,5V angeschlossen und festgestellt, dass 
beim Erhöhen der Spannung das Rauschen irgendwann sehr stark wird bis es 
wieder abnimmt und der AD-Wandler zwischen 0,5V und 1V komplett 
aussteigt. Ab 1V steigt er wieder ein und zeigt ein konstantes Signal 
als wäre gar nichts angeschlossen. Der Eingangsspannungsbereich ist ja 
im Datenblatt mit 3Vpp angegeben; bis auf die absolute maximum ratings 
habe ich nicht mehr dazu gefunden. Ich bin mir daher auch nicht sicher 
ob der Bereich von 0 bis 3V oder von -1,5V bis 1,5V geht; dann würde es 
mich allerdings wundern, warum er keine negative Spannngsversorgung 
benötigt. Bei meinem Test hätte ich das Verhalten so oder so vom 
Spannungswert her nicht erwartet.
Was meinst du mit der Einstellung der I²S-Schnittstelle? Wie gesagt habe 
ich das 32 Bit Signal pro LR-Kanal was ja dem Teilerverhältnis 64x 
LRCK/BCK geschuldet ist. Wenn ich das Datenblatt richtig interpretiere 
dürfte es da auch kein Problem geben: "In slave mode, BCK and LRCK work 
as input pins. The PCM1803A accepts the 64-BCK/LRCK or 48-BCK/LRCK
format (only for 384 fS and 768 fS system clocks), not the 32-BCK/LRCK 
format."
Ich werde die gesamt Schaltung nun noch mal auf einer größeren 
Testplatine aufbauen, mit Jumpern zum trennen und Messen, versuchen die 
Massen zu trennen und meine Spannungsversorgungen weiter zu 
stabilisieren.

Weitere Anregungen sind natürlich herzlich wilkommen!
Danke und Gruß Thorsten

von Thorsten D. (stan1)


Lesenswert?

Hallo,
ich möchte mich noch mal melden um Neuigkeiten mitzuteilen.
Ich habe wie gesagt ein neues Testboard erstellt und dort ein paar 
Änderungen vorgenommen. Ich denke der wichtigste Teil war die Signale 
sauber zu bekommen. Ich habe dazu die analoge und digitale Masse 
getrennt, ein paar zusätzliche Glättungskondensatoren spendiert, der 
analogen Spannungsversorgung einen LDO spendiert und für DOUT und LRCK 
einen Levelshifter verwendet (SN74LVC245), da der AD-Wandler an DOUT 
scheinbar <2V herausgibt und mein LRCK am Eingang unerwartet 5V hatte 
und das der AD-Wandler nicht verträgt. Der AD-Wandler arbeitet nun 
stabil und ich Messe in der Software nun nahezu kein Rauschen mehr. Bei 
Anschluss des Beschleunigungssensors kommt ein Rauschen drauf, was wohl 
bedingt durch den Sensor und seine Spannungsversorgung ist, deswegen 
werde ich ihm ebenfalls noch einen LDO spendieren. Zudem werde ich den 
ADXL377 durch einen ADXL325/326 ersetzen, da die Auflösung sehr gering 
ist und ich den großen Messbereich nicht benötige.
Es scheint die Sache dann wohl ganz gut zu laufen. Ich kann mich nun 
wieder an mein benötigtes Layout machen, was wesentlich kleiner wird. Da 
nun noch einige Bauteile dazu gekommen sind habe ich Platzprobleme, weil 
das ganze sehr smart werden soll.
Ich habe schon nach Alternativen für den SN74LVC auch im Forum gesucht 
aber bin etwas unsicher was die Wahl angeht.
Hat jemand eine Empfehlung für einen kleineren (Package) Levelshifter? 
Ich benötige 2 max. 3 Kanäle für 5v -> 3,3V und die 2V -> 3,3V.

Vielen Dank im Voraus und Gruß
Thorsten

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.