Wie stm32f407 I²S Ausgang mit externem Quarz machen?

Gast #6646591
Lesenswert?

Hallo,

ich will mit einem STM32F407 ein Signal ausgeben das recht jitter arm 
ist.

Dazu würde ich gerne einen externen Quarz 22,5792MHz anschliessen und 
den intern als Takt auf die PLL geben.
Bei irgendeinem der STM32 hatte ich mal gesehen das das gehen soll.
Nur in den Datenblättern von 407 finde ich das nicht, der Teil ist aber 
auch nicht wirklich gut beschrieben.

Hat jemand eine Ahnung ob das geht und wo man dazu bessere Infos findet?
Gast #6647649
Lesenswert?

Den Pin hatte ich gesucht.

Das in der Doku die PLL und der Taktgeber verteilt stehen macht das 
finden nicht gerade einfach. Wenn man aber die Info hat, macht das was 
die geschreiben haben auch wieder Sinn.

So nun stehe ich aber vor dem Problem das die Clock nur genau einen 
Eingangs PIN hat und er belegt ist. Den kann ich zwar noch auf einen 
anderen Pin verschieben, aber dieser ist wiederrum auch belegt und den 
gibt es nur einmal.
Somit kann ich mich gerade entscheiden zwischen sauberen Takt und 
Extenem RAM.
(Firma: matzetronics) #6647676
Lesenswert?

Dirk schrieb:
> Somit kann ich mich gerade entscheiden zwischen sauberen Takt und
> Extenem RAM.

So schlimm ist die interne PLL ja nicht. Wenn man die mit einem höheren 
Takt antreibt (z.B. 2MHz, wie im Ref. Manual empfohlen), hält sich das 
Jittern in sehr engen Grenzen.
Aber PC9 (I2S_CKIN) hat eigentlich nicht so viele wichtige AF - was 
benutzt du denn daran? Falls es I²C ist, dann kann man notfalls das per 
Bitbanging tun.
(Firma: matzetronics) #6647979
Lesenswert?

Dirk schrieb:
> Dafür suche ich gerade noch einen Plan.

Sicher ist die Ablage von Kameradaten zeitkritisch und da wäre ein 
breiter RAM die Wahl. Je nach Grösse der Daten und -quelle könnte man 
den normalerweise brachliegenden Core-Coupled RAM mit einbinden.
Probier doch einfach mal die PLL für I2S, wie o.a. ist die Clock daraus 
gar nicht schlecht. Evtl. kannst für spezielle Sampleraten einen 
angepassten Hauptquarz verwenden und am Clocktree rumschrauben. Also 
z.B. den 22,5792MHz als Masterclock benutzen.
Gast #6648561
Lesenswert?

Den RAM Baustein nutze ich zur Zeit nicht, der ist nur als Reserve im 
Layout.
Den könnte ich somit zur Zeit weg lassen, aber ich halte mir lieber die 
Möglichkeit offen den doch zu nutzen.
Wenn überhaupt würde ich da nur Zeit unkritische Daten rein legen.
Also mir ist es somit fast egal ob der mit einem 8Bit Bus nun doppelt so 
lange braucht.

Das einzige dumme ist das ich ich keinen Plan finde um ein 8Bit RAM 
anzuschliessen.
Daten und Adressen sind ja klar, nur zu den Steuerleitungen finde ich 
kein Beispiel und das am besten gleich mit Code.
Hat da jemand einen Tipp?
Gast #6648567
Lesenswert?

Achso die PLL habe ich inzwischen getestet und ich brauche den externen 
Quarz!
Der Quarz ist um Klassen stabiler.
War zwar jetzt nur ein fliegender Aufbau aber der Zeigt mir schon das es 
damit besser geht.
Gast #6648605
Lesenswert?

> So schlimm ist die interne PLL ja nicht. Wenn man die mit einem höheren
> Takt antreibt (z.B. 2MHz, wie im Ref. Manual empfohlen), hält sich das
> Jittern in sehr engen Grenzen.

Hast du das mal gemessen?

> Achso die PLL habe ich inzwischen getestet und ich brauche den externen
> Quarz!

Das wuerde ich auch erwarten.

Olaf
Gast #6649152
Lesenswert?

Ich habe da schon bessere Methoden wie ein normales OSZI.

Aber darum geht es hier nicht und bitte auch keine Grundsatzdiskusion 
daraus machen.
Ich brauche den Quarz und bin nun auf der Suche nach einem Anschlußplan 
für ein 8Bit RAM. Da brauche ich hilfe!
#6649186
Lesenswert?

Hast Du mal nach alternativen STM32-Modellen geschaut?

Z.B. die STM32F7 haben eine extra Audio-PLL die deutlich stabiler ist 
als die normale. Evtl. reicht die und Du kannst dann auf den extra Quarz 
verzichten.

Außerdem ist bei den F7ern der externe Memory-Controller flexibler als 
bei den F4. Das hilft evtl. bei dem Clock-Pin. Hab ich jetzt aber noch 
nicht konkret nachgeschaut.
(Firma: matzetronics) #6649231
Lesenswert?

Dirk schrieb:
> Ich brauche den Quarz und bin nun auf der Suche nach einem Anschlußplan
> für ein 8Bit RAM. Da brauche ich hilfe!

Schau dir das mal an:
https://mikrocontroller.bplaced.net/wordpress/?page_id=428
Das ist zwar ein 16-Bit RAM, aber er belegt keine der von dir benötigten 
Pins, im Gegenteil, dadurch, das UB den Multiplexed Mode benutzt, sind 
noch mehr Pins frei. Checks mal auf Konflikte mit deinen AFs. Etwa mehr 
Hardware nötig.
Sach mal: Hast du da SDRAM oder SRAM?
Gast #6659023
Lesenswert?

So ich hatte was anders zutun und wollte dieses Problem nun auch endlich 
lösen.

Ich habe SRAM (zur Zeit ein 512 * 16) und rein soll nun ein 512 *8.
Der jetzige Speicher liegt im normalen Adressbereich und da kann ich 
auch Variablen einfach rein legen. Per DMA kann ich da auch Daten lesen 
oder schreiben.
Somit brauche ich da keine lese oder Schreib Routinen.
Und so muss es auch auch wieder laufen!

Zuzätzliche ICs passen nicht mehr auf die Platine.
Die ist Voll (Bauteile und Leiterbahnen) und nur deswegen auf 6 oder 8 
Lagen umzusteigen wollte ich nicht, es muss bei 4 Lagen bleiben. Denke 
das es mit 8 Lagen und eine Bauteilgrösse kleiner trozdem nicht passen 
würde.

Hat denn noch nie jemand ein 512 *8 SRAM angeschlossen?
Gast #6664016
Lesenswert?

So nun als Information zum Abschluss:

Man nehme STM32CubeMX und baue sich einfach mal ein 8Bit SRAM dran.
Dann kann man super sehen das die 2 Steuerleitungen HI&LO Byte frei 
sind.
Somit kann ich nun alles genau so machen wie gedacht.

Das ganze hat sogar den Vorteil das ich 9 Leitungen frei bekomme, 
allerdings mit dem Nachteil das der Zugriff doppelt so lange dauert.
Man kann halt nicht alles haben!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren