设计软件:ISE14.7
目标器件:Spartan-6(本人公司目前使用的一款)
设计思路:主要是使用状态机来编写RS232串口程序,之前看过特权同学的程序。这次做过项目以后,把自己的心得写出来与大家分享一下,不足之处还望各位码农、程序猿批评指正。
首先电脑串口波特率为38400,串码发送格式为:1位起始位0+8位数据+1位停止位1的格式。
FPGA的外部时钟为100MHz,内部通过Clock Wizard ip核来产生10MHz的内部使用时钟来处理数据。
首先利用Clock Wizard ip核产生10MHz时钟,如图
Project--New Source--IP(CORE Generator & Architecture Wizard)输入名称为clk_fre然后点击NEXT
选择View by Name---Clock Wizard--NEXT--Finish出现如图界面
保持默认设置,点击NEXT。我用的外部时钟是100MHz,所以这里没有改,直接NEXT,如图
这里产生2个时钟信号,一个为100MHz用来产生内部的复位信号rst_n;另一个为10MHz的时钟用来接收波特率为38400的RS232串码,点击NEXT,不要RESET和LOCKED信号。继续NEXT一直到最后Generate。
完成后,可以在左边的设计窗口里看见一个类似小灯泡形状的图形。这就是生成的IP核,待会原理图里会使用到。如图
IP核产生后,开始编写状态机的RS232串口接收程序,这部分放在附件里了,有兴趣的各位可以看一下,下面是原理图的截图
文章评论(0条评论)
登录后参与讨论