#ifndef _AO_PINS_H_
#define _AO_PINS_H_
+/* 8MHz High speed external crystal */
+#define AO_HSE 8000000
+
+/* PLLVCO = 96MHz (so that USB will work) */
+#define AO_PLLMUL 12
+#define AO_RCC_CFGR_PLLMUL (STM_RCC_CFGR_PLLMUL_12)
+
+/* SYSCLK = 32MHz (no need to go faster than CPU) */
+#define AO_PLLDIV 3
+#define AO_RCC_CFGR_PLLDIV (STM_RCC_CFGR_PLLDIV_3)
+
+/* HCLK = 32MHz (CPU clock) */
+#define AO_AHB_PRESCALER 1
+#define AO_RCC_CFGR_HPRE_DIV STM_RCC_CFGR_HPRE_DIV_1
+
+/* Run APB1 at 16MHz (HCLK/2) */
+#define AO_APB1_PRESCALER 2
+#define AO_RCC_CFGR_PPRE1_DIV STM_RCC_CFGR_PPRE2_DIV_2
+
+/* Run APB2 at 16MHz (HCLK/2) */
+#define AO_APB2_PRESCALER 2
+#define AO_RCC_CFGR_PPRE2_DIV STM_RCC_CFGR_PPRE2_DIV_2
+
#define HAS_SERIAL_1 1
-#define USE_SERIAL_1_STDIN 1
+#define USE_SERIAL_1_STDIN 0
#define SERIAL_1_PB6_PB7 0
#define SERIAL_1_PA9_PA10 1
#define ao_gps_putchar ao_serial3_putchar
#define ao_gps_set_speed ao_serial3_set_speed
-#define HAS_USB 0
-#define HAS_BEEP 0
+#define HAS_EEPROM 1
+#define USE_INTERNAL_FLASH 0
+#define HAS_USB 1
+#define HAS_BEEP 1
#define HAS_SPI_1 1
#define SPI_1_PA5_PA6_PA7 1
#define LEDS_AVAILABLE (AO_LED_RED | AO_LED_GREEN)
+#define HAS_GPS 1
+#define HAS_FLIGHT 1
#define HAS_ADC 1
+#define HAS_ACCEL 1
+#define HAS_LOG 1
-#define AO_ADC_RING 32
+#define AO_DATA_RING 32
#define AO_ADC_NUM_SENSE 6
struct ao_adc {
- uint16_t tick;
int16_t sense[AO_ADC_NUM_SENSE];
int16_t v_batt;
int16_t v_pbatt;
#define AO_ADC_SQ8 AO_ADC_V_PBATT
#define AO_ADC_SQ9 AO_ADC_TEMP
+/*
+ * Pressure sensor settings
+ */
+#define HAS_MS5607 1
+#define AO_MS5607_CS_GPIO stm_gpioc
+#define AO_MS5607_CS 4
+#define AO_MS5607_CS_MASK (1 << AO_MS5607_CS)
+#define AO_MS5607_MISO_GPIO stm_gpioa
+#define AO_MS5607_MISO 6
+#define AO_MS5607_MISO_MASK (1 << AO_MS5607_MISO)
+#define AO_MS5607_SPI_INDEX (STM_SPI_INDEX(1))
+
+/*
+ * SPI Flash memory
+ */
+
+#define M25_MAX_CHIPS 1
+#define AO_M25_SPI_CS_PORT stm_gpiod
+#define AO_M25_SPI_CS_MASK (1 << 3)
+#define AO_M25_SPI_BUS STM_SPI_INDEX(2)
+
+/*
+ * Radio (cc1120)
+ */
+
+#define AO_CC1120_SPI_CS_PORT stm_gpioc
+#define AO_CC1120_SPI_CS_PIN 5
+#define AO_CC1120_SPI_BUS STM_SPI_INDEX(2)
+
+#define AO_CC1120_INT_PORT stm_gpioc
+#define AO_CC1120_INT_PIN 14
+
+#define AO_CC1120_INT_GPIO 2
+
+/*
+ * Mag sensor (hmc5883)
+ */
+
+#define AO_HMC5883_INT_PORT stm_gpioc
+#define AO_HMC5883_INT_PIN 12
+#define AO_HMC5883_I2C_INDEX STM_I2C_INDEX(1)
+
+/*
+ * mpu6000
+ */
+
+#define HAS_MPU6000 1
+#define AO_MPU6000_INT_PORT stm_gpioc
+#define AO_MPU6000_INT_PIN 13
+#define AO_MPU6000_I2C_INDEX STM_I2C_INDEX(1)
+
#endif /* _AO_PINS_H_ */