运动控制芯片 MCX314
使用手册
南京顺康数码科技有限公司
www.novaelec.com.cn
南京市鼓楼区长江新村3幢504室 邮编210037 025-3881012
电话前 言
! 在此说明书上使用的特殊用语 激活 定速
对某一个信号 固定速度
此信号持有的功能处于有效状态
定量驱动 一 只输出指定的脉冲量的驱动Jerk/变化率
单位时间内的加速度/减速度的增加率/减少率
2的补码 2进制负数的表示方法例16位长的数据-1是FFFFh-2是FFFEh-3是FFFDh-32768是8,000h这样表示 ! 在此说明书上使用的特别文字记号 n
把XYZU的每个轴信号名写为n
这个
n表示X
Y
Z及U
信号从 Low 电平变至 Hi 电平时的 上升沿
Hi Low 下降沿
1
目 录
1
2
概要................................................................................................................................................................5 功能说明........................................................................................................................................................8 2.1 定量驱动和连续驱动........................................................................................................................8
2.1.1 定量驱动..................................................................................................................................8 2.1.2 连续驱动..................................................................................................................................9 2.2 速度曲线............................................................................................................................................9
2.2.1 定速驱动..................................................................................................................................9 2.2.2 直线加/减速驱动...................................................................................................................10 2.2.3 S曲线加/减速驱动................................................................................................................11 2.2.4 驱动脉冲宽度和速度精确度................................................................................................13 2.3 位置管理..........................................................................................................................................15
2.3.1 逻辑位置计数器和实位计数器.............................................................................................15 2.3.2 比较寄存器和软件限制........................................................................................................15 2.4 插补..................................................................................................................................................16
2.4.1 2轴/3轴直线插补.................................................................................................................16 2.4.2 圆弧插补................................................................................................................................18 2.4.3 位模式插补............................................................................................................................20 2.4.4 固定线速度............................................................................................................................24 2.4.5 连续插补................................................................................................................................25 2.4.6 加减速驱动的插补................................................................................................................27 2.4.7 步进插补命令外部信号.............................................................................................30 2.5 中断..................................................................................................................................................31 2.6 其它功能..........................................................................................................................................32
2.6.1 外部信号控制的驱动操作....................................................................................................32 2.6.2 脉冲输出方式的选择............................................................................................................33 2.6.3 脉冲输入方式的选择............................................................................................................33 2.6.4 硬件限制信号........................................................................................................................33 2.6.5 伺服马达对应的信号............................................................................................................34 2.6.6 紧急停止................................................................................................................................34 2.6.7 驱动状态的输出....................................................................................................................34 2.6.8 通用输出................................................................................................................................34 引脚配置和信号说明..................................................................................................................................35 读/写寄存器.................................................................................................................................................40 4.1 16位数据总线的寄存器地址.........................................................................................................40 4.2 8位数据总线的寄存器地址...........................................................................................................42 4.3 WR0命令寄存器.............................................................................................................................43 4.4 WR1模式寄存器1..........................................................................................................................43 4.5 WR2模式寄存器2..........................................................................................................................44 4.6 WR3模式寄存器3..........................................................................................................................46 4.7 WR4输出寄存器.............................................................................................................................47 4.8 WR5插补模式寄存器.....................................................................................................................47 4.9 WR67写数据寄存器12..........................................................................................................48 4.10 RR0主状态寄存器..........................................................................................................................48 4.11 RR1状态寄存器1...........................................................................................................................49
2
3 4
5 6
7
8
9
4.12 RR2状态寄存器2...........................................................................................................................50 4.13 RR3状态寄存器3...........................................................................................................................51 4.14 RR4,5输入寄存器12..................................................................................................................51 4.15 RR6,7读数据寄存器12..............................................................................................................51 命令列表......................................................................................................................................................52 数据写入命令..............................................................................................................................................54 6.1 范围设定..........................................................................................................................................54 6.2 加/减速度的变化率设定.................................................................................................................54 6.3 加速度设定......................................................................................................................................55 6.4 减速度设定......................................................................................................................................55 6.5 初始速度设定..................................................................................................................................55 6.6 驱动速度设定..................................................................................................................................56 6.7 输出脉冲数/插补终点设定.............................................................................................................56 6.8 手动减速点设定..............................................................................................................................56 6.9 圆弧中心点设定..............................................................................................................................57 6.10 逻辑位置计数器设定......................................................................................................................57 6.11 实位计数器设定..............................................................................................................................57 6.12 COMP+寄存器设定.........................................................................................................................57 6.13 COMP-寄存器设定.........................................................................................................................57 6.14 加速计数器偏移设定......................................................................................................................58 6.15 NOP轴切换用..........................................................................................................................58 读数据命令..................................................................................................................................................59 7.1 读逻辑位置计数器..........................................................................................................................59 7.2 读实位计数器..................................................................................................................................59 7.3 读当前驱动速度..............................................................................................................................59 7.4 读当前加/减速度.............................................................................................................................59 驱动命令......................................................................................................................................................60 8.1 正方向定量驱动..............................................................................................................................60 8.2 负方向定量驱动..............................................................................................................................60 8.3 正方向连续驱动..............................................................................................................................60 8.4 负方向连续驱动..............................................................................................................................61 8.5 驱动开始暂停..................................................................................................................................61 8.6 解除暂停驱动开始状态/结束状态清除.........................................................................................61 8.7 驱动减速停止..................................................................................................................................61 8.8 驱动立即停止..................................................................................................................................61 插补命令......................................................................................................................................................62 9.1 2轴直线插补驱动...........................................................................................................................62 9.2 3轴直线插补驱动...........................................................................................................................62 9.3 CW圆弧插补驱动...........................................................................................................................62 9.4 CCW圆弧插补驱动........................................................................................................................62 9.5 2轴位模式插补驱动.......................................................................................................................63 9.6 3轴位模式插补驱动.......................................................................................................................63 9.7 BP寄存器写入允许........................................................................................................................63 9.8 BP寄存器写入不允许....................................................................................................................63 9.9 BP数据堆栈....................................................................................................................................63 9.10 BP清除............................................................................................................................................63
3
9.11 插补单步..........................................................................................................................................64 9.12 减速有效..........................................................................................................................................64 9.13 禁止减速..........................................................................................................................................64 9.14 插补中断清除..................................................................................................................................64 10 I/O信号连接例子........................................................................................................................................65
10.1 与68000CPU的连接例子...............................................................................................................65 10.2 与Z80CPU连接的例子..................................................................................................................65 10.3 运动系统构成例子..........................................................................................................................66 10.4 驱动脉冲输出电路..........................................................................................................................66 10.5 限位等输入信号的连接例子..........................................................................................................67 10.6 编码输入信号的连接例子..............................................................................................................67 11 控制程序的例子..........................................................................................................................................68 12 电气的特性..................................................................................................................................................71
12.1 DC特性............................................................................................................................................71 12.2 AC延迟特性....................................................................................................................................71
12.2.1 时钟........................................................................................................................................71 12.2.2 CPU读/写周期.......................................................................................................................72 12.2.3 BUSYN信号..........................................................................................................................73 12.2.4 SCLK/输出信号延迟.............................................................................................................73 12.2.5 输入脉冲................................................................................................................................73 12.2.6 通用I/O信号.........................................................................................................................74
13 I/O信号时序................................................................................................................................................74
13.1 上电时序..........................................................................................................................................74 13.2 驱动开始/结束时序.........................................................................................................................75 13.3 插补驱动时序..................................................................................................................................75 13.4 驱动开始释放时序..........................................................................................................................75 13.5 立即停止时序..................................................................................................................................76 13.6 驱动减速停止时序..........................................................................................................................76 14 外形尺寸......................................................................................................................................................77 15 规格..............................................................................................................................................................78 附录A速度曲线图型......................................................................................................................................80 附录B指定圆弧插补结束点应注意...............................................................................................................84
4
1 概要
MCX314是一款能够同时控制4个伺服马达或步进马达的运动控制芯片它以脉冲串形式输出能对伺服马达和步进马达进行位置控制插补驱动速度控制等以下是它的功能
! 独立4轴驱动
一个芯片可以分别控制4个马达驱动轴的运动每个轴都可以进行定速驱动直线加/减速驱动S曲线加/减速驱动等4轴的性能相同 ! 速度控制
输出的驱动速度范围是从1PPS到4MPPS可以运行固定速度驱动直线加/减速驱动S曲线加/减速驱动加/减速驱动可以使用自动和手动2种操作方法脉冲输出的频率精确度小于0.1% (在CLK=16MHZ时) 驱动脉冲输出的速度可以在驱动中自由变更 ! S-曲线加/减速驱动
每个轴可以用S-曲线进行加/减速设定使用S-曲线命令还可以对抛物线加/减速驱动输出脉冲进行设定此外对于定量驱动我们使用独特的方法避免在S-曲线加/减速中发生三角波形 ! 2轴/3轴直线插补
可以选择4轴中的任何2个或3个轴进行2轴/3轴的直线插补驱动插补坐标范围是从当前位置到-8,388,607 ~ +8,388,607之间在整个指定的直线插补范围内插补精度是0.5LSB插补速度范围是从1PPS至4MPPS ! 圆弧插补
可以选择4轴中的任何2个轴进行圆弧插补驱动插补坐标范围是从当前位置到-8,388,608 ~ +8,388,607之间在整个指定的圆弧曲线插补范围内插补精度是0.5LSB插补速度范围是从1PPS至4MPPS ! 2轴/3轴位模式插补
收到在高位CPU上计算的位模式插补数据后可以用指定的驱动速度连续输出插补脉冲用这种方式可以产生任何插补曲线 ! 连续插补
直线插补圆弧插补直线插补 补的最大驱动速度是2MHz
这样可以不停地运行每个插补节点的插补驱动连续插
! 固定线速度控制
这是一种在插补驱动中保持插补轴合成速度的功能2轴同时输出脉冲时第2轴可以设定为1.414倍脉冲周期3轴同时输出脉冲时第3轴可以设定为1.732倍脉冲周期 ! 位置控制
每轴都有2个32位位置计数器一个是在芯片内部管理驱动脉冲输出的逻辑位置计算器另一个是管理从外部编码器来的脉冲的实际位置计数器 ! 比较寄存器和软件限制功能
每轴都有2个32位比较寄存器用于逻辑位置计数器或者实际位置计数器的位置大小比较在驱动时可以从状态寄存器读出比较寄存器和逻辑/实际位置计数器之间的大小关系大小关系有变化时可产生中断并且可以启动这2个比较寄存器作为软件限位 ! 由外部信号驱动
每个轴都可以用外部信号进行+/-方向运行的定量驱动和连续驱动时可以减轻CPU的负担并且可以顺利运行
这功能使各轴在手动操作
5
! 搜寻原位输入
每轴有4个输入信号以在驱动中完成减速停止这些输入信号可以运行原位靠近高速搜寻原位搜寻编码器Z相搜寻 ! 伺服马达各种信号
MCX314接受来自伺服马达驱动器的信号如2相编码器信号在位信号报警信号等
! 中断发生功能
可以由这些原因产生中断如加/减速驱动的定速开始时定速完毕时驱动完毕时位置计数器和比较器之间的大小关系有变化时等等此外连续插补位模式插补发生下一个数据请求时的中断 ! 实时监控功能
在驱动中可以实时读出逻辑位置实际位置驱动速度加速度加/减速状态加速中定
速中减速中! 8/16位数据总线
6
8位/16位的数据总线都可以和CPU连接
图1.1是这IC的功能方框图它包括相同功能的XYZU轴控制部分和插补算术部分插补驱动时在主轴AX1上产生的基本脉冲振荡的时序进行插补算术运算也可进行定速驱动加/减速驱动图1.2是每个轴控制部分的功能方框图
7
2 功能说明
2.1
定量驱动和连续驱动
各轴的驱动脉冲输出一般使用正方向或负方向的定量驱动命令或者连续驱动命令
2.1.1 定量驱动
定量驱动的意思是以固定速度或加/减速度输出指定数量的脉冲需要移动到确定的位置或进行确定的动作时使用此功能加/减速的定量驱动如图2.1所示输出脉冲的剩余数比加速累计的脉冲数少时就开始减速输出指定的脉冲数后驱动也结束
进行加/减速的定量驱动需要设定下列参数
# 范围 R # 加/减速 A/D # 初始速度 SV # 驱动速度 V # 输出脉冲数 P ! 驱动中变更输出脉冲数
定量驱动中可以变更输出脉冲数加/减速驱动中开始减速时如果输出脉冲数有变更的话重新开始加速图2.3此外如果变更的输出脉冲数比已经输出的脉冲数要少的话立即停止图2.4
S曲线减速如图2.3所示减速时有变更的话不能正确地运行S曲线动作
! 加/减速定量驱动的手动减速
加/减速定量驱动是一般如图2.1所示从芯片计算的减速点开始自动减速此外也可以用手动减速在下列的情况下芯片不能正确地计算自动减速点或无法算出此减速点所以需要手动地计算减速点 # 直线加/减速定量驱动中需要经常变更速度 # 用加/减速运行圆弧插补位模式插补连续插补 需要改为手动减速模式的话把WR3寄存器的D0置为1根据手动减速点设定命令07h设定减速点其它操作和一般的定量驱动一样
8
! 加/减速定量驱动的加速计数器偏移
对于加/减速定量驱动加速时用加速计数器计算加速中累计的脉冲数当设定的脉冲输出剩余数少于加速计数器的值时就开始减速减速时输出的脉冲数和加速中累计的脉冲数一致时加速计数器偏移是在加速计数器上加上指定的偏移数值如右图2.5所示设定偏移数值越大自动减数点越往前移动因此减速完毕的初始速度要延迟
加速计数器偏移在复位时设定为8运行一般的直线加/减速驱动几乎不需要重新设定这个参数S曲线加/减速定量驱动中如果驱动完毕速度降不到初始速度的话要把加速计数器偏移数值设定为适当的数值以修正它的速度
2.1.2 连续驱动
在连续驱动中连续输出驱动脉冲直至高位的停止命令或外部的停止信号有效需要运行原点搜寻扫描操作控制马达旋转速度时使用此功能
有两种停止命令一个是减速停止另一个是立即停止每个轴都有用于减速/立即停止的IN3~IN0的外部信号每个信号都可以设定有效/无效电平
! 连续驱动的原点搜寻动作
把原点接近信号原点信号编码器Z相信号等安排在nIN3~0在各轴的WR1寄存器上设定各信号的有效/无效和逻辑电平高速搜寻时用加/减速连续驱动当设定的有效信号处于激活电平时就减速停止低速搜寻时用定速连续驱动当设定的有效信号处于激活电平时就立即停止为了以加/减速连续驱动除了输出脉冲数以外都要设定和定量驱动一样的参数
2.2 速度曲线
各轴的驱动脉冲输出一般使用正/负方向的定量驱动命令或连续驱动命令此外以设定模式或设定参数来产生定速直线加/减速S曲线加/减速的速度曲线
2.2.1 定速驱动定速驱动
定速驱动就是以一成不变的速度输出驱动
脉冲如果设定驱动速度小于初始速度就没有加/减速驱动而是定速驱动使用搜寻原点编码器Z相等信号时找到信号后马上要立即停止的话不必进行加/减速驱动而是一开始就运行低速的定速驱动
为了定速驱动下列参数应相应预先设定 # 范围 R # 初速速度 SV # 驱动速度 V $ 输出脉冲数 P
9
! 设定参数例子
如右图所示设定980PPS运行定速驱动
倍率=1 范围 R=8,000,000
初始速度驱动速度 初始速度SV980
驱动速度 V=980 有关参数=请参考第6章
2.2.2 直线加/减速驱动
直线加/减速驱动是线性地从驱动开始的初始速
度加速到指定的驱动速度
定量驱动时由于加速的计数器记录加速所累计的脉冲数当剩余输出脉冲数少于加速脉冲后就开始减速自动减速减速时将用指定的减速度线性地减速至初始速度
加速中命令减速停止或在定量驱动中输出脉冲数少于加速至驱动速度所要的脉冲数如图2.8所示就要在加速过程中开始减速有关三角阻止请参考
附录A-A3
通常加速率和减速率基本相同但是可以个别设定减速率个别设定时不能启用定量驱动的自动减速而要手动减速个别设定减速率需要把WR3寄存器的D1位置为1根据减速设定命令03h设定减速
为了直线加/减速驱动下列参数需预先设定 〇记号需要时设定# 范围 R
加速度和减速度 # 加速度 A
加/减速度个别设定时的减速度 $ 减速度 D
# 初始速度 SV =
# 驱动速度 V
定量驱动时使用 $ 输出脉冲数 P ! 设定参数的例子
如右图所示在0.3秒之内从初始速度500PPS至驱动速度15,000PPS直线地加/减速度
范围 R=4,000,000 倍率=2
15000-500/0.3=48,333PPS/SEC 加速度 A193
48333/125/2=193
500/2=250 初始速度SV=250
15000/2=7,500 驱动速度V=7,500 有关各参数
请参考第6章
10
2.2.3 S曲线加/减速驱动
驱动速度加/减速时此IC线性地增加/减少加速度/减速度以产生S型速度曲线S曲线加/减速驱动如图2.9所示运行
驱动开始加速时加速度以指定的加速度的增加率K从0线性增加至指定的数值A因此这个速度曲线成为二次级抛物线a区间加速度达到指定数值A后保持此数值这时速度曲线是直线型的速度在加速中b区间目标速度V和当前速度的差值比相应时间增加所增加的速度少时加速度趋向0减少率和增加率一样指定的减速度的减少率K线性地减少这时速度曲线成为二次抛物线C区间本书定义这种具有部分固定加速度的加速为部分S曲线加速
另一方面在a区间若在加速度达到指定数值A前目标速度V和当前速度的差值比相应时间增加所增加的速度少时b区间就消失只有a和c区间这种没有固定加速度的加速称为完全S曲线加速有关部分S曲线加速完全S曲线加速的速度曲线例子请参考之后的参数设定例子及附录A 速度减速时和加速的内容相同线性地增加/减少减速度产生S速度曲线此外在连续脉冲驱动中在加速/减速时变更速度也有相同的动作
要执行S曲线加/减速用户必须将寄存器nWR3的D2置1然后设定下列参数 # 范围 R # 加速度/减速度的变化率 K
加/减速从0线性增加至此数值 # 加速度 A
分别设定加/减速度时此为减速度指定数值 $ 减速度 D
# 初始速度 SV # 驱动速度 V
定量驱动时使用 $ 输出脉冲数 P ! 定量驱动的三角波形防止功能
就直线加/减速驱动而言当定量驱动过程中输出脉冲数少于加速至驱动速度所需的脉冲数时或者在加速过程中启动减速停止时速度曲线会出现三角波形对于S曲线加/减速驱动即使发生这种情况为了尽量保持速度曲线的形状可采取以下方式 初速度为0时以某加速率增加速度至时间t该时间t的速度由下式表达
V
2
t= at
因此从0至时间t累计的脉冲数是把从0至
时间t的速度积分的数值以下式表述
P(t)=
13at3
此数值和加速率无关它表示at2t图2.10阴影部分表示脉冲数占单位时间内的脉冲比例的1/3
对于定量驱动以某个加速率从0至时间t增加加速度以同样的变化率从时间t减少加速率使加速度变为0减速时也一样以同样
11
的变化率进行增加/减少在整个过程中累计的脉冲数量如图2.10所示
1/32/312/311/3 4个时间单位的脉冲数
因此从0开始至时间t的脉冲数1/3是脉冲总数的1/12
对于S曲线加减速的定量驱动加速度增加时的脉冲数大于输出总脉冲数的1/12就开始减少加速度产生如图2.10所示的速度曲线[1/12法则]
=
的话产生很理想的曲线不过实际上绝对达不到0所以如图2.10这个方式若能够达到初始速度0==这部分脉冲数所示剩下从速度0至初始速度的脉冲数
以最高速度输出 =
此外在加速度的固定加速区域上加速时的输出脉冲数等于输出总脉冲的1/4后就开始减少加速度[1/4法则] ! 减速停止的三角波形防止功能
在直线加/减速驱动上加速时启动减速停止的话速度曲线会是三角波形
对于S曲线加/减速驱动应重视速度曲线的形状正如图2.11所示加速时产生减速停止的话加速不会马上变减速加速度减少至0后再开始减速
! 运行S曲线加/减速驱动时的注意点
# 运行S曲线加/减速定量驱动时驱动中不能变更驱动速度
# 运行S曲线加/减速定量驱动时如果在减速时变更输出脉冲数的话不能正确地产生S曲线 # 运行S曲线加/减速时不能驱动圆弧插补位模式插补连续插补
# 对于S曲线加/减速的定量驱动由于设定参数的原因在减速时没达到初始速度驱动就结束
或出现初始速度拖曳驱动发生的情况用加速计数器偏移来改正发生的情况要改变加/减速的变化率K驱动速度V等参数使情况得以改善
! 参数设定例子1完全S曲线加/减速
如右图所示是在0.4秒内用完全S曲线加速增加至40KPPS的例子
首先在计算上不考虑初始速度把它作为0因为是完全S曲线加速所以在0.4秒的1/20.2秒把速度增加至40KPPS的1/220KPPS在剩下的0.2秒增加至40KPPS这时加速度线性地增加直至0.2秒这个积分数值斜线的面积-右图等于增加速度20KPPS因此0.2秒的加速度是200002/0.2=200KPPS/SEC加速度的增加率是200K/0.2=1,000KPPS/SEC2
运行完全S曲线加减速时速度取决于加/减速度的变化率所以为了避免产生部分S曲线加/减速度要设定200KPPS/SEC以上的数值
范围 R800,000 倍率=10
62.5106/62510=1,000103 PPS/SEC2 加/减速度的增加/减少率 K=625
加速度 A160 12516010=200103 PPS/SEC 初始速度 SV100 10010=1,000 PPS 驱动速度 V4,000 400010=40,000 PPS 有关各参数请参考第6章
12
! 参数设定例子2部分S曲线加/减速
如右图所示用0.2秒抛物线地加速至10KPPS再用0.2秒从10KPPS直线地加速至30KPPS再用剩下的0.2秒从30KPPS抛物线地加速至40KPPS这是部分S曲线加速例子
和例子1一样不用考虑初始速度在0.2秒内加速度线性增加至10KPPS这时的积分数值右图的斜线面积相当于起动速度10KPPS因此0.2秒的加速度是100002/0.2=100KPPS/SEC加速度的增加率是100K/0.2=500KPPS/SEC2
范围 R800,000倍率=10
10010=1,000 PPS 初始速度 SV100
62.5106/125010=500103 PPS/SEC2 加/减速度的变化率 K=1,250
加速度 A80 1258010=100103 PPS/SEC
400010=40,000 PPS 驱动速度 V4,000
2.2.4 驱动脉冲宽度和速度精确度
! 驱动脉冲的脉冲比率
对于各轴正/负方向上的驱动脉冲由驱动速度决定的脉冲周期时间有算术上的1SCLKCLK=16MHz时为125nSEC的误差并且基本上分布在高电平50%和在低电平50%举例如下图所示设定为R=8,000,000V=1,000倍率=1驱动速度=1,000PPS驱动脉冲输出高电平宽度=500S低电平宽度
= =500S周期=1.00mS的脉冲=
==
但在加/减速驱动的加速度过程中由于驱动速度在上升导致输出脉冲低电平的宽度比高电平的窄在减速时低电平的脉冲宽度比高电平的宽
图2.13 加/减速驱动时的脉宽比较
! 驱动速度的精确度
产生驱动脉冲的电路是由IC内SCLK来驱动的SCLK由时钟信号CLK2分频而得若CLK输入是标准的16MHzSCLK就是8MHz要产生某个频率的驱动脉冲并且是没有抖动的均匀频率驱动脉冲它的频率周期只能是下图所示SCLK周期的整倍数
13
2 3 4 5 6 7 8 9 10
驱动速度PPS 4,000M 2,667M 2,000M 1,600M 1,333M 1,143M 1,000M 889K 800K
驱动速度PPS 驱动速度PPS 驱动速度PPS
727K 95 84,211 995 8,040 667K 96 83,333 996 8,032 615K 97 82,474 997 8,024 571K 98 81,632 998 8,016 533K 99 80,808 999 8,008 500K 100 80,000 1,000 8,000 471K 101 79,208 1,001 7,992 444K 102 78,431 1,002 7,984 421K 103 77,670 1,003 7,976 400K 104 76,923 1,004 7,968
因此
此IC采用下述的方式输出任选的驱动速度
11 12 13 14 15 16 17 18 19 20
这样就不能随意设定驱动速度
范围设定数值80,000倍率100驱动速度设定值V=4,900这样设定的话驱动脉冲输出是4900×100=490KPPS如上表所示不能用均匀的频率输出490KPPS因此如下图2.14所示组合16SCLK整数倍的500KPP频率和17SCLK整数倍的471KPPS频率输出490KPP的周期是SCLK8MHz周期的16.326倍所以用674:326的比率输出SCLK16倍周期的脉冲和17倍周期的脉冲每一个单位时间的平均周期做成16.326
依靠这种方法可以非常精确地输出指定速度的驱动脉冲一般速度倍率越大可以指定的驱动速度越不精确不过对于MCX314哪怕速度倍率再大驱动脉冲速度的精确度也在0.1%以下用示波器观测驱动脉冲时若驱动脉冲周期不是时钟周期整倍数的话如上图所示在脉冲周期上有1SCLK125nSEC的时差因此看起来是抖动的不过此IC正是用这个1SCLK的时差产生了正确的驱动速度这个1SCLK的时差在运转马达时会由负荷的惯性吸收所以这不成问题
14
2.3 位置管理
图2.15是1轴位置控制的方框图每个轴有2个为了控制当前位置的32位可逆计数器和2个用以比较当前位置大小的比较器
2.3.1 逻辑位置计数器和实位计数器
逻辑位置计数器是计数MCX314中的正/负方向输出脉冲输出一个正向脉冲时向上计1输出一个负方向脉冲时向下计1
实位计数器计数来自外部编码器的输入脉冲可以用命令选择输入脉冲的类型2相信号或者独立2脉冲向上/下计数信号请参考2.6.3节
CPU2可以在任何时候写入或读出2个计数器的数据间负数是2的补码格式在复位时计数值是随意的
计数范围在-2,147,483,648~+2,147,483,647之
2.3.2 比较寄存器和软件限制
如图2.15中所示每轴有2个32位寄存器COMP能与逻辑位置计数器和实位计COMP
数器比较大小把2个比较寄存器的比较对象定为逻辑计数器还是实位计数器由寄存器WR2的D5位CMPSL选择COMP寄存器主要用来检测逻辑/实位计数器某个范围的上限当逻辑/实位计数器
位就置1另一方面COMP寄存器用的值大于COMP+寄存器的值时RR1寄存器的D0CMP
来检测逻辑/实位计数器某个范围的下限当逻辑/实位计数器数值小于COMP-寄存器的数值时RR1寄
存器的D1CMP-位就置1图2.16是设定COMP+10,000COMP-﹣10,000的例子
15
可以把COMP+寄存器和COMP-寄存器可用作+/-方向的软件限制来运行把WR2寄存器的D0和D1SLMT+SLMT-位设定为1软件限位就有效在驱动中如果逻辑/实位计数器的值大于COMP+的值就执行减速停止并且RR2寄存器的D0SLMT+位为1当执行负方向驱动命令并且逻辑/实位计数器的值小于COMP+寄存器后就会清除这个状态同样情况适用于负方向的COMP-
可以在任何时候写COMP+寄存器和COMP-寄存器复位时寄存器的值是任意的
2.4 插补
本IC可在4轴中任选2轴或3轴进行直线插补圆弧插补模式位插补驱动指定插补轴是用轴编码方式设定WR5寄存器的D0D1ax1D2D3ax2D4D5ax3
在插补驱动过程中插补运算是在指定主轴ax1的基本脉冲时序下运行的因此进行插补命令之前先要设定指定ax1的初始速度驱动速度等参数主轴由ax1指定在直线插补时并不一定是长轴
设定每个插补命令所需要的参数后在WR0命令寄存器写入插补驱动命令插补驱动立即开始在插补驱动中RR0主状态寄存器的D8I-DRV位为1驱动结束后为0另外在插补驱动中在运行插补轴的n-DRV位也为1
对直线插补圆弧插补位模式插补可以插补运算最高达4MPPS连续插补时最高达2MPPS ! 插补时的越限错误
插补驱动时每个驱动轴都能进行硬件限制和软件限制在插补驱动中任何轴的限制有动作插补驱动就停止由发生错误而停止就读指定插补轴的RR0主状态寄存器的错误位若为1就读其轴
的RR2错误寄存器
注意运行圆弧插补及位模式插补时任何方向+方向/-方向的硬件限制软件限制有效插补都会停止因此使用圆弧插补及位模式插补要非常小心不能脱离限制区域
! 伺服马达的在位信号
在插补驱动中各轴在位信号nINPOS一旦有效插补驱动就结束结束后所有轴的nINPOS信号处于有效电平RR0寄存器的D8I-DRV位返回0
2.4.1 2轴/3轴直线插补
任选4轴中的2轴或3轴进行直线插补 设定相对于当前位置的终点坐标写入2轴或3轴直线插补命令后就开始进行线性插补如图2.17所示从当前坐标至终点坐标执行直线插补终点坐标由针对当前位置的相对数值设定精确设定每个轴的输出脉冲数在每个轴独立运行时输出脉冲数设定为没有符号的数值但是在插补驱动时用相对数值设定对当前位置的终点坐标
如图2.17所示对指定直线的位置精确度在整个插补范围内有0.5LSB右图2.18是直线插补的驱动脉冲输出例子在设定的终点数值中绝对值最大的轴是长轴在插补驱动中此轴一直输出脉冲其它的轴是短轴根据直线插补算术的结果有时输出脉冲有时不输出脉冲
16
直线插补的坐标范围是带符号的24位字长插补范围为从各轴当前位置到-8,388,607~+8,388,607之间注意不能设定-8,388,608
! 2轴直线插补驱动的例子
在XY轴上从当前位置至终点坐标X+300Y-200进行线性插补插补驱动速度是1,000PPS的定速驱动
WR5 ← 0004h 写入WR6 ← 1200h 写入WR7 ← 007Ah 写入 WR0 ← 0100h 写入 WR6 ← 03E8h 写入WR0 ← 0104h 写入 WR6 ← 03E8h 写入WR0 ← 0105h 写入 WR6 ← 012Ch 写入WR7 ← 0000h 写入 WR0 ← 0106h 写入 WR6 ← FF38h 写入WR7 ← FFFFh 写入 WR0 ← 0206h 写入 WR0 ← 0030h 写入
ax1X轴ax2Y轴指定
范围8,000,000倍率=1
初始速度驱动速度
1,000PPS 1,000PPS
终点X轴300
终点Y轴-200
2轴直线插补驱动
! 3轴直线插补驱动的例子
在XYZ轴上从当前位置至终点坐标X: 15,000Y: 16,000Z: 20,000进行3轴线性插补在插补驱动中初始速度为500PPS加速度为40,000PPS/SEC驱动速度为5,000PPS执行直线加/减速驱动 WR5 ← 0024h 写入WR6 ← 1200h 写入WR7 ← 007Ah 写入 WR0 ← 0100h 写入 WR6 ← 0140h 写入WR0 ← 0102h 写入WR6 ← 01F4h 写入WR0 ← 0104h 写入 WR6 ← 1388h 写入WR0 ← 0105h 写入 WR6 ← 3A98h 写入WR7 ← 0000h 写入 WR0 ← 0106h 写入 WR6 ← 3E80h 写入WR7 ← 0000h 写入 WR0 ← 0206h 写入 WR6 ← 4E20h 写入WR7 ← 0000h 写入 WR0 ← 0406h 写入 WR0 ← 003Bh 写入WR0 ← 0031h 写入
ax1X轴ax2Y轴ax3Z轴指定
范围: 8,000,000倍率=1
加/减速40,000PPS/SEC 40,000/125/1=320 初始速度500PPS 驱动速度终点X
5,000PPS
15,000
终点Y16,000
终点Z20,000
减速有效
3轴直线插补驱动
17
2.4.2 圆弧插补
任选4轴中的2轴进行圆弧插补驱动
设定相对当前位置始点的圆弧中心坐标及终点坐标在写入CW圆弧插补命令或CCW圆弧插补命令后执行圆弧插补用当前坐标始点的相对值设定中心坐标及终点坐标
CW圆弧插补从当前坐标至终点坐标以顺时针方向绕中心坐标画圆弧CCW圆弧插补以逆时针方向绕中心坐标画圆弧如果终点设为00能画整个圆
至于圆弧插补的算法如图2.20所示由第1轴ax1和第2轴ax2定义一个平面绕中心坐标把它分为0~7的8个象限如图所示在0象限的插补坐
标ax1ax2上ax2绝对值一直比ax1的绝对值小绝对值小的轴为短轴1256象限是第1轴ax1的短轴0347象限是第2轴ax2的短轴短轴在这些象限之间一直输出驱动脉冲长轴根据圆弧插补运算结果有时输出脉冲有时不输出脉冲 图2.21是在当前坐标上指定中心-110是那个时候输出脉冲的例子
终点00
画半径11完整圆的例子此外图2.22
18
! 终点判断
对于圆弧插补在插补驱动开始前把当前坐标设为00根据中心坐标的数值决定半径画圆圆弧算法的误差在插补驱动范围内有1LBS因此指定的终点可能不在圆的轨迹上圆弧插补进入终点所在的象限时只要结束点值与终点的短轴数值一致圆弧插补就结束
图2.23是在中心-200500终点-702099从当前位置00进行CCW圆弧插补的例子由当前位置00和中心-200500决定半径后以CCW方向进行插补由于和中心点的位置关系指定的终点-702299在4象限上插补运行到4象限第2轴ax2为短轴第2轴的数值达到终点-702
299的299后插补就结束插补坐标范围是从当前位置至-8,388,608~+8,388,607对指定圆弧曲线的位置误差在整个插补范围有1LSB插补速度从1PPS到4MPPS
! CW圆弧插补驱动的例子
在XY轴的中心X5,000Y0终点X5,000Y-5,000上从当前位置始点进行CW圆弧插补插补驱动速度设定为1,000PPS的定速驱动用固定线速模式进行插补
WR5 ← 0104h 写入ax1X轴指定ax2Y轴指定固定线速 WR6 ← 0900h 写入范围4,000,000(倍率=2) WR7 ← 003Dh 写入 WR0 ← 0100h 写入
WR6 ← 4DC0h 写入2轴固定线速度的范围: WR7 ← 0056h 写入40000001.414 = 5,656,000 WR0 ← 0200h 写入
WR6 ← 01F4h 写入初始速度5002 = 1,000PPS WR0 ← 0104h 写入
WR6 ← 01F4h 写入驱动速度5002 = 1,000PPS WR0 ← 0105h 写入
WR6 ← 1388h 写入中心X5,000
WR7 ← 0000h WR0 ← 0108h WR6 ← 0000h WR7 ← 0000h WR0 ← 0208h WR6 ← 1388h WR7 ← 0000h WR0 ← 0106h WR6 ← EC78h WR7 ← FFFFh WR0 ← 0206h WR0 ← 0032h
写入 写入 写入写入 写入 写入写入 写入 写入写入 写入 写入
中心Y0
终点X : 5,000
终点Y : -5,000
CW圆弧插补驱动
19
2.4.3 位模式插补
位模式插补驱动是把高位CPU计算的插补数据以数据包的方式接收后以指定的驱动速度连续输出插补脉冲
为了进行位模式插补在每个寄存器上把2轴或3轴的+/-方向驱动脉冲设定为1位1脉冲输出驱动脉冲时设定为1不输出脉冲时设定为0
若要运行图2.24所示的轨迹的话输出X+/-方向Y +/-方向的每个驱动脉冲时设定为1不输出时设定为0设定这样的话位模式数据如下所示
图2.25表示位模式插补的第1轴寄存器构成BP1P寄存器BP1M寄存器是从高位CPU写入位模式数据的16位寄存器8位总线时分别写H字节和L字节+方向的16位的位模式写入在BP1P寄存器-方向的数据写入在BP1M寄存器位模式插补开始后从D0依次输出驱动脉冲
高位CPU
ax1PP
高位CPU
ax1
SC堆栈计数器RR0/D1413 BP1Pax1轴 +方向数据寄存器 BP1Max1轴 –方向数据寄存器 SREG16位移位寄存器 REG116位寄存器 REG216位寄存器
PM
图2.25 位模式插补寄存器结构图 (ax1轴分)
堆栈计数器SC是计算位模式数据储存量的计数器它能从0至3变化RR0寄存器的D1413位表示堆栈计数器的数值没有写入数据时堆栈数器SC表示0从高位CPU来的BP数据堆栈命令使之逐个增加用BP数据堆栈命令将设定在BP1PBP1M寄存器上的数据写入内部的16位移位寄
20
存器SREG或2个16位寄存器REG1REG2堆栈计数器SC=0时写入在SREG上SC=1时写入在REG1SC=2时写入在REG2数据写入完毕后堆栈计数器SC增加1
位模式插补被2轴或3轴位模式插补命令启动后所有轴跟从主轴来的基本脉冲同步根据16位移位寄存器SREGD0位的值输出驱动脉冲D0值为1时驱动脉冲输出为0时不输出位移寄存器的16位全部输出结束后寄存器REG1的数据移到移位寄存器寄存器REG2的数据移到REG1堆栈计数器SC减1
堆栈计数器变为3后高位CPU再也不能把位模式数据压栈到内部但是插补驱动开始后随着驱动脉冲输出堆栈计数器SC的数值以3→2→1减少所以可以重新写数据堆栈计数器SC=0意味着插补驱动的结束所以连续运行位模式插补的话SC=2或1时要设定下一个数据SC数值从2变到1时也可以要求中断高位CPU以写入数据
! 插补驱动速度的限制
此IC的位模式插补驱动速度最高达4MHz但是数据超过48位的话CPU要在插补驱动中补充数据所以插补驱动速度将受到CPU建立模式数据所需时间的影响
比如对于2轴位模式插补如果CPU花费在416位数据运算和数据建立的时间以及执行BP数据堆栈命令的时间是100SEC则插补驱动速度在1/100SEC/16=160KPPS以下
! 位模式插补的结束
位模式插补以下述2种方法结束 在第1轴数据内写结束码
当主轴ax1正和负方向的位数据都置1时位模式插补就结束收到结束码后堆栈计数器SC被强制为0所有遗留的位模式数据都无效
主轴的 +方向-方向变为1后结束
停止数据写入
停止以BP数据堆栈命令写入位模式数据到内部寄存器当所有的位模式数据作为驱动脉冲输出后SC为0结束插补驱动
! 用停止命令中断插补驱动
对运行位模式插补驱动的主轴(ax1)写入立即停止命令或减速停止命令插补驱动就停止重新写入位模式插补命令就继续位模式插补如果以停止命令停止驱动而不需要再进行插补的话请用BP数据清除命令把所有遗留的数据都清除
! 用硬件限制和软件限制的停止
在插补驱动中任何轴有硬件限制软件限制动作插补驱动就停止若不需要再运行插补就一定要用BP数据清除命令把所有留下数据清除在位模式插补中如果在正/负方向上有硬件限制和软件限制动作插补就会终止因此位模式插补不能脱离限定区域
21
! 位模式数据的写入寄存器
对于16位总线或8位总线从ax1轴至ax3轴的位模式数据写入寄存器的地址如下图所示 16位数据总线的位模式数据写入寄存器的地址
地 址 寄存器名 A2 A1 A0 0 0 0 0 0 1 0 1 0
内 容
在一般情况下的同
一个地址寄存器
WR0 nWR1 nWR2 nWR3 WR4 WR5 WR6 WR7
BP1P ax1轴+方向数据寄存器
0 1 1 BP1M ax1轴-方向数据寄存器 1 0 0 BP2P ax2轴+方向数据寄存器
1 0 1 BP2M ax2轴-方向数据寄存器 1 1 0 BP3P注1 ax3轴+方向数据寄存器 1 1 1 BP3M注1 ax3轴-方向数据寄存器
注1
BP3P
BP3M与WR6
7寄存器共享
8位数据总线的位模式数据写入寄存器的地址
地 址
A3 A2 A1 A0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 BPmPLBPmPH
寄存器名
BP1PL BP1PH BP1ML BP1MH
地 址 寄存器名
A3 A2 A1 A0 1 0 0 0 BP2PL 1 0 0 1 BP2PH 1 0 1 0 BP2ML 1 0 1 1 BP2MH 1 1 0 0 BP3PL 1 1 0 1 BP3PH 1 1 1 0 BP3ML 1 1 1 1 BP3MH m1
3
BPmMLBPmMH分别表示下述的字节
BPmP的低字节
BPmP的高字节BPmM的低字节BPmM的高字节
D7D0 D15D8 D7D0 D15D8
BPmPL BPmPH BPmML BPmMH
22
位模式数据写入寄存器和nWR2~WR7寄存器的地址一样此IC复位时不能写数据到位模式数据寄存器而要下述步骤写入数据
发BP寄存器写入允许命令
写位模式数据
发禁止写BP寄存器命令
37h
就不能写nWR2~nWR5寄存
36h
注意在结束写入位模式数据后如果不发禁止写BP寄存器命令37h器因此一定要发此命令
! 位模式插补驱动的例子
如图2.24位模式例子所示主轴ax1=X轴第2轴ax2=Y轴以1,000PPS定速驱动定线速度方式进行插补
WR50104h写入ax1: X轴 ax2: Y轴指定固定线速 WR6WR7WR0WR6WR7WR0WR6WR0WR6WR0WR0WR0BP1PBP1MBP2PBP2MWR0 BP1PBP1MBP2P
0900h写入主轴速度参数设定
BP2M
003Dh写入范围0100h写入
BP1P
4DC0h写入2轴固定线速的范围 0056h写入40000000200h写入
01F4h写入初始速度:5000104h写入
01F4h写入驱动速度:5000105h写入
0039h写入BP数据清除 0036h写入BP寄存器写入允许 0000h写入0
15 X轴 +方向
X轴 -方向 Y轴 +方向 Y轴 -方向
2=1,000PPS 2=1,000PPS 1.414=5,656,000
BP1MBP2PBP2MWR0 WR0
J1 RR0/D14,13读出直等到堆栈计数器2以下 BP1PBP1MBP2PBP2MWR0 WR0
如果D14=D13=1跳到J1 4000h写入 487FF5h写入 0000h写入 0AFFh写入
61
X轴 +方向 X轴 -方向 Y轴 +方向 Y轴 -方向
1FDBh写入320000h写入 00FFh写入 FC00h写入
47 X轴 +方向
X轴 -方向 Y轴 +方向 Y轴 -方向
4,000,000
倍率=2
WR0
3FC0h写入
Y轴 +方向
0038h写入BP数据堆栈
固
0038h写入BP数据清除
0034h写入2轴驱动开始轴位模式插补
(注1)
2BFFh写入 FFD4h写入 0000h写入
0038h写入 BP数据清除 0037h写入 禁止BP寄存器写入
等到插补驱动结束
0038h写入BP数据堆栈 F6FEh写入160000h写入 000Fh写入
31 X轴 +方向
X轴 -方向 Y轴 +方向
J2 RR0/D8 读出
如果D8=1跳到J2 注1
如果BP数据持续下去重复此过程
23
! 用中断的位模式插补驱动
在运行位模式插补驱动中堆栈计数器SC的数值从2变到1时可以对高位CPU发生中断并且要求数据写入为了产生中断置WR5寄存器的D15位为1如此启动的位模式插补驱动当堆栈计数器SC数值从2变1时INTN输出信号下降到低电平由高位CPU的中断处理子程序来确认堆栈计数器SC的数值如果需要位模式插补的数据就写入16位或32位的模式数据在写入BP数据堆栈命令后中断解除
对于在插补驱动中发生的中断可以通过写入插补中断清除命令3Dh来解除直处于低电平状态当插补驱动结束中断也就解除回到高阻态
即使INTN输出信号一
2.4.4 固定线速度
固定线速度控制是始终保持插补轴以合成速度运行的功能图2.26显示了2轴插补的轨迹每个轴根据主轴的基本脉冲输出驱动脉冲如图所示当在XY的2个轴上输出驱动脉冲时移动的距离比只用1个轴的长1.414倍因此若需要保持2个轴始终一致的合成速度其中1个轴的速度要设定为另1个轴当它作为单轴输出驱动脉冲速度的1/1.414
图2.26 2轴插补例子
! 2轴固定线速度
运行2轴固定线速度先设定WR5寄存器的D9D8位为01把第2插补轴的范围参数设定为主轴范围参数的1.414倍此后只用1个轴输出驱动脉冲时主轴的范围参数就在使用中用2个轴输出驱动脉冲时第2轴的范围参数自动得到使用脉冲周期延长到1.414倍
! 3轴固定线速度
3轴固定线速度也一样先设定WR5寄存器的D9D8位为1和1在第2轴的范围参数上设定为主轴范围数值的1.414倍在第3轴范围参数上设定为主轴范围数值的1.732倍插补驱动开始后只用3轴中的1个轴来输出驱动脉冲时主轴的范围参数被使用用2个轴输出驱动脉冲时第2轴的范围参数被使用用3个轴输出驱动脉冲时第3个轴的范围参数被使用请参考图2.28就是3轴插补方式也可以运行由主轴和第2轴合成的固定线速度这时要设定WR5寄存器的D9D8位为01 ! 固定线速度的插补驱动例子
下图所示在主轴ax1=X轴第2轴ax2=Y轴上以1,000PPS定速驱动以固定线速度方式进行直线插补输出如图2.27所示的驱动脉冲
WR5WR6WR6WR0WR6WR7WR0WR6WR0WR6WR0WR6WR7WR024
0104h写入ax1: Xax2: Y轴指定固定线速 0900h写入主轴速度参数设定 003Dh写入0100h写入 4DC0h写入0200h写入 01F4h写入0104h写入 01F4h写入0105h写入 03E8h写入0106h写入
终点X轴
0000h写入
驱动速度:500
2=1,000 PPS
初始速度: 500
2=1,000PPS
2轴固定线速的范围
1.414=5,656,000
0056h写入4000000
范围: 4,000,000(倍率:2)
WR6WR7WR0WR0
0190h写入终点Y轴 0000h写入 0206h写入
0030h写入2轴直线插补开始
图2.27 2轴插补固定线速的例子(线速度:1000PPS)
注意2个轴输出驱动脉冲时脉冲周期延长到原来的1.414倍驱动脉冲的高电平宽度是不变的只有低电平在一个周期内比原有的宽1.414倍驱动脉冲时要设定为正逻辑对于3个轴固定线速度其周期是原来的1.732倍同样只是低电平变宽
图2.28 3轴插补固定线速的例子(线速度:1000PPS)
2.4.5 连续插补
连续插补是直线圆弧插补直线插补这样在每个插补节点之间不停地驱动连续插补在连续插补驱动中如果设定了下一个插补参数并写入插补命令就能执行连续的插补驱动因此在所有的插补节点中从连续插补驱动开始至结束的时间必须长于设定下一个插补节点的数据和发命令的时间
右图是连续插补的操作程序
RR0寄存器的D9CNEXT位用于连续插补在插补驱动中这个位表示是否写入下一个插补节点的数据及插补命令1表示可以写入0表示不可以写入当驱动停止时该位为0插补驱动开始就变为1可以写入下一个插补节点的数据及插补命令写入下一个插补节点的插补命令后变为0不可以写入状态下一个插补节点开始驱动后变为1可以写入再下一个插补节点的数据及插补命令
! 用中断的连续插补
WR5寄存器的D14位是设定连续插补的中断允许/禁止位当该位为1并且RR0寄存器的D9CNEXT位为1可以写入时INTN输出信号下降到低电平在高位CPU的中断处理程序中确认RR0寄存器的D9
写入下一个CNEXT位如果是1可以写入
插补节点的数据及插补命令运行连续插补中断时写入下一个插补命令后INTN信号就回复到高阻态写入下一个插补节点的数据前可以用插补中断清除命令解除中断此外插补驱动结束后插补中断被强制解除INTN信号回复到高阻态
25
! 连续插补中发生的错误
在连续插补驱动过程中若发生越限等错误驱动就立即在当前插补节点上停止在停止的插补节点上下一节点的数据和命令虽在但命令是无效的此外在设定每个插补节点数据及插补命令前必须检查错误若没有检查当发生错误停止驱动后这些数据和命令将无效而从下面第2个插补节点开始运行一定要进行检查若发现错误的话要脱离连续插补的循环
! 连续插补的注意事项
# 在每个插补节点上要在设定需要的数据后发插补命令请不要先送插补命令后送数据 # 连续插补的驱动速度最高达2MHz
# 所有驱动插补节点的时间必须长于插补轴检错和设定下一个插补节点的数据及命令的时间如果
在设定下一个插补节点时驱动停止RR0寄存器的D9CNEXT位为0但是写入下一个插补节点的命令后就从暂停处继续插补
# 连续插补中有圆弧插补时圆弧插补终点的短轴数值也许会比真值偏差1LSB因此为了避免
累积每个节点的误差事先要确认每个圆弧插补的终点然后考虑怎么运行连续插补 # 不能运行这样的连续插补即2轴插补3轴插补或3轴插补2轴插补 # 在运行连续插补中不能变更指定的插补轴 ! 连续插补的例子
图2.29是把00作为始点从节点1至23 8运行连续插补的例子节点1357是直线插补节点2468是半径1,500的1/4圆插补速度是1,000PPS的定速驱动线速不变 WR5WR6WR7WR0WR6WR7WR0WR6WR0WR6WR0WR6WR7WR0WR6WR7WR0WR0
0104h写入0900h写入003Dh写入0100h写入 4DC0h写入0056h写入0200h写入 01F4h写入0104h写入 01F4h写入0105h写入 1194h写入0000h写入0106h写入 0000h写入0000h写入0206h写入 0030h写入
ax1: X轴ax2: Y轴指定线速常数 主轴固定速度设定
范围: 4,000,000倍率:2 2轴固定线速范围
40000001.414=5,656,000 初始速度: 5002=1,000PPS 驱动速度: 5002=1,000PPS 终点X值: 4,500
图2.29 连续插补轨迹的例子
终点Y值: 0 node1
2轴直线插补
26
J1 RR0/D5,4读出 在X,Y轴有错误的话
D5orD4=1的话,转到ERROR: 做错误处理 RR0/D9读出 下一个节点数据 D9=0的话,转到J1 等写入允许 WR6WR7WR0WR6WR7WR0WR6WR7WR0WR6WR7WR0WR0WR6WR7WR0WR6WR7WR0WR0
0000h写入0000h写入0108h写入 05DCh写入0000h写入0208h写入 05DCh写入0000h写入0106h写入 05DCh写入0000h写入0206h写入 0033h写入0000h写入0000h写入0106h写入 05DCh写入0000h写入0206h写入 0030h写入
中心X值0
中心Y值 1,500
终点X值 1,500 node2
终点Y值:1,500
CCW圆弧插补 终点X值: 0
终点Y值: 1,500
2轴直线插补
A处理
A处理 • • •
以下node4~8继续以同样方法处理第4节点到第8节点
2.4.6 加减速驱动的插补
插补一般用定速驱动不过此IC可以用直线加/减速驱动或S曲线加/减速驱动运行插补
只可做直线插补
在连续插补时为了实现加/减速驱动使用减速有效命令3Bh和减速无效命令3Ch在插补驱动时减速有效命令是使自动减速或手动减速变为有效减速无效命令是使它变为无效复位时都是无效状态用加/减速单独运行插补驱动时驱动开始之前一定要设定成减速有效状态在驱动中写入减速有效命令也不能变为有效
! 2轴/3轴直线插补的加/减速驱动
在2轴/3轴直线插补中可以运行直线加/减速驱动及S曲线加减速驱动减速这时自动减速和手动减速都可以用使用手动减速时把在终点坐标的各轴数值中绝对值最大的数值设定为主轴的手动减速点比如在主轴为X轴第2轴为Y第3轴为Z轴上运行3轴直线插补到终点X-20,000Y30,000Z-50,000假定减速时需要的脉冲数量为5,000Z轴的终点绝对数值最大所以把50000-5000=45,000作为手动减速点设定在主轴X轴
27
直线插补的加/减速驱动的例子请参考2.4.1的3轴直线插补驱动的例子
! 圆弧插补位模式插补的加/减速驱动
在圆弧插补位模式插补中只能用手动减速的直线加/减速驱动不能使用S曲线加/减速驱动及自动减速 右图是用直线加减速驱动运行半径10,000完整圆轨迹的例子在圆弧插补中不能用自动减速所以事先要设定手动减速点半径10,000的圆通过从0至7象限在每个象限上短轴一直输出脉冲所以短轴每1个象限输出10000/2=7,071脉冲因此在整个圆上从主轴输出的基本脉冲数是70718=56,568
此外把初始速度设定为500PPS在0.3秒之内用直线加速把驱动速度增加至20,000PPS的话加速度是20000–500/0.3=65,000PPS/SEC加速时化费的脉冲
数是右图的斜线部面积500+20000
0.3/2=3,075因此如果减速度和加速度一样手动减速点就设定为56568-3075=53,493
注意在固定线速模式上不能用这个算法 WR30001h写入减速开始点: 手动
WR50004h写入插补ax1: X轴ax2: Y轴指定 WR68480h写入范围: 2,000,000(倍率: 4) WR7001Eh写入 WR00100h写入
WR60082h写入加速度
WR00102h写入1301254=65,000PPS/SEC WR6007Dh写入初始速度: 1254=500PPS WR00104h写入
WR61388h写入驱动速度
WR00105h写入50004=20,000PPS WR6D8F0h写入中心X: -10,000 WR7FFFFh写入 WR00108h写入
WR60000h写入中心Y: 0 WR70000h写入 WR00208h写入
WR60000h写入终点X: 0 WR70000h写入 WR00106h写入
WR60000h写入终点Y: 0 WR70000h写入 WR00206h写入
WR6D0F5h写入手动减速点: 53,493 WR70000h写入 WR00107h写入
WR0003Bh写入减速有效
WR00033h写入CCW圆弧插补驱动
28
! 连续插补的加/减速驱动
在连续插补中只能用手动减速的直线加/减速驱动不能用S曲线加/减速驱动及自动减速在连续插补中要事先设定手动减速点这个手动减速点设定在运行减速的最终节点上并设定从主轴输出的基本脉冲的数值连续插补时先把减速设定为无效然后开始插补驱动在要减速的最终插补节点上写入插补命令之前写入允许减速命令开始最终插补节点的驱动时减速就有效从最终插补节点的开始计数主轴输出的基本脉冲数大于手动减速点的数值时减速就开始
比如从插补节点1至5的连续插补中在最终节点5上用手动减速的话有下述的程序
对主轴设定加/减速模式和参数
写手动减速点
写无效减速命令
对节点1写数据和插补命令
检查错误
等待写入下一个数据
对节点2写数据和插补命令
▪ ▪ ▪
检查错误
等待写入下一个数据
写允许减速命令3Bh
对节点5写数据和插补命令
# 由从节点5开始的主轴基本脉冲数的数值来设定手动减速点比如假定减速化费2,000脉冲在
节点5上输出的基本脉冲的总脉冲数是5,000的话手动减速点就设定为5000-2000=3,000 # 开始至停止一定要在1个节点内运行减速减速停止的最终插补节点需要从其主轴输出的基本脉冲
总数要大于在减速中化费的脉冲数
3Ch
29
2.4.7 步进插补命令外部信号
逐步插补驱动的功能是以逐个脉冲的方式执行的有根据命令和根据外部信号这2种方法如果使用外部信号除了根据主轴的基本脉冲以外还可以运行跟外部信号同步的插补驱动步进插补时插补主轴设定为定速驱动从每个轴输出的驱动脉冲高电平宽度是1/2脉冲周期这周期由在主轴设定的驱动速度而定低电平宽度的增加直到下一个命令或外部信号的到来图2.30是由外部信号驱动的步进插补的例子假定把主轴的初始速度设定为500PPS把驱动速度设定为500PPS的定速驱动那么输出的驱动脉冲的高电平宽度是1mSEC驱动脉冲在正逻辑时
图2.30 根据外部信号(EXPLSN)的步进插补例子(驱动速度: 500PPS)
! 根据命令的步进插补
单步插补命令3Ah用于插补驱动的步进传送置WR5寄存器的D12位为1可以由命令进行步进插补以下是操作程序
置WR5寄存器的D12位为1
这将成为由命令控制的步进插补模式
用相同数值设定插补主轴的初始速度和驱动速度
用相同数值设定初始速度和驱动速度将执行定速驱动这个速度值要设定得比写入单步命令周期快比如要用最高1mSEC周期写入单步命令就要把初始速度和驱动速度设定得比1,000PPS快的数值
设定插补数据终点中心点等 写入插补命令
就是写入插补命令它也是命令控制的步进插补模式
各轴的驱动脉冲还不被输出
写入单步插补3Ah命令
根据插补运算的结果从各轴输出驱动脉冲写入单步命令3Ah直到插补驱动结束为止若要在步进插补中停止可给主轴写立即停止命令27h等待1个以上驱动速度的脉冲周期后再写单步插补命令驱动就停止插补驱动结束后写入的单步插补命令都无效
# 外部信号控制的步进插补
引脚29EXPLSN用作步进插补驱动的外部输入信号置WR5寄存器的D11位为1就可以用外部信号进行步进插补EXPLSN输入信号通常为高电平在插补步进模式时步进插补由外部信号的下降沿启动以下是操作程序
置WR5寄存器的D11位为1
它将成为由外部信号控制的步进插补模式
用相同数值设定插补主轴的初始速度和驱动速度 用相同数值设定初始速度和驱动速度将执行定速驱动比EXPLSN的Low脉冲周期快的速度
设定插补数据终点中心点等 写入插补命令
就是写入插补命令它也是命令控制的步进插补模式
30
这个速度值和上述的命令控制一样设定
各轴的驱动脉冲还不被输出
给EXPLSN输入Low电平脉冲
脉冲下降2~5CLK后插补驱动脉冲从各轴输出EXPLSN的低电平脉冲宽度需要4CLK以上此外EXPLSN的脉冲周期一定要比在主轴设定的驱动速度周期长插补驱动结束前要反复向EXPLSN端输入低电平脉冲若要在步进插补中停止就要给主轴写立即停止命令27h等待1个以上驱动速度的脉冲周期后再输入EXPLSN的低电平脉冲驱动就停止用软件复位的方法更简便 插补驱动结束后注意
向EXPLSN端输入的低脉冲无作用
不要使EXPLSN信号发生颤动
如果由机械接点产生低电平脉冲
2.5 中断
发生中断有2种情况其一来自XYZU各个轴的中断其二是位模式插补及连接插补时的中断对CPU的中断信号只有1个INTN信号因此下图所示每个轴的中断信号及位模式插补连续插补的中断信号在IC内做逻辑
每个轴的中断及插补中断可以分别允许或禁止
! X
Y
ZU轴的中断
状态 nRR3寄存器 PULSEPPPP
C- C- C+C+
复位时都是禁止状态
允许/禁止设定nWR1寄存器 D8D9D10D11D12D13D14D15
PULSEPPPP
中断发生的因素
D0 输出了1个驱动脉冲(正逻辑脉冲时,由于脉冲上升沿的原因发生) 逻辑/实位计数器的值大于COMP-寄存器CM的值 逻辑/实位计数器的值小于COMP-寄存器CM的值 逻辑/实位计数器的值小于COMP+寄存器CM的值 逻辑/实位计数器的值大于COMP+寄存器CM的值 加/减速驱动中
加/减速驱动中 驱动结束时
结束在定速区域输出脉冲 开始在定速区域输出脉冲
C- D1C- D2C+C+
D3 D4 D5 D6 D7Z
C-ENDC-STAD-END
Y
C-ENDC-STAD-END
上图是由XU轴发生中断的因素
在nWR1寄存器内每个中断因素都可被设定成允许1或禁止0在驱动中如果中断因素变成有效nRR3寄存器的相应位就为1中断输出信号INTN变为低电平高位CPU读出被中断轴的RR3寄存器后nRR3寄存器的状态位被清为0中断输出信号INTN返回到高阻态
31
! 插补驱动中断 允许/禁止设定WR5寄存器
RR0寄存器 状态位
中断发生的因素
内中断清除的方法
在连续插补驱动中可以写下一个插补节点的数据和插补驱动命令
D14(CIINT) D9(CNEXT) 写入下一个插补驱动命令后中断被清除 在位模式插补中堆栈计数值(SC)的数值从2变为1可以压入下一
D15(BPINT) D14,13(BPS1,0) 压栈BP数据后中断被清除 个BP数据写入插补中断清除命令3Dh可以解除在插补驱动中发生的中断此外如果INTN输出信号停
留在低电平状态插补驱动结束后将返回到高阻状态有关插补驱动中断的使用方法请参考位模式插补连续插补的相关段落
2.6 其它功能
2.6.1 外部信号控制的驱动操作
此功能不是用命令而是用外部信号来运行定量驱动连续驱动当系统内所控制马达的轴增加很多1个CPU还要进行每个轴的手动操作这时CPU过于繁忙不能对每个事件作出应答此IC用外部信号控制的驱动操作功能可以减轻CPU的负担
每个轴都有nEXPP和nEXPM的2个信号输入nEXPP信号用于+方向的驱动操作nEXPM信号用于-方向的驱动操作在WR3寄存器的D4和D3位上设定定量驱动或连续驱动要事先设定好定量驱动或连续驱动所需的参数nEXPP和nEXPM信号要固定为高电平
! 定量驱动模式
把WR3寄存器的D4和D3位设为1和0设定驱动所需的速度参数和输出脉冲数当nEXPP信号从高电平降到低电平时由信号的下降沿启动正方向的定量驱动nEXPM信号从高电平降到低电平的过程也一样信号的下降沿将启动负方向的定量驱动每个输入操作信号的低电平宽度必须大于4CLK周期驱动结束前再来输入信号也无效
注意若输入连接在简单的机械接点上在信号上会出现颤动若输出脉冲数不多由于颤动的原因驱动将被再次启动所以要正确操作就需要防颤电路
! 连续驱动模式
把WR3寄存器的D4和D3位设为0和1设定驱动所需的速度参数当nEXPP信号从高电平降到低电
32
平后在低电平期间在正方向连续输出驱动脉冲若nEXPP信号从低电平返回高电平对于加/减速驱动就进行减速停止对于定速驱动就立即停止nEXPM信号也如此连续输出负方向的驱动脉冲
2.6.2 脉冲输出方式的选择
驱动输出脉冲有下图所示的2种脉冲输出方式以独立2脉冲方式正方向驱动时由nPP/PLS输出驱动脉冲负方向驱动时由nPM/DIR输出驱动脉冲采用1脉冲方式则由nPP/PLS输出驱动脉冲由nPM/DIR输出方向信号WR2寄存器的D6位PLSMD用于选择脉冲输出方式脉冲输出方向输出和逻辑电平都可以由WR2寄存器的D7PLS-LD8DIR-L位来选择
注意有关1脉冲方式的输出脉冲信号nPLS和方向信号nDIR的时序请参考13.213.3
2.6.3 脉冲输入方式的选择
当向上/向下计数的实位计数器输入是编码器脉冲时其输入可以选择2相脉冲输入或上/下脉冲输入设定为2相脉冲输入模式后对正逻辑而言当A相超前B相时向上计数B相超前A相时往下计数由2个信号的分别向上和向下计数此外对于2相脉冲输入模式可以把输入脉冲分为1/2和1/4注意使用上/下脉冲输入模式时给SCLK周期nPPINnPMIN信号后要输入请参考P67
设定为上/下脉冲输入方式后
分别计数 脉冲的
nECA/PPIN作为向上计数输入nECB/PMIN作为向下计数输入由
脉冲输入方式由WR2寄存器的D9位PINMD选择WR2寄存器的D11和D10位PIND1和
PIND0用来设定编码器2相脉冲输入的分周比
2.6.4 硬件限制信号
硬件限制信号nLMTPnLMTM是限定正方向和负方向驱动脉冲的输入信号当限制信号的逻辑电平和限制信号有效时可以由命令选择减速停止或立即停止其设定由WR2寄存器的D3D4HLMT+HLMT-和D2LMTMD位
33
2.6.5 伺服马达对应的信号
与伺服马达驱动器连接的输入信号有到位信号nINPOS和警报信号nALARM每个信号的有效/无效及逻辑电平都可以设定由WR2寄存器的D15~12位设定nINPOS输入信号与伺服马达驱动的到位定位完毕信号对应设定模式为有效时一个驱动结束后为等待nINPOS输入信号有效RR0主状态寄存器的n-DRV位返回0nALARM输入信号接受从伺服马达驱动器的警报信号设定为有效时一直监视nALARM输入信号若信号有效RR2寄存器的D4ALARM位为1若在驱动中立即停止驱动这些用于伺服马达驱动器的输入信号可以一直在RR56寄存器读其状态通用输出信号nOUT7~4或nOUT3~0可用于偏置计数器清除警报复位等对于伺服马达驱动器是警报复位等
2.6.6 紧急停止
为了紧急停止所有4轴的驱动此IC有EMGN信号EMGM信号通常处于高电平下降到低电平后驱动中的全部轴立即停止各轴的RR2寄存器的D5EMG位为1EMGN信号不能选择逻辑电平
有下述的方法使CPU紧急停止4轴的运行
同时对4轴发立即停止命令
对WR0寄存器指定所有4轴写立即停止命令进行软件复位
对WR0寄存器写8,000h进行软件复位
27h
2.6.7 驱动状态的输出
每个轴的驱动/停止状态反映在RR0寄存器D3~0n-DRV位并由nDRIVE信号输出在驱动过程中每个轴驱动速度的加速/定速/减速状态反映在每个轴RR1寄存器输出D2ASNDD3CNSTD4DSND位并由nOUT6/ASNDnOUT7/DSND信号输出因为输出信号和通用输出信号共享引脚端子所以当输出驱动状态时置WR3寄存器的D7OUTSL位为1 驱动状态 停止 加速 定速 减速
状态寄存器 输出信号
RR0/n-DRV nRR1/ASND nRR1/CNST nRR1/DSND nDRIVE nOUT6/ASND nOUT7/DSND 0 0 0 0 Low Low Low 1 1 0 0 Hi Hi Low 1 0 1 0 Hi Low Low 1 0 0 1 Hi Low Hi 此外S曲线加减速驱动中的加速度减速度的增加/恒定/减少的状态也反映在RR1寄存器的D5
AASNDD6ACNSTD7ADSND位
2.6.8 通用输出
此IC的每个轴都有nOUT3~0nOTU7~4的8个通用输出信号不过nOUT7~4引脚和位置比较输出及驱动状态输出的引脚合用所以使用这些输出时就不能使用那些信号
34
在设定好WR4寄存器各位输出电平的值后由nOUT3~0信号输出使用nOUT7~4信号时通过WR3寄存器的D7OUTSL设定为使用通用输出的模式对WR3寄存器的D11~8OUT7~4设定输出电平的数值后就输出通用输出信号可以作为马达驱动器的励磁OFF偏差计数器清除报警复位等复位时WR4寄存器nWR3寄存器的每个位被清除所有的输出为低电平
3 引脚配置和信号说明
35
! 信号说明
信号名的XOOOYOOOZOOOUOOO是X轴Y轴表示XYZU
信号名
引脚编号
输入/输出
Z轴U轴的输入输出信号nOOO的n
信号说明
时钟启动此IC的内部同步电路的主时钟信号其频率为16.000MHz驱动速度加/减速度加速度/减速度的变化率都根据此频率输入16MHz以外的频率时速度设定数值加减速设定数值都跟上述的不一样
D15~D0 1~8,10~17 双方向A 数据总线3态双向的16位数据总线连接在系统的数据
总线当CSN=LowRDN=Low时处于输出状态除此以外都是高阻的输入状态
用于8位数据总线时不使用高位D15~D8所以用高电=阻100K左右把D15~D8上拉到+5V
A3~A0 21,22,23,24 输入A 地址高位CPU选择此IC的读/写寄存器的地址信号
用16位数据总线时不使用A3
CSN 25 输入A 片选把此IC作为I/O器件来选择的输入信号读/写此
IC时设定为Low电平
WRN 26 输入A 写选通写此IC的写入寄存器时设定为Low电平WRN
在低电平时CSN及A3~A0要确定WRN的上升沿将数据总线的内容锁入写寄存器所以D15~D0的数值在WRN上升沿前后要确定
RDN 27 输入A 读选通从此IC的读寄存器读出数据时设定为低电平
CSN和RDN都要为低电平只有在RDN处于低电平时由A3~A0地址选择的读寄存器数据就被输出至数据总线
RESETN 28 输入A 复位复位初始化此IC的信号把RESETN置为低
电平大于4周期以上时就执行复位接通电源后一定要
注意如果不输入CLK即用RESETN信号复位此IC
使把RESETN置为低电平也不能复位此IC
EXPLSN 29 输入A 外部脉冲外部插补脉冲模式的脉冲输入一般处于高电
平在外部插补脉冲模式的插补驱动中随着EXPLSN的下降沿启动1脉冲的插补算术并每个轴的插补脉冲被输出1脉冲EXPLSN的低电平最小脉宽必须在4CLK以上
H16L8 30 输入A H16位L=8位用于16位/8位数据总线选择高电平
时为16位数据总线用16位数据总线存取IC内的读/写寄存器而设为Low电平后只使用数据总线的D7~D0 8位用8位数据总线存取内部读/写寄存器
TESTN 31 输入A 测试此引脚用于内部电路的测试如果处于低电平会
发生意外的动作所以要开路或上拉到5V
BUSYN 32 输出B 忙表示正处理当前写入的命令写入命令后正在处理命
令解析其命令处于低电平时间在最小2CLK与最大4CLK之间BUSYN处于低电平时不能执行写入命令在命令写入后的4CLKCLK=16MHz的250nSEC之内要写下一个命令的高速CPU时使用此信号
INTN 33 输出B 中断供高位CPU使用的中断请求信号由任何中断因素
引发中断INTN都为低电平中断解除后返回高阻态
CLK 53 输入A
36
信号名
引脚编号
输入/输出
信号说明
系统时钟输入时钟信号CLK二分频后的输出时钟信号此IC内所有的同步电路与此时钟同步把每个轴的输出信号向外锁存时可以用它注意在RESETN信号处于低电平时SCLK无输出
脉冲+/脉冲输出+方向的驱动脉冲复位时处于低电平开动驱动后输出50%占空比定速时的正脉冲能选择正/负脉冲方式选择1脉冲方式时从此引脚输出驱动脉冲 脉冲-/方向输出-方向的驱动脉冲复位时处于低电平开动驱动后输出50%占空比定速时的正脉冲可以用模式选择正/负脉冲在模式选择上选择1脉冲方式时此引脚是换向信号
编码器A/脉冲+入编码器A相信号的输入在IC内部与B相信号一起变换为上/下脉冲成为实位计数器的计数输入用模式选择上/下脉冲输入后此引脚为上脉冲输入由输入脉冲的上升沿使实位计数器向上计数注意作上脉冲输入使用时请参考P67图
编码器B/脉冲-入编码器B相信号的输入在IC内部与A相信号一起变换为上/下脉冲成为实位计数器的计数输入用模式选择上/下脉冲输入后此引脚为下脉冲输入由输入脉冲的下降沿使实位计数器向下计数注意作下脉冲输入使用时请参考P67图
驱动表示驱动中的输出信号执行驱动命令在输出+方向/-方向的驱动脉冲时此引脚处于高电平插补驱动指定的轴在插补驱动时也为高电平通过模式选择使伺服马达用的nINPOS信号有效在nINPOS有效前DRIVE一直保持高电平
通用输出7/下降通用输出信号nOUT7~4的输出端在WR0寄存器指定轴后在WR3寄存器的D11~D8写入I/O数据nOUT7~4依数据输出高或低电平复位时为低电平在驱动状态输出模式时此引脚表示减速驱动状态的输出信号当驱动处于减速状态时就为高电平
通用输出6/上升通用输出信号操作与nOUT7一样在驱动状态输出模式时此引脚表示加速驱动状态的输出信号当驱动处于加速状态时就为高电平
通用输出5/比较-通用输出信号操作与nOUT7一样在处于驱动状态输出模式时逻辑/实位计数器小于COMP-寄存器就输出高电平大于的话输出低电平
通用输出4/比较+通用输出信号操作与nOUT7一样在处于驱动状态输出模式时逻辑/实位计数器大于COMP+寄存器就输出高电平小于的话输出低电平
通用输出3~0每个轴有4个通用输出信号根据WR4寄存器D15~D0的1或0数据nOUT3~0输出高或低电平复位时为低电平因为不用指定轴所以设定比nOUT7~4简单
SCLK 34 输出A
XPP/PLS YPP/PLS ZPP/PLS UPP/PLS XPM/DIR YPM/DIR ZPM/DIR UPM/DIR XECA/PPIN YECA/PPIN ZECA/PPIN UECA/PPIN XECB/PMIN YECB/PMIN ZECB/PMIN UECB/PMIN XDRIVE YDRIVE ZDRIVE UDRIVE XOUT7/DSND YOUT7/DSND ZOUT7/DSND UOUT7/DSND XOUT6/ASND YOUT6/ASND ZOUT6/ASND UOUT6/ASND XOUT5/CMPM YOUT5/CMPM ZOUT5/CMPM UOUT5/CMPM XOUT4/CMPP YOUT4/CMPP ZOUT4/CMPP UOUT4/CMPP XOUT3~0 YOUT3~0 ZOUT3~0 UOUT3~0
35 38 40 42 36 39 41 43 44 46 48 50 45 47 49 51 56 76 104 122 57 77 105 123 58 78 106 124 59 79 107 125 60 80 108 128 61~64 81~84 110~113 129~132
输出A
输出A
输入A
输入A
输出A
输出A
输出A
输出A
输出A
输出A
37
信号名 XINPOS YINPOS ZINPOS UINPOS XALARM YALARM ZALARM UALARM XLMTP YLMTP ZLMTP ULMTP XLMTM YLMTM ZLMTM ULMTM XIN3~0 YIN3~0 ZIN3~0 UIN3~0 XEXPP YEXPP ZEXPP UEXPP XEXPM YEXPM ZEXPM UEXPM
引脚编号 67 85 95 114 68 86 96 115 69 87 97 116 70 88 98 117 71~74 89.92~94 99~102 118~121 134 136 138 140 135 137 139 141
输入/输出 输入A
信号说明
到位处理伺服马达驱动输出到位定位完毕的输入信号用命令设定有效/无效和逻辑电平设定为有效当驱动结束后待此信号成为有效后主状态寄存器的n-DRV位返回0
伺服报警处理伺服马达驱动警报输出的输入信号可以选择有效/无效模式和逻辑电平设定为有效当此信号有效RR2寄存器的ALARM位为1
越限+正方向的越限信号在正方向驱动脉冲输出过程中此信号有效就执行减速停止或立即停止有效脉冲宽度需大于2CLK脉冲在方式选择中可设定减速停止或立即停止和逻辑电平此信号有效时RR2寄存器的HLMT+位为1
越限-负方向的越限信号在负方向驱动脉冲输出过程中此信号有效就执行减速停止或立即停止有效脉冲宽度需大于2CLK脉冲在方式选择中可设定减速停止或立即停止和逻辑电平此信号有效时RR2寄存器的HLMT-位为1
输入3~04输入信号用于对各驱动轴执行减速停止或立即停止还用于位置搜索的输入信号有效脉冲宽度需要2CLK以上可以对每个IN3~IN0设定有效/无效和逻辑电平信号状态可以一直在RR4/RR5寄存器读出
外部操作+从外部启动正方向驱动的输入信号在外部定量驱动模式时由此信号的下降沿启动定量脉冲驱动此外在外部连续模式时此信号处于低电平时运行正方向连续驱动
外部操作-从外部启动负方向驱动的输入信号在外部定量驱动模式时由此信号的下降沿启动定量脉冲驱动此外在外部连续模式时此信号处于低电平时运行负方向连续驱动
紧急停止紧急停止各轴驱动的输入信号此信号处于低电平包括插补驱动在内的各轴驱动被立即停止每个轴的RR2寄存器EMG位就为1低电平脉冲宽度需要2CLK以上注意此信号不能选择逻辑电平
必须将所有13个引脚连接到地 接地端0V
输入A
输入A
输入A
输入A
输入A
输入A
EMGN 142 输入A
GND 9.19.20.37 52.55.66 75.91.103. 127.133.143 VDD 18.54.65 90.109.126.
144
+5V电源端必须将所有7个引脚连接到+5V电源
38
! 输入/输出电路
上拉输入A 这是TTL电平的史密特触发器输入内部有高阻几十K~几百K
至VDD可与CMOSTTL连接不用时请开路或上拉至+5V
输出A CMOS电平的输出因为是4mA驱动缓冲器若高电平输出电流IOH = -4mA
VOH=2.4Vmin若低电平输出电流IOL=4mAVOL=0.4Vmax所以它能驱动多达10个LSTTL
输出B 开漏输出4mA驱动缓冲器若低电平输出电流IOL=4mAVOL=0.4Vmax
使用时用高电阻上拉至+5V
双方向A 输入侧是TTL电平的史密特触发器输入在IC内部没有用高电阻上拉有高
的输入电阻为避免信号线处于高阻态在整个系统中用高电阻上拉数据总线 不用D15~D8时请用高电阻约100K上拉至+5V因为是双方向所以最好不要直接上拉用高电阻上拉安全些
输出侧是CMOS电平输出8mA驱动缓冲器若高电平输出电流IOH = -8mAVOH=2.4Vmin若低电平输出电流IOL=8mAVOL=0.4Vmax 电路设计上的考虑
1去耦电容器
在此IC的VDD和GND之间请放1~2个高频特性好的0.12引脚电感引起的振铃噪音
由于输出引脚端带有的电感和连接在输出的负载电容共振使输出信号在上升和下降时可
能出现振铃噪音振铃噪音太大使电路无法正常工作时要连接10~100PF左右的负载电容以降低振铃噪音 3传送通路上的反射
以输出AB及双方向A形式输出时假设负载电容为20~50PF信号的上升/下降时间在3~4ns配线长度60cm左右开始反射的影响很明显为减少反射布线的长度越短越好
F左右的去耦电容器
39
4 读/写寄存器
这章详细叙述CPU为控制每个轴而存取的读/写寄存器有关位模式插补寄存器BP1P/MBP2P/MBP3P/M请参考2.4.3节的位模式插补
4.1 16位数据总线的寄存器地址
如下表所示
使用16位数据总线时
存取16位读/写的地址有8个
! 16位数据总线的写入寄存器 地址
寄存器符号 寄存器名称 内 容
A2 A1 A0 0 0 0 WR0 命令寄存器 轴指定命令编码的设定 0 0 1 XWR1 X轴方式寄存器1 设定各轴的外部减速停止信号的逻辑电平和有效/无效
YWR1 Y轴方式寄存器1 设定各轴中断的允许/禁止 ZWR1 Z轴方式寄存器1 UWR1
U轴方式寄存器1
0 1 0 XWR2 X轴方式寄存器2 设定各轴限制信号的模式设定驱动脉冲的模式设定编
YWR2 Y轴方式寄存器2 码器输入信号的模式设定用于伺服马达信号的逻辑电平ZWR2 Z轴方式寄存器2 和有效/无效 UWR2
U轴方式寄存器2
BP1P BP1P寄存器 设定正方向位模式插补第1轴的位数据
0 1 1 XWR3 X轴方式寄存器3 设定各轴的手动减速单独减速度S曲线加减速模式
YWR3 Y轴方式寄存器3 设定外部操作模式 ZWR3 Z轴方式寄存器3 设定通用输出OUT7~4 UWR3
U轴方式寄存器3
BP1M BP1M寄存器 设定负方向位模式插补第1轴的位数据
1 0 0 WR4 输出寄存器 设定通用输出OUT3~0
BP2P BP2P寄存器 设定正方向位模式插补第2轴的位数据
1 0 1 WR5 插补方式寄存器 轴指定设定固定线速度模式步进模式和中断
BP2M BP2M寄存器 设定负方向位模式插补第2轴的位数据
1 1 0 WR6 写数据寄存器1 设定写入数据的低16位D15~D0
BP3P 设定正方向位模式插补第3轴的位数据 BP3P寄存器
1 1 1 WR7 写数据寄存器2 设定写入数据的高16位D31~D16
BP3M 设定负方向设定位模式插补第3轴设定的位数据 BP3M寄存器
# 如上表所示每个轴都有WR1WR2WR3模式寄存器123用统一地址写这些寄存器
由事先写入轴指定命令来决定写入哪一个轴的模式寄存器或者事先写入轴指定的NOP命令选择要写入的轴
# 复位后位模式插补用的位数据寄存器BP1~3PBP1~3M不能马上写发BP寄存器允许命令36h
后才能写这些寄存器发BP寄存器写入允许命令后不能写nWR2~3所以在位模式插补中
写完位数据后需要发禁止写BP寄存器的命令37h
# WR6寄存器和BP3P寄存器WR7寄存器和BP3M寄存器共享同一个寄存器使用时请注意
这点
# 复位时nWR1nWR2nWR3WR4WR5寄存器所有的位都被清除为0其它寄存器不确定
40
! 16位数据总线的读寄存器
地址
寄存器符号 寄存器名称
A2 A1 A0 0 0 0 RR0 主状态寄存器
内 容
0 0 1 XRR1 YRR1 ZRR1 URR1 XRR2 YRR2 ZRR2 URR2 XRR3 YRR3 ZRR3 URR3 RR4 RR5 RR6 RR7
0 1 0
0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
表示每一个轴的驱动和出错状态
表示插补驱动连续插补下一个数据允许圆弧插补的象限和BP插补堆栈计数器的状态
X轴状态寄存器1 位置表示COMP比较器的比较加速度和加速度变Y轴状态寄存器1 化率的状态 Z轴状态寄存器1 表示结束状态 U轴状态寄存器1
X轴状态寄存器2 表示出错原因 Y轴状态寄存器2 Z轴状态寄存器2 U轴状态寄存器2
X轴状态寄存器3 表示发生中断的原因 Y轴状态寄存器3 Z轴状态寄存器3 U轴状态寄存器3 输入寄存器1 表示X轴Y轴输入信号的状态 输入寄存器2 表示Z轴U轴输入信号的状态
读数据寄存器1 表示读出数据的低16位D15~D0
读数据寄存器2 表示读出数据的高16位D31~D16
# 每一个轴都有RR1RR2RR3每一个轴状态寄存器123用同一个地址读出这些寄存器
由事先写入轴指定的命令来决定写入哪一个轴的状态寄存器或者事先写入轴指定的NOP命令选择要读出的轴
41
4.2 8位数据总线的寄存器地址
用8位数据总线存取时
16位寄存器分为高位字节和低位字节
下表所示****L是16位寄存器****的低位字节D7~D0****H是16位寄存器****的高位字节D15~D8只有命令寄存器WR0LWR0H一定要先写高位字节WR0H后写低位字节WR0L ! 8位数据总线的写寄存器 地址
8位数据总线的读寄存器
读寄存器
写寄存器
地址
A3 A2 A1 A0 0 0 0 0 WR0L 0 0 0 1 WR0H
0 0 1 0 XWR1L,YWR1L,ZWR1L,UWR1L 0 0 1 1 XWR1H,YWR1H,ZWR1H,UWR1H 0 1 0 0 XWR2L,YWR2L,ZWR2L,UWR2L,BP1PL 0 1 0 1 XWR2H,YWR2H,ZWR2H,UWR2H,BP1PH 0 1 1 0 XWR3L,YWR3L,ZWR3L,UWR3L,BP1ML 0 1 1 1 XWR3H,YWR3H,ZWR3H,UWR3H,BP1MH 1 0 0 0 WR4L,BP2PL 1 0 0 1 WR4H,BP2PH 1 0 1 0 WR5L,BP2ML 1 0 1 1 WR5H,BP2MH 1 1 0 0 WR6L,BP3PL 1 1 0 1 WR6H,BP3PH 1 1 1 0 WR7L,BP3ML 1 1 1 1 WR7H,BP3MH
42
A3 A2 A1 A0 0 0 0 0 RR0L 0 0 0 1 RR0H
0 0 1 0 XRR1L,YRR1L,ZRR1L,URR1L 0 0 1 1 XRR1H,YRR1H,ZRR1H,URR1H 0 1 0 0 XRR2L,YRR2L,ZRR2L,URR2L 0 1 0 1 XRR2H,YRR2H,XRR2H,URR2H 0 1 1 0 XRR3L,YRR3L,ZRR3L,URR3L 0 1 1 1 XRR3H,YRR3H,ZRR3H,URR3H 1 0 0 0 RR4L 1 0 0 1 RR4H 1 0 1 0 RR5L 1 0 1 1 RR5H 1 1 0 0 RR6L 1 1 0 1 RR6H 1 1 1 0 RR7L 1 1 1 1
RR7H
4.3 WR0命令寄存器
此寄存器用于给IC内的各轴指定轴和写入命令寄存器包括指定轴的位设定命令编码的位和复位命令位在此寄存器写入轴指定和命令编码后该命令马上就执行事先一定要在WR67寄存器里写好数据然后写命令数据譬如命令可能执行是驱动速度的设定等命令写入此命令寄存器后由数据读命令从内部电路将数据设定在RR67寄存器 8位数据总线时马上执行
先写高位字节
H
后写低位字节
L
写入低位字节后针对先指定轴的命令
所有命令编码的命令处理时间需要最大250nSECCLK=16MHz时在这期间请不要写入下一个命令输出信号BUSYN在这个命令处理期间保持低电平
H L D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 WR0 RESET 0 0 0 U Z Y X 0 0 轴指定
D5~0 设定命令编码
命令编码
有关命令编码请参考5章以后的各命令说明
D11~8 指定执行命令的轴那个轴的位为1就被指定轴指定不限于1个轴可以1个轴
以上可以同时对多轴发同样的命令并且写入同样的参数但是读数据命令只对1个指定轴命令涉及到插补轴指定的位都要为0 D15 RESET 用命令复位此IC的位把这个位设定为1其它位设定为0写入命令此IC将被
复位写入命令后BUSYN信号处于低电平最大875nSECCLK=16MHz时在这期间不能对此IC的寄存器存取
8位数据总线时写入WR0H=80h后复位 写入一般命令时RESET位一定要为0 其它位一定要为0若设定为1的话IC内部电路的测试命令将被启动然后将发生意外的动作
4.4 WR1模式寄存器1
4个轴都有模式寄存器1根据事先写入轴指定的命令决定写哪个轴的模式寄存器或者事先写入轴指定的NOP命令选择要写入的轴
模式寄存器1有2种设定的位一种是在驱动中设定减速停止/立即停止的输入信号IN3~IN0的有效/无效和逻辑电平的位另一种是对每一个中断源设定允许/禁止的位
把IN3~IN0设定为有效在定量驱动或连续驱动开始驱动后指定的IN信号达到设定的逻辑电平驱动将减速停止或立即停止使用加减速驱动的话执行减速停止使用定速驱动的话执行立即停止
D7,5,3,1 INm-E 设定驱动停止输入信号INm的有效/无效的位D6,4,2,0 INm-L 设定输入信号INm的有效逻辑电平的位0
0无效 1有效 高电平停止
43
低电平停止 1
以下是中断允许/禁止位设定为1为中断允许设定为0为中断禁止
中断将发生
D8 PULSE 每一个驱动脉冲上升沿D9 PD10 PD11 PD12 P
C- C- C+ C+
驱动脉冲用正逻辑
逻辑/实位计数器的数值比COMP-寄存器的数值变大时逻辑/实位计数器的数值比COMP-寄存器的数值变小时逻辑/实位计数器的数值比COMP+寄存器的数值变小时逻辑/实位计数器的数值比COMP+寄存器的数值变大时
在定速域结束脉冲输出后中断发生 在定速域开始脉冲输出后中断发生 中断将发生
中断将发生中断将发生
中断将发生 中断将发生
D13 C-END 加减速驱动时D14 C-STA
加减速驱动时
D15 D-END 驱动结束时复位时D15~D0为0
4.5 WR2模式寄存器2
4个轴都有模式寄存器2根据写入轴指定的命令来决定写入哪个轴的模式寄存器或者预先写入轴指定的NOP命令选择要写的轴
模式寄存器2执行限制输入信号的模式设定驱动脉冲的模式设定编码器输入信号的模式设定及伺服马达用信号的逻辑电平和有效/无效的设定
D0 SLMT+ 把COMP+寄存器作为软件限制设定为有效/无效设定1为有效设定0为无效
有效后在正方向的驱动中逻辑/实位计数器的值大于COMP+寄存器的值就减速停止另外当RR2寄存器的D0SLMT+位为1即使在此模式下写入正方向的驱动命令也不会执行
D1 SLMT- 把COMP-寄存器作为软件限制设定为有效/无效设定1为有效设定0为无效有
效后在负方向的驱动中逻辑/实位计数器的值小于COMP-寄存器的值就减速停止另外当RR2寄存器的D1SLMT-位为1即使在此模式下写入负方向的驱动命令也不会执行
D2 LMTMD 设定当硬件限制nLMTPnLMTM输入信号为有效时就停止的驱动停止方式
设定为0立即停止设定为1减速停止
D3 HLMT+ 设定正方向限制输入信号nLMTP的逻辑电平0低电平有效1高电平有效 D4 HLMT- 设定负方向限制输入信号nLMTP的逻辑电平0低电平有效1高电平有效 D5 CMPSL 把COMP+/-寄存器的比较对象设定为逻辑位置计数器或实际位置计数器
0逻辑位置计数器1实位计数器
D6 PLSMD 设定驱动脉冲的输出方式0独立2脉冲方式11脉冲方式 设定为独立2脉冲方式后正方向脉冲通过输出信号nPP/PLS输出负方向脉冲通过
输出信号nPM/DIR输出
设定为1脉冲方式后正负2个方向的驱动脉冲通过输出信号nPP/PLS输出脉冲
方向信号通过输出信号nPM/DIR输出
注意1脉冲方式时有关输出脉冲信号nPLS和方向信号nDIR的时序请 参考13.213.3节
44
D7 PLS-L
设定驱动脉冲的逻辑电平0正逻辑脉冲 1
负逻辑脉冲
负逻辑脉冲
正逻辑脉冲
D8 DIR-L
设定驱动脉冲的方向输出信号逻辑电平
根据这个位数值如下表所示nPM/DIR输出信号的电平
DIR-L 正方向脉冲输出时 负方向脉冲输出时 0 Low Hi 1 Hi Low D9 PINMD 把编码器输入信号nECA/PPINnECB/PMIN设定为2相脉冲输入或上/下脉冲输入编码器输入信号对实位计数器向上/下计数
02相脉冲输入 1上/下脉冲输入 把该位设定为2相脉冲输入后按正逻辑当A相超前时向上计数当B相超前就向
下计数由2个信号的上升沿和下降沿进行向上/下计数
D11,10 PIND1,0 把该位设定为上/下脉冲输入的模式后nECA/PPIN就为向上计数输入nECB/PMIN为向下计数输入由正脉冲的上升沿计数 设定编码器2相脉冲输入的分周比
D11 D10 2相脉冲输入的分周比 0 0 1/1 0 1 1/2 1 0 1/4 1 1 无效
上/下脉冲输入不被分周
D12 ALM-L
D13 ALM-E
1高电平有效 设定nALARM输入信号的逻辑电平0低电平有效
设定伺服马达警报用输入信号nALARM的有效/无效0无效 1无效
定为有效一直监视nALARM输入信号激活状态时RR2寄存器的D14ALARM位为1在驱动中变为有效电平后驱动就立即停止
1高电平有效 D14 INP-L 设定nINPOS输入信号的逻辑电平0低电平有效
D15 INP-E 设定伺服马达定位完毕用输入信号nINPOS的有效/无效0无效 1有效
设定为有效当驱动结束后或nINPOS信号起作用时RR0主状态寄存器的nDRV位返回0
复位时D15~D0都为0
45
4.6 WR3模式寄存器3
4个轴都有模式寄存器3根据事先写入轴指定的命令来决定写入哪个轴的模式寄存器或者事先写入轴指定的NOP命令选择要写入的轴
模式寄存器3执行手动减速独立减速度S曲线减速模式外部操作模式的设定及通用输出OUT7~4的设定
D0 MANLD
D1 DSNDE
D2 SACC D4,3 EXOP1,0
把加/减速定量驱动的减速设定为自动减速或手动减速
1手动减速 0自动减速
设定为手动减速模式时事先要设定好手动减速点
把加/减速驱动减速时的减速度设定为加速度的数值或独立的减速度数值
1使用减速度的数值 0使用加速度的数值
设定为0加/减速驱动的加速度和减速度使用同一个加速度数值自动减速时一定要设定为0设定为1的话加速时使用加速度数值减速时使用减速值设定为1的话只好使用手动减速
设定直线加/减速和S曲线加/减速0直线加/减速 1S曲线加/减速S曲线加/减速时一定要设定好加/减速度的变化率
根据外部输入信号nEXPPnEXPM设定驱动操作
D4 D3 0 0 根据外部输入信号驱动操作的无效 0 1 连续脉冲驱动 1 0 定量脉冲驱动 1 1
根据外部输入信号驱动操作的无效
D7 OUTSL 在连续驱动模式时在nEXPP信号保持低电平期间连续输出正方向的驱动脉冲在nEXPM信号保持低电平期间连续输出负方向的驱动脉冲
在定量驱动模式时把nEXPP信号从高电平降到低电平后由其下降沿启动正方向的定量驱动nEXPM信号也一样启动负方向的定量驱动 选择输出信号nOUT7~4为通用输出还是为输出驱动状态 0为通用输出D11~D8的内容输出至nOUT7~4端子 1把驱动状态输出至下图所示的nOUT7~4 信号名 nOUT4/CMPP nOUT5/CMPM nOUT6/ASND nOUT7/DSND
输出内容
当逻辑/实际寄数器的值大于COMP+寄存器时输出高电平当小于时输出低电平
当逻辑/实际寄存器的值大于COMP-寄存器时输出低电平当小于时输出高电平
驱动命令正在执行时并处于加速状态输出高电平 驱动命令正在执行时并处于减速状态输出高电平
D11~8 OUTm 设定把输出信号nOUT7~4作为通用输出使用时的数值
1高电平输出 0低电平输出
请一直在D15~12
65位上设定为0
复位时D15~D0都为0
46
4.7 WR4输出寄存器
此寄存器用于设定通用输出nOUT3~04个轴的输出信号共享1个16位寄存器寄存器可以作为真正的16位通用输出寄存器使用任何位为0时输出低电平为1时输出高电平
复位时D15~D0都为0nOUT3~0输出信号都为低电平
4.8 WR5插补模式寄存器
设定运行插补驱动的轴指定
固定线速度模式插补
步进插补模式和插补时中断
D1,0 AX11,10 指定运行插补驱动的第1轴
轴 X Y Z U
编码
2进制0 0 0 1 1 0 1 1
主轴下图所示轴编码 第1轴
X
第2轴Y
第3轴Z的例子
D5 D4 D3 D2 D1 D0 1 0 0 1 0 0
指定为第1轴主轴的轴产生启动插补运算的基本脉冲所以要设定在定速/加/减速驱动中所需要的速度参数
D3,2 AX21,20 D5,4 AX31,30
D9,8 LSPD1,0
用上表所示的编码指定运行插补驱动的第2轴 用上表所示的编码指定运行3轴插补驱动的第3轴 2轴插补驱动时设定任选的数值设定插补驱动的固定线速度模式D9 D8 0 0 1 1
0 1 0 1
操作模式 线速恒定无效 2轴线速恒定 不能设定
3轴线速恒定
用主轴R
2轴线速恒定模式时用主轴R的1.414倍的数值设定第2轴的范围R 3轴线速恒定模式时用主轴R的1.414倍的数值设定第2轴的范围R的1.732倍的数值设定第3轴的范围R
47
D11 EXPLS D12 CMPLS D14 CIINT D15 BPINT
设定为1 设定为1
为根据外部信号EXPLSN步进插补驱动的模式
为根据命令执行步进插补驱动的模式
00
禁止 禁止
1允许 1允许
设定连续插补时中断的允许/禁止 设定位模式插补时中断的允许/禁止复位时D15~D0都为0
4.9 WR67写数据寄存器12
WR7寄存器写
设定写数据命令所要数据的寄存器WR6寄存器写入数据低16位WD15~WD0
入数据高16位WD31~WD16
写数据命令首先在此数据寄存器写入根据每个命令指定的数据长度的数据
写数据寄存器WR6,78位数据总线时WR6LWR6HWR7LWR7H无论先后写入此后
命令码写入命令寄存器后写数据寄存器的内容就存入各个寄存器写入数据的数值都是二进制此外负数以2进制补码设定每一个命令的数据一定要用指定的数据长度设定比如圆弧插补的终点可用的算术数据范围为 -8,388,608~+8,388,607的带符号24位其数据长度是4字节所以请用带符号的32位设定
复位时
WR6WR7寄存器的内容不固定
4.10 RR0主状态寄存器
表示每一个轴的驱动出错状态此外表示插补驱动连续插补下一个数据允许圆弧插补的象限BP插补的堆栈计数器
D3~0 n-DRV 表示每一个轴的驱动状态该位为1时表示此轴正在输出驱动脉冲为0时表示此
轴已经结束驱动
伺服马达定位完毕所用的输入信号nINPOS有效时输出驱动脉冲后nINPOS信号激活就返回0
D7~4 n-ERR 表示每一个轴的所有出错状态在每一个轴RR2寄存器的出错位D5~D0及RR1寄
存器的错误结束位D15~D12中的任何位为1该位就为1
D8 I-DRV 表示插补驱动状态该位为1时表示正在输出插补驱动脉冲
D9 CNEXT 表示可以写入连续插补的下一个数据在连续插补驱动中该位为1后可以写入下一
个节点的参数及插补命令
D12~10ZONEm 在圆弧插补驱动中表示正在驱动所在的象限
48
D12 D11 D10 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
D14,13 BPSC1,0
当前驱动所在的象限
0 1 2 3 4 5 6 7
的数值
SC
在位模式插补驱动中表示堆栈计数器SC
D14 D13 堆栈计数器的值0 0 1 1
0 1 0 1
0 1 2 3
位模式插补的驱动中SC=3的时候表示位数据堆栈不能再补充SC=2时
可以给每一个轴补充16位SC=1时可以给每一个轴补充16位2次SC=0时表示输出了所有的位数据驱动结束
4.11 RR1状态寄存器1
4个轴都有状态寄存器1根据事先写入的命令决定读出哪个轴的状态寄存器或者事先写入轴指定的NOP命令选择要读出的轴
状态寄存器1表示逻辑/实位计数器和COMP寄存器的大小比较加/减速驱动的加速状态S曲线加/减速的加减速度的变化率状态此外表示驱动结束状态
D0 CMP+
表示逻辑/实位计数器和COMP+寄存器的大小关系1
逻辑/实位计数器
COMP+寄存器 COMP+寄存器
0逻辑/实位计数器
D1 CMP-
表示逻辑/实位计数器和COMP-寄存器的大小关系 1
逻辑/实位计数器
COMP-寄存器 COMP-寄存器
为1为1为1
为1为1为1
49
0逻辑/实位计数器
D2 ASND D3 CNST D4 DSND
在加/减速驱动中加速时在加/减速驱动中定速时在加/减速驱动中减速时
D5 AASND 在S曲线加/减速驱动中D6 ACNST 在S曲线加/减速驱动中D7 ADSND 在S曲线加/减速驱动中
加速度/减速度增加时加速度/减速度不变时加速度/减速度减少时
D11~8 IN3~0 D12 D13 D14 D5
LMT+ LMT-
根据外部减速停止信号nIN3~0根据正方向限制信号nLMPT根据负方向限制信号
驱动停止时为1 驱动停止时
为1
nLMTM驱动停止时为1
ALARM 根据伺服马达警报信号nALARM驱动停止时EMG
根据紧急停止信号EMGN
驱动停止时
为1
为1
! 关于驱动结束状态位
驱动结束状态位保持驱动结束原因的信息下述的原因会结束定量驱动或连续驱动将结束
在定量驱动中输出所有的输出脉冲时 减速停止或立即停止命令被写入时 设定成有效的软件限制激活时
在定量/连续驱动中设定成有效的减速停止外部信号 限制输入信号nLMTPnLMTM激活时 设定成有效的nLALRM信号激活时 EMGN信号为低电平时
nIN3210激活时
因素 高位CPU可以管理它们 因素 驱动结束后状态都不变可以在RR2寄存器确认它
直至驱动结束不一定保持激活状态 ~因素
驱动结束状态位在结束驱动的~因素的位为1然后信号变为不激活也保持位信息
在驱动结束状态位里出错因素的D15~D12的位为1后RR0主状态寄存器的n-ERR位为1由于下一个驱动命令的写入驱动结束状态位自动清除结束状态清除命令25h也可以清除
4.12 RR2状态寄存器2
4个轴都有状态寄存器2根据事先写入的命令决定读出哪个轴的状态寄存器或者事先写入轴指定的NOP命令选择要读出的轴状态寄存器2表示出错信息在每个位为1时表示此位指示的错误发生RR2寄存器D5~D0的任何位为1后RR0主状态寄存器的n-ERR位为1
D0 SLMT+ 设定COMP+寄存器作为有效软件限制后在正方向驱动中逻辑/实位计数器大于COMP+
寄存器值 D1 SLMT- 设定COMP-寄存器作为有效软件限制后在负方向驱动中逻辑/实位计数器小于COMP-寄存器值 D2 HLMT+ 正方向限制信号
nLMTP
处于有效电平 处于有效电平
D3 HLMT- 负方向限制信号nLMTP
D4 ALARM 设定成有效的伺服马达报警信号nALARM处于有效电平 D5 EMG
紧急停止信号EMGN
处于低电平
在驱动中顺方向的硬件/软件限制启动后驱动减速停止或立即停止停止后的同方向驱动命令不被执行在逆方向驱动时SLMT+/-位达到那些条件也不变为1
50
4.13 RR3状态寄存器3
4个轴都有状态寄存器3根据事先写入的命令决定读出哪个轴的状态寄存器或者事先写入轴指定的NOP命令选择要读出的轴状态寄存器3表示中断源中断发生后引发中断的位就为1
为了产生中断要在WR1寄存器中设定中断允许
D0 PULSE 驱动脉冲上升时D1 PD2 PD3 PD4 P
C- C- C+ C+
驱动脉冲以正逻辑方式
逻辑/实位计数器的值大于COMP-寄存器的值时 逻辑/实位计数器的值小于COMP+寄存器的值时 逻辑/实位计数器的值小于COMP+寄存器的值时 逻辑/实位计数器的值大于COMP+寄存器的值时
在定速域结束脉冲输出时 在定速域开始脉冲输出时
D5 C-END 加/减速驱动时D6 C-STA
加/减速驱动时
D7 D-END 驱动结束
某个中断源引发中断后此寄存器的位就为1中断输出信号INTN为低电平CPU读出发生中断轴的这个RR3寄存器后RR3寄存器的位被清除为0中断输出信号返回无效电平8位数据总线时RR3L寄存器的读出后被清除
4.14 RR4,5输入寄存器12
输入寄存器12表示每一个轴的输入信号状态输入信号在低电平时表示0高电平时表示1不使用这些输入信号的功能时可以作为通用输入信号使用
位名 n-IN0 n-IN1 n-IN2 n-IN3
输入信号 nIN0 nIN1 nIN2 nIN3
位名 n-EX+ n-EX- n-INP n-ALM
输入信号 nEXPP nEXPM nINPOS nALARM
4.15 RR6,7读数据寄存器12
由数据读出命令将内部寄存器的数据设定在这些寄存器低16位RD15~RD0在RR6寄存器高16位RD31~RD16在RR7寄存器
51
数据都是二进制负数是2的补码
5 命令列表
! 数据写命令 编码 00h工 01工 02工 03期 04工 05工 06工
07工 08工 09工 0A工 0B工 0C工 0D工 0F工
参数符号 R工 范围设定
K工 加/减速度的变化率设定
A工 加速度设定
D工 减速度设定
SV工 初始速度
V工 驱动速度设定
输出脉冲数/插补终点设定 P工 手动减速点设定 DP工 圆弧中心点设定 C工 逻辑位置计数器设定 LP工 实位计数器设定 EP工 COMP+寄存器设定 CP工 COMP-寄存器设定 CM工 加速计数器偏移设定 AO工 NOP轴切换用
命令
数据范围 数据长度
8,000,000倍率1~16,000倍率500 4字节 1~65,535工 2工 1~8,000工 2工 1~8,000工 2工 1~8,000工 2工 1~8,000工 2工 输出脉冲数0~268,435,455 4工
插补终点:-8,388,608~+8,388,607
4工 0~268,435,455
-8,388,608~+8,388,607 4工 -2,147,483,648~+2,147,483,647工 4工 -2,147,483,648~+2,147,483,647工 4工 -2,147,483,648~+2,147,483,647工 4工 -2,147,483,648~+2,147,483,647工 4工 0~65,535 4工
2工
注意 数据范围有些达不到上表的数据长度的参数但是写入数据时一定要写入指定的数据长度
52
! 数据读出命令 编码
命令
参数符号 LP工 EP工 CV工 CA工
数据范围
-2,147,483,648~+2,147,483,647工 -2,147,483,648~+2,147,483,647 1~8,000工 1~8,000工
数据长 4字节 4工 2工 2工
10h工 逻辑位置计数器读出 11工 实位计数器读出 12工 当前驱动速度读出 13工 当前加减速度读出
! 驱动命令 编码
命令
插补命令
命令
编码
20h工 正方向定量驱动 21工 负方向定量驱动 22工 正方向连续驱动 23工 负方向连续驱动 24工 暂停驱动
25工 解除暂停驱动状态/清除结束状态 26工 驱动减速停止 27工 驱动立即停止
30h工 2轴直线插补驱动 31工 3轴直线插补驱动 32工 CW圆弧插补驱动 33工 CCW圆弧插补驱动 34工 2轴位模式插补驱动 35工 3轴位模式插补驱动 36工 BP寄存器写入允许 (注1) 37工 BP禁止寄存器写入不允许 38工 BP数据堆栈 39工 BP数据清除
3A工 单步插补 3B工 减速有效 3C工 减速无效 3D工 插补中断清除 注1 BP
位模式的简称
注意请不要在命令寄存器写入除上表之外的命令码发生意外的动作
IC内部电路的试验命令可能被启动也许会
53
6 数据写入命令
数据写入命令是带有写入数据的命令用于设定驱动参数诸如加速度驱动速度输出脉冲数等如果指定多个轴可以同时把同样的数据设定在指定的所有轴
指定的数据长度是2字节时数据写入命令在WR6寄存器设定数据指定的数据长度是4字节时数据写入命令在WR67寄存器设定数据此后在WR0寄存器写入轴指定和命令编码就执行此命令
设定在WR67写数据寄存器的数值都是2进制负数为2的补码每一个数据一定要是设定数据范围内的数值设定范围以外的数值不能进行正确的驱动
注意事项
# 数据写入命令的命令处理时间需要最大250nSECCLK=16MHz时在命令处理中请不要写入
下一个数据命令
# 复位时除加速计数器偏置AO外其它所有的运行参数都不固定在驱动前驱动所需的
参数要设定适当的数值
6.1 范围设定
命令 范围设定
符号 R
数据范围
8,000,000倍率=1~16,000倍率=500
数据长字节
4
命令编码 00h
范围是决定速度加/减速度加/减速度的变化率的倍率参数假设把范围数值作为R倍率是下述的算式
倍率=
8,000,000
R
驱动速度初始速度加/减速度等参数的设定范围在1~8,000若设定为8,000以上的数值的话要提高倍率提高倍率后可以高速驱动但是速度分辨率变粗请在使用的速度范围内设定最小的数值比如如果需要40KPPS的速度在速度范围内1~8,000倍率中最好是5即设定R为1,600,000
否则速度会变乱 在驱动中请不要变更范围R
6.2 加/减速度的变化率设定
命令
加/减速度的变化率设定
符号
数据范围
数据长
字节
命令编码 01h
K 1~65,535 2 加/减速度的变化率设定值是决定S曲线加/减速的加速度及减速度在单位时间内增加/减少率的参
数把加/减速度的变化率的设定值作为K的话加/减速度的变化率由下述算式表示
2
加减速度的变化率PPS/SEC
62.5×1068,000,000=×
KR
倍率
54
加/减速度的变化率设定值K的设定范围是1~65,535所以加/减速度的变化率范围如下所示
倍率1 954PPS/SEC2 ~ 62.5106PPS/SEC2 倍率500 477103PPS/SEC2 ~ 31.25109PPS/SEC2
注1Jerk的意思是指加速度/减速度在单位时间内增加/减少率Jerk不仅是加速度的增加率也是加
速度的减少率Jerk还包含减速度的增加率和减速度的减少率
6.3 加速度设定
命令 加速度设定
参数符号
数据范围
数据长
字节
命令编码 02h
A 1~8,000 2 复位后的常用模式中它是作为直线加减速驱动中直线加速及减速的参数在S曲线加/减速驱动中加速度及减速度线性地从0增加至加速度的设定值请参考图2.9加速度设定值为A加速度是下述算式
加速度设定值A的设定范围是1~8,000所以实际的加速度范围如下 倍率=1 125PPS/SEC ~ 1106PPS/SEC 倍率=500 62.5103PPS/SEC ~ 500106PPS/SEC
6.4 减速度设定
命令 减速度设定
符号
数据范围
数据长
字节
命令编码 03h
D 1~8,000 2 在加速度/减速度的分别设定模式WR3寄存器D1=1中它是直线加/减速度驱动在减速时的减速度参数
在这个模式的S曲线加/减速驱动中减速度直线从0增加至减速度的设定值把减速度设定值作为D减速度是下述算式=
=
设定为加速度/减速度分别设定的模式WR3寄存器D1=1后不能运行加/减速度的自动减速用手动进行减速
6.5 初始速度设定
命令 初始速度设定
参数符号
数据范围
数据长
字节 2 命令编码 04h
SV 1~8,000 它是加/减速驱动的加速开始时的速度和减速结束时的速度初始速度设定数值为SV的话初始速度是下述算式
55
初始速度PPS=SV×8,000,000
R倍率 使用步进马达时设定自启动频率内的数值使用伺服马达时设定太低的数值的话在定量脉冲驱动的减速结束时会出现以初始速度的拖曳驱动必须取(加速度)以上的数值比如加/减速度=125,000PPS/SEC时设定(125,000)=354PPS以上的数值 6.6 驱动速度设定 命令 驱动速度设定 参数符号 数据范围 数据长字节 命令编码 05h V 1~8,000 2 它是加/减速驱动中达到定速区域的速度定速驱动从该速度开始运行把这个驱动速度设定在初始速度以下的话不运行加/减速驱动开始就运行定速驱动在编码器的Z相搜寻等中采用低速驱动当检出Z相后就立即停止这时驱动速度要设定在初始速度以下 驱动速度PPS=V×8,000,000R倍率
在驱动中可以随便变更驱动速度在加/减速度驱动的定速区域中如果重新设定驱动速度就开始加速或减速到重新设定的速度达到重新设定的速度后开始运行定速驱动 注意事项
# S曲线加/减速的定量脉冲驱动在驱动中不能变更驱动速度此外S曲线加/减速的连续驱动如果在
加速中减速中变更速度就不能运行正确的S曲线所以请在定速区域内变更 # 运行直线加/减速的定量脉冲驱动时在驱动中如果经常变更驱动速度则在输出脉冲结束的减速时
出现以初始速度拖曳驱动的可能性较大
6.7 输出脉冲数/插补终点设定
命令
输出脉冲数/插补终点设定
参数符号
P
输出脉冲数插补终点
数据范围 0~268,435,455 -8,388,608~+8,388,607
数据长字节
4
命令编码 06h
它是定量驱动的输出脉冲总数运行直线插补圆弧插补时设定每一个轴的终点终点坐标设定用24位对当前位置的带符号相对数值输出脉冲数不带符号插补终点带符号输出脉冲数插补终点也用4字节长设定在驱动中可以变更输出脉冲数
6.8 手动减速点设定
命令 手动减速点设定
参数符号
数据范围
数据长
字节 4
命令编码 07h
DP 0~268,435,455
设定在手动减速模式的加减速定量驱动上的减速点
56
在手动减速模式时设定WR3寄存器的D0位为1减速点设定如下
化费在减速上的脉冲数 手动减速点 输出脉冲数
6.9 圆弧中心点设定
命令
圆弧中心点设定
参数符号
数据范围
数据长字节
4 命令编码 08h
C -8,388,608~+8,388,607
设定圆弧插补驱动的中心点以当前位置的带符号相对值设定中心坐标
6.10 逻辑位置计数器设定
命令编码 09h
命令
逻辑位置计数器设定
参数符号
数据范围
数据长字节
LP -2,147,483,648~+2,147,483,647 4 设定逻辑位置计数器的数值
逻辑位置计数器向上/下计数+方向/-方向的驱动输出脉冲
逻辑位置计数器任何时候都能写任何时候都能用读出命令读
6.11 实位计数器设定
命令编码 0Ah
命令
实位计数器设定
参数符号
数据范围
数据长字节
4 -2,147,483,648~+2,147,483,647 设定实位计数器的数值
实位计数器向上/下计数编码器输入脉冲
实位计数器任何时候都能写任何时候都能用读出命令读
6.12 COMP+寄存器设定
命令编码 0Bh
命令
COMP+寄存器设定
=
参数符号
数据范围
数据长字节
4
CP -2,147,483,648~+2,147,483,647 设定COMP+寄存器的数值
COMP+寄存器用作与逻辑/实位计数器比较的寄存器比较结果存在RR1寄存器的D0或以nOUT4/CMPP信号输出也可以作为正方向的软件限位 COMP+寄存器任何时候都能写
6.13 COMP-寄存器设定
命令编码 0Ch
命令
COMP-寄存器设定
参数符号
数据范围
数据长字节
4
CM -2,147,483,648~+2,147,483,647 设定COMP-寄存器的数值
COMP-寄存器用作与逻辑/实位计数器比较的寄存器比较结果存在RR1寄存器的D1或以nOUT5/CMPM信号输出可以作为负方向的软件限位 COMP-寄存器任何时候都能写
57
6.14 加速计数器偏移设定加速计数器偏移设定
命令编码 0Dh
命令
加速计数器偏移设定
参数符号
数据范围
数据长字节
2
AO 0~65,535 设定加速计数器偏置值
复位时加速计数器的偏置值为8
6.15 NOP
命令编码 0Fh
NOP
轴切换用
命令 轴切换用
参数符号
数据范围
数据长字节
不被执行任何命令用于选择任一个轴的WR1~3寄存器RR1~3寄存器的轴切换
58
7 读数据命令
读数据命令是把每个轴的寄存器内容读出至读数据寄存器的命令在WR0寄存器写入轴指定及读数据命令编码后指定的数据就设定在RR67寄存器CPU读RR67寄存器就可以得到指定的数据读出的数据都是2进制格式负数值以2的补码表示
注意事项
请在命令处理结束后读出RR6RR7# 读命令的命令处理时间最多需要250nSECCLK=16MHz
寄存器
# 轴指定一定要只指定1个轴指定2个轴以上的话将根据XYZU的顺序读出各轴的数据
7.1 读逻辑位置计数器
命令
逻辑位置计数器读出
参数符号
数据范围
数据长字节
4
命令编码 10h
LP -2,147,483,648~+2,147,483,647
逻辑位置计数器的当前数值被设定在RR67读数据寄存器
7.2 读实位计数器
命令
实位计数器读出
参数符号
数据范围
数据长字节
4
命令编码 11h
EP -2,147,483,648~+2,147,483,647 实位计数器的当前数值被设定在RR67读出数据寄存器
7.3 读当前驱动速度
命令
当前驱动速度读出
参数符号
数据范围
数据长字节
2
命令编码 12h
CV 1~8,000 在驱动中的当前驱动速度被设定在RR67读出数据寄存器驱动停止时被设定为0数据的单位和驱动设定数值V一样
7.4 读当前加/减速度减速度
命令
当前加减速度读出
参数符号
数据范围
数据长字节
2
命令编码 13h
CA 1~8,000 在驱动中的当前加速度或减速度被设定在RR67读出数据寄存器驱动停止时读出数据不固定
数据的单位和加速度设定数值A一样
59
8 驱动命令
驱动命令是输出脉冲驱动每个轴的命令及其它相关的命令在WR0命令寄存器写入了轴指定和命令编码马上就能执行如果指定多个轴可以同时发一样的命令主状态寄存器RR0的每个轴n-DRV位为1表示正在驱动中驱动结束后n-DRV位返回为0
当允许使用伺服马达驱动器用的nINPOS信号时等到nINPOS输入信号有效主状态寄存器RR0的n-DRV位返回为0
注意事项
# 驱动命令的命令处理时间最多需要250nSECCLK=16MHz
请在命令处理结束后写入下一个命令
8.1 正方向定量驱动
命令
正方向定量驱动
命令编码 20h
设定的输出脉冲数以nPP输出信号输出在驱动中每当输出1个驱动脉冲逻辑位置计数器将向上计1写入驱动命令之前一定要正确地设定速度曲线所需的参数和输出脉冲数
定速驱动 直线加减速驱动 S曲线加减速驱动
范围R Jerkk 加速度A 初始速度SV 驱动速度V 输出脉冲P $ $ $
$
$ $
$ $ $
$ $ $
$ $ $
8.2 负方向定量驱动
命令
负方向定量驱动
命令编码 21h
设定的输出脉冲数以nPM输出信号输出在驱动中每当输出1个驱动脉冲逻辑位置计数器将向下计1写入驱动命令之前一定要正确地设定速度曲线所需的参数和输出脉冲数
8.3 正方向连续驱动
命令
正方向连续驱动
连续以nPP输出信号输出脉冲
命令编码 22h
直至停止命令或指定的外部信号激活为止在驱动中每当输出1个驱动脉冲写入驱动命令之前
逻辑位置计数器将向上计1
一定要正确地设定速度曲线所需的参数及输出脉冲数
60
8.4 负方向连续驱动
命令
负方向连续驱动
命令编码 23h
直至停止命令或指定的外部信号激活为止连续以nPM输出信号输出脉冲在驱动中每当输出1个驱动脉冲逻辑位置计数器将向下计1写入驱动命令之前一定要正确地设定速度曲线所需的参数及输出脉冲数
8.5 驱动开始暂停
命令
驱动开始暂停
命令编码 24h
暂时停止驱动的开始同时启动多轴驱动时使用此功能先把本命令发至要同时启动的各轴后对各个的轴写驱动命令然后同时对那些轴写驱动开始释放命令25h各轴就同时开始驱动
8.6 解除暂停驱动开始状态/结束状态清除
命令
驱动开始释放/结束状态清除
用于解除暂停驱动开始的状态
命令编码 25h
驱动开始释放命令24h
清除RR1寄存器的驱动结束状态位D15~8
8.7 驱动减速停止
命令
驱动减速停止
命令编码 26h
在驱动脉冲输出过程中此命令作出减速停止驱动速度比初始速度慢的时候也可以用本命令立即停止在插补驱动中对主轴写入本命令或立即停止命令插补驱动就停止驱动停止时写入命令也不处理
8.8 驱动立即停止
命令
驱动立即停止
命令编码 27h
立即停止正在驱动中的脉冲输出在加/减速驱动中也立即停止驱动停止时写入命令也不处理
61
9 插补命令
插补命令是有关2轴/3轴直线插补CW/CCW圆弧插补2轴/3轴位模式插补及插补驱动的命令插补命令不需要WR0命令寄存器的D11~8位的轴指定请设定为0
进行任何一个插补在插补驱动之前必须具备2个条件
指定进行插补的轴设定WR5寄存器的D5~D0 对主轴设定指定的速度参数
在进行插补驱动中RR0主状态寄存器的D8I-DRV位为1驱动结束后返回至0在进行插补驱动中插补轴的运行位n-DRV为1 注意事项
请在命令处理结束后写入下一个命令
# 插补命令的命令处理时间最多要250nSECCLK=16MHz时
9.1 2轴直线插补驱动
命令编码 30h
命令
2轴直线插补驱动
从当前坐标至终点坐标进行2轴直线插补驱动前对运行插补的2个轴都要用相对数值对终点设定
输出脉冲P
9.2 3轴直线插补驱动
命令编码 31h
命令
3轴直线插补驱动
从当前坐标至终点坐标进行3轴直线插补驱动前对运行插补的3个轴都要用相对数值对终点设定
输出脉冲P
9.3 CW圆弧插补驱动
命令编码 32h
命令
CW圆弧插补驱动
绕着指定的中点坐标从当前坐标至终点坐标顺时针方向进行圆弧插补驱动前对运行插补的2个轴都要把圆弧中心点C和终点与当前位置的相对数值设定成输出脉冲P终点坐标设定为00就可画出真圆弧
9.4 CCW圆弧插补驱动
命令编码 33h
命令
CCW圆弧插补驱动
绕着指定的中点坐标从当前坐标至终点坐标逆时针方向进行圆弧插补驱动前对运行插补的2个轴都要把圆弧中心点C和终点与当前位置的相对数值设定成输出脉冲P终点坐标设定为0
就可运行真圆弧 0
62
9.5 2轴位模式插补驱动
命令编码 34h
命令
2轴位模式插补驱动
进行2轴位模式插补驱动前设定2个插补轴的正方向/负方向的位数据每个轴在每个方向能设定的位数据最多为163 = 48位数据超过48位则在驱动中补充超过部分
9.6 3轴位模式插补驱动
命令编码 35h
命令
3轴位模式插补驱动
进行3轴位模式插补驱动前设定3个插补轴的正方向/负方向的位数据每个轴在每个方向能设定的位数据最多为163 = 48位数据超过48位则在驱动中补充超过部分
9.7 BP寄存器写入允许寄存器写入允许
命令编码 36h
命令
BP寄存器写入允许
BP3P/M
发出此命令后
就不能写
允许写入位模式插补的位模式数据寄存器BP1P/MBP2P/MnWR2~nWR5寄存器复位时不能对位模式寄存器写数据
9.8 BP寄存器写入不允许
命令编码 37h
命令
BP寄存器写入不允许
BP1P/M
BP2P/M
BP3P/M
此命令发出后就能写
不允许写入位模式插补的位模式数据寄存器nWR2~nWR5寄存器
9.9 BP数据堆栈
命令编码 38h
BP数据堆栈
命令
把写入寄存器BP1P/MBP2P/MBP3P/M的位模式数据移动至内部寄存器存放发出BP数据堆栈命令后堆栈计数器SC就增加1堆栈计数器SC计到3后就不能发此命令
9.10 BP清除
命令编码 39h
BP清除
SC为0
63
命令
清除在内部寄存器存积的所有位模式数据,堆栈计数器
9.11 插补单步
命令编码 3Ah
插补单步
命令
在插补驱动时步进传送每一个脉冲WR5寄存器的D12位置1用命令设定为插补步进模式发插补命令后就执行单步插补
9.12 减速有效
命令编码 3Bh
减速有效
命令
允许在加/减速插补驱动中使用自动或手动减速运行单个加/减速插补驱动时驱动前一定要发此命令连续插补驱动时先把减速设定为无效然后才开始插补驱动在写入最终插补节点的插补命令前写入此命令允许减速
复位后处于禁止减速状态此命令使之进入允许减速状态直到写入禁止命令3C或复位为止减速有效/无效模式只用于插补驱动每个轴单独驱动时自动减速或手动减速一直保持有效状态
9.13 禁止减速
命令编码 3Ch
减速无效
命令
禁止在加/减速插补驱动中使用自动或手动减速
9.14 插补中断清除
命令编码 3Dh
插补中断清除
命令
清除在位模式插补或连续插补中发生的中断在位模式插补中置WR5寄存器的D15位为1当堆栈计数器SC从2变为1时中断发生此外在连线插补中置WR5寄存器的D14位为1则在允许写入下一个插补节点的数据及插补驱动命令时就发生中断
64
10 I/O信号连接例子
10.1 与68000CPU的连接例子
10.2 与Z80CPU连接的例子
65
10.3 运动系统构成例子
运动系统的1个轴部分的例子如下图所示
4个轴可有同样的结构
10.4 驱动脉冲输出电路
! 差动线驱动输出
! 集电极开路TTL输出
考虑到EMC驱动脉冲输出信号推荐使用双绞屏蔽线
66
10.5 限位等输入信号的连接例子
除了数据信号D15~D0以外此IC的所有输入信号都是在IC内部用高阻上拉的史密特触发器输入如下图所示
限位信号等信号容易受干扰所以只用光偶不能吸收噪音如下图所示用CR积分型的滤波器有更好的效果
此电路的响应时间有0.2~0.4mSEC左右
10.6 编码输入信号的连接例子
下图所示是MCX314输入电路的例子它接收由高速光偶差动线驱动输出的编码器信号
UP/DOWN脉冲输入模式使用时应注意
用UP/DOWN脉冲输入模式使用编码器输入信号nECA/PPINnECB/PMIN时如下图所示把UP脉冲和DOWN脉冲由SCLK同步输入直接输入的话将计错数据因此UPDOWN脉冲的Hi电平脉冲宽度及Low电平脉冲宽度都要大于SCLK的同步时间CLK=16MHz输入时SCLK=1/2CLK所
以是125nSEC
使用A/B 2相脉冲输入模式时可以直接输入
67
11 控制程序的例子
用C语言编写的MCX314控制程序的例子编译器采用Baudland公司的Turbo C++4.0基于DOS-5个人电脑ISA总线上的电路
#include //-----mcx314寄存器地址定义 #define adr 0×2a0 //基本地址 #define wr0 0×0 //命令寄存器 #define wr1 0×2 //模式寄存器1 #define wr2 0×4 //模式寄存器2 #define wr3 0×6 //模式寄存器3 #define wr4 0×8 //输出寄存器 #define wr5 0×a //插补模式寄存器 #define wr6 0×c //低位写入数据寄存器 #define wr7 0×e //高位写入数据寄存器 #define rr0 0×0 //主状态寄存器 #define rr1 0×2 //状态寄存器1 #define rr2 0×4 //状态寄存器2 #define rr3 0×6 //状态寄存器3 #define rr4 0×8 //输入寄存器1 #define rr5 0×a //输入寄存器2 #define rr6 0×c //低位读出数据寄存器 #define rr7 0×e //高位读出数据寄存器 #define bp1p 0×4 //BP第1轴+方向数据寄存器 #define bp1m 0×6 //BP第1轴-方向数据寄存器 #define bp2p 0×8 //BP第2轴+方向数据寄存器 #define bp2m 0×a //BP第2轴-方向数据寄存器 #define bp3p 0×c //BP第3轴+方向数据寄存器 #define bp3m 0×e //BP第3轴-方向数据寄存器 // wreg1(轴指定,数据)------------ 写入寄存器1设定 void wreg1(int axis, int wdata) outpw(adr+wr0,(axis<<8) + 0×f); //轴指定 outpw(adr+wr1, wdata); // wreg2(轴指定,数据)------------- 写入寄存器2设定 void wreg2(int axis, int wdata) outpw(adr+wr0,(axis<<8) + 0×f); //轴指定 outpw(adr+wr2,wdata); } // wreg3(轴指定,数据)------------ 写入寄存器3设定 void wreg3(int axis, int wdata) outpw(adr+wr0,(axis<<8) + 0×f); outpw(adr+wr3, wdata); //轴指定 // command(轴指定,命令编码)----- 命令写入 void command(int axis, int cmd) outpw(adr+wr0,(axis<<8) + cmd); // range(轴指定,数据)---------------- 范围R设定 void range(int axis, long wdata) outpw(adr+wr7,(wdata>>16)&0xffff); outpw(adr+wr6,wdata & 0xffff); outpw(adr+wr0,(axis<<8)+ 0x00); // acac(void acac(int axis, int wdata) 轴指定,数据)---------------- 变化率(K)设定 outpw(adr+wr6,wdata); outpw(adr+wr0,(axis<<8) + 0x01); // acc(轴指定,数据)------------------ 加/减速度(A)设定 void acc(int axis, int wdata) outpw(adr+wr6,wdata); outpw(adr+wr0,(axis<<8) + 0x02); 68 // dec(轴指定,数据) ------------------- void dec(int axis, int wdata) outpw(adr+wr6, wdata); outpw(adr+wr0,(axis<<8)+ 0×03); } // startv(轴指定,数据) ----------------- void startv(int axis, int wdata) outpw(adr+wr6,wdata); outpw(adr+wr0.(axis<<8)+ 0×04); // speed(轴指定,数据) ----------------- void speed(int axis, int wdata) outpw(adr+wr6. wdata); outpw(adr+wr0.(axis<<8)+ 0×05); // pulse(轴指定,数据) ----------------- void pulse(int axis, long wdata) outpw(adr+wr7,(wdata>>16)& 0×ffff); outpw(adr+wr6,wdata & 0×ffff); outpw(adr+wr0,(axis<<8) + 0×06); // decp(轴指定,数据) ----------------- void decp(int axis, long wdata) outpw(adr+wr7,(wdata>>16)& 0×ffff); outpw(adr+wr6,wdata & 0×ffff); outpw(adr+wr0,(axis<<8) + 0×07); // center(轴指定,数据) ---------------- void center(int axis, long wdata) outpw(adr+wr7,(wdata>>16)& 0×ffff); outpw(adr+wr6,wdata & 0×ffff); outpw(adr+wr0,(axis<<8) + 0×08); // lp(轴指定,数据) -------------------- void lp(int axis, long wdata) outpw(adr+wr7,(wdata>>16)& 0×ffff); outpw(adr+wr6,wdata & 0xffff); outpw(adr+wr0,(axis<<8) + 0x09); } // ep(轴指定,数据) ------------------ void ep(int axis, long wdata) outpw(adr+wr7,(wdata>>16)&0xffff); outpw(adr+wr6,wdata & 0xffff); outpw(adr+wr0,(axis<<8) + 0x0a); // compp(void compp(int axis, long wdata) 轴指定,数据) ------------ outpw(adr+wr7,(wdata>>16)&0xffff); outpw(adr+wr6,wdata & 0xffff); outpw(adr+wr0,(axis<<8) + 0x0b); // compm(轴指定,数据) ----------- void compm(int axis, long wdata) outpw(adr+wr7,(wdata>>16)&0xffff); outpw(adr+wr6,wdata & 0xffff); outpw(adr+wr0,(axis<<8) + 0x0c); // accofst(轴指定,数据) ----------- 减速度D 设定 初始速度SV设定 驱动速度V设定 输出脉冲数/终点P设定 手动减速点DP设定 圆弧中心点C设定 逻辑位置计数器(LP)设定 逻辑位置计数器(EP)设定 COMP + (CP) 设定 COMP - (CM) 设定 加速计数器偏移(AO)设定 void accofst(int axis, long wdata) { outpw(adr+wr7,(wdata>>16)& 0xffff); outpw(adr+wr6,wdata & 0xffff); outpw(adr+wr0,(axis<<8) + 0x0d); } // readlp(轴指定)--------------------- long readlp(int axis) { long a; long d6; long d7; outpw(adr+wr0,(axis<<8) + 0x10); d6 = inpw(adr+rr6);d7 = inpw(adr+rr7); a = d6 + (d7<<16); return(a); } 逻辑位置计数器数值(LP)读出 compp(0x4, 10,000); compm(0x4,- 100); } // Z: –100 ~ +10,000 逻辑位置计数器数值(EP)读出 // readep(轴指定)-------------------- //*****************************<<主要>>********** void main(void) { int count; outpw(adr+wr0, 0x8,000); //软件复位 for(count = 0; count < 2; ++count); //------------全轴模式设定------------ command(0xf, 0xf); //模式寄存器100000000 00000000 outpw(adr+wr1, 0x0000); //模式寄存器200000000 00000000 outpw(adr+wr2, 0x0000); outpw(adr+wr3, 0x0000); //模式寄存器300000000 00000000 outpw(adr+wr4, 0x0000); long readep(int axis) { long a; long d6; long d7; outpw(adr+wr0,(axis<<8) + 0x11); d6 = inpw(adr+rr6):d7 = inpw(adr+rr7); a = d6 + (d7<<16); return(a); } // wait(轴指定)------------------------ 等驱动结束 void wait(int axis) { while(inpw(adr+rr0) & axis); } // next_wait( )-------------------------- 等连续插补下一个数据设定 // void next_wait(void) { while((inpw(adr+rr0) & 0x0200) = = 0; } // bp_wait( )---------------------------- 等BP插补下一个数据设定 void bp_wait(void) { while((inpw(adr+rr0) & 0x6000) = = 0x6000); } // homesrch( )--------------------- void homesrch(void) 全轴原点检出 { //[动作] (1)~(3)各轴都相同 wreg1(0xf, 0x0008); //(1)原点信号IN1关闭时 speed(0xf, 2,000); //(1)用速度20,000PPS-连续驱动if((inpw(adr+rr4) & 0x2) = = 0x2) //(1)IN1信号ON后,减速停止 { command(0x1, 0x23); } if((inpw(adr+rr4) & 0x200) = = 0x200) { command(0x2, 0x23); } if((inpw(adr+rr5) & 0x2) = = 0x2) { command(0x4, 0x23); } if((inpw(adr+rr5) & 0x200) = = 0x200) { command(0x8, 0x23); } wait(0xf); wreg1(0xf, 0x000c); //(2)用速度500PPS+连续驱动 speed(0xf, 50); //(1)IN1信号OFF后,立即停止 command(0xf, 0x22); wait(0xf); wreg1(0xf, 0x0000); //(3)用速度40,000PPS向-方向 speed(0xf, 4,000); //(1)100脉冲偏移移动 pulse(0xf, 100); command(0xf, 0x21); wait(0xf); lp(0xf, 0) //(4) X, Y, Z, U轴LP = 0 wreg2(0x7, 0x0003); //(1) X, Y, Z轴软件限制:ON compp(0x1, 100,000); //(1) X: -1,000 ~ +100,000 compm(0x1, -1,000); compp(0x2, 50,000); //(1) Y: -500 ~ +50,000 compm(0x2, -500); outpw(adr+wr5, 0x0024); accofst(0xf, 0); range(0xf, 800,000); acac(0xf, 1,010); acc(0xf, 100); dec(0xf, 100); startv(0xf, 100); speed(0xf, 4,000); pulse(0xf, 100,000); lp(0xf, 0); homesrch( ); acc(0x3, 200) speed(0x3, 4,000); pulse(0x1, 80,000); pulse(0x2, 40,000); command(0x3, 0x20); wait(0x3); wreg3(0x3, 0x0,004); acac(0x3, 1,010); acc(0x3, 200); speed(0x3, 4,000); pulse(0x1, 50,000); pulse(0x2, 25,000); command(0x3, 0x21); wait(0x3); wreg3(0x3, 0x0000); outpw(adr+wr5, 0x0124); range(0x1, 800,000); range(0x2, 1,131,371); speed(0x1, 100); pulse(0x1, 5,000); pulse(0x2, -2,000); command(0x0, 0x30); wait(0x3); outpw(adr+wr5, 0x0124); range(0x1, 800,000); range(0x2, 1,131,371); speed(0x1, 100); center(0x1, -5,000); center(0x2, 0); pulse(0x1, 0); pulse(0x2, 0); command(0x0, 0x33); wait(0x3); speed(0x1, 1); command(0, 0x36); outpw(adr+bp1p,0x0000); outpw(adr+bp1m, 0x2bff); outpw(adr+bp2p, 0xffd4);outpw(adr+bp2m,0x0000); command(0, 0x38); outpw(adr+bp1p, 0xf6fe); outpw(adr+bp1m,0x0000); outpw(adr+bp2p,0x000f); outpw(adr+bp2m,0x3fc0); command(0, 0x38); //通用输出寄存器00000000 00000000 //插补模式寄存器00000000 00100100 //--------全轴操作参数初期设定---- //A0 = 0 //R = 800,000(倍率 = 10) //K = 1,010(变化率 = 619KPPS/SEC2) //A = 100(加/减速度=125KPPS/SEC) //D = 100(减速度 = 125KPPS/SEC) //SV = 100(初始速度 = 1,000PPS) //V = 4,000(驱动速度 = 40,000PPS) //P = 100,000(输出脉冲数 = 100,000) //LP = 0(逻辑位置计数器 = 0) //------全轴原点检出------------------ //------XY轴直线加减速驱动---- //A=200(加/减速度= 250KPPS/SEC) //V = 4,000(驱动速度 = 40,000PPS) //xP = 80,000 //yP = 40,000 //+定量驱动 //等驱动结束 //------XY轴S曲线加减速驱动-- //K= 1,010(变化率= 619KPPS/SEC2) //A=200(加/减速度= 250KPPS/SEC) //V = 4,000(驱动速度 = 40,000PPS) xP = 50,000 yP = 25,000 //-定量驱动 //S曲线加/减速模式解除 //---------XY轴直线插补驱动---- //a1 =x, a2 =y, a3 =z 线速固定 //a1/R = 800,000(倍率 = 10) //a2/R = 800,000×1.414 //驱动速度 = 1,000PPS定速 //xP = +5,000(终点X = +5,000) //yP = -2,000(终点Y = -2,000) //2轴直线插补 //---------XY轴圆弧插补驱动--- //a1= x, a2 =y, a3 =z 线速常数 //a1/R = 800,000(倍率 = 10) //a2/R = 800000×1.414 驱动速度 = 1,000PPS定速 //xC = -5,000(中心X = -5,000) //yC = 0 (中心Y = 0) //xP = 0 (终点X = 0)真圆 //yP = 0 (终点Y = 0) //CCW圆弧插补 //---------XY轴位模式插补--- //图2.24例子 //驱动速度 = 10PPS定速 //位模式数据写入 //0~15位模式数据写入 //堆栈 //16~31位数据写入 69 outpw(adr+bp1p, 0x1fdb); outpw(adr+bp1m, 0x0000); outpw(adr+bp2p, 0x00ff); outpw(adr+bp2m, 0xfc00); command(0, 0x38); command(0, 0x34); bp_wait( ); outpw(adr+bp1p, 0x4000); outpw(adr+bp1m, 0x7ff5); outpw(adr+bp2p, 0x0000); outpw(adr+bp2m, 0x0aff); command(0, 0x38): command(0, 0x37); wait(0x3); //32 ~ 47位数据写入 //2轴BP插补驱动开始 //数据等待写入 //48 ~ 63位数据写入 //不允许位模式数据写入 等待驱动结束 //------X, Y轴连续插补图2.29例子 speed(0x1, 100); pulse(0x1, 4,500); pulse(0x2, 0); command(0, 0x30); next_wait( ); center(0x1, 0); center(0x2, 1,500); pulse(0x1, 1,500); pulse(0x2, 1,500); command(0, 0x33); next_wait( ); pulse(0x1, 0); pulse(0x2, 1,500); command(0, 0x30); next_wait( ); center(0x1, -1,500); center(0x2, 0); pulse(0x1, -1,500); pulse(0x2, 1,500):; command(0, 0x33); next_wait( ); pulse(0x1, -4,500); pulse(0x2, 0); command(0, 0x30); next_wait( ); center(0x1, 0); center(0x2, -1,500); pulse(0x1, -1,500); pulse(0x2, -1,500); command(0, 0x33); next_wait( ); pulse(0x1, 0); pulse(0x2, -1,500); command(0, 0x30); next_wait( ); center(0x1, 1,500); center(0x2, 0); pulse(0x1, 1,500); pulse(0x2, -1,500); command(0, 0x33); wait(0x3); } 70 驱动速度 = 1,000PPS定速 //node1 //次数据等待 //node2 //node3 //node4 //node5 //node6 //node7 //node8 12 电气的特性 12.1 DC特性 ! 绝对最大定额 项 目 符号 电源电压 VDD 输入电压 VIN 输入电流 IIN 保存温度 TSTG ! DC特性 项 目 高电平输入电压 低电平输入电压 高电平输入电流 低电平输入电流 定 额 单位 项 目 符号 定 额 单位 电源电压 -0.3 ~ +7.0 V VDD 4.75 ~ 5.25 V -0.3 ~ VDD+0.3 V 周围温度 Ta 0 ~ +85 10 如果你想0下使用请与我们技术支持联mA 系 -40 ~ +125 Ta = 0 ~ +85 VDD 5V5% 符号 条 件 最小值 典型值 最大值 单 位 备 注 VIH 2.2 V VIL 0.8 V IIH VIN = VDD -10 10 A IIL A D15 ~ D0输入信号 VIN = OV -10 10 除D15 ~ D0之外的输入信号 -10 A VIN = OV -200 VOH 高电平输出电压 注1 IOH = -1A VDD-0.05 V 除D15 ~ D0之外的输出信号 IOH = - 4mA 2.4 V D15 ~ D0输出信号 IOH = - 8mA 2.4 V IOL= 1A 0.05 V VOL 低电平输出电压 除D15 ~ D0之外的输出信号 IOL = 4mA 0.4 V D15 ~ D0输出信号 0.4 V IOL = 8mA 输出泄漏电流 A D15 ~ D0BUSYNINTN IOZ VOUT = VDD Or OV -10 10 VH 0.3 V 斯密特触发器泄 漏电流引起的电压 消耗电流 IDD IIO = O mACLK=16MHz 52 90 mA 注1 项 目 I/O电容 输入电容 因为BUSYN 符号 CIO CI INTN输出信号是开漏输出所以它们没有高电平输出 条 件 Ta = 25, f = 1MHz ! 引脚电容 最小值 典型值 最大值 单 位 备 注 10 pF D15 ~ D0 其它输入引脚 10 pF 12.2 AC延迟特性 12.2.1 时钟 ! CLK输入信号 (Ta = 0 85VDD = +5V 5% 输出负荷的条件: 85pF+1TTL) ■ SCLK输出信号 # RESETN在Low期间 SCLK不被输出 71 符号 tCYC tWH tWL tDR tDF 项 目 CLK周期 CLK 高电平宽度 CLK 低电平宽度 SCLK延迟时间 CLK CLKSCLK延迟时间 最小值 最大值 单位 62.5 nS 20 nS 20 nS 21 nS 23 nS 12.2.2 CPU读/写周期 # 上图是16位数据总线H16L8=Hi的信号 数据信号是D7~D0 位数据总线的时候图中地址信号是A3~A0 # RDN和CSN都变为低电平之后读出周期的数据信号D15D0处于输出状态RDN返回 到高电平后它仍然在tDF期间保持输出状态因此请注意发生冲突 符号 tAR tCR tRD tDF tRC tRA tAW tCW tWW tDW tDH tWC tWA 项 目 地址建立时间 CSN建立时间 输出数据延迟时间 输出数据保持时间 CSN保持时间 地址保持时间 地址建立时间 CSN建立时间 WRN Low电平脉冲宽度 输入数据设定时间 输入数据保持时间 CSN保持时间 地址保持时间 最小值 最大值 单 位 to RDN 0 nS to RDN 0 nS from RDN 29 nS from RDN 0 30 nS from RDN 0 nS from RDN 0 nS to WRN 0 nS to WRN 0 nS 50 nS to WRN 30 nS from WRN 10 nS from WRN 5 nS from WRN 5 nS 72 12.2.3 BUSYN信号 # BUSYN输出信号在WRN的上升沿后最大SCLK2周期期间保持Low激活写此IC 符号 tDF tWL 项 目 WRNBUSYN延迟时间 BUSYN低电平宽度 这期间不能读/ 最小值 最大值 单 位 32 nS tCYC4+30 nS tCYC是CLK的周期 12.2.4 SCLK/输出信号延迟 下面的输出信号一直与SCLK输出信号同步电平随SCLK的上升沿变化 输出信号nPP/PLSnPM/DIRnDRIVEnASNDnDSNDnCMPPnCMPM 符号 tDD SCLK 项 目 输出信号延迟时间 最小值 最大值 单 位 0 20 nS 12.2.5 输入脉冲 ! 2相脉冲输入模式 ! 上下脉冲输入模式 # 使用上下脉冲输入模式时用SCLK把nPPINnPMIN信号同步化后输入参考P67图 # 使用2相脉冲输入模式时nECA 变为改变后的数值 nECB输入变化后实位计数器在最大4个SCLK周期后 起最大4个SCLK周期之后实位计数 73 # 使用上下脉冲输入模式时从nPPINnPMIN输入的 器将变为改变后的数值 符号 tDE tIH tIL tICYC tIB 项 目 nECA,nECB位相差时间 nPPIN,nPMIN 高电平宽度 nPPIN,nPMIN 低电平宽度 nPPIN,nPMIN周期 nPPINnPMIN时间 最小值 tCYC2+20 tCYC2+20 tCYC2+20 tCYC4+20 tCYC4+20 最大值 单 位 nS nS nS nS nS 12.2.6 通用I/O信号 左下图表示在RR4RR5寄存器读出输入信号nIN3~0nEXPPnEXPMnINPOSnALARM 的延迟时间 右下图表示在nWR3WR4寄存器写入通用输出信号数据的延迟时间 符号 tDI tDO 项 目 输入信号 数据延迟时间 WRNnOUT7~0设定结束时间 最小值 最大值 单 位 32 nS 32 nS 13 I/O信号时序 13.1 上电时序 复位输入信号RESETN第一要CLK输入后第二要CLK4周期以上低电平 打开电源时的输入信号第一要RESETN在低电平第二要CLK处于输入状态第三要在最大CLK 4周期后确定如上图所示的电平 RESETN达到高电平后SCLK在最大CLK2周期后输出 RESETN达到高电平后BUSYN在最大CLK8周期保持低电平在这期间不能读/写此IC 74 13.2 驱动开始/结束时序 上图所示的驱动脉冲nPPnPMnPLS是正脉冲从BUSYN的起3个SCLK周期后第 一脉冲将被输出 驱动输出脉冲方式设定为1脉冲方式时由BUSYN的使nDIR方向信号有效 驱动结束后仍保持此电平直到写入下一个驱动命令不过插补驱动时不是这样 由BUSYN的使nDRIVE变为高电平 在最终脉冲的低电平之后返回低电平 nDSND变为有效电平 从BUSYN的起3个SCLK周期后nASND返回至低电平 在最终脉冲的低电平后 13.3 插补驱动时序 插补时从BUSYN的起4个SCLK周期后输出第一驱动脉冲 从BUSYN的起1个SCK周期后nDRIVE变为高电平 驱动输出脉冲方式设定为1脉冲方式时nDIR方向信号在驱动脉冲的高电平宽度与其前后1 驱动脉冲正逻辑脉冲时 个SCLK周期后变为有效电平 13.4 驱动开始释放时序 各个轴的驱动脉冲nPPnPMnPLS从驱动开始释放命令写入的BUSYN起3个SCLK周 期后同时输出第一脉冲 由每个轴驱动命令写入的BUSYN使nDRIVE变为高电平 75 13.5 立即停止时序 这是立即停止输入信号和立即停止命令的动作时序立即停止输入信号是EMGN定为立即停止模式时和nALARM nLMTP/M设 立即停止输入信号有效或者写入立即停止命令后输出完当前驱动脉冲后就停止驱动脉冲输出 立即停止输入信号由SCLK的受 存入IC内部所以比1个SCLK周期短的作用脉冲有可能不被接 13.6 驱动减速停止时序驱动减速停止时序 这是减速停止输入信号和减速停止命令的动作时序减速停止输入信号是nIN3~0nLMTP/M设定为减速停止模式时 当减速停止输入信号有效或者减速停止命令被写入时 在完成当前驱动脉冲输出后就开始减速 76 外形尺寸 7714 15 规格 ! 控制轴 ! CPU数据总线长度 4轴 可选8位/16位 插补功能 ! 2轴/3轴直线插补 # 插补范围 各个轴-8,388,607 ~ +8,388,607 # 插补速度 1~ 4 MPPS 0.5 LSB以下 (在全插补范围内) # 插补位置精密度 ! 圆弧插补 # 插补范围 各个轴-8,388,607 ~ +8,388,607 # 插补速度 1~ 4 MPPS 1 LSB以下 (在全插补范围内) # 插补位置精密度 ! 2轴/3轴位模式插补 # 插补速度 ! 其他插补功能 1 ~ 4 MPPS (但依靠CPU数据设定时间) 线速常数 可任选轴 连续插补 插补步进传送 (命令/外部信号) 各轴共通规格 ! 驱动输出脉冲 (CLK=16MHz时) # 输出速度范围 1 PPS ~ 4 MPPS 0.1%以下对设定数值 # 输出速度精密度 # 速度倍率 1 ~ 500 # S曲线用Jerk 954 ~ 62.510 6 PPS/SEC2 (倍率=1的时候) ~ 31.2510 9PPS/SEC2 (倍率=500的时候) (加/减速度的增/减率) 477103 # 加/减速度 125 ~ 110 6 PPS/SEC (倍率=1的时候) 62.5103 ~ 50010 6 PPS/SEC (倍率=500的时候) # 初始速度 1 ~ 8,000PPS (倍率=1的时候) 500PPS ~ 410 6 PPS (倍率=500的时候) # 驱动速度 1 ~ 8,000PPS (倍率=1的时候) 500PPS ~ 410 6 PPS (倍率=500的时候) # 输出脉冲数 0 ~ 268,435,455定量驱动 # 速度曲线 定速/直线加减速/抛物线S曲线加减速驱动 # 定量驱动的减速模式 自动减速/手动减速 # 可以变更在驱动中的输出脉冲数驱动速度 # 可以选择独立2脉冲/1脉冲方向 方式 # 可以选择脉冲逻辑电平 ! 编码器输入脉冲 # 可以选择2相脉冲/上下脉冲输入 # 可以选择2相脉冲 124的平方 ! 位置计数器 ~ +2,147,483,647 # 逻辑位置计数器输出脉冲用计数范围 -2,147,483,648 ~ +2,147,483,647 # 实位计数器 输入脉冲用计数范围 -2,147,483,648 可以一直写入读出 78 ! 比较寄存器 # COMP+寄存器 位置比较范围 -2,147,483,648 ~ +2,147,483,647 # COMP-寄存器 位置比较范围 -2,147,483,648 ~ +2,147,483,647 # 把和位置计数器的大小状态输出信号输出 # 做为软件限制可以动作 ! 中断功能除插补外 # 中断发生因素 1脉冲输出位置计数器COMP-变化时位置计数器COMP-变化时 位置计数器COMP+变化时位置计数器COMP+变化时 加减速驱动中的定速开始时加减速驱动中的定速结束时 驱动结束时 可以对任何因素选择有效/无效 ! 根据外部信号的驱动操作 # 根据EXPP EXPM信号可以运行+/-方向的定量/连续驱动 ! 外部减速停止/立即停止信号 # IN0 ~ 3每一个轴4个 任何信号都可以选择有效/无效 ! 伺服马达用输入信号 # ALARM警报INPOS定位完毕 任何信号都可以选择有效/无效逻辑电平 ! 通用输出/入信号 # OUT0 ~ 7 ! 驱动状态信号输出 # DRIVE驱动脉冲输出中ASND加速中 CMPM位置COMP- 驱动状态也可以在状态寄存器读出 DSND减速中 CMPP位置COMP+ 每一个轴8个 和驱动状态输出信号共用端子 逻辑电平可以做为通用输入使用 ! 超越限制信号输入 # +方向-方向每一个 可选逻辑电平激活时可选立即停止/减速停止 ! 紧急停止信号输入 # 全轴只有1个EMGN 在Low电平立即停止全轴的驱动脉冲 ! 电气的特性 # 动作温度范围 0 ~ +85 消费电流 50mA max # 动作电源电压 +5V 5% # 输出/入信号电平 CMOSTTL可以连接 # 输入时钟 16.000 MHz标准 ! 封装 144个脚QFP外形尺寸30.9 0.65距间 30.9 4.36 mm 79 附录A速度曲线图型 以下所示的速度曲线是观测带有速度跟踪器的MCX314输出驱动脉冲而得的图型 加/减速时完全S曲线加/减速是在达到目标速度前一直运行抛物线加速的S曲线加/减速不包括加速度/减速度恒定域部分S曲线加/减速是包括加速度/减速度恒定域加/减速区域是线性的的S曲线加/减速 40KPPS完全S曲线加/减速 R=800,000(倍率:10), K=700, (A=D=200), SV=100, V=4,000 , A0=50 自动减速模式 Jerk=893K PPS/SEC2 (加/减速度=250K PPS/SEC) 初始速度=1,000 PPS 驱动速度=40 PPS 40KPPS部分S曲线加/减速 R=800,000(倍率:10), K=300, A=D=150, SV=100, V=4,000 , A0=20 自动减速模式 Jerk=2083K PPS/SEC2 加/减速度=188K PPS/SEC 初始速度=1,000 PPS 驱动速度=40K PPS 80 8,000KPPS完全S曲线加/减速 R=8,000,000(倍率:1), K=2,000, (A=D=500), SV=100, V=8,000 , A0=0 自动减速模式 Jerk=31K PPS/SEC (加/减速度=62.5K PPS/SEC) 初始速度=100 PPS 驱动速度=8,000 PPS 2 8,000KPPS部分S曲线加/减速 R=8,000,000(倍率:1), K=1,000, A=D=100, SV=100, V=8,000 , A0=0 自动减速模式 Jerk=62.5K PPS/SEC2 加/减速度=12.5K PPS/SEC 初始速度=100 PPS 驱动速度=8,000 PPS 400KPPS完全S曲线加/减速 R=80,000(倍率:100), K=2,000, (A=D=100), SV=10, V=4,000 , A0=1,000 自动减速模式 Jerk=3.13M PPS/SEC2 (加/减速度=12.5M PPS/SEC) 初始速度=1,000 PPS 驱动速度=400K PPS 400KPPS部分S曲线加/减速 R=80,000(倍率:100), K=500, A=D=100, SV=10, V=4,000 , A0=0 自动减速模式 Jerk=12.5M PPS/SEC2 加/减速度=1.25M PPS/SEC 初始速度=1,000 PPS 驱动速度=400K PPS 81 S曲线加/减速连续驱动的速度变更 R=800,000(倍率:10), K=2,000, (A=D=100), SV=100, V=1,000 2,000 4,000减速停止 Jerk=312.5K PPS/SEC2 加/减速度=125K PPS/SEC 初始速度=1,000 PPS 驱动速度=10K20K40K PPS 40KPPS直线加/减速 R=800,000(倍率:10), A=D=100, SV=100, V=4,000 WR3/D2, D1, D0=0, 0, 0 直线加/减速自动减速模式 加/减速度=125K PPS/SEC 初始速度=1,000 PPS 驱动速度=40,000 PPS 82 直线加/减速的三角防止方法 当K=1Jerk最高值并且处于S曲线加/减速 模式时假如输出脉冲很少根据1/4法则就会产生三角波形 R=800,000(倍率:10), K=1, A=D=100, SV=100, V=4,000 WR3/D2, D1, D0=1, 0, 0 S曲线加/减速自动减速模式 Jerk=625M PPS/SEC2 加/减速度=125K PPS/SEC 初始速度=1,000 PPS 驱动速度=40,000 PPS ! 在定量脉冲驱动中通过S曲线加/减速后 变更点KV等参数就改善点 仍落后初始速度对此情况需调整参数 R=800,000(倍率:10), K=1,000, A=D=8,000, SV=100, V=2,000 自动减速模式 P50,000 R=800,000(倍率:10), K=50, A=D=8,000, SV=200, V=4,000, A0=0 自动减速模式 P50,000 = = 83 附录B指定圆弧指定圆弧插补结束点应注意圆弧插补结束点应注意 84 在CW/CCW圆弧插补时根据中心点和已确定 的半径R画圆弧一般终点是在这个圆弧上但是由于算术误差等原因使终点的指定脱离圆弧线并指定在左图的斜线内的话MCX314不能检出终点发生不停地在圆弧上运行的不正常现象 有关圆弧插补的终结判定请再参考P15把终点放在斜线内的话在达到终点的短轴数值之前象限将变化所以不能检出终点 避免方法 如图所示终点的位置在圆弧外而在45û 象限切换附近= 时很有可能发生这种情况因此要把终点放在圆弧上或者由于算术误差的原因不能放在圆弧上的话可放在圆弧线的内侧 比如AX1第一轴设定为AX2第二轴设定为Y中心点设定为CXCY终点设定为EXEY的话圆弧的半径R为 离圆弧中心至终点的距离EL为 ELR的时候终点在圆弧外侧 EL R的时候终点在圆弧线上 ELR的时候终点在圆弧内侧 ELR的时候把EXEY的数值增或减1变为ELR的状态 因篇幅问题不能全部显示,请点此查看更多更全内容