Testprogram for TMC2209-Library. Uses Speed-Control via VACTUAL instead of Step/Dir
Dependencies: TMCStepper mRotaryEncoder-os
Diff: main.cpp
- Revision:
- 9:babbfb61d347
- Parent:
- 8:f44d70665051
- Child:
- 10:376299814a3b
--- a/main.cpp Thu Apr 22 18:11:49 2021 +0000
+++ b/main.cpp Thu Dec 02 20:30:09 2021 +0000
@@ -96,11 +96,31 @@
// disable Driver
enn=1;
+ // wait for Hhardware to settle
+ ThisThread::sleep_for(100ms);
// Initialize Stepper
printf("connecting to TMC-Module...\r\n");
stepper.begin(); // UART: Init SW UART (if selected) with default baudrate
- printf("TMC-Version: %02X\r\n",stepper.version());
+
+ //read and check version - must be 0x21
+ uint8_t tmc_version = stepper.version();
+ printf("TMC-Version: %02X\r\n",tmc_version);
+ if (tmc_version != 0x21) {
+ printf("Wrong TMC-Version(not 0x21) or communication error!! STOPPING!!!\r\n");
+ if (stepper.CRCerror) {
+ printf("CRC-Error!!!\r\n");
+ }
+ while (1) {
+ ledCW = 1;
+ ledCCW = 0;
+ ThisThread::sleep_for(50ms);
+ ledCW = 0;
+ ledCCW = 1;
+ ThisThread::sleep_for(50ms);
+ };
+ }
+
stepper.push(); // initialize all registers??? required?
stepper.toff(3); // Enables driver in software - 3, 5 ????
@@ -138,17 +158,18 @@
// do a peep by setting vactual to a too high speed
- stepper.VACTUAL(50000*MICROSTEPS);
- ThisThread::sleep_for(1s);
+ //stepper.VACTUAL(50000*MICROSTEPS);
+ //ThisThread::sleep_for(1s);
// initialize Automatic tunig (Chap 6.1)
+ printf("Start automatic tunig Chap6.1 .....");
stepper.VACTUAL(1);
stepper.VACTUAL(0);
ThisThread::sleep_for(100ms);
stepper.VACTUAL(500*MICROSTEPS);
ThisThread::sleep_for(2s);
stepper.VACTUAL(0);
-
+ printf("done\r\n");
diag.rise(&trigger_diag);