Chip123 科技應用創新平台

標題: PLL 的實現方法? [打印本頁]

作者: kolong    時間: 2007-3-17 11:29 AM
標題: PLL 的實現方法?
請問cpld可否能把一個input的frequency倍頻....* p, |+ D; F: ^* ?& R
倍頻是否只能用PLL的方法?& p+ s/ V5 ?; K$ ~* b; D
最近遇到這個問題...想看看各位的看法..
作者: tommywgt    時間: 2007-3-17 12:32 PM
答案是可以的, 只是就以成本來看的話划不來而已
作者: kolong    時間: 2007-3-17 06:11 PM
用cpld的話...) J: m9 @/ q2 q' J' J
effort會有多大呀....有沒有一個概念的數字/ F3 b% w$ D# i( p7 L; s- F# E
另外...如果input的頻率很低(60Hz..)...+ y4 t' N: z# A* ?9 g$ h
cpld還是有可能做到嗎...
. q% G4 [* j: I因為問過代理商...是沒辦法supprot那麼低的頻率...嘻嘻
4 U  f5 _8 V$ F
% X" g8 n2 c( e7 F1 ?+ ]" o  y6 f[ 本帖最後由 kolong 於 2007-3-17 06:20 PM 編輯 ]
作者: tommywgt    時間: 2007-3-18 12:42 PM
你可以上中央圖書館查一下, 有一篇碩論論這一件事.
0 ~5 W/ y6 H7 M3 W  U0 i7 W
4 A, c! ?1 l# o" x輸入頻率是60的話, 很明顯的是想拿市電的信號來倍頻吧, 如果只是要一個也許不是那麼準的clock source的話, 該有更簡單的方法才對
作者: kolong    時間: 2007-3-22 09:18 PM
不是要用市電的信號...
8 N9 T3 Z, E2 k/ W- d是要用panel裡面t-com的v-sync來同步led driver...
* ?) p6 o+ F# \7 M所以不是clock generater的function..5 s+ C" \- d8 M
目前我是想用cd4046...不過filter方面就傷腦筋了...
作者: tommywgt    時間: 2007-3-23 08:38 AM
如果你能講的更詳細點的話, 也許可以幫上忙也說不定
作者: kolong    時間: 2007-3-29 08:45 PM
搞了二個禮拜的CD4046 (PLL)..還是覺得無解....
& [9 m3 g$ _9 s9 `" @我的function如下..
: F6 b( R5 r. {用60hz的frequency去產生2.457Mhz 的frequency...3 M- M/ o& v+ B, i# N
2.457Mhz是要給LED driver當clock input用的...+ D2 x' X2 u- V2 ], ]1 g
這樣LED driver所產生PWM才可以跟V-sync同步..., y5 A( u! p( [. F
現在遇到的問題有下列幾點..
% O% l$ K4 f* a2 s  Z( R1. 60Hz要產生2.457Mhz.....60*40950 = 2.457Mhz..2 X# l  x: l& F  e& Z- y
   因為40950實在是太多倍了...這樣VCO平均一個level大概只有不到1mV...
! ^* R: _" t6 u) j% b% e2 W   noise就比1mV還大的多了... . a, R" B4 Q7 @
2. 60Hz實在是太慢了...所以不可以用被動式的filter..只能用主動式的(就是用op啦)+ b0 r( U3 @3 Q+ ]! G; v/ l
   按照datasheet的公式..所算出來filter的R跟C..只能當參考.. (果然..類比的東西都要靠經驗)
8 o2 n4 Q* E2 \" D4 J7 r$ s$ [8 h! N   實驗了一個禮拜.總算感覺filter有在動,不過目前還是有一些問題還搞不清楚..
4 ~* \( b6 Y+ d0 t" K# v
1 s$ X$ _  f) i不知各位大大是否還有其他的idea可以實現這個function....(用60hz去產生2.457mhz)
作者: tommywgt    時間: 2007-3-30 10:19 AM
如果你還是想用CPLD的話, 不介意的話留下連絡方式我找人幫你如何?
作者: ssejack1    時間: 2007-4-11 01:04 PM
個人看法:
' t, X4 A. R, v8 m將 sync. signal 當成 enable信號, CPLD 內部電路用 OSC 產生工作 clock 信號源,藉由 sync. 來  enable 應較容易實現吧!?
作者: kolong    時間: 2007-4-15 11:53 AM
其實用PLL產生2.457MHz的clock給led driver( g' L( N/ I& C3 r" c7 v
最後所產生的pwm還是跟v-sync不同步啦...% c: J1 _, C4 Z! y* K% k4 P5 |/ K7 v
所以現在改變做法...
4 I. c" W/ e4 }1 h1 E+ L3 R直接用60hz產生600hz的pwm...
& g. T/ I, b/ d% X+ Z+ y3 \$ Hduty就一直去sample  led  driver的pwm就可以了... t, c! d6 s* M; \4 g  s. F, ]
目前60hz-->600hz已經ok啦...剩下的就是去sample led driver 的pwm..7 X" o$ ~- u0 i/ F  t/ K/ r9 U9 T5 P
$ ]+ ^* C6 q4 w9 N( E. J, t
感謝各位先進的幫忙呀
* x, B& \% j& z6 h6 l% V3 v
: X& m/ M3 `* r% }另外...想做一個shift的function..
% s$ @( ?0 y, g6 [led  driver的pwm進來...送出去的pwm要shift 60度或120度..
! d( Q' j6 f' _是否有比較簡單的想法呀...
作者: tommywgt    時間: 2007-4-16 02:14 PM
如果倍頻是成功的, 那phase shift就只是調整cycle中的1->0, 0->1的時間, 不是嗎?
作者: zanthia    時間: 2007-4-17 01:09 PM
如果 jitter 要求不是很嚴格的話,
  l/ S! S- c( a# i利用 74297 的電路來參考 60Hz 或許可以;: O* r# r+ x; e+ }( ?, w
DCO (ID counter) 跑在 2.457M * 32 對 CPLD 應該是很容易作到...
作者: kolong    時間: 2007-4-18 08:13 PM
原帖由 tommywgt 於 2007-4-16 02:14 PM 發表
; L1 J) A" {) i+ G如果倍頻是成功的, 那phase shift就只是調整cycle中的1->0, 0->1的時間, 不是嗎?

+ {: l3 u8 \+ E4 S
7 ?, L: i7 L0 S& B/ V. [+ Y8 Z( |
9 D- S* F- p/ `1 _" {% e想法是這樣沒錯啦..4 y5 [/ k$ j5 g( E7 u
以2.457MHz的clock來說...
' H  J) L! ]! |) K$ p你會需要12bit的counter來數high是多少跟low是多少..(因為pwm的duty是會變的); z4 {& r- H0 e7 R9 o
shift-->one counter# S3 Q. A2 S; u9 n! c. w/ c  J
memory high-->one counter: r8 i) G0 ]* Q
memory low-->one counter& z# ]1 x% [2 P3 x
我目前是要用到四個counter...
# `& z! t4 L4 t6 y; P$ H, v4 j不過這樣做起來感覺很不好...
3 F- I& B4 {+ a
: M8 B" z6 w/ U7 H# a3 g而R G B各要一組shift..) h6 g% H" `& Q5 B! _; F, f% @
128microcell已經被我寫爆了...唉.... 3 m- x  M" [6 [
: s3 G, ^0 u2 P; F( `
其實光是寫同步的的code...128microcell就已經被我寫爆了呀2 U1 h* r- L  |( U0 X2 `+ ?
(目前是用lattice的 iM4A5 128/64)- t7 C6 I( P) Y+ c2 t. Y
' a* b, s+ A8 ]
所以才會問各位先進是否有其他的想法.....
作者: tommywgt    時間: 2007-4-23 04:18 PM
128microcell在一般的應用可以放一大堆東東也...
4 E  E. z: v3 p) D( Q你的design很大嗎?
作者: tommywgt    時間: 2007-4-23 04:30 PM
也...回到你回的問題...) _2 H* |! T1 _9 W8 M7 }" c
要做phase shift可不用改到duty cycle啊...
作者: kolong    時間: 2007-4-23 07:49 PM
原帖由 tommywgt 於 2007-4-23 04:30 PM 發表
$ e! h2 D9 y3 ?9 o& p; t也...回到你回的問題...
& a  h) A+ q3 l要做phase shift可不用改到duty cycle啊...
9 d, ^5 W4 R8 L

4 t! d! B& u1 o, h! O
, ~4 r, G* U( q, s$ ?0 u其實我shift要做....duty 也要改..
( A7 W* X5 A/ H& I# g/ H: i! b所以才需要那麼多的counter...
作者: tommywgt    時間: 2007-4-24 10:25 AM
願意把所有的規格列出嗎?. Q5 |; }! I3 W5 I
也許可以放到64 micro cell也說不定...
作者: kolong    時間: 2007-5-9 09:02 PM
RGB三組pwm要用到12bitx3
6 N3 \& J# H* Y0 xoutput也要三組RGB 12bitx32 }/ }  q1 O6 U) ]
同步需要一組12bit counter
1 i4 a* q; r8 L9 L' i) m% K6 N! @% z. a' ?( E/ G8 ?0 q3 c: [
其實我用到的reg..大概就要180個了8 n& x5 Z8 C+ F% F" e3 X0 w
所以64 microcell是不太可能啦...
作者: eject    時間: 2007-6-8 07:19 PM
問一下下...: y1 s2 B% }: A! g' I0 I" H
- @/ q# P9 t+ q/ L2 I- L1 \
你有HSYNC可用嗎? MODE 有固定嗎 ?8 i2 @0 R& Y9 W+ k
有的話至少已經上 KHz
$ t. u, {7 ^/ d8 W+ o$ \而且就倍數來說一定也會跟VSYNC同步吧
作者: kolong    時間: 2007-6-10 06:39 PM
原帖由 eject 於 2007-6-8 07:19 PM 發表
2 d% s* i! {. E8 U問一下下...
1 a; W1 d0 A% ]: a# M5 I/ |8 M& R! s' H1 Y! J
你有HSYNC可用嗎? MODE 有固定嗎 ?
# r! ?5 t3 C# G$ L6 d; _' O有的話至少已經上 KHz
! K; Y: K. ]" U5 ^$ B' b而且就倍數來說一定也會跟VSYNC同步吧
7 {9 Z% D0 l& }2 U
# N, a. }! u5 i0 g; W; M7 W
2 |. Q; a2 z0 V# a
是有H-sync啦...0 D0 R3 H. ~3 E! a1 P# _
不過不能用h-sync來做...
# U) ~. a$ }$ H  Z' X" C5 ]1 D因為用h-sync來當triger所造出來的訊號不一定會跟v-sync同步.
作者: eject    時間: 2007-6-10 09:50 PM
... 這樣說吧9 |7 a4 s+ I- x1 J2 @  G
如果有 PIXEL CLK 就用它除頻9 ^. n0 l6 I2 T, o8 \, w
如果有 HSYNC 就用它倍個幾次+ b; z1 W* u7 |- O. ]
% g6 x: {- q8 H+ ^& Y
因為 PIXEL(DOT), HSYNC, VSYNC 之間有一定的倍數關係
8 V7 G, A/ Y: H# a$ j( ]" D) m! L( j" N& l7 z% l# v
   640x480@60Hz => 25.175MHz (39.7ns)7 \4 X8 [. @4 \$ V# z: a3 R3 l
   DOTx800=HSYNC, 39.7ns x 800 = 31.469us
& f$ h1 A# i' h: i3 ]& @. g. a$ f   HSYNCx525=VSYNC, 31.469us x 525 = 16.52ms (60Hz): w! `5 C3 q% s# n$ S, |
所以這樣的CLK一定會和VSYNC同步 (詳見VESA Monitor Timing SPEC)
4 H! H& @4 s$ m7 u7 z
6 `; w+ W$ [& |接下來如果要VSYNC時不出CLK.. 那就用個AND閘吧 (看你用哪個MODE, SYNC有High或Low)/ |  U$ p% s  k2 |; I& \
" X" X  Z  y) t) _" d
還是我想的清況和你不同呢?
作者: tommywgt    時間: 2007-6-11 03:02 PM
這樣子做出來的phase error會很大也, 要先看規格的要求一下下
作者: kolong    時間: 2007-6-17 11:12 AM
原帖由 tommywgt 於 2007-6-11 03:02 PM 發表
) {7 e' O8 c9 G( X這樣子做出來的phase error會很大也, 要先看規格的要求一下下

/ y$ i! S, K0 k: k  [: F! F- y) P  d

- t2 ?: W6 _; p; R- h
4 J  n) C: h3 M/ b6 s  `嘿嘿....沒錯..# I! y; f# Q9 ]9 _8 z, p
所以我現在還是用60hz去產生600hz..7 B& X# `: w' S  k( O" V
另外一個原因是因為客戶只會給我60hz的訊號啦...
作者: tommywgt    時間: 2007-6-20 01:39 PM
不過我還是覺得也許會有更好的方法來設計這個東東的, 所以才會說介紹個人給之類的...哈
作者: tieyuhsun    時間: 2007-9-10 06:26 AM
//可直接透過synthesis  tool用於PLD,FPGA不可 LUT delay則要採其他方式。
3 |2 w1 I5 P  c+ l7 B2 z4 B8 z//所有註解都要保留4 J2 o3 H7 v1 n. A6 }* j
) }0 c5 l6 }# f% c% Z0 }3 k
`timescale 1 ns / 1 ns
8 T! E9 m; i* s: C9 A  |module xclk(sclk,ena,set,outp);5 y* B7 t/ U+ T, c6 B. u. q1 F0 S

1 b# Z( i% x' U# T0 t% I+ _0 B 9 [# N& m& I+ S, n
- S' m! H) ~7 c& ]8 A4 F) G
input sclk,ena;; a9 [3 P$ w% s
input [1:0]set;
5 g2 g2 g3 Q- l1 S  T; `output outp;
; a7 x9 i! K$ d1 l) E
' p1 p9 |0 B/ Y9 nwire outp;2 d% `; g5 j4 x- @* K) d% U, O+ q
7 i( d. q; s2 W2 s* E

7 J8 h* a, [( _$ B
& X0 O! Q) S! f' A1 u/**** Node preservation for nodeA **************/
9 v8 x. s6 t7 D6 M  [4 @" D2 t) Q! _; s' q7 W
$ X/ |" \' _* K8 S& S
//exemplar attribute nodeA_5 preserve_signal true
' }6 }; V: N2 @: d6 l2 g8 |# }2 P
//exemplar attribute nodeA_4 opt keep
1 X: @# B1 V. j1 F3 b
$ b# ~7 {7 w1 E: p/**** The following comment form also works ****/4 z  }# E3 A* ~* v% j- u

% |6 F5 b  G" z. ^! d) t/ N5 ]//exemplar attribute nodeA_3 preserve_signal true
* l4 c( V* L1 z4 h, @/ v- y3 N( L' U% c
. Z7 c  y1 i0 P! {2 g//exemplar attribute nodeA_3 opt keep- R( l* }, b5 \  d; H& _# X( X

% I5 z% q  N5 E0 K# s/**** The following comment form also works ****/% U& [6 C: H' M# s& x# h

; }; Y5 R- x# V9 i//exemplar attribute nodeA_2 preserve_signal true7 J4 R- X' f7 P" [8 I) E, m; {
7 g- O  I- G/ R7 Q1 @
//exemplar attribute nodeA_2 opt keep
: m0 m# |" U) W$ N3 u
9 e8 ]! U) u7 V/**** The following comment form also works ****/
+ v# _( ]# M1 _; Z4 ~: e' ~: M1 H) T! }+ l
//exemplar attribute nodeA_1 preserve_signal true6 k: D+ U6 ^3 ]- A( U

1 R9 j# }( b; U; a//exemplar attribute nodeA_1 opt keep
3 }1 _# _5 }0 j- W4 z
8 e/ \# j$ _5 T; A8 O4 I  h  o
$ J5 m/ r! @1 X" O/**** The following comment form also works ****/" ~! N: M9 o9 H- y, [  B# n
$ X# ]/ ?4 u4 A) d  y9 \# ^
/*exemplar attribute nodeA_0 preserve_signal true( M5 z! D( F# g* |) I

, a) E' d! L# S/ o+ Iexemplar attribute nodeA_0 opt keep*/ * @, W* n, ]5 `4 F  J
( h/ i, G. m& I/ ~4 p% k9 g
# ~# ]& d% [+ k8 y% z4 z

6 N) _$ O  C+ A, `
  M7 V* S* S; ^) x6 K
" |3 |5 h2 D. j2 z$ T$ A
* ~  Z  a' `: G/ y# h: ~
7 V) u: s" e8 Y, y) w: o
, v3 U1 A3 o/ o" \0 P, _
. V+ P: i* p  Z6 N( }* z& Z: b/ t, K* Z8 Q
wire nodeA/* synthesis syn_keep=1 opt="keep"*/;1 s. c" p3 q; O8 @$ b: c
wire nodeA_0/* synthesis syn_keep=1 opt="keep"*/;' @1 s) i4 d4 I; w7 M, @- @
wire nodeA_1/* synthesis syn_keep=1 opt="keep"*/;
- `& R! H6 P; A+ X6 ?  x2 u- @9 Fwire nodeA_2/* synthesis syn_keep=1 opt="keep"*/;
7 G7 Q1 e# k3 u3 iwire nodeA_3/* synthesis syn_keep=1 opt="keep"*/;3 s  M; Q8 a* F& R0 U
wire nodeA_4/* synthesis syn_keep=1 opt="keep"*/;+ ^+ X1 u' P5 T; f# u" Q
4 ^" `: s- S+ v! F8 k+ _7 w' |3 g
assign#1 nodeA_0  = sclk & ena;
1 X, r, M$ ~  B- s/ A9 y  E2 {
2 d( ^  |2 N; Q: y/ P, wassign#1 nodeA_1 = ~ nodeA_0;
+ b% V6 k( W; N! k( I- R" f0 t8 Fassign#1 nodeA_2 = ~ nodeA_1;
* X' E( n/ Z  f- x- X& I$ k3 Zassign#1 nodeA_3 = ~ nodeA_2;
, X0 @; f  ]+ e5 |$ sassign#1 nodeA_4 = ~ nodeA_3;; j1 D1 B; p7 U1 r* c# e4 v3 q
6 B7 C+ F* p1 g" S% D
reg xout;
+ f  w$ C; S% f. `* G0 @) L: j' E! F! @) `
always@(nodeA_1,nodeA_2,nodeA_3,nodeA_4,set)# H3 H# o! G3 q* _* T2 I
  casez(set)) _% X9 X0 n( z/ I/ L4 r  o
    1: xout =#1 nodeA_2;, J; L+ [" l9 O6 B' }. J8 z
    2: xout =#1 nodeA_3;* r9 |; w. o3 S5 Z
    3: xout =#1 nodeA_4;
$ Y3 A; B0 x# i  m* R' q2 T; U    default: xout =#1 nodeA_1;) M% z, T) H. Q
  endcase
# B% J' ?- g# }  3 T7 E! Y9 v: ~, D; C& {& L
assign#1 nodeA = xout;
; B  h, S' m- t# U. p$ D, v0 Massign#1 outp = ena ? nodeA^sclk : 1'bz;
7 e' I+ H1 ^* j9 [' d, H
: _1 b+ \* h% @- O! h& Y: _endmodule' q( K: X8 I) B7 t# f( g

  d4 q9 A) q0 Z- a+ ~0 [+ H2 V- I0 k) q
" i+ P5 r# z9 d
`timescale 1 ns / 1 ns
5 `- B  ]- F  J3 b  Z# wmodule xclk_tf();
4 F% ~( w! {; I, r; ~+ G7 {. O- B( W. q7 |2 V' Y7 [8 B
// Inputs. x# n! O1 M. V0 X
    reg sclk;% L* [" }/ g; |. |. U
    reg ena;
. X8 t# g1 u$ {. A( A8 X% G$ t    reg [1:0] set;
+ [" C, d: T# U, d" u3 Z0 K1 c  }  v" c- u7 Q; `
7 P4 @/ A6 [! z, ~2 W9 j
// Outputs
( e% h& x" F" f# J; Y    wire outp;
: G. c6 C+ V3 i3 E' [, P9 @" k, B! \/ @) S% N' R5 f

+ O) h4 D8 |. i* S* M+ J
: A8 {$ r6 {+ L    xclk UUT (/ X( ^4 }. R$ \1 q
        .sclk(sclk),
$ \/ j0 g- c! Z$ j1 G) V        .ena(ena), - U% e  C% f  E. Q* `/ V/ q
        .set(set), ( ^5 S7 j; G7 L' ]7 \
        .outp(outp)
$ C! c4 A& M: h3 m, T        );
2 C6 K" M8 V& z' c7 b- P, x  i0 J
& D8 n0 f- X! }
; n0 G: s. v) ^" h
2 l: B( S. ~: W* \& h    initial begin
, K' T" C# n/ J            sclk = 0;3 K6 T  L) l3 p
            ena = 0;* P# M: s! d( v: I% m% t- Q. ]' u! t
            set = 0;
  {! R3 [, n% W$ `. V7 O* p% \    end. F$ ^; k4 w. |/ V: @7 O

& v. w6 C) |% t. v2 b& J3 F
+ Z2 d9 A% r( s8 U& x; kalways# 5 sclk = !sclk;
2 [$ I) I7 J1 R  Q4 _  X( O* a4 p' W7 T$ h" {( B4 I9 ^" c. u
initial begin' S  t% p4 v$ S4 O& W/ Q3 f
        #100
* ^$ s+ P% ^- Q- v! U- O, d' @9 N% H          ena = 1;! A" z8 Y" A3 j: U% d; c
        #2000 8 D2 \& r" D* B2 M4 M
          set = 2;. T) J' Q: n0 {6 P: t7 T
        #2000 3 ~1 b7 H/ J  e+ f% r% c+ ^+ P
          set = 3;  I6 J- K* ^4 |0 q
  #2000
( e( V  Z. K, |; E8 \/ s" j9 x/ @  $finish;+ e3 Y  N4 o$ `; n& V
end
) L5 n  U7 B" k7 aendmodule // xclk_tf
作者: tommywgt    時間: 2007-9-10 02:49 PM
這個有趣了% O' _$ s% L3 U5 d" ?
有simulation的waveform嗎?  Z8 S  n- ?2 U/ r8 F6 y
示波器量的更好~~~^^"
作者: tieyuhsun    時間: 2007-9-10 05:20 PM
有附 test bench4 g/ y) Q( e7 H& Q+ W
確實可用! 已實驗過,但我不會貼圖。# W3 U7 ~! M. `; Z  R  t$ _: }
只要略加修改即可實現。
作者: kokonut    時間: 2007-12-24 02:50 PM
請問一下你是要控制LED在顯示方面的應用嗎??
4 u4 C& r9 q/ w1 W% {* A+ Q8 M. Y1 X+ a7 x7 H+ f: ?
可以和你討論幾個問題嗎??: k$ x5 z6 B6 ]7 T$ p8 [+ e
1 B, s; s: t5 q( \4 g; @
方便留MSN嗎??
" m8 d% ~! @: F. `2 W; p
5 @5 V2 ]( `: v; B0 O感謝
作者: kolong    時間: 2007-12-24 04:35 PM
沒錯...
6 @" ^- j% ]4 g  z# j. I是要用在LED Backlight的....9 L% L: P+ s) o9 y$ }( i
其實有問題可以在這個帖子直接討論..
) g# `2 b; G0 ?. o2 @9 K這個沒什麼秘密啦..." z  ~5 J: j* X( z8 S
因為我已經申請專利了.....
作者: yoyo20701    時間: 2008-10-4 12:04 AM
嗯~~大大解答蠻詳細低~~~多謝喔~~~小第在研究看看~~~~~~~��




歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/) Powered by Discuz! X3.2