2T&n6t$p ~[ZRE @ 5'%nLW7;O `-)Hot) 寄存器定义用什么控制器大家决定吧
XFmTr@\M NO'37d /*****************************************************************************************************
SpJIEw CTRL 11 10 9 8 7 6 5 4 3 2 1 0
5u=$m^@{ 控制 死区时间设定 电流放大倍数 堵转方式 细 分 模 式 步进方式 方向方式 使能方式
~M Mv+d88 TORQUE 11 10 9 8 7 6 5 4 3 2 1 0
{,Z-GJ 转矩 保留 反电动势采样时间 设 置 最 高 转 矩 电 流
EgB$y"fs OFF 11 10 9 8 7 6 5 4 3 2 1 0
+rN&@}Jt. 关机 保 留 工作模式 设 置 固 定 关 断 时 间
8lZB3p]X BLANK 11 10 9 8 7 6 5 4 3 2 1 0
|SSe n#PYp 消隐 保 留 使能消隐 设 置 固 定 消 隐 时 间
al@Hr*' DECAY 11 10 9 8 7 6 5 4 3 2 1 0
$Si|;j$? 衰减 保留 设置 衰减 模式 设 置 固 定 衰 减 时 间
rjWn>M STALL 11 10 9 8 7 6 5 4 3 2 1 0
W"[Q=$2<< 堵转 反电动势反馈 堵转发生时间 设 置 固 定 堵 转 入 口
~/m=Q<cV DRIVE 11 10 9 8 7 6 5 4 3 2 1 0
h*B7UzCg 驱动 高门级
驱动电流 低门级驱动电流 高门级驱动时间 低门级驱动时间 过流峰值时间 过流保护
电压 45aFH}w: STATUS 11 10 9 8 7 6 5 4 3 2 1 0
@CNe)&U 状态 保 留 堵转锁存 堵转 B相故障 A相故障 欠压 B过流 A过流 过温保护
0/TP`3$X#" ******************************************************************************************************/
?&_u$Nn #define READ 0x8000
YDWV=/ #define WRITE 0x0000 //数据15位
lNbAt4]}f( //unsigned char RWBIT[2]={1,0}; //读写控制位
2Y1y;hCK //寄存器地址
^_5t5> #define CTRL 0x0000 //控制模式第14,13,12位
O]VHX![Y$ #define TORQUE 0x1000 //
{({Rb$ #define OFF 0x2000 //
o8c5~fG1 #define BLANK 0x3000 //
}O+`X) 9 #define DECAY 0x4000 //
G:4'')T #define STALL 0x5000 //
dBb
&sA-A #define DRIVE 0x6000 //
.g?Ppma #define STATUS 0x07 //
-I'Jm=q3] /******************************************************************************************************
M'5PPBSR CTRL控制寄存器
'aqlNBG* ******************************************************************************************************/
hq*"S-N //unsigned char RADDRESS[8]={0,1,2,3,4,5,6,7}; //寄存器地址
%*a%F~Ss #define DTIME400 0x0000 //死去电压设定地11,10位
opv<r*! #define DTIME450 0x0400 //
o>75s#=
b= #define DTIME650 0x0800 //
Lu5lpeSQ #define DTIME850 0x0c00 //
^`+Kjhht //unsigned char DTIME[4]={0,1,2,3}; //死区时间设定
G}LOQ7 #define ISGAIN5 0x0000 //电流检测放大倍数地9,8位
dj2w_:&W #define ISGAIN10 0x0100 //
0u?VnN< #define ISGAIN20 0x0200 //
:3A^5}iz #define ISGAIN40 0x0300 //
7!PU}[: //unsigned char ISGAIN[4]={0,1,2,3}; //电流放大倍数
<TEDqQ #define INTERNAL 0x0000 //内部探测地7位
Zt
;u8O #define EXSTALL 0x0080 //外部探测
>41K>=K //unsigned char RSTALL[2]={0,1}; //内外部停止检测
B+4WnR1%T #define MODE1 0x0000 //细分模式第6,5,4,3位 0000 0000 0100 0000
,Fzuo:{uy #define MODE2 0x0008 //
4L<;z' #define MODE4 0x0010 //
IylfMwLC #define MODE8 0x0018 //
l&{+3 aC: #define MODE16 0x0020 //
b NR@d'U #define MODE32 0x0028 //
BT|n+Y[ #define MODE64 0x0030 //
-GZ:}<W6+ #define MODE128 0x0038 //
-'rb+<v #define MODE256 0x0040 //
v9MliD' unsigned char STEPPING[9]={0,1,2,3,4,5,6,7,8}; //细分模式
}iRRf_ #define RSTEP 0x0000 //由step引脚控制第2位
1
&-%<o ;7U"wI_~c #define RDIR 0x0000 //由dir控制方向 第1位
cpu|tK.t ZmaGp* Wj #define ENBL 0x0000 //电机失效第0位
'#u=wyp #define ENMOTOR 0x0001 //电机使能
icN#8\E /******************************************************************************************************
4P=)u}{]^# TORQUE转矩控制寄存器
>uR;^ B5m ******************************************************************************************************/
GsiT!OP]y //0000 0000 0000 0000
M5c
*vs #define EMF50 0x0000 //反电动势采样时间
gr \vC #define EMF100 0x0100 //
9)J)r\ #define EMF200 0x0200 //
bo[[<j!"I #define EMF300 0x0300 //
`P jS #define EMF400 0x0400 //
HY,VJxR[ #define EMF600 0x0500 //
UUEbtZH; #define EMF800 0x0600 //
s)}EMDY #define EMF1000 0x0700 //
I>:.fHvUC /******************************************************************************************************
:Fdk`aC OFF关断控制寄存器
rqEP!S^ ******************************************************************************************************/
Dpkc9~z //0000 0000 0000 0000
} QpyU% #define INDEXER 0x0000 //内部分度器模式
7-MyiCt #define PWMMODE 0x0100 //PWM模式
1?{w~cF} /******************************************************************************************************
DEt;$>tl
5 BLANK消隐控制寄存器
7'RU\0QG ******************************************************************************************************/
cdTG ]n //0000 0000 0000 0000
#K\;)z(? #define DISABT 0x0000 //禁用自适应消隐时间
-)[~%n#X+t #define ENABT 0x0100 //启用自适应消隐时间
4IXa[xAm /******************************************************************************************************
D)bR-a_^ DECAY衰减控制寄存器
FB
n . 4 ******************************************************************************************************/
;fB!/u //0000 0000 0000 0000
`! _mIh} #define SLOWFORCE 0x0000 //慢衰减
A?H.EZ #define HUNHE 0x0100 //慢衰减模式增大电流快衰减减小电流
/JmWiBQIn #define FASTFORCE 0x0200 //快衰减
[-2Tj)P
C #define MIXEDFORCE 0x0300 //固定衰减
v7mg8' #define AUTOHUNHE 0x0400 //慢衰减模式增大电流自动固定衰减减小电流
Z[9f8/6<b #define AUTOFORCE 0x0500 //自动固定衰减
S<>u /******************************************************************************************************
VE*&t>I STALL堵转控制寄存器
;_E][m ******************************************************************************************************/
c:,K{ZR //0000 0000 0000 0000
w
C-x' #define EMF32 0x0000 //反电动势反馈系数32
\&4)['4, #define EMF16 0x0400 //反电动势反馈系数16
_SqUPTb"u #define EMF8 0x0800 //反电动势反馈系数8
DHh30b$c #define EMF4 0x0C00 //反电动势反馈系数4
X -_0wR #define STALL1 0x0000 //堵转查询时间立即发生
Jqqt@5Ni #define STALL2 0x0100 //堵转查询时间在2步以后
0b+End#mp #define STALL4 0x0200 //堵转查询时间在4步以后
&W?
hCr #define STALL8 0x0300 //堵转查询时间在8步以后
2qPQ3-' /******************************************************************************************************
GtkZ%<KF9 DRIVE驱动控制寄存器
g42f*~l ******************************************************************************************************/
3/*<i //0110 0000 0101 0100
:{x
#define IDRIVEP50 0x0000 //高门级驱动电流50mA
;\gHFG} #define IDRIVEP100 0x0400 //高门级驱动电流100mA
e'&<DE) #define IDRIVEP150 0x0800 //高门级驱动电流150mA
NXdT"O=P #define IDRIVEP200 0x0C00 //高门级驱动电流200mA
$GX9-^og=T V,>uM
>$ #define IDRIVEN100 0x0000 //低门级驱动电流100mA
HKYJgx #define IDRIVEN200 0x0100 //低门级驱动电流200mA
RhI>Ak;- #define IDRIVEN300 0x0200 //低门级驱动电流300mA
\-RVPa8k #define IDRIVEN400 0x0300 //低门级驱动电流400mA
o'!WW AHdh]pfH #define TDRIVEP250 0x0000 //高门级驱动时间250nS
*!L
it:H #define TDRIVEP500 0x0040 //高门级驱动时间500nS
E(0 [/N~ #define TDRIVEP1000 0x0080 //高门级驱动时间1000nS
ZvkBF9d #define TDRIVEP2000 0x00C0 //高门级驱动时间2000nS
u;=a=>05IR ~k/GmH #define TDRIVEN250 0x0000 //低门级驱动时间250nS
Uf<IXx&; #define TDRIVEN500 0x0010 //低门级驱动时间500nS
kUQdi%3yY; #define TDRIVEN1000 0x0020 //低门级驱动时间1000nS
Y1L7s H 9 #define TDRIVEN2000 0x0030 //低门级驱动时间2000nS
_2nNCu ( #B8V2_M #define OCPDEG1 0x0000 //过流峰值时间1uS
Lb%:u5X\D@ #define OCPDEG2 0x0040 //过流峰值时间2uS
Dt]*M_ #define OCPDEG4 0x0080 //过流峰值时间4uS
LABLT;c #define OCPDEG8 0x00C0 //过流峰值时间8uS
eC*-/$D zM++Z* #define OCPTH250 0x0000 //过流保护电压250mV
V.~C.x #define OCPTH500 0x0001 //过流保护电压500mV
:DR}lOi` #define OCPTH750 0x0002 //过流保护电压750mV
xQ@gh
( ( #define OCPTH1000 0x0003 //过流保护电压1000mV
992cy2,Fb /******************************************************************************************************
S '%!KGVe STATUS状态控制寄存器
[qQ~\] ******************************************************************************************************/
*N3X"2X: //0000 0000 0000 0000
KcF#c_f
#define STDLAT 0x0007 //堵转状态
'U'Y[*m@ #define STD 0x0006 //堵转
QOKE9R#Y #define UVLO 0x0005 //堵转
f>jAu;S #define BPDF 0x0004 //B相欠压保护
xGo,x+U* #define APDF 0x0003 //A相欠压保护
B&4NdL/ #define BOCP 0x0002 //B相过流关机
ewp&QH4 #define AOCP 0x0001 //A相过流关机
$+p4X# _ #define OTS 0x0000 //过温关机
1g bqHxWI [ 此帖被herohezi在2015-08-18 13:16重新编辑 ]