lan_lingshan 发表于 2012-5-25 10:47:08

10M怎么分频成256K

想把10M的晶振频率分频为256K,有什么小数分频芯片吗?用PLL可以实现吗?

gzhuli 发表于 2012-5-25 10:53:37

16倍频到160MHz然后625分频。

wye11083 发表于 2012-5-25 12:17:45

39分频就行了。那一点频率差别可以忽略。

avrgogo 发表于 2012-5-25 12:37:55

查一下什么叫小数分频。

msxdt 发表于 2012-5-25 13:16:04

用DDS的相位累加器的原理也可以

lan_lingshan 发表于 2012-5-28 09:26:46

①试了一下,用二楼说的似乎比较靠谱,之前考虑的是先对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仿真看

xtxtt 发表于 2012-5-28 09:27:52

可以                  !

ibmx311 发表于 2012-5-28 10:28:58

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

gzhuli 发表于 2012-5-28 11:05:36

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就可以实现。

catvevs 发表于 2012-5-28 11:29:25

gzhuli 发表于 2012-5-28 11:05 static/image/common/back.gif
如果你是用FPGA内部PLL倍频,那么10M -> 160M是最方便的。
如果你不用FPGA,那么160M的PLL做起来可能比较 ...

4046 PLL?相位噪声怎么样?

gzhuli 发表于 2012-5-28 11:49:10

catvevs 发表于 2012-5-28 11:29 static/image/common/back.gif
4046 PLL?相位噪声怎么样?

LZ没说要求相噪怎么样呀。
不过实话实说,HC4046的RC VCO对电源噪声非常敏感,256倍频后相噪肯定是很大的,远不如160倍频再625分频的方案。

ibmx311 发表于 2012-5-28 12:33:28

相噪的位置也很重要呀,比如要想远于100kHz好,还是要求10k以内要好,做法也不一样。
要想象晶体振荡器那样一层一层下来是不现实的。毕竟是pll
我上面的小数分频不能用吗。当然吞脉冲以后的抖动是不可避免的。

lan_lingshan 发表于 2012-5-28 14:52:33

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),这个可配置的分频芯片,看文档说明配置挺灵活的

gzhuli 发表于 2012-5-28 15:01:35

lan_lingshan 发表于 2012-5-28 14:52 static/image/common/back.gif
用FPGA来倍频,的确方便多了,内部的IP核设置一下就OK了,如果不用FPGA似乎就要麻烦许多,在TI官网上找了 ...

干脆考虑用DDS吧,淘宝的AD9850白菜价,比你用FPGA划算多了。

NJ8888 发表于 2012-5-28 15:30:07

直接一个1.024M或8.192Mhz或其他有源晶体分频不就行啦

lan_lingshan 发表于 2012-5-28 15:47:44

温补晶振有这个频率的不好买啊

riverblue2010 发表于 2012-5-28 16:05:12

小数分频精度是可以的

gzhuli 发表于 2012-5-28 16:28:40

lan_lingshan 发表于 2012-5-28 15:47 static/image/common/back.gif
温补晶振有这个频率的不好买啊

12.8 19.2 24.576的TCXO都很好买呀。

NJ8888 发表于 2012-5-28 16:29:47

基于PLL的有附加相位抖动

ibmx311 发表于 2012-5-28 16:43:49

我感觉大家你一言我一语的楼主已然晕菜了.还是先打通2脉吧,到时候想出什么就出什么.

lan_lingshan 发表于 2012-5-28 17:55:04

gzhuli 发表于 2012-5-28 16:28 static/image/common/back.gif
12.8 19.2 24.576的TCXO都很好买呀。

不要求现货的就好买,因为这个许多生产TCXO的大多数都是国外的,一周之内拿不到现货,结果找的Connor-Winfield才找到,要一周之内拿到货的只有10M的,所以···

gzhuli 发表于 2012-5-28 18:18:14

lan_lingshan 发表于 2012-5-28 17:55 static/image/common/back.gif
不要求现货的就好买,因为这个许多生产TCXO的大多数都是国外的,一周之内拿不到现货,结果找的Connor-Win ...

有那么赶么?你这问题都研究3天了吧,还没个结论。
相噪要求高的话,依我看比较简单的就两条路,一个就是FPGA PLL倍频再分频,另一个就是DDS。

ibmx311 发表于 2012-5-28 18:34:12

