|
发表于 2023-12-3 11:08:58
|
显示全部楼层
以下为初始化代码;
TMC5160_WriteReg(TMC5160_GSTAT, 0);
TMC5160_WriteReg(TMC5160_GSTAT, 0);
if(TMC5160_Status.bitStatus.reset_flag)
{
TMC5160_WriteReg(TMC5160_GSTAT, 0x00000001);
}
TMC5160_WriteReg(0x00, 0x0000000C); // writing value 0x0000000C = 12 = 0.0 to address 0 = 0x00(GCONF)
TMC5160_WriteReg(0x03, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 1 = 0x03(SLAVECONF)
TMC5160_WriteReg(0x05, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 2 = 0x05(X_COMPARE)
TMC5160_WriteReg(0x06, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 3 = 0x06(OTP_PROG)
TMC5160_WriteReg(0x08, 0x0000000C); // writing value 0x00000012 = 18 = 0.0 to address 4 = 0x08(FACTORY_CONF)
TMC5160_WriteReg(0x09, 0x00010606); // writing value 0x00010606 = 67078 = 0.0 to address 5 = 0x09(SHORT_CONF)
TMC5160_WriteReg(0x0A, 0x00080400); // writing value 0x00080400 = 525312 = 0.0 to address 6 = 0x0A(DRV_CONF)0x00080400
TMC5160_WriteReg(0x0B, GlobalScaler); // writing value 0x00000000 = 0 = 0.0 to address 7 = 0x0B(GLOBAL_SCALER)
TMC5160_WriteReg(0x11, 0x0000000F); // writing value 0x0000000A = 10 = 0.0 to address 9 = 0x11(TPOWERDOWN)
TMC5160_WriteReg(0x13, 0x0000007C); // writing value 0x0000007C = 124 = 0.0 to address 10 = 0x13(TPWMTHRS)
TMC5160_WriteReg(0x14, 0x000000C8); // writing value 0x00000062 = 98 = 0.0 to address 11 = 0x14(TCOOLTHRS) 0x00000062 ----- C8
TMC5160_WriteReg(0x15, 0x00000010); // writing value 0x00000010 = 16 = 0.0 to address 12 = 0x15(THIGH)
TMC5160_WriteReg(0x20, 0x00000000); // writing value 0x00000001 = 1 = 0.0 to address 13 = 0x20(RAMPMODE)
TMC5160_WriteReg(0x21, 0x00000000); // writing value 0x1F02B316 = 520270614 = 0.0 to address 14 = 0x21(XACTUAL)
TMC5160_WriteReg(0x23, 0x00000100); // writing value 0x00000000 = 0 = 0.0 to address 15 = 0x23(VSTART)
TMC5160_WriteReg(0x24, 0x000003E8); // writing value 0x00000000 = 0 = 0.0 to address 16 = 0x24(A1)
TMC5160_WriteReg(0x25, 0x0000C350); // writing value 0x00000000 = 0 = 0.0 to address 17 = 0x25(V1)
TMC5160_WriteReg(0x26, 0x000001F4); // writing value 0x00001394 = 5012 = 0.0 to address 18 = 0x26(AMAX)
TMC5160_WriteReg(0x27, 0x00030D40); // writing value 0x003CBF10 = 3981072 = 0.0 to address 19 = 0x27(VMAX)
TMC5160_WriteReg(0x28, 0x000002BC); // writing value 0x00000000 = 0 = 0.0 to address 20 = 0x28(DMAX)
TMC5160_WriteReg(0x2A, 0x00000578); // writing value 0x00000000 = 0 = 0.0 to address 21 = 0x2A(D1)
TMC5160_WriteReg(0x2B, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 22 = 0x2B(VSTOP) 0x0000000A -----
TMC5160_WriteReg(0x2C, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 23 = 0x2C(TZEROWAIT)
TMC5160_WriteReg(0x2D, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 24 = 0x2D(XTARGET) 0xFFFF3800
TMC5160_WriteReg(0x33, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 25 = 0x33(VDCMIN)
TMC5160_WriteReg(0x34, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 26 = 0x34(SW_MODE)
TMC5160_WriteReg(0x38, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 27 = 0x38(ENCMODE)
TMC5160_WriteReg(0x39, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 28 = 0x39(X_ENC)
TMC5160_WriteReg(0x3A, 0x00010000); // writing value 0x00010000 = 65536 = 0.0 to address 29 = 0x3A(ENC_CONST)
TMC5160_WriteReg(0x3D, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 30 = 0x3D(ENC_DEVIATION)
TMC5160_WriteReg(0x60, 0xAAAAB554); // writing value 0xAAAAB554 = 0 = 0.0 to address 31 = 0x60(MSLUT[0])
TMC5160_WriteReg(0x61, 0x4A9554AA); // writing value 0x4A9554AA = 1251300522 = 0.0 to address 32 = 0x61(MSLUT[1])
TMC5160_WriteReg(0x62, 0x24492929); // writing value 0x24492929 = 608774441 = 0.0 to address 33 = 0x62(MSLUT[2])
TMC5160_WriteReg(0x63, 0x10104222); // writing value 0x10104222 = 269500962 = 0.0 to address 34 = 0x63(MSLUT[3])
TMC5160_WriteReg(0x64, 0xFBFFFFFF); // writing value 0xFBFFFFFF = 0 = 0.0 to address 35 = 0x64(MSLUT[4])
TMC5160_WriteReg(0x65, 0xB5BB777D); // writing value 0xB5BB777D = 0 = 0.0 to address 36 = 0x65(MSLUT[5])
TMC5160_WriteReg(0x66, 0x49295556); // writing value 0x49295556 = 1227445590 = 0.0 to address 37 = 0x66(MSLUT[6])
TMC5160_WriteReg(0x67, 0x00404222); // writing value 0x00404222 = 4211234 = 0.0 to address 38 = 0x67(MSLUT[7])
TMC5160_WriteReg(0x68, 0xFFFF8056); // writing value 0xFFFF8056 = 0 = 0.0 to address 39 = 0x68(MSLUTSEL)
TMC5160_WriteReg(0x69, 0x00F70000); // writing value 0x00F70000 = 16187392 = 0.0 to address 40 = 0x69(MSLUTSTART)
TMC5160_WriteReg(0x6C, 0X00A10103); // writing value 0x00410003 = 4259843 = 0.0 to address 41 = 0x6C(CHOPCONF)
TMC5160_WriteReg(0x6D, 0x017B0000); // writing value 0x017B0000 = 24838144 = 0.0 to address 42 = 0x6D(COOLCONF)
TMC5160_WriteReg(0x6E, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 43 = 0x6E(DCCTRL)
TMC5160_WriteReg(0x70, 0xC40C011E); // writing value 0xC40C011E = 0 = 0.0 to address 44 = 0x70(PWMCONF)
TMC5160_WriteReg(TMC5160_SWMODE,0x0C);
//TMC5160_Set_Current(mId, 10, 10,20);
uint32_t temp;
uint16_t delay=20;
temp=delay;
temp=temp<<8;
uint8_t iHold=6;
uint8_t iRun=15;
temp=temp|iRun;
temp=temp<<8;
temp=temp|iHold;
TMC5160_WriteReg(TMC5160_IHOLD_IRUN,temp);
TMC5160_WriteReg(TMC5160_RAMPMODE,0x00);//位置模式 |
|