步进电机细分驱动电流及方向控制 点击:4449 | 回复:76



pbl

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 40回
  • 年度积分:0
  • 历史总积分:131
  • 注册:2007年5月11日
发表于:2007-06-07 16:52:00
楼主
1/4细分 |cos(a)|  DA/A值   A相方向 |sin(a)|   DA/B值   B相方向
0 1 255|0xff    1             0  0|0x00    1
22.5 0.924 234|0xea    1 0.383  98|0x62    1
45 0.707 180|B4    1 0.707 180|B4    1
67.5 0.383  98|0x62    1 0.924 234|0xea    1
90 0  0|0x00    0 1 255|0xff    1
112.5 0.383  98|0x62    0 0.924 234|0xea    1
135 0.707 180|B4    0 0.707 180|B4    1
157.5 0.924 234|0xea    0 0.383  98|0x62    1
180 1 255|0xff    0 0   0|0x00    0
202.5 0.924 234|0xea    0 0.383  98|0x62    0
225 0.707 180|B4    0 0.707 180|B4    0
247.5 0.383  98|0x62    0 0.924 234|0xea    0
270 0   0|0x00    1 1 255|0xff    0
292.5 0.383  98|0x62    1 0.924 234|0xea    0
315 0.707 180|B4    1 0.707 180|B4    0
337.5 0.924 234|0xea    1 0.383  98|0x62    0
repeat



奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-08 19:38:00
21楼
    无法细分方法怎么样,你要保证, 从正转到反转的瞬间, 电机绕组的给电情况要没有任何改变, 否则, 就会出现你说的问题.

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-08 19:40:00
22楼
   上贴笔误:  无论细分方法怎么样, 你得保证, 从正转到反转的瞬间, 电机绕组的通电情况不能有任何变化, 否则,就会出现你说的问题.

pbl

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 40回
  • 年度积分:0
  • 历史总积分:131
  • 注册:2007年5月11日
发表于:2007-06-09 08:26:00
23楼
谢谢,谢谢,十分感谢.

pbl

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 40回
  • 年度积分:0
  • 历史总积分:131
  • 注册:2007年5月11日
发表于:2007-06-09 08:54:00
24楼
明白了,明白了,我正在按照你指点的方法做.谢谢师兄.

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-09 16:37:00
25楼
   能对你有所帮助,也是我的荣幸,不用客气.

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2007-06-09 20:52:00
26楼
“阿修罗的眼泪”不错!

pbl

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 40回
  • 年度积分:0
  • 历史总积分:131
  • 注册:2007年5月11日
发表于:2007-06-11 10:32:00
27楼
感谢阿修罗兄,我搞明白了.我也是用51汇编写控制程序,软件的脉冲响应频率力争在400K以上.我们多交流哈.

pbl

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 40回
  • 年度积分:0
  • 历史总积分:131
  • 注册:2007年5月11日
发表于:2007-06-11 10:33:00
28楼
如果有什么需要兄弟帮忙的,在QQ上找我就行了.

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-17 10:59:00
29楼
    嗯,知道了。
    哎, 乱七八糟的事有点多, 都没空去改进我那个破玩意了。自己感觉现在落后了, 技术有点跟不上了, 麻烦的是, 拼劲也没了。  
    哎, 没想到啊,  没想到啊, 这么快。。。。。悲。。。。。

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-23 20:44:00
30楼
今天完成了一个新的细分程序. 
    不是吹牛, 8位单片机做64细分, 从程序简洁度及效率来看, 如果我的程序称第二, 估计也没有人称第一. 因为我确实想像不出比我现在有的更简捷的了.

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2007-06-24 17:51:00
31楼
当知“天下之大,无奇不有”的道理。

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-24 22:35:00
32楼
    "不是吹牛, 8位单片机做64细分, 从程序简洁度及效率来看, 如果我的程序称第二, 估计也没有人称第一."
    后面发现, 同样简捷的方法也可以实现128细分!!!
    只需7条最基本的汇编指令, 即可实现高达128细分的输出的读取及赋值, 并完成换相!!!(从一相到另一相临界的那步也只是同样用7条指令完成, 细分程序是绝对严格的正弦细分)
    绝对是极限的了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-24 22:39:00
