早就拿到了学习板,因为比较忙一直没时间体验,这两天抽出点时间分享一下体验心得:
首先和大家分享的是蜂鸣器,在开始的时候不知道是有源蜂鸣器还是无源,查看原理图之后做了如下测试:将100欧姆限流电阻R27对地短接(此时PIN_85处于三态输入模式),蜂鸣器能够正常响起,但是发现工作电流偏大约为55mA。
既然是有源蜂鸣器,便简单敲了如下代码:
module beep (in,out);
input in;
output wire out;
assign out=in;
endmodule
引脚分布如下:
set_location_assignment PIN_85 -to out
set_location_assignment PIN_90 -to in
编译,下载按下按键S3只能听到极其微弱的声响,为了达到好的提示效果,便将程序做了一下修改:
module beep(clock,be);
input clock;
output reg be;
reg [31:0] counter;
reg sig;
always @ (posedge clock)
begin
if (counter<4_999)
counter=counter+1;
else
counter=1;
end
always @ (posedge clock)
begin
if (counter==4_999)
sig=1'b1;
else
sig=1'b0;
end
always @ (posedge sig)
begin
be=~be;
end
endmodule
引脚设置如下:
set_location_assignment PIN_85 -to be
set_location_assignment PIN_24 -to clock
效果那真的不用说,当然通过更改上面程序中counter的参考值,效果也就不一样了,如果设置的参数太大了,输出频率偏低声音一方面比较低沉另一方面容易出现声音非常微弱的现象,如果counter的参考值设置的太小了,输出频率偏高,蜂鸣器的频率相应跟不上容易出现卡壳现象(没有声音),但是可以使用外力帮助驱动,就像步进电机的驱动频率过高无法正常起步的现象一样!
比人比较懒,希望大家别介意,另外送上向相应程序和设置脚本文件,如果要验证我的程序需要自行建立工程
下次找时间测试一下将限流电阻更换成小一点点看看直流驱动效果怎么样,要不是因为是USB供电还真希望设计者能够将限流电阻改成NPN行三极管,相应的驱动效果会好一下,在实际建模过程中还能省点资源(虽然一般情况下资源都是够用的,但是能省还是省一点好)