步进电机细分驱动芯片A3972SB的应用问题 【恢复】
本人欲用ATmega8与A3972SB来做一个步进电机细分驱动,但不知道如何去控制细分数及马达电流,有做过的朋友指点一下,谢谢!A3972SB资料ourdev_448370.pdf(文件大小:191K) (原文件名:A3972SB.pdf) 哈哈,你的e文一定不好,好像是通过10,11,12三个脚发送串行数据,配置2个19位的数据字,字0的D1-D12选择两个输出桥的电流,字1选择细分数,具体的要你自己看了,不看懂DATASHEET的话就做出来也是蒙的 楼上,多谢指点,偶的e文确实菜,偶第一次接触步进马达,看中文资料后,字1细分如何选择细分?我还是不懂啊!
表1 Word 0模式
Bit功 能Bit功 能D0Word select=0D1H桥1,DAC,LSBD2H桥1,DAC,位2D3H桥1,DAC,位3D4H桥1,DAC,位4D5H桥1,DAC,位5D6H桥1,DAC,MSBD7H桥2,DAC,LSBD8H桥2,DAC,位2D9H桥2,DAC,位3D10H桥2,DAC,位4D11H桥2,DAC,位5D12H桥2,DAC,MSBD13H桥1相D14H桥2相D15H桥1模式D16H桥2模式D17参考电压选择方式D18电流范围选择方式
3 A3972的功能
对A3972的控制是通过3条串行接口线(CLOCK、DATA、STROBE)来实现的。每次发送时要传送19个bits,先传送高位D18,最后传送最低位D0。A3972有二种数据模式:Word 0位设置模式和Word 1 位设置模式。
3.1 Word 0位设置模式
当D0=0时,A3972便进入Word 0模式,各位的功能见表1,D0-D18位的含义如下:
D1-D6:用于设定通过H桥1的电流等级,当全设置为0时,将禁止H桥1工作,开关管关断。
D7-D12:用于设定通过H桥2的电流等级,当全设置为0时,将禁止H桥2工作,开关管关断。
D13:决定通过负载绕组1的电流方向。为0,表示电流从OUT1B流向OUT1A;为1,则表示电流从OUT1A流向OUT1B。
D14:决定通过负载绕组2的电流方向,为0,表示电流从OUT2B流向OUT2A;为1,则表示电流从OUT2A流向OUT2B。
D15:决定H桥1电流衰减模式,为0,表示A3972设置成混合衰减模式;为1,则表示设置成慢衰减模式。
D16:决定H桥2电流衰减模式,为0,表示A3972设置成混合衰减模式;为1,则表示设置成慢衰减模式。
D17:决定参考电压方式,为0,表示选择内部2V电压基准作为参考电压;为1,表示选择外部参考电压。
D18:电流范围选择方式,为0表示ITRIP=VDAC/8Rs;为1表示ITRIP=VDAC/4Rs。
3.2 Word 1位设置模式
当D0=1时,A3972进入Word 1数据模式,D1-D18位的功能见表2,各位的含义如下所述。
表2 Word 1模式
Bit功 能Bit功 能D0Word select=1D1死区时间LSBD2死区时间MSBD3关断时间LSBD4关断时间位1D5关断时间位2D6关断时间位3D7关断时间MSBD8快速衰减时间LSBD9快速衰减时间位1D10快速衰减时间位2D11快速衰减时间位MSBD12振荡器控制C0D13振荡器控制C1D14同步校正位1D15同步校正位2D16保留位D17保留位D18空闲模式
D1、D2死区时间:用于设置电流调节时不进行电流采样比较的时间。当H桥上桥臂某一开关管导通时,由于在开关瞬时箝位二极管和负载中的分布电容受反向恢复电流的影响,将会产生电流尖峰,从而导致错误的复位,为了防止在此段时间内这类情况的发生,应该使电流采样比较器停止工作。死区时间的具体设置为D2D1=00:死区时间为4/fosc;D2D1=01;死区时间为6fosc;D2D1=10:死区时间为8/fosc;D2D1=11:死区时间为12/fosc。
D3-D7:用于决定内部PWM控制电路的固定关断时间,固定关断时间由下式决定
toff=[(1+N) ×8/fosc]-1/fosc(N=0……31)
例如,当晶振频率为4MHZ时,固定关断时间可编程设定为1.75μs~63.75μs。
D8-D11:用于设置电流快速衰减模式所占用的时间在内部PWM控制电路中固定关断时间所占的比例。只有A3972工作在电流混合衰减模式中时,电流快速衰减才会起作用。电流快速衰减才会起作用。电流快速衰减时间由下式决定
tdf=[(1+N) ×8/fosc]-1/fosc,(N=0……15)
例如,当晶振频率为4MHZ时,固定关断时间可编程定为1.75μs~31.75μs。如果tfd>toff,则A3972工作在快速衰减模式下。
D12-D13:晶振控制,内部4MHZ的晶振用于产生时基和电压泵的时间。如果需要,也可以在OSC端外接一个晶振。为了满足更宽范围系统时钟的需要,内部分频电路能够根据不同的设置产生不同的频率。D13D12=00:内部4MHZ的晶振;D13D12=01:外部时钟;D13D12=10:外部时钟的1/2;D13D12=11:外部时钟的1/4。
D14-D15:在PWM关断时,同步校正特征将在电流衰减期间导通相应的MOSFET,这将有效地降低电源功耗,而在绝大多数应用场合下,不用外接肖特基二极管。D15D14=00:主动模式,当发现电流过零时,关断同步校正功能,禁止反向负载电流;D15D14=01:被动模式,允许反向电流,但有一个限度,当超过这个限度时,将会关断同步校正功能;D15D14=10:禁止模式,这时必须在每个桥反向并联4个箝位二极管;D15D14=11:下桥臂模式,当PWM关断时,下桥臂MOSFET导通,这时,电流从MOSFET内部二极管流过。因此,上桥臂则要反向并联箝位二极放宽,这种模式主要用于高压场合,它可以使每个H桥节省二个二极管。在这种模式下,下桥臂MOSFET在PWM关断时间内不停地导通和关断。
D16、D17:使A3972处于测试模式,正常工作时,应该设置为00。
D18:当D18=0时,A3972处于低功耗方式。输出被禁止,电压泵也停止工作,但是欠压监视电路仍处于激活状态。 你的中文资料很详细呀(我的e文也很菜),我也从没有做过细分驱动器,
不过看了你的中文资料半小时,感觉应该是这样的:
字1只需设置好后就不用动了,字0的话,你的ATmega8每接收到一个脉冲,就要将它刷一遍,
每一遍D1-D12电流的大小要加或减,因为是6位,好像是可以2到64细分,具体要看你设计的驱动器给用户怎样的选择,
D13-14在D1-D6和D7-D12加到全1或全0的时候就要变了,不然电流不会反向,大概就是这样吧,
a3972的数据刷一遍最快也要20*40ns,所以你的驱动器可接收的脉冲最高频率也就是1mhz了,如果有不对的地方再讨论
另外你的资料我大概整理了一下,这样方便理解:
表1 Word 0模式
Bit功能 Bit功能D0Word select=0
D1 H桥1,DAC,LSB
D2 H桥1,DAC,位2
D3 H桥1,DAC,位3
D4 H桥1,DAC,位4
D5 H桥1,DAC,位5
D6 H桥1,DAC,MSB
D7 H桥2,DAC,LSB
D8 H桥2,DAC,位2
D9 H桥2,DAC,位3
D10 H桥2,DAC,位4
D11 H桥2,DAC,位5
D12 H桥2,DAC,MSB
D13 H桥1相
D14 H桥2相
D15 H桥1模式
D16 H桥2模式
D17参考电压选择方式
D18电流范围选择方式
3 A3972的功能
对A3972的控制是通过3条串行接口线(CLOCK、DATA、STROBE)来实现的。每次发送时要传送19个bits,
先传送高位D18,最后传送最低位D0。A3972有二种数据模式:Word 0位设置模式和Word 1 位设置模式。
3.1 Word 0位设置模式
当D0=0时,A3972便进入Word 0模式,各位的功能见表1,D0-D18位的含义如下:
D1-D6:用于设定通过H桥1的电流等级,当全设置为0时,将禁止H桥1工作,开关管关断。
D7-D12:用于设定通过H桥2的电流等级,当全设置为0时,将禁止H桥2工作,开关管关断。
D13:决定通过负载绕组1的电流方向。为0,表示电流从OUT1B流向OUT1A;为1,则表示电流从OUT1A流向OUT1B。
D14:决定通过负载绕组2的电流方向,为0,表示电流从OUT2B流向OUT2A;为1,则表示电流从OUT2A流向OUT2B。
D15:决定H桥1电流衰减模式,为0,表示A3972设置成混合衰减模式;为1,则表示设置成慢衰减模式。
D16:决定H桥2电流衰减模式,为0,表示A3972设置成混合衰减模式;为1,则表示设置成慢衰减模式。
D17:决定参考电压方式,为0,表示选择内部2V电压基准作为参考电压;为1,表示选择外部参考电压。
D18:电流范围选择方式,为0表示ITRIP=VDAC/8Rs;为1表示ITRIP=VDAC/4Rs。
3.2 Word 1位设置模式
当D0=1时,A3972进入Word 1数据模式,D1-D18位的功能见表2,各位的含义如下所述。
表2 Word 1模式
Bit功能Bit功能D0Word select=1
D1死区时间LSB
D2死区时间MSB
D3关断时间LSB
D4关断时间位1
D5关断时间位2
D6关断时间位3
D7关断时间MSB
D8快速衰减时间LSB
D9快速衰减时间位1
D10快速衰减时间位2
D11快速衰减时间位MSB
D12振荡器控制C0
D13振荡器控制C1
D14同步校正位1
D15同步校正位2
D16保留位
D17保留位
D18空闲模式
D1、D2死区时间:用于设置电流调节时不进行电流采样比较的时间。当H桥上桥臂某一开关管导通时,
由于在开关瞬时箝位二极管和负载中的分布电容受反向恢复电流的影响,将会产生电流尖峰,
从而导致错误的复位,为了防止在此段时间内这类情况的发生,应该使电流采样比较器停止工作。
死区时间的具体设置为
D2D1=00;死区时间为4/fosc;
D2D1=01;死区时间为6fosc;
D2D1=10;死区时间为8/fosc;
D2D1=11;死区时间为12/fosc。
D3-D7:用于决定内部PWM控制电路的固定关断时间,固定关断时间由下式决定
toff=[(1+N) ×8/fosc]-1/fosc(N=0……31)
例如,当晶振频率为4MHZ时,固定关断时间可编程设定为1.75μs~63.75μs。
D8-D11:用于设置电流快速衰减模式所占用的时间在内部PWM控制电路中固定关断时间所占的比例。
只有A3972工作在电流混合衰减模式中时,电流快速衰减才会起作用。电流快速衰减才会起作用。
电流快速衰减时间由下式决定:
tdf=[(1+N) ×8/fosc]-1/fosc,(N=0……15)
例如,当晶振频率为4MHZ时,固定关断时间可编程定为1.75μs~31.75μs。
如果tfd>toff,则A3972工作在快速衰减模式下。
D12-D13:晶振控制,内部4MHZ的晶振用于产生时基和电压泵的时间。
如果需要,也可以在OSC端外接一个晶振。为了满足更宽范围系统时钟的需要,
内部分频电路能够根据不同的设置产生不同的频率。
D13D12=00:内部4MHZ的晶振;
D13D12=01:外部时钟;
D13D12=10:外部时钟的1/2;
D13D12=11:外部时钟的1/4。
D14-D15:在PWM关断时,同步校正特征将在电流衰减期间导通相应的MOSFET,
这将有效地降低电源功耗,而在绝大多数应用场合下,不用外接肖特基二极管。
D15D14=00:主动模式,当发现电流过零时,关断同步校正功能,禁止反向负载电流;
D15D14=01:被动模式,允许反向电流,但有一个限度,当超过这个限度时,将会关断同步校正功能;
D15D14=10:禁止模式,这时必须在每个桥反向并联4个箝位二极管;
D15D14=11:下桥臂模式,当PWM关断时,下桥臂MOSFET导通,这时,电流从MOSFET内部二极管流过。
因此,上桥臂则要反向并联箝位二极放宽,这种模式主要用于高压场合,它可以使每个
H桥节省二个二极管。在这种模式下,下桥臂MOSFET在PWM关断时间内不停地导通和关断。
D16、D17:使A3972处于测试模式,正常工作时,应该设置为00。
D18:当D18=0时,A3972处于低功耗方式。输出被禁止,电压泵也停止工作,但是欠压监视电路仍处于激活状态。
最后,你的中文资料可不可以发我一份,f1701447@163.com 谢谢! 多谢楼上的朋,这资料在网上找的,不是很全。
A3972是美国Allegro公司生产的PWM恒流控制微步距驱动二相步进电机专用驱动器。它的工作电压可达50V,驱动电流达1.5A,一个A3972即可驱动一台二相步进电机。芯片内部的PWM电流控制电路可通过串行接口被设置为电流慢、快、混合衰减模式。
通过电机的电流是由电路内部的6位数/模转换器(DAC)输出和外部参考电压来共同决定的,其中的6位DAC决定了输出电流有2 6=64个等级。因此,DAC的值每增加1,输出电流会增加最大电流I-max的1.56%。另外,A3972还能提供完善的保护措施,其中包括抑制瞬态电压、过热保护、防止电流直通、欠电压自锁等功能。
2 A3972的引脚排列和引脚功能
A3972的引脚排列如图1所示,各个引脚的功能如下所述:
引脚1(VCP):电压泵的输出电压引脚,主要用于驱动内部DMOS H桥臂的上二路DMOS管。
引脚2、3(CP1、CP2):一般在这二个引脚间接一个0.22μF的电容器。该电容器主要是为A3972内部的电压泵提供电源,电压泵的输出为引脚1(VCP)。
引脚4、9(OUT1B、OUT1A):输出引脚,每个引脚分别与电机一相绕组的二端相连。
引脚5、20(LOAD SUPPLY1、LOAD SUPPLY2):电机负载电源端。
引脚6、7、18、19(GROUND):接地端。
引脚8、17(SENSE1、SENSE2):在此端接1只采样电阻器可检测负载电流,采样电阻(Rs)的大小与所设定的负载电流有效。
引脚10、11、12(STROBE、CLOCK、DATA):这3个引脚是A3972的串行接口,系统通过它们来控制A3972。其中STROBE为使能信号端,CLOCK为时钟信号端,DATA为数据输入信号端。
引脚13(REF):此端的电压与采样电阻Rs及DAC决定输出电机负载电流的大小。
引脚14(MUX):闲置引脚,在实际应用电路中可悬空。
引脚15(LOGIC SUPPLY):逻辑电路电压,可以为5V或3.3V。
引脚16、21(OUT2A、OUT2B):输出引脚,它们分别与电机一相绕组的二端相连。
引脚22(VREG):内部产生的电压输出端,用于驱动DMOS H桥臂的下二路DMOS管。该端的电压被内部电路监控,一旦出现故障,H桥输出将被禁止。在实际应用中,VREG引脚应串接一个0.22μF的电容器到GROUND上。
引脚23(SLEEP):当该引脚为低电平时,A3972将处于睡眠状态,此时,电路消耗的电流最小,同时,H桥输出也会被禁止,串行接口也会被复位为零状态。
引脚24(OSC):外部时钟输入引脚,用作内部PWM时基,典型值为4MHz。A3972可使用内部4MHz的时钟或外部时钟。如果使用内部时钟,则应将OSC引脚接地。
表1 Word 0模式
Bit 功 能 Bit 功 能
D0 Word select=0 D1 H桥1,DAC,LSB
D2 H桥1,DAC,位2 D3 H桥1,DAC,位3
D4 H桥1,DAC,位4 D5 H桥1,DAC,位5
D6 H桥1,DAC,MSB D7 H桥2,DAC,LSB
D8 H桥2,DAC,位2 D9 H桥2,DAC,位3
D10 H桥2,DAC,位4 D11 H桥2,DAC,位5
D12 H桥2,DAC,MSB D13 H桥1相
D14 H桥2相 D15 H桥1模式
D16 H桥2模式 D17 参考电压选择方式
D18 电流范围选择方式
3 A3972的功能
对A3972的控制是通过3条串行接口线(CLOCK、DATA、STROBE)来实现的。每次发送时要传送19个bits,先传送高位D18,最后传送最低位D0。A3972有二种数据模式:Word 0位设置模式和Word 1 位设置模式。
3.1 Word 0位设置模式
当D0=0时,A3972便进入Word 0模式,各位的功能见表1,D0-D18位的含义如下:
D1-D6:用于设定通过H桥1的电流等级,当全设置为0时,将禁止H桥1工作,开关管关断。
D7-D12:用于设定通过H桥2的电流等级,当全设置为0时,将禁止H桥2工作,开关管关断。
D13:决定通过负载绕组1的电流方向。为0,表示电流从OUT1B流向OUT1A;为1,则表示电流从OUT1A流向OUT1B。
D14:决定通过负载绕组2的电流方向,为0,表示电流从OUT2B流向OUT2A;为1,则表示电流从OUT2A流向OUT2B。
D15:决定H桥1电流衰减模式,为0,表示A3972设置成混合衰减模式;为1,则表示设置成慢衰减模式。
D16:决定H桥2电流衰减模式,为0,表示A3972设置成混合衰减模式;为1,则表示设置成慢衰减模式。
D17:决定参考电压方式,为0,表示选择内部2V电压基准作为参考电压;为1,表示选择外部参考电压。
D18:电流范围选择方式,为0表示ITRIP=VDAC/8Rs;为1表示ITRIP=VDAC/4Rs。
3.2 Word 1位设置模式
当D0=1时,A3972进入Word 1数据模式,D1-D18位的功能见表2,各位的含义如下所述。
表2 Word 1模式
Bit 功 能 Bit 功 能
D0 Word select=1 D1 死区时间LSB
D2 死区时间MSB D3 关断时间LSB
D4 关断时间位1 D5 关断时间位2
D6 关断时间位3 D7 关断时间MSB
D8 快速衰减时间LSB D9 快速衰减时间位1
D10 快速衰减时间位2 D11 快速衰减时间位MSB
D12 振荡器控制C0 D13 振荡器控制C1
D14 同步校正位1 D15 同步校正位2
D16 保留位 D17 保留位
D18 空闲模式
D1、D2死区时间:用于设置电流调节时不进行电流采样比较的时间。当H桥上桥臂某一开关管导通时,由于在开关瞬时箝位二极管和负载中的分布电容受反向恢复电流的影响,将会产生电流尖峰,从而导致错误的复位,为了防止在此段时间内这类情况的发生,应该使电流采样比较器停止工作。死区时间的具体设置为D2D1=00:死区时间为4/fosc;D2D1=01;死区时间为6fosc;D2D1=10:死区时间为8/fosc;D2D1=11:死区时间为12/fosc。
D3-D7:用于决定内部PWM控制电路的固定关断时间,固定关断时间由下式决定
toff=[(1+N) ×8/fosc]-1/fosc(N=0……31)
例如,当晶振频率为4MHz时,固定关断时间可编程设定为1.75μs~63.75μs。
D8-D11:用于设置电流快速衰减模式所占用的时间在内部PWM控制电路中固定关断时间所占的比例。只有A3972工作在电流混合衰减模式中时,电流快速衰减才会起作用。电流快速衰减才会起作用。电流快速衰减时间由下式决定
tdf=[(1+N) ×8/fosc]-1/fosc,(N=0……15)
例如,当晶振频率为4MHz时,固定关断时间可编程定为1.75μs~31.75μs。如果tfd>toff,则A3972工作在快速衰减模式下。
D12-D13:晶振控制,内部4MHz的晶振用于产生时基和电压泵的时间。如果需要,也可以在OSC端外接一个晶振。为了满足更宽范围系统时钟的需要,内部分频电路能够根据不同的设置产生不同的频率。D13D12=00:内部4MHz的晶振;D13D12=01:外部时钟;D13D12=10:外部时钟的1/2;D13D12=11:外部时钟的1/4。
D14-D15:在PWM关断时,同步校正特征将在电流衰减期间导通相应的MOSFET,这将有效地降低电源功耗,而在绝大多数应用场合下,不用外接肖特基二极管。D15D14=00:主动模式,当发现电流过零时,关断同步校正功能,禁止反向负载电流;D15D14=01:被动模式,允许反向电流,但有一个限度,当超过这个限度时,将会关断同步校正功能;D15D14=10:禁止模式,这时必须在每个桥反向并联4个箝位二极管;D15D14=11:下桥臂模式,当PWM关断时,下桥臂MOSFET导通,这时,电流从MOSFET内部二极管流过。因此,上桥臂则要反向并联箝位二极放宽,这种模式主要用于高压场合,它可以使每个H桥节省二个二极管。在这种模式下,下桥臂MOSFET在PWM关断时间内不停地导通和关断。
D16、D17:使A3972处于测试模式,正常工作时,应该设置为00。
D18:当D18=0时,A3972处于低功耗方式。输出被禁止,电压泵也停止工作,但是欠压监视电路仍处于激活状态。
4 串口时序
数据在每一个时钟节拍的上升沿传入移位寄存器,通常情况下,STROBE将会保持为高电平,只有在初始化为写周期时才会变为低电平。传输数据时,最先传送数据的最高位,最后传送数据的最低位。图2为一个完整的写数据时序图。图中的A是最小数据建立时间,时长为15ns;B是最小数据保持时间,时长为10ns;C是最小建立STROBE信号到CLOCK上升沿时间,时长为150ns;D是最小CLOCK高电平脉冲宽度,时长为40ns;E是最小CLOCK低电平脉冲宽度,时长为40ns;F是最小建立CLOCK上升沿到STROBE时间,时长为50ns;G是最小STROBE脉冲宽度,时长为150ns。
图5
5 典型应用电路
图3为A3972的典型应用电路图。从图中可以看出,只需要少量的外部元器件和几根控制线就可构成一个完整的微步距驱动二相步进电机电路。
图4为8细分正弦波驱动时二相步进电机的一相电机绕组理论电流波形。
笔者采用混合式步进电机做实验,电机的额定电压为12VDC,额定电流为0.4A,相数为2相,连续堵转为矩为700gcm,结构方式为组装式,工作方式为长期连续运行。
图5为8细分驱动时实测的一相电机绕组电流波形。该波形为在电机一相绕相上串联一个0.68Ω电阻器后所测得的该电阻器上的电压波形,因此,该波形与实际电流波形是0.68的倍数关系。
6 结论
Allegro公司生产的串行控制步进电机驱动器件A3972具有优良的特性。它可以工作在整步、半步、1/4步、1/8步、1/16步、1/32(微步距)多种方式下。其特有的3种电流衰减模式可以使步进电机工作在不同的负载和转速下,而且都能获得较理想的电流波形。此外,它易于与单片机接口,控制方式灵活。因此,A3972不失为一种高性能的串行控制步进电机微步距驱动器。 谢了,不过一般的步进电机驱动器有个通病,掉电后重新上电会抖动一下,对于工作中掉电重新上电要求不能移位的应用就是致命的问题,你可以想想看,你的会不会也有同样的问题 多谢指点,经过几天的努力,终于搞定这个驱动器了,不过不是很理想,在32以上细分时还是有点振。 mark ~~~刚好手上有块现成的驱动板 ~~~~有空也玩玩这个 楼主还来不 楼主,把你的A3972的驱动发出来嘛··我参考一下··谢谢 mark mark!! 这个芯片没用过,看看 回复【6楼】arkuo
多谢指点,经过几天的努力,终于搞定这个驱动器了,不过不是很理想,在32以上细分时还是有点振。
-----------------------------------------------------------------------
这个芯片能做32以上细分? 细分不是芯片已经集成了的吗?
页:
[1]