33楼
“天下之大,无奇不有”
嘿嘿, 这两相永磁步进电机的细分的"奇", 还真是掌握在我手里! 哈哈, 后来想想, 确实也是一个巧合, 不然也不会只用7条指令就搞定!

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-24 22:42:00
34楼
   哈哈, 有兴趣的朋友可以看完这贴想想, 不是很难的, 只是一个巧合而已.  我这就不便全部明说了.

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2007-06-25 08:12:00
35楼
“后来想想, 确实也是一个巧合”———明白就好!

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-25 08:13:00
36楼
128细分的7条指令实现不了..... 昨天设想时忘了考虑一个因素.
但是如果是4端PWM输出的话, 可以实现, 而且更简洁, 应该5条指令就可搞定. 但带6端口以上的PWM的单片机比较贵(除控制输出外, 别的地方也需用到计数器), 手头也没有.....

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2007-06-25 08:39:00
37楼
精诚所至!虽得之于巧合,但至少说明你是在用心做这件事的!

lg_006

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 390回
  • 年度积分:0
  • 历史总积分:419
  • 注册:2005年2月24日
发表于:2007-06-25 09:22:00
38楼
猜猜看哈,我想应该就是基本上是用寄存器间接寻址方式简单处理搞定的,至于反转和象限变化吗,是不是正好可以利有补码和负数变化的时候有个1相差的关系来搞定啊?另外,还是很赞同版主的话,“天下之大,无奇不有”。对于利用率这么高的东东,用硬件编程,细分表烧入片内rom,同时用硬件编辑进行高速寻址,计算输出,会不会效率更高呢?当然现在国内步进电机控制的瓶颈似乎还不是计算速度,而是电机本身的性能。见过50万细分的步进的宣传,号称用于实现纳米级精度(比伺服还贵得多)。感慨万分,不知道做那种程度,对程序,硬件,电机都要何种要求。愿与君共勉,留个qq联系哈。我的6711714。

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-25 09:50:00
39楼
"至于反转和象限变化吗,是不是正好可以利有补码和负数变化的时候有个1相差的关系来搞定啊?" 
有点相似,不过我的应该更为简单一点.
"细分表烧入片内rom,同时用硬件编辑进行高速寻址,计算输出"
我的也是将细分表烧入ROM,  但不是"用硬件编辑进行高速寻址,计算输出", 而是软件的8位偏移量变址寻址(三个总线周期), 也不需任何计算.  
主要的优点体现在, 换相(象限)不需作任何处理, 也不需要作任何的判断, 从正转变成反转,或反转变成正转时, 也不用进行任何关于相数或细分数的计算, 相当简洁. 
这个方法有一定的限制, 对我的数字斩波控制器,目前发现只适合64细分(哈哈,相信从这点可以看出问题了). 但是如果不是数字斩波, 也可以做128细分, 但再高就不是5或7条指令能完成的了.

奔三十的男孩

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 1112回
  • 年度积分:0
  • 历史总积分:1251
  • 注册:2007年3月08日
发表于:2007-06-25 09:55:00
40楼
我的QQ是52527299.
关于"国内步进电机控制的瓶颈似乎还不是计算速度,而是电机本身的性能", 我也是挺赞同的. 不过, 由于我作的控制器有点特别, 计算速度对我也绝对是一个瓶颈. 关于电机本身的性能, 目前为止, 我的用步进电机(42混合, 100块左右一个), 200细分跟64细分之间的运行效果的差别(振动,噪音等,在空载情况下),还是明显可以看得出来的, 太高的细分没有试过. 至于"50万细分的步进",  还真是不敢想像
  

热门招聘
相关主题

官方公众号

智造工程师