Make fast PWM optional.
In some cases the heater switching MOSFETs overheat and using a lower PWM frequency is advised. See also: http://reprap.org/wiki/Gen7_Research#Heat_vs._PWM_Frequency
This commit is contained in:
parent
56258a3908
commit
86e20580f8
|
|
@ -440,6 +440,13 @@ PWM value for 'off'
|
||||||
*/
|
*/
|
||||||
#define TH_COUNT 8
|
#define TH_COUNT 8
|
||||||
|
|
||||||
|
/** \def FAST_PWM
|
||||||
|
Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a 20(16) MHz electronics. The faster one is the default, as it's what most other firmwares do. It can make the heater MOSFETs pretty hot, though.
|
||||||
|
|
||||||
|
Comment this option out if your MOSFETs overheat. Drawback is, in a quiet environment you might notice the heaters and your power supply humming, then.
|
||||||
|
*/
|
||||||
|
#define FAST_PWM
|
||||||
|
|
||||||
/// this is the scaling of internally stored PID values. 1024L is a good value
|
/// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -447,6 +447,13 @@ DEFINE_TEMP_SENSOR(bed, TT_INTERCOM, 1, 0)
|
||||||
*/
|
*/
|
||||||
#define TH_COUNT 8
|
#define TH_COUNT 8
|
||||||
|
|
||||||
|
/** \def FAST_PWM
|
||||||
|
Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a 20(16) MHz electronics. The faster one is the default, as it's what most other firmwares do. It can make the heater MOSFETs pretty hot, though.
|
||||||
|
|
||||||
|
Comment this option out if your MOSFETs overheat. Drawback is, in a quiet environment you might notice the heaters and your power supply humming, then.
|
||||||
|
*/
|
||||||
|
#define FAST_PWM
|
||||||
|
|
||||||
/// this is the scaling of internally stored PID values. 1024L is a good value
|
/// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -428,12 +428,19 @@ PWM value for 'off'
|
||||||
*/
|
*/
|
||||||
#define STEP_INTERRUPT_INTERRUPTIBLE 1
|
#define STEP_INTERRUPT_INTERRUPTIBLE 1
|
||||||
|
|
||||||
/*
|
/**
|
||||||
temperature history count. This is how many temperature readings to keep in order to calculate derivative in PID loop
|
temperature history count. This is how many temperature readings to keep in order to calculate derivative in PID loop
|
||||||
higher values make PID derivative term more stable at the expense of reaction time
|
higher values make PID derivative term more stable at the expense of reaction time
|
||||||
*/
|
*/
|
||||||
#define TH_COUNT 8
|
#define TH_COUNT 8
|
||||||
|
|
||||||
|
/** \def FAST_PWM
|
||||||
|
Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a 20(16) MHz electronics. The faster one is the default, as it's what most other firmwares do. It can make the heater MOSFETs pretty hot, though.
|
||||||
|
|
||||||
|
Comment this option out if your MOSFETs overheat. Drawback is, in a quiet environment you might notice the heaters and your power supply humming, then.
|
||||||
|
*/
|
||||||
|
#define FAST_PWM
|
||||||
|
|
||||||
// this is the scaling of internally stored PID values. 1024L is a good value
|
// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -446,6 +446,13 @@ PWM value for 'off'
|
||||||
*/
|
*/
|
||||||
#define TH_COUNT 8
|
#define TH_COUNT 8
|
||||||
|
|
||||||
|
/** \def FAST_PWM
|
||||||
|
Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a 20(16) MHz electronics. The faster one is the default, as it's what most other firmwares do. It can make the heater MOSFETs pretty hot, though.
|
||||||
|
|
||||||
|
Comment this option out if your MOSFETs overheat. Drawback is, in a quiet environment you might notice the heaters and your power supply humming, then.
|
||||||
|
*/
|
||||||
|
// #define FAST_PWM
|
||||||
|
|
||||||
/// this is the scaling of internally stored PID values. 1024L is a good value
|
/// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -440,6 +440,13 @@ PWM value for 'off'
|
||||||
*/
|
*/
|
||||||
#define TH_COUNT 8
|
#define TH_COUNT 8
|
||||||
|
|
||||||
|
/** \def FAST_PWM
|
||||||
|
Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a 20(16) MHz electronics. The faster one is the default, as it's what most other firmwares do. It can make the heater MOSFETs pretty hot, though.
|
||||||
|
|
||||||
|
Comment this option out if your MOSFETs overheat. Drawback is, in a quiet environment you might notice the heaters and your power supply humming, then.
|
||||||
|
*/
|
||||||
|
#define FAST_PWM
|
||||||
|
|
||||||
/// this is the scaling of internally stored PID values. 1024L is a good value
|
/// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -445,6 +445,13 @@ PWM value for 'off'
|
||||||
*/
|
*/
|
||||||
#define TH_COUNT 8
|
#define TH_COUNT 8
|
||||||
|
|
||||||
|
/** \def FAST_PWM
|
||||||
|
Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a 20(16) MHz electronics. The faster one is the default, as it's what most other firmwares do. It can make the heater MOSFETs pretty hot, though.
|
||||||
|
|
||||||
|
Comment this option out if your MOSFETs overheat. Drawback is, in a quiet environment you might notice the heaters and your power supply humming, then.
|
||||||
|
*/
|
||||||
|
#define FAST_PWM
|
||||||
|
|
||||||
/// this is the scaling of internally stored PID values. 1024L is a good value
|
/// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -444,6 +444,13 @@ PWM value for 'off'
|
||||||
*/
|
*/
|
||||||
#define TH_COUNT 8
|
#define TH_COUNT 8
|
||||||
|
|
||||||
|
/** \def FAST_PWM
|
||||||
|
Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a 20(16) MHz electronics. The faster one is the default, as it's what most other firmwares do. It can make the heater MOSFETs pretty hot, though.
|
||||||
|
|
||||||
|
Comment this option out if your MOSFETs overheat. Drawback is, in a quiet environment you might notice the heaters and your power supply humming, then.
|
||||||
|
*/
|
||||||
|
#define FAST_PWM
|
||||||
|
|
||||||
/// this is the scaling of internally stored PID values. 1024L is a good value
|
/// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -444,6 +444,13 @@ PWM value for 'off'
|
||||||
*/
|
*/
|
||||||
#define TH_COUNT 8
|
#define TH_COUNT 8
|
||||||
|
|
||||||
|
/** \def FAST_PWM
|
||||||
|
Teacup offers two PWM frequencies, 76(61) Hz and 78000(62500) Hz on a 20(16) MHz electronics. The faster one is the default, as it's what most other firmwares do. It can make the heater MOSFETs pretty hot, though.
|
||||||
|
|
||||||
|
Comment this option out if your MOSFETs overheat. Drawback is, in a quiet environment you might notice the heaters and your power supply humming, then.
|
||||||
|
*/
|
||||||
|
#define FAST_PWM
|
||||||
|
|
||||||
/// this is the scaling of internally stored PID values. 1024L is a good value
|
/// this is the scaling of internally stored PID values. 1024L is a good value
|
||||||
#define PID_SCALE 1024L
|
#define PID_SCALE 1024L
|
||||||
|
|
||||||
|
|
|
||||||
20
mendel.c
20
mendel.c
|
|
@ -186,13 +186,29 @@ void io_init(void) {
|
||||||
|
|
||||||
// setup PWM timers: fast PWM, no prescaler
|
// setup PWM timers: fast PWM, no prescaler
|
||||||
TCCR0A = MASK(WGM01) | MASK(WGM00);
|
TCCR0A = MASK(WGM01) | MASK(WGM00);
|
||||||
TCCR0B = MASK(CS00);
|
// PWM frequencies in TCCR0B, see page 108 of the ATmega644 reference.
|
||||||
|
TCCR0B = MASK(CS00); // F_CPU / 256 (about 78(62.5) kHz on a 20(16) MHz chip)
|
||||||
|
//TCCR0B = MASK(CS01); // F_CPU / 256 / 8 (about 9.8(7.8) kHz)
|
||||||
|
//TCCR0B = MASK(CS00) | MASK(CS01); // F_CPU / 256 / 64 (about 1220(977) Hz)
|
||||||
|
//TCCR0B = MASK(CS02); // F_CPU / 256 / 256 (about 305(244) Hz)
|
||||||
|
#ifndef FAST_PWM
|
||||||
|
TCCR0B = MASK(CS00) | MASK(CS02); // F_CPU / 256 / 1024 (about 76(61) Hz)
|
||||||
|
#endif
|
||||||
TIMSK0 = 0;
|
TIMSK0 = 0;
|
||||||
OCR0A = 0;
|
OCR0A = 0;
|
||||||
OCR0B = 0;
|
OCR0B = 0;
|
||||||
|
|
||||||
TCCR2A = MASK(WGM21) | MASK(WGM20);
|
TCCR2A = MASK(WGM21) | MASK(WGM20);
|
||||||
TCCR2B = MASK(CS20);
|
// PWM frequencies in TCCR2B, see page 156 of the ATmega644 reference.
|
||||||
|
TCCR2B = MASK(CS20); // F_CPU / 256 (about 78(62.5) kHz on a 20(16) MHz chip)
|
||||||
|
//TCCR2B = MASK(CS21); // F_CPU / 256 / 8 (about 9.8(7.8) kHz)
|
||||||
|
//TCCR2B = MASK(CS20) | MASK(CS21); // F_CPU / 256 / 32 (about 2.4(2.0) kHz)
|
||||||
|
//TCCR2B = MASK(CS22); // F_CPU / 256 / 64 (about 1220(977) Hz)
|
||||||
|
//TCCR2B = MASK(CS20) | MASK(CS22); // F_CPU / 256 / 128 (about 610(488) Hz)
|
||||||
|
//TCCR2B = MASK(CS21) | MASK(CS22); // F_CPU / 256 / 256 (about 305(244) Hz)
|
||||||
|
#ifndef FAST_PWM
|
||||||
|
TCCR2B = MASK(CS20) | MASK(CS21) | MASK(CS22); // F_CPU / 256 / 1024
|
||||||
|
#endif
|
||||||
TIMSK2 = 0;
|
TIMSK2 = 0;
|
||||||
OCR2A = 0;
|
OCR2A = 0;
|
||||||
OCR2B = 0;
|
OCR2B = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue