Testprogram for TMC2209-Library. Uses Speed-Control via VACTUAL instead of Step/Dir

Dependencies:   TMCStepper mRotaryEncoder-os

Revision:
2:94c5b3f09463
Parent:
1:60419aa0c030
Child:
3:209a9c414f54
--- a/main.cpp	Thu Feb 04 21:35:45 2021 +0000
+++ b/main.cpp	Sat Feb 06 20:00:31 2021 +0000
@@ -1,31 +1,32 @@
-/* mbed Microcontroller Library
- * Copyright (c) 2019 ARM Limited
- * SPDX-License-Identifier: Apache-2.0
- */
-
 #include "mbed.h"
 #include "platform/mbed_thread.h"
+#include "TMCStepper.h"
+
+/*
+ Testprogram for TMCStepper-Library
+ TMCStepper based on https://github.com/teemuatlut/TMCStepper for Arduino
+ by https://github.com/teemuatlut
+ +++++
+ Tested with https://github.com/bigtreetech/BIGTREETECH-TMC2209-V1.2
+*/
 
 
 DigitalOut ledDir(LED2);
 //Virtual serial port over USB with 15200 baud 8N1
 static BufferedSerial host(USBTX, USBRX,115200);
 
-
-// apply number of steps, direction, speed and 
-// a linear acceleration/deceleration to a Stepper Motor Controller
-
-#include "TMCStepper.h"
- 
+// hardware parameters:
 // MOTOR Steps per Revolution ( 1/8 Microsteps, 200Steps per Rev / 1.8 degrees per FullStep)
 #define MSPR 1600
 // Gear Ratio
 #define GR 288
 
 #define DRIVER_ADDRESS 0b00 // TMC2209 Driver address according to MS1 and MS2
-#define R_SENSE 0.11f // Match to your driver
-#define MICROSTEPS 32
+#define R_SENSE 0.11f   // R-Sense in OHM .Match to your driver
+#define MICROSTEPS 128  // # of microsteps
+#define RMSCURRENT 500  // RMS current of Stepper Coil in mA
 
+// A TMCStepper-object with UART and given address and R-Sense
 //RX, TX, RS, Addr 
 TMC2209Stepper stepper(p14, p13, R_SENSE, DRIVER_ADDRESS);
 
@@ -48,9 +49,9 @@
  int main()
  {
     printf("\r\nConnected to mbed\r\n");
-    stepper.begin();                  // UART: Init SW UART (if selected) with default baudrate
-    stepper.toff(3);                  // Enables driver in software - 3, 5 ????
-    stepper.rms_current(800);         // Set motor RMS current in mA
+    stepper.begin();                    // UART: Init SW UART (if selected) with default baudrate
+    stepper.toff(3);                    // Enables driver in software - 3, 5 ????
+    stepper.rms_current(RMSCURRENT);    // Set motor RMS current in mA / min 500 for 24V/speed:3000
                                         // 1110, 800
     stepper.microsteps(MICROSTEPS);   // Set microsteps to 1:Fullstep ... 256: 1/256th
     stepper.en_spreadCycle(true);     // Toggle spreadCycle on TMC2208/2209/2224: default false, true: much faster!!!!
@@ -100,6 +101,8 @@
         // inverse direction
         shaft = !shaft;
         stepper.shaft(shaft);
+        // Read Interace-Count
+        printf("IFCNT(): %zu \r\n",stepper.IFCNT());
         printf("...\r\n");
    }
  }
\ No newline at end of file