Jump to content
ELFORUM - Forumul electronistilor
Eugen_B

Generare semnale de ceas de diferite frecvente

Recommended Posts

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 to comment
Share on other sites

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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines