资讯详情

FPGA微型板Verilog实现PWM和伺服电机

PWM介绍

下图显示了PWM工作原理。 若脉冲很短(例如,仅在5%的时间内为高),则每个脉冲只传递少量能量。 脉冲越长,能量就越多。 这将控制电机的旋转速度。 使用PWM驱动LED亮度似乎在变化。 实际上,LED数百万次可以每秒打开和关闭,所以PWM脉冲会变成光脉冲。

PWM高电平输出时间百分比称为空比。 在实践中,比百分比更常见的是将占空比表示为0和2的幂乘以1的上限之间的值。很常见的范围是0到255,0完全关闭, 255一直打开。

PWM Verilog模块

实施PWM模块很容易。 您使用计数器并将其值与计数器进行比较。 若计数器低于占空比,则输出为高电平;若不正确,则输出为低电平。

PWM模块仅称为模块 pwm有两个输入pwm_clk和duty。 它的单个输出PWM_PIN将连接到需要PWM输出的GPIO引脚:

pwm_clk输入与FPGA系统范围时钟不同。PWM频率范围是500 Hz几千赫兹。 上述PWM因此,模块使用8位计数器pwm_clk需要频率PWM频率的256倍。 当您测试模块时,您将看到如何使用预分频器计数器获得较低的时钟频率PWM模块。

PWM模块的其他代码如下:

8位计数器计数随pwm_clk信号的上升沿增加。 然后将输出PWM_PIN设置为(计数<占空比)的结果。 换句话说,如果count小于占空比,则PWM_PIN将为1;否则,PWM_PIN将变为1。 否则为0。

本文用于测试PWM模块的模块比pwm模块本身要复杂得多。 按下向上和向下按钮时,它会改变LED的亮度。

测试仪模块具有系统时钟(CLK)用于上下变化的输入和两个开关引脚LED的亮度。 输出将链接到要更改其亮度的LED。 文件中包含测试模块的代码pwm_tester.v中:

目前应以熟悉的方式定义连接和抖动模块:

用于保持寄存器占空比(0-255),该值将使用 Up”和“ Down设置按钮。

pwm使用预分频器的位6输出模块实例pwm_clk输入提供给PWM模块:

测试仪模块always块会增加预分频器,然后检查是否有按下开关。 按下“ Up”和“ Down开关可以增加或减少占空比5:

为了使Verilog保持简单,不检查占空比是否超过255。如果是这样,它将自动更换,因为只有8位用于占空比,最大范围为255。

将项目的位置文件生成,然后加载到板上。 如何增减向上和向下按钮?LED的亮度。 假如你想知道PWM请尝试将整个过程放慢1000倍左右。为此,请更改pwm_tester.v第13行和第14行,向预分频器计数器增加另外10级。 这里的粗体突出显示了变化:

伺服电机

伺服电机(下图)是电机、变速箱和传感器的组合,通常用于远程控制飞机和直升机上的转向或表面角度。

除非是专用伺服电机,否则不会连续旋转。 它们通常只旋转约180度,但它们可以通过发送脉冲流精确地设置在任何位置。 下图显示了伺服电机的位置,以及如何确定伺服电机的脉冲长度。

伺服电机有三个连接:GND,正电源(5至6 V)与控制连接。 GND连接通常连接到棕色或黑色引线,正极连接到红色引线,控制连接到橙色或黄色引线。

虽然电机可以消耗相当大的电流,但控制连接所消耗的电流非常小。 伺服电机预计每20毫秒接收一次脉冲。 如果脉冲持续1.伺服器将位于5毫秒的中间。 若脉冲较短,则稳定在一侧,若脉冲较长,则移动到中心位置的另一侧。

硬件

尽管可以通过FPGA的5 V电源至少有一个小型伺服电机,但最好使用单独的电源,因为较大的启动电流会导致FPGA复位。

连接

伺服Verilog模块

伺服模块本身位于文件中Servo.v虽然所有三块板的时钟速度不同,但实际上是一样的。

模块具有CLK和pulse_len的输入。 输入pulse_len脉冲的持续时间(以微秒为单位)。 最大持续时间为65、536的16位数字μs(65 ms)。 假设脉冲每20次 ms事实上,到达一次远远超过伺服器要求1-2 ms脉冲之间所需的数量。 这使您可以将此模块用于高分辨率PWM。

模块输出CONTROL_PIN携带一系列脉冲:

因为FPGA使用一个参数来解决不同时钟速度导致时序混乱的问题。 这与模块的输入和输出参数不同之处在于,它是在合成项目(生成的位文件)而不是在实际操作中进行评估。 您可以这样声明一个参数:

用于控制脉冲时序的两个16位寄存器、预分频器和计数器:

always模块与FPGA时钟同步,第一步是在预分频器上加1。 预分频器每微秒达到参数CLK_F-1的值。 这样做时,预分频器将被重置,然后将1添加到count。 然后将控制引脚设置为和pulse_len比较计数结果。

详情参阅 - 亚图跨际

标签: 高分辨率伺服型加速度传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台