Commit Graph

6 Commits

Author SHA1 Message Date
Markus Hitter be6ca4c857 ARM, AVR: support inverted heater pin signals.
Implemented and tested for both platforms. This is quite a big
commit. Unlike with the previous changes to now choosable PWM
frequencies, all board configuration files and Configtool had
to be changed immediately to deal with the additional parameter
in DEFINE_HEATER() and keep AVR builds working (and regression
tests passing).
2015-08-13 17:12:10 +02:00
Markus Hitter a1ef39f1f0 ARM: allow non-PWM pins as heater output.
Just like with AVR, they're simply set as a GPIO output and
turned on and off as needed.

Bed heater and temp sensor not yet re-enabled, because Gen7-ARM
has a driver MOSFET for the bed, which needs an inverted signal.
It can be enabled for testing; M106 P1 S2 turns it on, M106 P1 S20
turns it off. Not the way it should work.
2015-08-13 16:41:33 +02:00
Markus Hitter 10310e9d19 heater-arm.c: respect configured PWM frequencies.
Especially at high frequencies the achieved one is only close,
but that's entirely sufficient for our purposes.

Test: the PWM frequency on the scope should be similar to the
one configures in the board file with DEFINE_HEATER().
2015-08-13 16:41:33 +02:00
Markus Hitter 857fef578b heater-arm.c: turn on only timers needed.
OK, that's kind of nitpicking ...

Test: PWM pins should work as before.
2015-08-13 16:41:33 +02:00
Markus Hitter 1aeb04329c heater-arm.c: implement heater_set().
Works very nicely from full off (M106 S0) to full on (M106 S255).

Test: M106 should work now as expected. M106 S0 should turn full
off, M106 S255 should turn full on, both without any spike on the
scope.
2015-08-13 16:41:33 +02:00
Markus Hitter d7b59e2d33 ARM: implement heater-arm.c partially.
Currently at a fixed frequency of 1 kHz and with a fixed duty
cycle of 10%, but PWM does work.

As it turns out, PIO0_11 is not usable for PWM, because its timer
is already in use for the Step timer, and had to be disabled for
Gen7-ARM.

Test: define a heater in board.gen7-arm.h and a square signal
of 1 kHz with 10% duty cycle should appear on the heater pin.
2015-08-13 16:41:33 +02:00