altos: Switch all tick variables to AO_TICK_TYPE/AO_TICK_SIGNED
[fw/altos] / src / easymega-v2.0 / ao_pins.h
index aff06cdd8dc9bdc66fc8abea3812b68e2cf03535..a304d03429741fece015fd6311bc21661efa163e 100644 (file)
 #ifndef _AO_PINS_H_
 #define _AO_PINS_H_
 
-#define HAS_TASK_QUEUE         1
 
 /* 16MHz High speed external crystal */
 #define AO_HSE                 16000000
 
 /* PLLVCO = 96MHz (so that USB will work) */
-#define AO_PLLMUL              12
-#define AO_RCC_CFGR_PLLMUL     (STM_RCC_CFGR_PLLMUL_12)
+#define AO_PLLMUL              6
+#define AO_RCC_CFGR_PLLMUL     (STM_RCC_CFGR_PLLMUL_6)
 
 /* SYSCLK = 32MHz (no need to go faster than CPU) */
 #define AO_PLLDIV              3
@@ -69,7 +68,7 @@
 #define AO_CONFIG_MAX_SIZE                     1024
 #define LOG_ERASE_MARK                         0x55
 #define LOG_MAX_ERASE                          128
-#define AO_LOG_FORMAT                          AO_LOG_FORMAT_TELEMEGA
+#define AO_LOG_FORMAT                          AO_LOG_FORMAT_EASYMEGA_2
 
 #define HAS_EEPROM             1
 #define USE_INTERNAL_FLASH     0
 #define USE_STORAGE_CONFIG     0
 #define HAS_USB                        1
 #define HAS_BEEP               1
+#define BEEPER_TIMER           2
+#define BEEPER_CHANNEL         3
+#define BEEPER_PORT            (&stm_gpioa)
+#define BEEPER_PIN             2
 #define HAS_BATTERY_REPORT     1
 #define HAS_RADIO              0
 #define HAS_TELEMETRY          0
 
 #define HAS_SPI_1              1
 #define SPI_1_PA5_PA6_PA7      1       /* Barometer */
-#define SPI_1_PB3_PB4_PB5      1       /* Accelerometer, Gyro */
+#define SPI_1_PB3_PB4_PB5      1       /* Accelerometer */
 #define SPI_1_PE13_PE14_PE15   0
 #define SPI_1_OSPEEDR          STM_OSPEEDR_10MHz
 
 #define HAS_SPI_2              1
-#define SPI_2_PB13_PB14_PB15   1       /* Flash, Companion */
+#define SPI_2_PB13_PB14_PB15   1       /* Flash, IMU, Companion */
 #define SPI_2_PD1_PD3_PD4      0
 #define SPI_2_OSPEEDR          STM_OSPEEDR_10MHz
 
-#define SPI_2_PORT             (&stm_gpiob)
-#define SPI_2_SCK_PIN          13
-#define SPI_2_MISO_PIN         14
-#define SPI_2_MOSI_PIN         15
-
 #define HAS_I2C_1              1
 #define I2C_1_PB8_PB9          1
 
 /* Number of general purpose pyro channels available */
 #define AO_PYRO_NUM    4
 
-#define AO_IGNITER_SET_DROGUE(v)       stm_gpio_set(AO_IGNITER_DROGUE_PORT, AO_IGNITER_DROGUE_PIN, v)
-#define AO_IGNITER_SET_MAIN(v)         stm_gpio_set(AO_IGNITER_MAIN_PORT, AO_IGNITER_MAIN_PIN, v)
-
 /*
  * ADC
  */
@@ -182,7 +177,7 @@ struct ao_adc {
 };
 
 #define AO_ADC_DUMP(p) \
-       printf("tick: %5u A: %5d B: %5d C: %5d D: %5d drogue: %5d main: %5d batt: %5d pbatt: %5d temp: %5d\n", \
+       printf("tick: %5lu A: %5d B: %5d C: %5d D: %5d drogue: %5d main: %5d batt: %5d pbatt: %5d temp: %5d\n", \
               (p)->tick, \
               (p)->adc.sense[0], (p)->adc.sense[1], (p)->adc.sense[2], \
               (p)->adc.sense[3], (p)->adc.sense[4], (p)->adc.sense[5], \
@@ -303,22 +298,40 @@ struct ao_adc {
  */
 
 #define HAS_MPU9250            1
-#define AO_MPU9250_INT_PORT    (&stm_gpioe)
-#define AO_MPU9250_INT_PIN     0
-#define AO_MPU9250_SPI_BUS     AO_SPI_1_PE13_PE14_PE15
-#define AO_MPU9250_SPI_CS_PORT (&stm_gpiod)
-#define AO_MPU9250_SPI_CS_PIN  2
+#define AO_MPU9250_INT_PORT    (&stm_gpioc)
+#define AO_MPU9250_INT_PIN     15
+#define AO_MPU9250_SPI_BUS     (AO_SPI_2_PB13_PB14_PB15 | AO_SPI_MODE_0)
+#define AO_MPU9250_SPI_CS_PORT (&stm_gpioc)
+#define AO_MPU9250_SPI_CS_PIN  13
 #define HAS_IMU                        1
 
-/*
- * mma655x
- */
+#define ao_data_along(packet)  ((packet)->mpu9250.accel_x)
+#define ao_data_across(packet) (-(packet)->mpu9250.accel_y)
+#define ao_data_through(packet)        ((packet)->mpu9250.accel_z)
+
+#define ao_data_roll(packet)   ((packet)->mpu9250.gyro_x)
+#define ao_data_pitch(packet)  (-(packet)->mpu9250.gyro_y)
+#define ao_data_yaw(packet)    ((packet)->mpu9250.gyro_z)
+
+#define ao_data_mag_along(packet)      ((packet)->mpu9250.mag_y)
+#define ao_data_mag_across(packet)     (-(packet)->mpu9250.mag_x)
+#define ao_data_mag_through(packet)    ((packet)->mpu9250.mag_z)
+
+/* ADXL375 */
+
+#define HAS_ADXL375            1
+#define AO_ADXL375_SPI_INDEX   (AO_SPI_1_PB3_PB4_PB5 | AO_SPI_MODE_3)
+#define AO_ADXL375_CS_PORT     (&stm_gpioc)
+#define AO_ADXL375_CS_PIN      12
+
+#define AO_ADXL375_INT1_PORT   (&stm_gpiob)
+#define AO_ADXL375_INT1_PIN    8
+
+#define AO_ADXL375_INT2_PORT   (&stm_gpiob)
+#define AO_ADXL375_INT2_PIN    9
 
-#define HAS_MMA655X            0
-#define AO_MMA655X_INVERT      0
-#define AO_MMA655X_SPI_INDEX   AO_SPI_1_PB3_PB4_PB5
-#define AO_MMA655X_CS_PORT     (&stm_gpioc)
-#define AO_MMA655X_CS_PIN      12
+#define AO_ADXL375_AXIS                x
+#define AO_ADXL375_INVERT      1
 
 #define NUM_CMDS               16