原创 数字化步进驱动设计之路02:一路顺风

2014-6-17 11:07 2128 17 19 分类: 工业电子 文集: 步进电机驱动笔记
入门级的步进驱动的功能框图如下
qq截图20140617102048.jpg
如果降低要求,电流采样这边直接用比较器,用DAC输出参考,和采样的电流进行比较,MCU只处理斩波反馈的信号,这样,编程难度更低。
OK,从最简单的开始,正弦表。
到网上找了一通,甚至找了正弦表的发生软件,以及MTLAB来做,但是都没有找到合适的资料,好吧,与其浪费时间来做这个搜集工作,还不如自己用EXCEL计算出来。12位DAC输出,那最大4095,用EXCEL计算以后,得到的128细分正弦表如下:
uc16 Sine12bit[129] = {0,50, 100, 151, 201, 251, 301, 351, 401, 451, 501, 551, 601, 651, 700
, 750, 799, 848, 897, 946, 995,1044,1092,1141,1189,1237,1285,1332,1380,1427,1474,1521,1567
,1613,1659,1705,1751,1796,1841,1886,1930,1975,2018,2062,2105,2148,2191,2233,2275,2317,2358,2399
,2439,2480,2519,2559,2598,2636,2675,2713,2750,2787,2824,2860,2896,2931,2966,3000,3034,3068,3101
,3133,3165,3197,3228,3259,3289,3319,3348,3377,3405,3433,3460,3486,3512,3538,3563,3588,3611,3635,3658
,3680,3702,3723,3744,3764,3783,3802,3821,3838,3856,3872,3888,3904,3919,3933,3947,3960,3972,3984,3996
,4006,4016,4026,4035,4043,4051,4058,4064,4070,4075,4080,4084,4087,4090,4092,4094,4094,4095};
然后配置程序,一输出,完美!
 
第二个需要做的工作是,脉冲输入。
计划先反转和脱机功能不做,先让电机转起来再说。查找STM32的资料,发现这个很好实现。用外部中断9来触发DMA的输出。
如果你是一个单片机老手,这个做起来当然简单,但是我对DMA了解不够,但是还算是比较顺利,程序编写后,功能完全满足要求。
 
然后难一点的东西来了,细分的输入处理。
细分功能的实现,一开始低估了细分功能实现的难度,
    根据目前市面上驱动器的特点,以及在运行中切换细分可能造成的丢步。
    高细分切换到低细分时会丢掉小于一个低细分角度的旋转,比如,从128细分下的125阶梯切换到2细分时,125~128的四个阶梯会自动丢失掉
    (整步和256细分,后面需要再进行添加)
    设置驱动器的细分设置在上电初始化中完成。
    程序的设计流程如下:
    1、查询细分设置端口的电平,以确定“细分”
    2、根据细分,分配DMA空间
    3、计算DMA中存入的“梯度正弦值”,初始化两个DMA,并赋值DMA的基址。
    4、外部脉冲触发DAC输出,DAC的数据寄存器绑定DMA1和DMA的地址,直接从DMA中取值
qq截图20140617102109.jpg
 
设计完成上面的工作,就可以开始PWM的输出了,PWM的输出如果不处理反馈,功能也很容易实现,简单的程序可以设置固定的占空比,以及加入一定的死区就OK了,程序编写完成以后,调试OK,一切进展看似很顺利。
 
对步进驱动技术有兴趣的朋友,可以加入迪莫驱动技术群:104155124,我们将每周安排时间在群内一起讨论技术问题。

文章评论2条评论)

登录后参与讨论

用户402158 2014-8-14 16:36

等你的下一篇。。。

用户1420144 2014-6-18 21:56

等待下一篇
相关推荐阅读
用户1714690 2015-08-13 11:42
史上最高性价比PCI运动控制卡:基于MCX314AL,提供开发包!
  小日本的3轴插补运动控制卡芯片不是一般的贵啊,看看下面的某宝提供的报价:常用的基于PCI的运动控制卡已经在国内大规模应用,主要有如下问题: 所以基于这种芯片的...
用户1714690 2015-08-03 15:06
【博客大赛】TMC262步进伺服开发笔记1-选定STM32F103C8T6做为控制器
  现在手里已经有了两个方案: 一个STC单片机的方案,这个是网上一个工程师设计的,方案的程序很简单,简单的进行参数配置,然后驱动电机转动就OK,完全没有发挥出TMC262的优势。 一...
用户1714690 2015-08-03 15:06
【博客大赛】TMC262步进伺服开发笔记2-影响步进电机行为的几个参数
电机设置,首先得了解哪些参数会对电机的行为有直接或者间接的影响。 参数 描述 设置 电机...
用户1714690 2014-12-26 17:56
自己动手设计一款MP3音乐播放器-创建自己的公众号
    罗永浩今年的表现确实让各界大跌眼镜,这几个月销声匿迹也是情理之中的事情,我们确实该吐槽他的锤子手机,可是他的死磕精神呢? ...
用户1714690 2014-12-13 01:19
自己动手设计一款MP3音乐播放器:SDIO通信之物理层描述1
物理层一共有以下的内容需要了解 存储卡系统的内容,包括总线,卡容量等,一些命令格式,响应格式等内容,这个是必须完全理解。 SD卡的功能描述,包括复位,初始化和识别流程,读写...
用户1714690 2014-12-12 11:51
自己动手设计一款MP3音乐播放器
 最近打算利用晚上的时间来死磕一款MP3,之前一直做的都是工控之类的项目,并且偏向于硬件,最近打算做一款有意思一点的产品,利用晚上的时间来做,项目可能会拖的比较久。   当然也不能自己埋头...
我要评论
2
17
关闭 站长推荐上一条 /2 下一条