altos: Compute igniter good/bad thresholds using 3.5V value
[fw/altos] / src / easymotor-v3 / ao_pins.h
index 52632718a9d675e5079d5d5d2a96c8ed5a4b659f..a0e40bd7ba5d326a7591d4da75bd13dfef5fed79 100644 (file)
 #ifndef _AO_PINS_H_
 #define _AO_PINS_H_
 
+#define AO_STACK_SIZE           352
+#define SLEEP_HASH_SIZE         3
+#define AO_NUM_TASKS            6
+
 #define HAS_TASK_QUEUE         1
 #define IS_FLASH_LOADER                0
 
 #define PACKET_HAS_SLAVE       0
 
 #define HAS_SERIAL             0
-#define USE_SERIAL_0_STDIN     1
-#define SERIAL_0_18_19          1
-#define SERIAL_0_14_15          0
-#define SERIAL_0_17_18          0
-#define SERIAL_0_26_27          0
 
 #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX       (1984 * 1024)
 #define AO_CONFIG_MAX_SIZE                     1024
 #define HAS_BEEP               1
 #define HAS_BATTERY_REPORT     1
 #define HAS_PAD_REPORT         1
-#define BEEPER_CHANNEL         3
-#define BEEPER_TIMER           2
-#define BEEPER_PORT            (&stm_gpioa)
-#define BEEPER_PIN             2
-#define BEEPER_AFR              STM_AFR_AF2
+
+/* Beeper is on pio0_1 ct32b0_mat2 */
+#define AO_LPC_BEEP_PORT       0
+#define AO_LPC_BEEP_PIN                1
+#define AO_LPC_BEEP_TIMER      0
+#define AO_LPC_BEEP_CHANNEL    2
 
 #define HAS_RADIO              0
 #define HAS_TELEMETRY          0
 #define AO_ADC_0               1
 #define AO_ADC_1               1
 
-#define AO_DATA_RING           64
+#define AO_DATA_RING           32
 
-struct ao_adc {
-       int16_t                 v_batt;
-       int16_t                 motor_pressure;
-};
 
 #define AO_ADC_DUMP(p) \
-       printf("tick: batt: %5d %5lu motor_pressure: %5d\n", \
+       printf("tick: %5lu batt: %5d motor_pressure: %5d\n", \
               (p)->tick, \
-              (p)->adc.v_batt);
-              (p)->adc.motor_pressure, \
+              (p)->adc.v_batt, \
+              (p)->adc.motor_pressure); 
 
 /*
  * Voltage divider on ADC battery sampler
@@ -121,11 +117,13 @@ struct ao_adc {
 /* SPI */
 
 #define HAS_SPI_0              1
+#define SPI_0_MODE             ((0 << LPC_SSP_CR0_CPOL) | (0 << LPC_SSP_CR0_CPHA))
 #define SPI_SCK0_P0_6           1
 #define HAS_SPI_1               1
 #define SPI_SCK1_P1_15          1
 #define SPI_MISO1_P0_22         1
 #define SPI_MOSI1_P0_21         1
+#define SPI_1_MODE             ((1 << LPC_SSP_CR0_CPOL) | (1 << LPC_SSP_CR0_CPHA))
 
 /*
  * SPI Flash memory
@@ -139,9 +137,9 @@ struct ao_adc {
 /* ADXL375 */
 
 #define HAS_ADXL375            1
+#define AO_ADXL375_SPI_INDEX   1
 #define AO_ADXL375_CS_PORT     0
-#define AO_ADXL375_CS_MASK     (1 << 19)
-#define AO_ADXL375_SPI_BUS     1
+#define AO_ADXL375_CS_PIN      19
 
 #define AO_ADXL375_AXIS                x
 #define AO_ADXL375_ACROSS_AXIS y
@@ -150,10 +148,26 @@ struct ao_adc {
 #define HAS_IMU                        1
 #define USE_ADXL375_IMU                1
 
+#define HAS_KALMAN             0
+
 /* Motor pressure */
 #define HAS_MOTOR_PRESSURE     1
 #define ao_data_motor_pressure(packet) ((packet)->adc.motor_pressure)
 
 typedef int16_t        motor_pressure_t;
 
+/* want about 50psi, or 344kPa for boost and 30psi for coast */
+
+#define AO_FULL_SCALE_PRESSURE         11031612        /* 1600psi */
+#define AO_BOOST_DETECT_PRESSURE       344000          /* 50psi */
+#define AO_QUIET_DETECT_PRESSURE       207000          /* 30psi */
+
+#define AO_PRESSURE_VOLTS_BASE 0.5
+#define AO_PRESSURE_VOLTS_MAX  4.5
+
+struct ao_adc {
+       int16_t                 v_batt;
+       int16_t                 motor_pressure;
+};
+
 #endif /* _AO_PINS_H_ */