@@ -17,7 +17,8 @@ TMC5240 g_tmc5240;
17
17
18
18
portMUX_TYPE timerMux2 = portMUX_INITIALIZER_UNLOCKED;
19
19
20
- unsigned int TMC5240::readXactual (void ) {
20
+ unsigned int TMC5240::readXactual (void )
21
+ {
21
22
unsigned char spi_write_read_data[10 ];
22
23
23
24
unsigned int data_r, data_l;
@@ -47,7 +48,9 @@ unsigned int TMC5240::readXactual(void) {
47
48
digitalWrite (SPI_CS_L, HIGH);
48
49
SPI.endTransaction ();
49
50
50
- data_l = ((unsigned int )spi_write_read_data[1 ] << 24 ) | ((unsigned int )spi_write_read_data[2 ] << 16 ) | ((unsigned int )spi_write_read_data[3 ] << 8 ) | ((unsigned int )spi_write_read_data[4 ]);
51
+ data_l = ((unsigned int )spi_write_read_data[1 ] << 24 ) |
52
+ ((unsigned int )spi_write_read_data[2 ] << 16 ) |
53
+ ((unsigned int )spi_write_read_data[3 ] << 8 ) | ((unsigned int )spi_write_read_data[4 ]);
51
54
52
55
for (int i = 0 ; i < 0xff ; i++) {
53
56
asm (" nop \n " );
@@ -78,13 +81,15 @@ unsigned int TMC5240::readXactual(void) {
78
81
SPI.endTransaction ();
79
82
portEXIT_CRITICAL_ISR (&timerMux2);
80
83
81
- data_r = ((unsigned int )spi_write_read_data[1 ] << 24 ) | ((unsigned int )spi_write_read_data[2 ] << 16 ) | ((unsigned int )spi_write_read_data[3 ] << 8 ) | ((unsigned int )spi_write_read_data[4 ]);
84
+ data_r = ((unsigned int )spi_write_read_data[1 ] << 24 ) |
85
+ ((unsigned int )spi_write_read_data[2 ] << 16 ) |
86
+ ((unsigned int )spi_write_read_data[3 ] << 8 ) | ((unsigned int )spi_write_read_data[4 ]);
82
87
83
88
return (unsigned int )(abs ((int )data_r) + abs ((int )data_l));
84
89
}
85
90
86
- void TMC5240::write (unsigned char add, unsigned int data_l, unsigned int data_r) {
87
-
91
+ void TMC5240::write (unsigned char add, unsigned int data_l, unsigned int data_r)
92
+ {
88
93
unsigned char spi_write_data[10 ];
89
94
90
95
portENTER_CRITICAL_ISR (&timerMux2);
@@ -114,24 +119,31 @@ void TMC5240::write(unsigned char add, unsigned int data_l, unsigned int data_r)
114
119
portEXIT_CRITICAL_ISR (&timerMux2);
115
120
}
116
121
117
- void TMC5240::init (void ) {
122
+ void TMC5240::init (void )
123
+ {
118
124
SPI.begin (SPI_CLK, SPI_MISO, SPI_MOSI);
119
125
120
- pinMode (SPI_CS_L, OUTPUT); // left
126
+ pinMode (SPI_CS_L, OUTPUT); // left
121
127
pinMode (SPI_CS_R, OUTPUT); // right
122
128
pinMode (SPI_CS_J, OUTPUT);
123
129
digitalWrite (SPI_CS_L, HIGH);
124
130
digitalWrite (SPI_CS_R, HIGH);
125
131
digitalWrite (SPI_CS_J, HIGH);
126
132
127
- g_tmc5240.write (TMC5240_DRV_CONF, 0x00000031 , 0x00000031 ); // Current Range 2A 800V/us
128
- g_tmc5240.write (TMC5240_IHOLD_IRUN, 0x01041C03 , 0x01041C03 ); // IHOLDDELAY=4 IRUN=28/32 IHOLD=3/32 2A設定時ピーク1.5A、実効値1.06A
129
- g_tmc5240.write (TMC5240_CHOPCONG, 0x04000001 , 0x04000001 ); // MRES=0 1/16step TOFFTime=1 1以上でないとモータが動作しない
130
- g_tmc5240.write (TMC5240_PWMCONF, 0xC40E001D , 0xC40E001D ); // PWM 48.8kHz
131
- g_tmc5240.write (TMC5240_RAMPMODE, 0x00000001 , 0x00000001 ); // velocity mode(positive)
132
- g_tmc5240.write (TMC5240_GCONF, 0x00000000 , 0x00000010 ); // 右のみシャフトインバース
133
- g_tmc5240.write (TMC5240_AMAX, 0x3ffff , 0x3ffff ); // 加速度max 17..0 18bit
134
- g_tmc5240.write (TMC5240_XACTUAL, 0 , 0 ); // 初期化
135
- g_tmc5240.write (TMC5240_VSTART, (unsigned int )(MIN_SPEED / TMC5240_VELOCITY), (unsigned int )(MIN_SPEED / TMC5240_VELOCITY));
133
+ g_tmc5240.write (TMC5240_DRV_CONF, 0x00000031 , 0x00000031 ); // Current Range 2A 800V/us
134
+ g_tmc5240.write (
135
+ TMC5240_IHOLD_IRUN, 0x01041C03 ,
136
+ 0x01041C03 ); // IHOLDDELAY=4 IRUN=28/32 IHOLD=3/32 2A設定時ピーク1.5A、実効値1.06A
137
+ g_tmc5240.write (
138
+ TMC5240_CHOPCONG, 0x04000001 ,
139
+ 0x04000001 ); // MRES=0 1/16step TOFFTime=1 1以上でないとモータが動作しない
140
+ g_tmc5240.write (TMC5240_PWMCONF, 0xC40E001D , 0xC40E001D ); // PWM 48.8kHz
141
+ g_tmc5240.write (TMC5240_RAMPMODE, 0x00000001 , 0x00000001 ); // velocity mode(positive)
142
+ g_tmc5240.write (TMC5240_GCONF, 0x00000000 , 0x00000010 ); // 右のみシャフトインバース
143
+ g_tmc5240.write (TMC5240_AMAX, 0x3ffff , 0x3ffff ); // 加速度max 17..0 18bit
144
+ g_tmc5240.write (TMC5240_XACTUAL, 0 , 0 ); // 初期化
145
+ g_tmc5240.write (
146
+ TMC5240_VSTART, (unsigned int )(MIN_SPEED / TMC5240_VELOCITY),
147
+ (unsigned int )(MIN_SPEED / TMC5240_VELOCITY));
136
148
g_tmc5240.write (TMC5240_VMAX, 0 , 0 );
137
149
}
0 commit comments