10M怎么分频成256K
想把10M的晶振频率分频为256K,有什么小数分频芯片吗?用PLL可以实现吗? 16倍频到160MHz然后625分频。 39分频就行了。那一点频率差别可以忽略。 查一下什么叫小数分频。 用DDS的相位累加器的原理也可以 ①试了一下,用二楼说的似乎比较靠谱,之前考虑的是先对10M分频成100K在倍频成256K,用FPGA的PLL输入频率好像至少得5M,这样就不行了,按照二楼的先对10M倍频成160M,在对160M整数分频成256就正好了②此处要求精度比较高,不能用39
③关于小数分频,参考一下人家的博客:http://www.cnblogs.com/sleepy/archive/2010/12/11/1903438.html,其中这个小数分频似乎也就是将16.11328125后面的0.11328125进行累加,然后平均来看是实现了小数分频,但是总觉得不理想
④DDS的相位累加器不知道是不是CrazyBingo博文中提到的那种,或者是③中博文中提到的,这个还没弄明白,还在继续Modelsim仿真看 可以 !
module epm2210_01(
//用于输入的I/O
clk,
rst,
clkin,
numerator, //分子值
denominator, //分母值
//分频器输出
pulse
);
input clk;
input rst;
input clkin;
input numerator;
input denominator;
output pulse;
reg pulse;
parameter HIGHTIME=10'd2;
wire quotient; //商
wire remainder;//余数
reg ina;
reg inb;
reg upclk;
reg counter_clkin;
reg counter;
reg divnum;
reg sum;
reg flag;
reg counter_pulseh;
wire hightime;
assign quotient=(denominator)?numerator/denominator:10'h0;
assign remainder=(denominator)?numerator%denominator:10'h0;
assign hightime={1'b0,quotient};
//assign hightime=16'h1;
//save the prior and current state of clkin
always @(posedge clk or negedge rst)
begin
if(!rst)
begin
//numerator<=16'd25;
// denominator<=16'd12;
ina<=0;
inb<=0;
end
else
begin
ina<=clkin;
inb<=ina;
end
end
//check posedge pf clkin
always @(posedge clk or negedge rst)
begin
if(!rst) upclk<=0;
else if(!inb&ina) upclk<=1'b1;
else upclk<=0;
end
//fre div counter
always @(posedge clk or negedge rst)
begin
if(!rst)
begin
counter<=0;
end
else if(counter==divnum) counter<=10'h0;
else if(upclk) counter<=counter+1'b1;
else counter<=counter;
end
always @(posedge clk or negedge rst)
begin
if(!rst)
begin
sum<=0;
flag<=0;
end
else if(counter==divnum)
begin
if((sum+remainder)>=denominator) //分母
begin
sum<=sum+remainder-denominator;
flag<=1;
end
else
begin
sum<=sum+remainder;
flag<=0;
end
end
end
always @(posedge clk or negedge rst)
if(!rst) divnum<=0;
else if(flag) divnum<=quotient+1'b1;
else divnum<=quotient;
//counter_plush
always @(posedge clk or negedge rst)
begin
if(!rst) counter_pulseh<=hightime+10'h1;
else if((counter==divnum)&&divnum) counter_pulseh<=0;
else if(upclk) counter_pulseh<=counter_pulseh+1'b1;
end
//pulse produce
always @(posedge clk or negedge rst)
if(!rst) pulse<=1'b0;
else if(counter_pulseh<=(hightime-1)) pulse<=1'b1;
else pulse<=1'b0;
endmodule lan_lingshan 发表于 2012-5-28 09:26 static/image/common/back.gif
①试了一下,用二楼说的似乎比较靠谱,之前考虑的是先对10M分频成100K在倍频成256K,用FPGA的PLL输入频率好 ...
如果你是用FPGA内部PLL倍频,那么10M -> 160M是最方便的。
如果你不用FPGA,那么160M的PLL做起来可能比较困难,另一种方案就是10M先分频到1K,然后256倍频到256K,用4片74就可以实现。
gzhuli 发表于 2012-5-28 11:05 static/image/common/back.gif
如果你是用FPGA内部PLL倍频,那么10M -> 160M是最方便的。
如果你不用FPGA,那么160M的PLL做起来可能比较 ...
4046 PLL?相位噪声怎么样? catvevs 发表于 2012-5-28 11:29 static/image/common/back.gif
4046 PLL?相位噪声怎么样?
LZ没说要求相噪怎么样呀。
不过实话实说,HC4046的RC VCO对电源噪声非常敏感,256倍频后相噪肯定是很大的,远不如160倍频再625分频的方案。 相噪的位置也很重要呀,比如要想远于100kHz好,还是要求10k以内要好,做法也不一样。
要想象晶体振荡器那样一层一层下来是不现实的。毕竟是pll
我上面的小数分频不能用吗。当然吞脉冲以后的抖动是不可避免的。 gzhuli 发表于 2012-5-28 11:05 static/image/common/back.gif
如果你是用FPGA内部PLL倍频,那么10M -> 160M是最方便的。
如果你不用FPGA,那么160M的PLL做起来可能比较 ...
用FPGA来倍频,的确方便多了,内部的IP核设置一下就OK了,如果不用FPGA似乎就要麻烦许多,在TI官网上找了几款倍频和分频的芯片:
①倍频的芯片CD4046(模拟的),这个应该和74HC4046差不多吧,但是对10M倍频程160M有点儿不适用了,10M的频率太高了点儿,如果先将10M的分频成1K,在倍频成256K,CD4046可以用,就如楼上说的引入了相位噪声,会影响到IF板的精度;CD54HC297/CD74HC297/CD74HCT297(数字的)这款还没大看明白,所以还在纠结这个倍频的芯片选择上
②分频的芯片CD4059A(CMOS Programmable Divide-by-“N” Counter),这个可配置的分频芯片,看文档说明配置挺灵活的
lan_lingshan 发表于 2012-5-28 14:52 static/image/common/back.gif
用FPGA来倍频,的确方便多了,内部的IP核设置一下就OK了,如果不用FPGA似乎就要麻烦许多,在TI官网上找了 ...
干脆考虑用DDS吧,淘宝的AD9850白菜价,比你用FPGA划算多了。 直接一个1.024M或8.192Mhz或其他有源晶体分频不就行啦 温补晶振有这个频率的不好买啊 小数分频精度是可以的 lan_lingshan 发表于 2012-5-28 15:47 static/image/common/back.gif
温补晶振有这个频率的不好买啊
12.8 19.2 24.576的TCXO都很好买呀。 基于PLL的有附加相位抖动 我感觉大家你一言我一语的楼主已然晕菜了.还是先打通2脉吧,到时候想出什么就出什么. gzhuli 发表于 2012-5-28 16:28 static/image/common/back.gif
12.8 19.2 24.576的TCXO都很好买呀。
不要求现货的就好买,因为这个许多生产TCXO的大多数都是国外的,一周之内拿不到现货,结果找的Connor-Winfield才找到,要一周之内拿到货的只有10M的,所以··· lan_lingshan 发表于 2012-5-28 17:55 static/image/common/back.gif
不要求现货的就好买,因为这个许多生产TCXO的大多数都是国外的,一周之内拿不到现货,结果找的Connor-Win ...
有那么赶么?你这问题都研究3天了吧,还没个结论。
相噪要求高的话,依我看比较简单的就两条路,一个就是FPGA PLL倍频再分频,另一个就是DDS。 我手里有19.2温补150只,可以便宜点出,1ppm/-30 - +75 先10分频,然后再4分频。
10分频的器件,忘记器件型号了。 gzhuli 发表于 2012-5-28 15:01 static/image/common/back.gif
干脆考虑用DDS吧,淘宝的AD9850白菜价,比你用FPGA划算多了。
老大,现在的白菜真的比9850贵多了.我现在十分想念一片89c51可以买5颗白菜的日子。 4017,可以10分频,74ls74四分频 ibmx311 发表于 2012-5-28 18:58 static/image/common/back.gif
老大,现在的白菜真的比9850贵多了.我现在十分想念一片89c51可以买5颗白菜的日子。 ...
你天天大鱼大肉的,还用怀念白菜什么价? gaoxy2008 发表于 2012-5-28 19:01 static/image/common/back.gif
4017,可以10分频,74ls74四分频
回帖先看帖,要是40分频可以这个帖子3天前就结了。 gzhuli 发表于 2012-5-28 19:01 static/image/common/back.gif
你天天大鱼大肉的,还用怀念白菜什么价?
见笑见笑,都是小鱼小肉 gaoxy2008 发表于 2012-5-28 18:37 static/image/common/back.gif
先10分频,然后再4分频。
10分频的器件,忘记器件型号了。
你的分频结果是10M/40 = 250k。楼主要求的是10M/256k = 39.0625 楼主要求的是10M/256k = 39.0625
1/0.0625 = 16.
a far simpler approach is to use your crystal to drive a frequency synthesizer that's programmed for Fcrystal * 16 / (39.0625 * 16).
there are many such chips, some requires mcu programming, others can be programmed and then run free. Try TI/ON for more information.
不好意思答错题了。 那就10M/10=1M,
1Mx16=16M
16M/10=1.6M
1.6M*4=6.4M
6.4M/10=0.64M
0.64M*4=2.56M
2.56M/10=256k
可以吗? 只不过要4片4016,4片74LS74,共8片芯片。 还想还是错了。74LS74是分频,相当于/2,要PLLx2才行。{:sad:} 谁能推荐一款4倍频的芯片? gzhuli 发表于 2012-5-28 18:18 static/image/common/back.gif
有那么赶么?你这问题都研究3天了吧,还没个结论。
相噪要求高的话,依我看比较简单的就两条路,一个就是 ...
正如你所说的,现在就是走这两条路,先用FPGA做出来,时间充裕在弄DDS,没想到ADI这方面的器件挺多的,有现成的Fractional-N PLLs,还得谢谢你的那个AD9850啊 millwood0 发表于 2012-5-28 20:36 static/image/common/back.gif
1/0.0625 = 16.
a far simpler approach is to use your crystal to drive a frequency synthesizer tha ...
这个跟二楼的是一个道理啊 ibmx311 发表于 2012-5-28 18:34 static/image/common/back.gif
我手里有19.2温补150只,可以便宜点出,1ppm/-30 - +75
但是要求的是0.5PPM······ LZ要求的256K信号相噪要到什么指标! h572 发表于 2012-5-29 09:44 static/image/common/back.gif
LZ要求的256K信号相噪要到什么指标!
看样子恐怕1k的地方至少要-150dbc gaoxy2008 发表于 2012-5-28 21:14 static/image/common/back.gif
那就10M/10=1M,
1Mx16=16M
16M/10=1.6M
说了回帖先看帖,不要梦呓般自言自语,真怀疑你是来混莫元的……
我在9楼已经给出类似的电路了,2片74HC390组成10000分频得到1kHz参考信号,74HC4046 VCO振荡频率范围约240~270kHz,经过74HC4040 256分频后和1kHz参考信号锁相,VCO输出频率就是256kHz了。
乘除法结合律是小学知识了,按你那方法倍频分频分几次来,10片74系列都搞不定。而且前面也说了,这个方法相噪大,楼主没法用。 ibmx311 发表于 2012-5-29 10:17 static/image/common/back.gif
看样子恐怕1k的地方至少要-150dbc
感觉这个指标对于LZ来说有点mission impossible... 2片74HC390组成1250(5*5*5*5*2)分频,得8k,用8k做鉴相噪音会好点。
页:
[1]