Sari la conținut
ELFORUM - Forumul electronistilor

Generare semnale de ceas de diferite frecvente


Eugen_B

Postări Recomandate

Salut,

doresc sa interfatez un microcontroler cu un DAC audio , acesta din urma primeste datele in format I2S . Pentru acest lucru am nevoie de un semnal de "master clock" acesta avand frecventa un multiplu al ratei de esantionare a stream-ului audio.

Tabel cu frecventele MCLK si frecventele de esantionare:

Posted Image

 

O prima problema: merita sa ma complic sa pot stream-ui toate ratele de esantionare, alegand pentru fiecare MCLK respectiv , si implicit trebuie asigurat un LRCK ( obtinut prin divizare a MCLK) si un SCLK (obtinut tot asa ). Sau sa ma axez doar pe 44.1Khz , o rata de esantionare des folosita la fisierele audio , avand grija sa nu stream-uiesc decat acest tip. (se poate aplica un stream de alta rata dar se va auzi mai incet/ mai repede)

 

O a doua problema ar fii cum sa obtin aceste semnale de ceas.

 

Eu ma gandeam , pentru doar 44.1Khz:am nevoie de :

MCLK de 16.9344MHz ( desigur se poate lua alta frecventa din tabel)

LRCK( left right clock , practic e frecventa de esantionare) 44.1Khz , sau MCLK/384

SCLK 44.1Khz*48 , sau MCLK/8

 

Voi folosi un oscilator cu un cristal de 16.9344Mhz , pe care pe langa aplicarea la MCLK , il bag intr-un numarator, unde dupa 8 numarari toggle-uieste o iesire -> am SCLK , il bag in alt numarator , il numar de 48 de ori , am LRCK.

 

Am cautat divizoare de ceas , dar nu am gasit , probabil nu am cautat bine/ unde trebuie.

 

O varinata pentru un MCLK variabil pe care sal bag apoi prin divizoare ar fi cu un semnal PWM , dar are problema de a nu putea fii setat pe frecventele acealea exacte.

 

Am gasit o varianta unde aceste semnale erau generate cu o logica programabila (CPLD) , dar nu doresc sa intru in acest teritoriu.

Astept orice fel de sugestie cum as putea face acest lucru mai elegant , mai bine. A se lua in considerare ca tensiunile de alimentare vor fi de 3.3V.

Si ca in totdeauna , nu am reusit sa ma exprim cum trebuie si sa pun problema asa cum e ea in capul meu , sper ca s-a inteles despre ce e vorba .

Link spre comentariu
  • Răspunsuri 1
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Eugen_B

    2

Top autori în acest subiect

Pana la urma am decis sa folosesc doar sample rate-ul de 48Khz ( pentru ca doar pentru asta am gasit quartz), eventual voi face resample in microcontroler , daca poate face acest lucru pe langa ce mai face el , sau ma voi limita la 48Khz.Atasez o imagine cu schema gandita de mine , si cu fisierul din Proteus. Din simulare mie imi pare ca lucreaza corect , mai exact am 12.288Mhz pe MCLK, MCLK/8 (1.636Mhz) pe SCLK , MCLK/256 (48Khz) pe LRCK. Quartz-ul va di de 12.288Mhz.As dori o a doua opinie , a cuiva care se pricepe , daca ce am facut eu este corect, inainte de a pune schema in "productie". In mod special despre oscilatorul ala cu poarta inversoare , si divizorul de 8 improvizat cu D-type flip-flop cu iesirile conectate in spirala la intrari.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări