Beräkna PLL-parametrar

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Beräkna PLL-parametrar

Inlägg av Mr Andersson »

Jag försöker hitta PLL-parametrar från en given målfrekvens. Att gå åt andra hållet är lätt och snabbt när parametrarna är kända.
\(F_{OUT}=F_{IN} \cdot \frac{M}{D \cdot O}\)
Men jag kan inte komma på något snabbt sätt att få fram M,D,O för en given F_OUT.

Det jag gjort hittills är en brute-force-metod att förberäkna alla möjliga frekvenser i en lista och köra en binär sökning för närmsta värde. Själva sökningen är väldigt snabb men att skapa listan tar lång tid då det är ca 2 miljoner värden som måste sorteras, och det tar upp ganska mycket minne.

Går det att lösa matematiskt istället?
Användarvisningsbild
YD1150
Inlägg: 1944
Blev medlem: 29 oktober 2010, 22:41:10

Re: Beräkna PLL-parametrar

Inlägg av YD1150 »

Vad är det för PLL du håller på med? Högfrekvens/Radio?
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Beräkna PLL-parametrar

Inlägg av Mr Andersson »

Det är en FPGA. Pixelklocka för HDMI. Grovt räknat 100-200MHz.
Mitt första försök var att hårdkoda frekvenserna för vanliga upplösningar men det fungerar bara ibland. Sen upptäckte jag att olika skärmar vill ha olika timings för samma upplösning, så klockan måste vara justerbar.
Användarvisningsbild
4kTRB
Inlägg: 18358
Blev medlem: 16 augusti 2009, 19:04:48

Re: Beräkna PLL-parametrar

Inlägg av 4kTRB »

Jag tror det finns bra info om detta i en pdf från Texas men vet inte med säkerhet då jag bara skummat igenom den för något år sedan.

PLL Performance Simulation Design Texas.pdf
gkar
Inlägg: 1453
Blev medlem: 31 oktober 2011, 15:28:29
Ort: Linköping

Re: Beräkna PLL-parametrar

Inlägg av gkar »

Vad har du frihetsgrader på dina variabler, vad kan de vara för värden?

Å andra sidan, minne behöver du väl inte, du kan väl söka efter bästa värdet samtidigt som du generar listan?
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Beräkna PLL-parametrar

Inlägg av Mr Andersson »

f_in är konstant, 100MHz
m är 6-64, steg om 0,125
d är 1-10, heltal
o är 1-128, steg om 0,125
m/d måste vara i området 6-12

> du kan väl söka efter bästa värdet samtidigt som du generar listan?
Jo det kan man göra men det tar ganska lång tid att testa alla värden. Tanken är att man ska kunna byta upplösning under drift utan allt för långa avbrott.

Ett försök jag gjorde var att starta i mitten av frekvensområdet och ändra en variabel i taget för att se om man kommer närmare eller längre ifrån målet men jag fastnade ofta i lokala minimum istället för att hitta den riktiga frekvensen. Jag vet inte om det var jag som gjort något fel eller om jag var inne på fel spår.

Edit: Med lång tid menar jag att det tar ca 30 sekunder på målhårdvaran, en soft-cpu på fpgan, men det tar bara några ms på en intel i7.
Skriv svar