aboutsummaryrefslogtreecommitdiff
path: root/hwdef-Mateminco_MF01S.h
diff options
context:
space:
mode:
authorSelene ToyKeeper2019-07-18 14:16:39 -0600
committerSelene ToyKeeper2019-07-18 14:16:39 -0600
commit859dc12504f282960164d82de4e1ac345cce3b8a (patch)
tree079d9af24913f36191308aa27d748710ff11b0bd /hwdef-Mateminco_MF01S.h
parentUpdated Anduril UI diagram to add all new features (diff)
parentsmoothed out MF01S tint "pop" a little more by making a few steps which are s... (diff)
downloadanduril-859dc12504f282960164d82de4e1ac345cce3b8a.tar.gz
anduril-859dc12504f282960164d82de4e1ac345cce3b8a.tar.bz2
anduril-859dc12504f282960164d82de4e1ac345cce3b8a.zip
merged Mateminco MF01S / MT18 branch, adding support for the new light
Diffstat (limited to 'hwdef-Mateminco_MF01S.h')
-rw-r--r--hwdef-Mateminco_MF01S.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/hwdef-Mateminco_MF01S.h b/hwdef-Mateminco_MF01S.h
new file mode 100644
index 0000000..ab1c5bf
--- /dev/null
+++ b/hwdef-Mateminco_MF01S.h
@@ -0,0 +1,60 @@
+#ifndef HWDEF_MF01S_H
+#define HWDEF_MF01S_H
+
+/* MF01S driver layout
+ * ----
+ * Reset -|1 8|- VCC (unused)
+ * eswitch -|2 7|- Voltage divider (2S)
+ * AUX LED -|3 6|- PWM (FET)
+ * GND -|4 5|- PWM (smaller FET)
+ * ----
+ */
+
+#define PWM_CHANNELS 2
+
+#ifndef AUXLED_PIN
+#define AUXLED_PIN PB4 // pin 3
+#endif
+
+#ifndef SWITCH_PIN
+#define SWITCH_PIN PB3 // pin 2
+#define SWITCH_PCINT PCINT3 // pin 2 pin change interrupt
+#endif
+
+#ifndef PWM1_PIN
+#define PWM1_PIN PB0 // pin 5, 1x7135 PWM
+#define PWM1_LVL OCR0A // OCR0A is the output compare register for PB0
+#endif
+#ifndef PWM2_PIN
+#define PWM2_PIN PB1 // pin 6, FET PWM
+#define PWM2_LVL OCR0B // OCR0B is the output compare register for PB1
+#endif
+
+#define USE_VOLTAGE_DIVIDER // use a voltage divider on pin 7, not VCC
+#ifndef VOLTAGE_PIN
+#define VOLTAGE_PIN PB2 // pin 7, voltage ADC
+#define VOLTAGE_CHANNEL 0x01 // MUX 01 corresponds with PB2
+#define VOLTAGE_ADC_DIDR ADC1D // Digital input disable bit corresponding with PB2
+// 1.1V reference, left-adjust, ADC1/PB2
+//#define ADMUX_VOLTAGE_DIVIDER ((1 << V_REF) | (1 << ADLAR) | VOLTAGE_CHANNEL)
+// 1.1V reference, no left-adjust, ADC1/PB2
+#define ADMUX_VOLTAGE_DIVIDER ((1 << V_REF) | VOLTAGE_CHANNEL)
+#endif
+#define ADC_PRSCL 0x06 // clk/64
+
+// Raw ADC readings at 4.4V and 2.2V (in-between, we assume values form a straight line)
+#ifndef ADC_44
+#define ADC_44 234
+#endif
+#ifndef ADC_22
+#define ADC_22 117
+#endif
+
+#define TEMP_CHANNEL 0b00001111
+
+#define FAST 0xA3 // fast PWM both channels
+#define PHASE 0xA1 // phase-correct PWM both channels
+
+#define LAYOUT_DEFINED
+
+#endif