打印

请问如何将一个方波降频 1000 倍并且占空比不变

[复制链接]
3978|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
PSIR|  楼主 | 2011-8-11 11:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
zjp8683463| | 2011-8-11 11:10 | 只看该作者
用cpld吧

使用特权

评论回复
板凳
chunyang| | 2011-8-11 12:19 | 只看该作者
用软件分频,用可编程器件也行。

使用特权

评论回复
地板
PSIR|  楼主 | 2011-8-11 13:46 | 只看该作者
频率那么高,时间那么短,单片机也是力有未逮,所以用软件分频几乎不可行,
可編程器可以除频并且忠实反应 Duty Cycle 的变化吗?

使用特权

评论回复
5
zjp8683463| | 2011-8-11 14:50 | 只看该作者
硬件定时,你想怎么搞就这么搞。

使用特权

评论回复
6
waerpcj| | 2011-8-11 15:36 | 只看该作者
本帖最后由 waerpcj 于 2011-8-11 16:37 编辑

我说说我的想法
1.将原始信号进行500分频得到F1,(占空比0.5)
2.将F1信号再进行二分频得到F2,(占空比0.5)
3.将F1与F2通过与门逻辑并进行滤波处理,可得到信号F3,(占空比0.25,频率已为原始信号的1/1000)

使用特权

评论回复
7
maychang| | 2011-8-11 16:17 | 只看该作者
如果占空比有变化,仅分频是不行的。

使用特权

评论回复
8
VIP4会员| | 2011-8-11 16:22 | 只看该作者
积分转为电压再转为PWM

使用特权

评论回复
9
xmar| | 2011-8-11 16:28 | 只看该作者
本帖最后由 xmar 于 2011-8-11 16:29 编辑

。。。。。/----------- in / 500---------|
in --------|                                      |)-------与门---输出--
               \------------in / 1000------ |

使用特权

评论回复
10
wzf3151| | 2011-8-11 16:38 | 只看该作者
8楼有点可行,和我的思路很接近。把原始波形用计数器按照你想要的频率分频,分频后就成了占空比50%的方波,再把方波转化为同频三角波,三角波经过比较器,比较器的比较门限从原始波形经过积分后的电压得到

使用特权

评论回复
11
wzf3151| | 2011-8-11 16:38 | 只看该作者
也可以通过单片机实现

使用特权

评论回复
12
wzf3151| | 2011-8-11 16:39 | 只看该作者
爱怎么分怎么分,想占空比多少就占空比多少

使用特权

评论回复
13
Jason_Huang3| | 2011-8-11 16:55 | 只看该作者
可以选择用NE555硬件调占空比

使用特权

评论回复
14
PSIR|  楼主 | 2011-8-11 17:22 | 只看该作者
大家好:

由于 500KHZ 方波是一个 PWM 调变信号,我改用RC低通滤波后得到右边的直流电压,
假设满刻度是左边的 1/4 占空比,代表 90 度(电压1.5V),所以占空比为 0 时就是 0 度(0V),
如果没有一个满刻度参考源的话,如何由电压换算回角度?谢谢。

Phase_PWM_RC.jpg (25.84 KB )

Phase_PWM_RC.jpg

使用特权

评论回复
15
YT10L| | 2011-8-11 17:25 | 只看该作者
可以先分频,再调占空比,实现起来简单

使用特权

评论回复
16
xmar| | 2011-8-11 17:26 | 只看该作者
用cpld器件,verilog编程很容易实现。其verilog代码如下:

module dff1000(clk, out);
input clk;
output out;

reg out;
reg [10:0] count;

initial
  count = 10'h3E8;  // 1000

alway @ (posedge clk)
  if(count)
    begin
    count <= count - 1;
    if(count > (10'h3E8 - 8'hFA)) // count > (1000 - 250)
      out <= 1;
    else
      out <= 0;
    end
  else
    begin
    count <= 10'h3E8; // 1000
    out <= 1;
    end

endmodule

使用特权

评论回复
17
monkey708| | 2011-8-11 22:06 | 只看该作者
6楼正解!

使用特权

评论回复
18
maychang| | 2011-8-11 23:17 | 只看该作者
14楼:
你的PWM信号经RC滤波后不应该是1.5V,而是1.25V。

使用特权

评论回复
19
PSIR|  楼主 | 2011-8-12 09:10 | 只看该作者
多謝18樓的指正,那個 1.5V 是我假設的,我做過實驗忘了實際電壓是多少了,
後來有人告訴我是 5* 1/4 = 1.25V才對!!

使用特权

评论回复
20
maychang| | 2011-8-12 09:17 | 只看该作者
19楼:
既然是要经过RC滤波得到直流电压,分频干什么?不分频直接滤波,那才滤得痛快。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

119

帖子

1

粉丝