我手里有19.2温补150只,可以便宜点出,1ppm/-30 - +75

gaoxy2008 发表于 2012-5-28 18:37:40

先10分频,然后再4分频。
10分频的器件,忘记器件型号了。

ibmx311 发表于 2012-5-28 18:58:38

gzhuli 发表于 2012-5-28 15:01 static/image/common/back.gif
干脆考虑用DDS吧,淘宝的AD9850白菜价,比你用FPGA划算多了。

老大,现在的白菜真的比9850贵多了.我现在十分想念一片89c51可以买5颗白菜的日子。

gaoxy2008 发表于 2012-5-28 19:01:20

4017,可以10分频,74ls74四分频

gzhuli 发表于 2012-5-28 19:01:41

ibmx311 发表于 2012-5-28 18:58 static/image/common/back.gif
老大,现在的白菜真的比9850贵多了.我现在十分想念一片89c51可以买5颗白菜的日子。 ...

你天天大鱼大肉的,还用怀念白菜什么价?

gzhuli 发表于 2012-5-28 19:05:23

gaoxy2008 发表于 2012-5-28 19:01 static/image/common/back.gif
4017,可以10分频,74ls74四分频

回帖先看帖,要是40分频可以这个帖子3天前就结了。

ibmx311 发表于 2012-5-28 19:12:15

gzhuli 发表于 2012-5-28 19:01 static/image/common/back.gif
你天天大鱼大肉的,还用怀念白菜什么价?

见笑见笑,都是小鱼小肉

xizi 发表于 2012-5-28 20:17:49

gaoxy2008 发表于 2012-5-28 18:37 static/image/common/back.gif
先10分频,然后再4分频。
10分频的器件,忘记器件型号了。

你的分频结果是10M/40 = 250k。楼主要求的是10M/256k = 39.0625

millwood0 发表于 2012-5-28 20:36:00

楼主要求的是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.

gaoxy2008 发表于 2012-5-28 21:11:22

不好意思答错题了。

gaoxy2008 发表于 2012-5-28 21:14:31

那就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

gaoxy2008 发表于 2012-5-28 21:14:49

可以吗?

gaoxy2008 发表于 2012-5-28 21:16:24

只不过要4片4016,4片74LS74,共8片芯片。

gaoxy2008 发表于 2012-5-28 21:19:17

还想还是错了。74LS74是分频,相当于/2,要PLLx2才行。{:sad:}

gaoxy2008 发表于 2012-5-28 21:20:40

谁能推荐一款4倍频的芯片?

lan_lingshan 发表于 2012-5-29 09:00:21

gzhuli 发表于 2012-5-28 18:18 static/image/common/back.gif
有那么赶么?你这问题都研究3天了吧,还没个结论。
相噪要求高的话,依我看比较简单的就两条路,一个就是 ...

正如你所说的,现在就是走这两条路,先用FPGA做出来,时间充裕在弄DDS,没想到ADI这方面的器件挺多的,有现成的Fractional-N PLLs,还得谢谢你的那个AD9850啊

lan_lingshan 发表于 2012-5-29 09:19:21

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 ...

这个跟二楼的是一个道理啊

lan_lingshan 发表于 2012-5-29 09:20:57

ibmx311 发表于 2012-5-28 18:34 static/image/common/back.gif
我手里有19.2温补150只,可以便宜点出,1ppm/-30 - +75

但是要求的是0.5PPM······

h572 发表于 2012-5-29 09:44:02

LZ要求的256K信号相噪要到什么指标!

ibmx311 发表于 2012-5-29 10:17:21

h572 发表于 2012-5-29 09:44 static/image/common/back.gif
LZ要求的256K信号相噪要到什么指标!

看样子恐怕1k的地方至少要-150dbc

gzhuli 发表于 2012-5-29 10:53:15

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系列都搞不定。而且前面也说了,这个方法相噪大,楼主没法用。

gzhuli 发表于 2012-5-29 10:58:51

ibmx311 发表于 2012-5-29 10:17 static/image/common/back.gif
看样子恐怕1k的地方至少要-150dbc

感觉这个指标对于LZ来说有点mission impossible...

h572 发表于 2012-5-29 21:17:16

2片74HC390组成1250(5*5*5*5*2)分频,得8k,用8k做鉴相噪音会好点。
页: [1]
查看完整版本: 10M怎么分频成256K