国产FPGA高云GW1N-4系列开发板测评之——步进电机控制(改)
[复制链接]
本帖最后由 打破传统 于 2022-1-24 16:13 编辑
上一篇实现了步进电机的简单正转反转,后来想一下之前调试通过了UART,做个用上位机控制步进电机实现精确控制步进电机的转动角度。
28BYJ48 步进电机的减速比是1:64,步进角为5.625/64度,所以对应于4拍驱动,每拍转动角度为5.625/32度,4拍转动5.625/8度。
那么我们以4拍转动的角度为最小转动单元,则转一圈需要512个4拍。
UART传输8bit数据,我们先定一个简单的协议,最高Bit位1表示正转,0表示反转。低bit位表示步数。
接下来修改代码:
由于传输的数据bit位反转,这里要处理一下如上图,代码在附件中。
编译没问题后修改testbench,仿真一下看看结果:
接下来分配管脚,添加时钟约束:
编译后搭好电路上板测试:
UART收发数据01正常但是步进电机没有转动不正常,查了一下testbench中没有仿真到01的情况,于是试试加入嵌入式逻辑(当然也可以修改testbench),分析看看:
编译好工程下载:
看到上图中为1步时状态快速变化到0,查找代码需要添加一个逻辑如下:
修改后重新编译再看:
正常,测试了一下正反转都正常,最大一次步进127步。
至此通过串口控制步进电机小工程完成,展示如下动图:
|