请问如何用verilog hdl编写频率可调的脉冲信号
小弟初学verilog,现在想编写一个频率可以调节的脉冲发送程序,用于驱动伺服电机。比如频率在50--500之间,发送10000个脉冲(2500线电机。10000个脉冲刚...
小弟初学verilog,现在想编写一个频率可以调节的脉冲发送程序,用于驱动伺服电机。比如频率在50--500之间,发送10000个脉冲(2500线电机。10000个脉冲刚好转一圈),我现在用的是ZLG easyFPGA030学习板,48MHZ的时钟频率。
请各位大侠指点
要是您有现成程序发给我参看学习
lieij@163.com
谢谢了 展开
请各位大侠指点
要是您有现成程序发给我参看学习
lieij@163.com
谢谢了 展开
5个回答
展开全部
原理:
用一个足够大的计数器,对主时钟进行计数,(比如计数器定义为reg[5:0]count;那么你可以定义当count为何值时翻转时钟,那么就可以得到频率可变的时钟)。
但是这样做的话,只能得到50%占空比的脉冲。用于伺服电机,脉冲应该也是可变的才对。这时候再加一个计数器count2,两个计数器同时计数,一个代表正脉宽,另一个代表负脉宽,调节两个计数器的大小就可以实现频率、脉冲同时可变了。
具体方法:
1、当保持count+count2值不变时,则频率不变,调节count和count2的值(其实就是一个加多少另一个就减多少了)就可以改变占空比
2、如果count+count2的值也改变,那么频率也就改变了。
用一个足够大的计数器,对主时钟进行计数,(比如计数器定义为reg[5:0]count;那么你可以定义当count为何值时翻转时钟,那么就可以得到频率可变的时钟)。
但是这样做的话,只能得到50%占空比的脉冲。用于伺服电机,脉冲应该也是可变的才对。这时候再加一个计数器count2,两个计数器同时计数,一个代表正脉宽,另一个代表负脉宽,调节两个计数器的大小就可以实现频率、脉冲同时可变了。
具体方法:
1、当保持count+count2值不变时,则频率不变,调节count和count2的值(其实就是一个加多少另一个就减多少了)就可以改变占空比
2、如果count+count2的值也改变,那么频率也就改变了。
展开全部
频率可调的信号可以这么实现:
用一个足够大的计数器,对主时钟进行计数,比如计数器定义为reg[5:0]count;那么你可以定义当count为何值时翻转时钟,那么就可以得到频率可变的时钟。
但是这样做的话,只能得到50%占空比的脉冲。
用于伺服电机,脉冲应该也是可变的才对。这时,你可以再加一个计数器count2,两个计数器同时计数,一个代表正脉宽,另一个代表负脉宽,调节两个计数器的大小就可以实现频率、脉冲同时可变了。
具体方法是,当保持count+count2值不变时,则频率不变,调节count和count2的值(其实就是一个加多少另一个就减多少了)就可以改变占空比;如果count+count2的值也改变,那么频率也就改变了。
用一个足够大的计数器,对主时钟进行计数,比如计数器定义为reg[5:0]count;那么你可以定义当count为何值时翻转时钟,那么就可以得到频率可变的时钟。
但是这样做的话,只能得到50%占空比的脉冲。
用于伺服电机,脉冲应该也是可变的才对。这时,你可以再加一个计数器count2,两个计数器同时计数,一个代表正脉宽,另一个代表负脉宽,调节两个计数器的大小就可以实现频率、脉冲同时可变了。
具体方法是,当保持count+count2值不变时,则频率不变,调节count和count2的值(其实就是一个加多少另一个就减多少了)就可以改变占空比;如果count+count2的值也改变,那么频率也就改变了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Arduino怎么输出占空比可调的PWM信号?能够输出PWM信号引脚的使用方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个简单,参看DDS的原理,可是直流电机?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对时钟进行分频操作就可以了~~~~
可以用 FPGA自己的核来完成,不必自己码代码~~
可以用 FPGA自己的核来完成,不必自己码代码~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询