这是描述信息

基于GD32代理商微控制器的段码显示器RS232接口一体化步进电机驱动控制器

基于GD32代理商微控制器的段码显示器RS232接口一体化步进电机驱动控制器

基于GD32代理商微控制器的段码显示器RS232接口一体化步进电机驱动控制器

基于GD32代理商微控制器的段码显示器RS232接口一体化步进电机驱动控制器

基于GD32代理商微控制器的段码显示器RS232接口一体化步进电机驱动控制器

基于GD32代理商微控制器的段码显示器RS232接口一体化步进电机驱动控制器

说明一下:选用了IIC驱动方式,硬件连接SCL、SDAIN和SDAOUT引脚,
也就是说有应答检测是从SDAOUT引脚返回给MCU的。
硬件平台:微控制器选择GD32F103
PCA8538评估板
红外遥控器

并使用红外遥控器进行控制

创提供的示例十分丰富,注释清晰,移植太方便了。
IIC,RTC,DS18B20等驱动完全都不用改,项目完成很顺利。

核心代码部分分析:
主循环里 if(now!=timer.sec){}中每秒进行温度和时间更新。
if(Remote_Rdy){}检测遥控器发出的指令并执行。
PCA8538_TIME();参数较多,大家可以详细看一下,实现温度和时间同时显示,有点复杂
(相对于寄存器“冲突”情况)
while(1)
{
      if(POWER_flag == 1)
      {
            if(now!=timer.sec)
            {
                  now=timer.sec;
                  temp = DS18B20_Get_Temp();
                  printf("t1:%dn",temp);
                   temp_high = (temp/100);
                   temp_low = (temp/10-(temp/100*10));
                  PCA8538_TIME(temp_high,temp_low,timer.hour/10,timer.hour%10,timer.min/10,timer.min%10);
                   LED0 = !LED0;
            }
      }
      if(Remote_Rdy)
      {
            key=Remote_Process();
            switch(key)
            {
                  case BUTTON_POWER:
                        PCA8538_POWER();
                        POWER_flag=1;
                        ice_num=0;
                        break;
                  case BUTTON_1:
                        if(flag == 0)
                        {
                        PCA8538_AUTO(1);
                        flag = 1;
                         }
                          else
                         {
                          PCA8538_AUTO(0);
                          flag = 0;
                          }
                          break;
                  case BUTTON_2:
                          ice_num++;
                          if(ice_num>=4)
                          {
                                 ice_num=1;
                           }
                           PCA8538_NUM(ice_num);
                           break;
                  case BUTTON_3:
                           if(flag_light == 0)
                           {
                            PCA8538_LIGHT(1);
                             flag_light = 1;
                             }
                             else
                              {
                               PCA8538_LIGHT(0);
                               flag_light = 0;
                               }
                               break;
                  case BUTTON_4:
                               PCA8538_CLEAR();
                               POWER_flag=0;
                               break;
                   default:
                                break;
                  }
            }
      }
基于GD32代理商GD32-RS232接口一体化步进电机驱动控制器

本应用旨在引导一种模块化(module)设计思想,将传统步进电机的控制器(controller)、驱动器(Driver)、运动算法(Arithmetic)三合一,使其成为一个模块,或者称其为Black Box,使用者可以不用了解Box内的电路设计,程序架构,只需关心接口(interface)即可,这种接口可以适应多种主机(Host)控制,诸如PC,MCU,FPGA,PLC之类。Black Box替用户完成大于95%的工作量,使用者只需完成少于5%的工作量,即可快速完成平台的系统搭建。
同时本应用也很好的验证了GD32代理商GD32的系统抗干扰性和稳定性,MCU和Driver之间没有任何隔离,电机启停瞬间没有丝毫影响MCU工作。设计之初,就以用户的角度来构思方案,所以在功能上完全达到预定要求:
1、接口简单---RS232(Tx,Rx,GND)
2、指令简单---命令+参数
3、操作简单---指令操作电机启停、加减速控制
4、结构简单---小巧、有散热片
性能上也毫不逊色:
1、系统稳定---接口隔离、过流保护、高温停机
2、智能算法---自动选择梯形or三角形加减速波形,42电机空载可达2500RPM以上
一体化步进电机驱动控制器方案如下:
1. 物理尺寸特性
微型化设计,小体积45 mm x 45 mm x15mm
定位孔:Φ3mm x5mm:37.8mm x 37.8mm
高效散热系统
2. 电机驱动特性
宽电压输入12 ~ 24VDC
20级可调相电流输出,大2A峰值电流,指令在线调整
1、2、4、8、16、32微步细分,指令在线调整
双H桥恒流控制,指令在线可调整释放/使能
自动低电流锁定功能,降低功耗
适用于57及以下两相四线制步进电机
适用于1.8°及0.9°步距角电机
空载转速可达2500 RPM
大运行步数1 ~ 4294967295
过温、过流保护
3.通讯特性
RS232 三线串口通讯
通信波特率19200
通信接口光耦隔离
4.功能
控制、驱动、算法三合一
指令控制,方便调试和简化应用
智能加减速算法,提升电机运动性能
结构小巧,便于安装及系统集成
高级运动控制算法,智能线性加减速控制
配置参数可指令控制保存,可指令读取查看
指令简单易操作
傻瓜型用户界面,方便操作及移植开发

地址:深圳市宝安区西乡街道麻布社区宝安互联网产业基地A区6栋7栋7706

邮箱:Sales@ferry-semi.com

版权所有©2020  深圳市飞睿科技有限公司  粤ICP备2020098907号    飞睿科技微波雷达wifi模块网站地图