Commit Graph

110 Commits (be5ed1ece8ea4524a2e1c16c33b4678572c3cd8a)

Author SHA1 Message Date
D.R.racer 1a5cd52d58 Fix some doxygen comments 2021-09-29 13:28:34 +02:00
D.R.racer 43c953b7f1 Fix appending newline character in puts* methods 2021-09-27 11:15:20 +02:00
D.R.racer 304988fc6c Simple debug logging via USART1
Encapsulates the #define macros and AVR implementation of dumping strings
(RAM and PROGMEM) onto USART1.
2021-09-27 11:15:20 +02:00
D.R.racer b6d630d1c9 Clean up the code + introduce USB CDC module
... and tune some more namespaces
2021-09-23 13:06:36 +02:00
Alex Voinea 4f6ea16515 Functional USB reset 2021-09-20 19:01:08 +02:00
Alex Voinea 9f0f7bc33b Fix limits.h naming conflict 2021-09-20 18:18:52 +02:00
D.R.racer b9811e3c21 Fix indentation 2021-09-20 17:18:46 +02:00
Alex Voinea fbe8d3d6cd Simplify logic 2021-09-20 17:10:10 +02:00
Alex Voinea 89a2bdc7e4 Fix configuration compute() math 2021-09-20 17:10:10 +02:00
Alex Voinea 0e9802c4cd watchdog configuration 2021-09-20 17:10:10 +02:00
Alex Voinea e86def99f9 Add Disable and use the avrlibc wdt functions 2021-09-20 17:09:54 +02:00
Alex Voinea 954ef2fb8d Reset the board using the cpu hal instead of the watchdog hal
Also some naming changes
2021-09-20 17:09:54 +02:00
D.R.racer a23ed5e1bf Add watchdog implementation + use it in main() 2021-09-20 17:09:09 +02:00
Alex Voinea d1fd815e0c Quick and dirty workaround 2021-09-20 16:36:44 +02:00
Alex Voinea 7fe6f6c9eb Simplify logic 2021-09-20 16:28:53 +02:00
Alex Voinea cf636ec095 Fix configuration compute() math 2021-09-20 16:28:53 +02:00
Alex Voinea 06b959bb66 watchdog configuration 2021-09-20 16:28:53 +02:00
Alex Voinea a433db5648 Add Disable and use the avrlibc wdt functions 2021-09-20 16:28:42 +02:00
Alex Voinea 56eee8dcfb Reset the board using the cpu hal instead of the watchdog hal
Also some naming changes
2021-09-20 16:28:42 +02:00
D.R.racer 324ced6807 Add watchdog implementation + use it in main() 2021-09-20 16:28:17 +02:00
Alex Voinea bec3f73864 Fix typo
typo
2021-09-16 10:30:27 +02:00
Alex Voinea 91f622fcdc Tighter TPWMTHRS at standstill 2021-09-16 10:30:27 +02:00
Alex Voinea e0babfa4ba Updated motor currents and added freewheeling 2021-09-16 10:30:27 +02:00
D.R.racer ac78619b5b Cache TMC error flags inside movable_base class 2021-09-02 08:35:56 +02:00
D.R.racer 309d4704b7 Fix return value of TMC2130::Init 2021-09-02 08:35:56 +02:00
D.R.racer 161e46b09a Add unit tests for failing TMC
more stuff will follow as these situations seem to cause various issues
2021-09-02 08:35:56 +02:00
D.R.racer 712b67beb4 Add checking of TMC2130 error states for Idler and Selector
we shall think about the Pulley as well, it looks like it should get its
own class just like Idler and Selector as it behaves very similarly in terms
of stepping and error checking
2021-09-02 08:35:56 +02:00
D.R.racer 5571e77809 Improve/fix some comments 2021-09-02 08:35:56 +02:00
Yuri D'Elia 1f2662518b Fix gpio::TogglePin on AVR
TogglePin was incorrectly using the PINx pin for toggling, causing the
current pins (in addition to the requested ones) to be toggled, causing
stepping havoc.
2021-08-30 07:06:28 +02:00
Yuri D'Elia 288e74283d Introduce config::MRes and fix (real) axis units
The parameter config::AxisConfig::uSteps was supposed to be
microstepping resolution, but it's instead being used as the driver's
MRES directly.

To avoid a runtime conversion, rename the field to mRes and define a new
enum listing all the possible (and valid) microstepping resolutions.

This simplifies the code and makes clear the stepsPerUnit scale.

Assign correct stepsPerUnit to all axes as a result, including working
limits.
2021-08-25 09:16:56 +02:00
Yuri D'Elia f7f0df4afa Move hal/avr/tmc2130 into hal/ directly
There are no dependencies on AVR in TMC2130, so move into the main tree
2021-08-25 07:57:19 +02:00
Yuri D'Elia 0548c17078 Motion: test low-level enable changes via GPIO stub
This fixes the driver's enable/disable incorrectly setting the direction
bit instead.
2021-08-25 07:57:19 +02:00
Alex Voinea fc2fce1230 Even more shr16 documentation 2021-08-23 08:18:47 +02:00
Alex Voinea 55ac3d5c32 Update documentation 2021-08-23 08:18:47 +02:00
D.R.racer 2f5dff6c5b Introduce short namespace aliases
especially for modules
2021-08-04 11:03:56 +02:00
Alex Voinea 9232e55563 millis interrupt 2021-08-04 10:51:33 +02:00
D.R.racer ef96d998a3 Link top level error reporting to TMC2130 error flags 2021-08-02 07:45:45 +02:00
D.R.racer df2c1ba7fe Add prototype of unified handling of HW errors in the logic layer 2021-08-02 07:45:45 +02:00
D.R.racer b61836dd57 Remove shifting in config for TMC + add compile-time checks 2021-07-29 10:01:33 +02:00
D.R.racer a8147be803 Fix unit tests + rebase onto main + extract TMC parameters into config 2021-07-29 10:01:33 +02:00
Alex Voinea aca2cb7e79 tmc: Error flags 2021-07-29 10:01:33 +02:00
Alex Voinea 8577852b09 tmc2130: Stallguard and Isr 2021-07-29 10:01:33 +02:00
D.R.racer 3d1880c006 Make tests compile
Introduces a nasty hack to forcefully write into the constexpr SPI descriptor's registers
(which is the correct way in ASM, but kind of cumbersome in C++ now)
2021-07-29 10:01:33 +02:00
Alex Voinea 364f1bcb0d tmc2130: error handling stack overflow fix 2021-07-29 10:01:33 +02:00
Alex Voinea 2cdc3bfbc4 tmc2130: report error during init 2021-07-29 10:01:33 +02:00
Alex Voinea 3f20ff88ee Reorder functions 2021-07-29 10:01:33 +02:00
Alex Voinea b97aefcb5c tmc2130: More functions 2021-07-29 10:01:33 +02:00
Alex Voinea 129a89cf07 Fix stall detection polarity 2021-07-29 10:01:33 +02:00
Alex Voinea 5f83667b22 Finish init sequence 2021-07-29 10:01:33 +02:00
Alex Voinea e9046eed42 tmc2130: More init 2021-07-29 10:01:33 +02:00