==设计要求== FPGA接收编码器的信号,控制LED颜色的变换,编码器采用[[HRPG-AD32]]编码器。 {{ :rotate_encoder_system.jpg |}} ==方案设计== - 增量型[[旋转编码器]]有两路相位不同的信号输出,Phase A 和 Phase B,FPGA需要对这两路输入信号进行分析,判断出旋转的动作,输出一个加(up)或减(down)的脉冲信号。 - 同时,很多旋转编码器都有按键功能,除了旋转以外可以按下,这个按键和旋转是独立的。FPGA内部对按键进行了消抖动,并响应动作产生一个脉冲信号(key_out) - 改代码加入了现象的验证,输出为6位数据,可接上LED观看现象,旋转和按键会使LED产生流水灯效果 - 在小脚丫开发板上的现象如下图,两个三色LED会按照如图方式进行切换轮流显示。视频中可以观看到 {{ :rotate_encoder_state.png |}} **旋转编码器状态转换** ==硬件设计== 连接图中,主要有电源和GND,两路信号,按键信号(如果有按键),大地(接机壳,Avago HRPG-AD32#16F上没有按键,多了一个接机壳的地脚,仍然是5个脚) {{ :rotate_encoder_connection.png |}} ** 小脚丫FPGA同旋转编码器的连接** ==软件设计== FPGA程序结构 {{ :rotate_encoder_flow.png |}} ** 旋转编码器程序结构** ==FPGA资源占用情况== {{ :rotate_encoder_report.png |}} ** 小脚丫FPGA驱动旋转编码器所占用资源** 项目视频演示: http://v.youku.com/v_show/id_XMTM5NDc3MjI4MA==.html ==本设计中用到的主要芯片== - LCMXO2-1200:Lattice FPGA,主频133Mhz,PBGA132封装([[http://www.datasheet5.com/pn-LCMXO2-1200HC-4MG132CR1-1121565|LCMXO2-1200数据手册]]) - [[Avago Technologies]]:HRPG AD32 16F,旋转编码器,([[http://www.avagotech.com/cs/Satellite?q=HRPG&pagename=AVG2/searchLayout&locale=avg_en&within=null&Search=HRPG+AD32+16F&srch-radio=new&Submit=Search|Avago HRPG-AD32#16F数据手册]]) - 小脚丫开发板:DIP40封装形式,小巧精悍的FPGA开发板,([[http://www.eeboard.com/bbs/thread-44647-1-1.html|小脚丫开发板相关信息]]) - 小脚丫FPGA开发板【自带编译器】至爱板网商城购买:[[http://www.eeboard.com/shop/index.php?c=products&a=view&t=s&id=3340|点击购买]] - 电路相关文件下载:http://www.cirmall.com/circuit/2704