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
d071a6abf6
TMC pin map
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
Alex Voinea
1022603f9d
tmc2130: Initial spi communication
2021-07-29 10:01:33 +02:00
Alex Voinea
e2ba71fc03
tmc2130: Define the SPI bus for the tmc drivers
2021-07-29 10:01:33 +02:00
Alex Voinea
d484685e02
tmc2130: Registers
2021-07-29 10:01:33 +02:00
DRracer
151a672f56
Merge pull request #71 from wavexx/motion_units
...
Motion units
2021-07-27 06:34:32 +02:00
D.R.racer
7f39f07679
Avoid repeated Enable/Disable on an axis if already in desired state
2021-07-27 06:25:01 +02:00
Yuri D'Elia
1abc8713bb
Fix ejectLength typo
2021-07-26 11:22:40 +02:00
DRracer
dc36afb82c
Merge branch 'main' into motion_units
2021-07-26 09:35:13 +02:00
D.R.racer
8a1df52d79
Add support for reporting MMU errors via S3 msg
2021-07-26 09:34:40 +02:00
D.R.racer
6af65bc4c8
Rename ISR -> Isr to avoid clash with AVR libc ISR #define
2021-07-26 09:34:24 +02:00
D.R.racer
1f7a84a623
Support CR XOR LF in protocol's line ending implementation
...
Please note Windows CRLF sequence is not supported,
but a separate CR xor a separate LF works now.
This is a workaround for stupid terminals for debugging purposes,
and it is not necessary for the protocol to work on its own.
It may be removed in the future.
2021-07-26 09:34:02 +02:00
Alex Voinea
b109a520c2
buttons: Fix comment
2021-07-26 06:49:05 +02:00
Yuri D'Elia
5928ade6be
Improve motion::unitToAxisUnit template parameter names
2021-07-26 01:28:29 +02:00
Yuri D'Elia
051bce9098
Nicely format doxygen documentation
2021-07-25 23:50:01 +02:00
Yuri D'Elia
d955897829
Convert config::selectorSlotPositions to physical units
2021-07-25 23:13:28 +02:00
Yuri D'Elia
6daf7fd060
Convert config::idlerSlotPositions to physical units
2021-07-25 22:39:18 +02:00
Yuri D'Elia
b133c8b975
Simplify and enhance unit conversion
...
- Move unit/step conversion to modules/axisunit.h
- Unify motion::unitToAxisUnit<> and motion::unitToSteps<>,
making conversion in other modules just as easy as motion.
- Improve the documentation
2021-07-25 22:25:48 +02:00
Yuri D'Elia
187858d228
Move config/unit.h to unit.h and it's own namespace
2021-07-25 22:14:56 +02:00
Yuri D'Elia
49275b2cb2
Update eject_steps with the new unit API for demonstration
2021-07-25 17:25:37 +02:00
Yuri D'Elia
402a2b91ce
Define Motion::PlanMove/PlanMoveTo as constexpr
2021-07-25 17:08:15 +02:00
Yuri D'Elia
888cdf7cd5
Introduce compile-time axis unit type checks and conversions
...
Introduces:
- config::Unit: base class for physical quantities
- motion::AxisUnit: type-checked steps type
"config/unit.h" defines basic physical quantities, which are not
normally used elsewhere besides config.h.
"modules/axisunit.h" extends the modules::motion namespace with
Axis-aware units, with one type per axis per unit.
P_pos_t defines step positions for the pulley, I_pos_t for the idler,
etc. These are defined through the literar operators which are
similarly named and automatically convert a physical quantity to an
AxisUnit at compile time:
P_pos_t pulley_pos = 10.0_P_mm;
Besides type-checking, AxisUnit are otherwise identical to raw step
counts and are intended to be used along with the updated Motion API.
PlanMove/PlanMoveTo has been extended to support moves using these units
or physical quantities. Again, conversion is performed at compile time.
2021-07-25 16:39:54 +02:00
Yuri D'Elia
5e04d4ccaf
Add getters/setters for Jerk in Motion/PulseGen
...
This allows us to make tests that expect jerk to be the same across two
axes, even if they're statically configured differently.
2021-07-25 01:24:40 +02:00
Yuri D'Elia
606b22a9ad
Make Motion::Acceleration const
2021-07-25 01:17:25 +02:00
D.R.racer
777c830ac0
Add error handling and reporting documentation
...
and fix links from the main.dox page
2021-07-21 14:50:23 +02:00
D.R.racer
9d2f8b2b39
Fix indentation once again
...
please use the pre-commit script to solve indentation
2021-07-19 06:25:09 +02:00
Alan Dragomirecký
532f2fadb0
holly: Fix dependency downloading (clang-format)
2021-07-16 11:57:40 +02:00
D.R.racer
0744009955
Fix FW build - define (empty) TMC2130::Init
2021-07-14 09:00:40 +02:00
D.R.racer
f62cb99b13
Fix TMC2130 stub
...
so that motion unit tests build and run
2021-07-14 08:38:10 +02:00
DRracer
52e3c3375a
Merge pull request #47 from wavexx/motion_wip
...
WIP: Motion API
2021-07-14 08:26:49 +02:00
Yuri D'Elia
4160d019be
Motion: implement InitAxis
2021-07-13 20:44:09 +02:00
Yuri D'Elia
8f0732a0cc
Motion: initial StallGuard support
...
Add the code in the right position to sample StallGuard and set/reset
the trigger flag.
2021-07-13 20:36:43 +02:00
Yuri D'Elia
f28567a051
Motion tests: improve comments
2021-07-13 20:21:28 +02:00
Yuri D'Elia
eec95d6fb7
Motion: add assertions for stepTimerQuantum
2021-07-13 19:40:00 +02:00
Yuri D'Elia
324fb92fd5
Motion: implement timer multiplexing
2021-07-13 19:21:13 +02:00
D.R.racer
c81072d1d5
Add sending of response messages
2021-07-13 17:53:31 +02:00
Yuri D'Elia
d0581bf494
Motion: Add more methods and tests
...
- Add SetPosition/CurPosition (not only) for testing
- Implement some real tests
2021-07-13 17:43:50 +02:00
Yuri D'Elia
4fd22f0656
Motion: add initial test infrastructure and stubs
2021-07-13 16:16:56 +02:00
Yuri D'Elia
18ced44341
Merge remote-tracking branch 'upstream/main' into motion_wip
2021-07-13 15:31:31 +02:00
Yuri D'Elia
d9d769721f
hal/cpu: reformat
2021-07-13 15:24:43 +02:00
Yuri D'Elia
c7459df05e
PulseGen: improve comments.
2021-07-13 15:10:47 +02:00