Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / telemini-v3.0 / ao_pins.h
index 031c1d18bf692e4216819a5d547560d3571c41a9..d91b1d21fcf8d04374fc4efe3029b3a72f134c20 100644 (file)
@@ -1,9 +1,10 @@
 /*
- * Copyright © 2013 Keith Packard <keithp@keithp.com>
+ * Copyright © 2017 Keith Packard <keithp@keithp.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
 #define HAS_BEEP               1
 #define HAS_SERIAL_1           0
 #define HAS_BATTERY_REPORT     1
-#define HAS_BOOT_LOADER                0
 
 #define AO_STACK_SIZE  448
 
-#define RELOCATE_INTERRUPT 0
-
 #define IS_FLASH_LOADER        0
 
 /* 48MHz clock based on 16MHz reference */
 #define AO_APB_PRESCALER       1
 #define AO_RCC_CFGR_PPRE_DIV   STM_RCC_CFGR_PPRE_DIV_1
 
-#define HAS_USB                        0
+#define HAS_USB                        1
 #define AO_USB_DIRECTIO                0
-#define AO_PA11_PA12_RMP       0
+#define AO_PA11_PA12_RMP       1
+#define AO_USB_FORCE_IDLE      1
 
 #define PACKET_HAS_SLAVE       1
 
-#define AO_LOG_FORMAT          AO_LOG_FORMAT_EASYMINI
+#define AO_LOG_FORMAT          AO_LOG_FORMAT_TELEMINI3
+#define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX       ((uint32_t) 112 * (uint32_t) 1024)
 
 #define HAS_BOOT_RADIO         0
 
 #define HAS_FLIGHT             1
 #define HAS_EEPROM             1
 #define HAS_TELEMETRY          1
+#define AO_SEND_MINI           AO_TELEMETRY_MINI3
 #define HAS_APRS               0
 #define HAS_LOG                        1
 #define USE_INTERNAL_FLASH     0
 #define HAS_IGNITE             1
 #define HAS_IGNITE_REPORT      1
+#define AO_SMALL_ALTITUDE_TABLE        1
 
-/* Beeper is on Tim1 CH3 */
-#define BEEPER_CHANNEL         3
-
-/* LED */
-#define LED_PORT_ENABLE                STM_RCC_AHBENR_IOPAEN
-#define LED_PORT               (&stm_gpioa)
-#define LED_PIN_GREEN          15
-#define AO_LED_GREEN           (1 << 15)
-#define AO_LED_PANIC           AO_LED_GREEN
-#define AO_LED_LOW             AO_LED_GREEN
-#define AO_LED_MID             AO_LED_GREEN
-
-#define LEDS_AVAILABLE         AO_LED_GREEN
+/* Use debug connector clock for recovery mode */
+#define HAS_FORCE_FREQ         1
+#define AO_RECOVERY_PORT       (&stm_gpioa)
+#define AO_RECOVERY_PIN                14
+#define AO_RECOVERY_VALUE      0
+#define AO_RECOVERY_MODE       AO_EXTI_MODE_PULL_UP
 
-/* Serial. Hooked to the spare pin (PA9/19) and the beeper (PA10/20) */
-
-#define SERIAL_1_PA9_PA10      1
-#define USE_SERIAL_1_STDIN     HAS_SERIAL_1
-#define DELAY_SERIAL_1_STDIN   0
+/* Beeper is on Tim3 CH4 */
+#define BEEPER_CHANNEL         4
+#define BEEPER_TIMER           3
+#define BEEPER_PORT            (&stm_gpioa)
+#define BEEPER_PIN             3
 
 /* SPI */
 
 
 #define M25_MAX_CHIPS          1
 #define AO_M25_SPI_CS_PORT     (&stm_gpioa)
-#define AO_M25_SPI_CS_MASK     (1 << 3)
+#define AO_M25_SPI_CS_MASK     (1 << 4)
 #define AO_M25_SPI_BUS         AO_SPI_1_PA5_PA6_PA7
 
 /* MS5607 */
 
 #define HAS_MS5607             1
 #define HAS_MS5611             0
-#define AO_MS5607_PRIVATE_PINS 0
+#define AO_MS5607_PRIVATE_PINS 1
 #define AO_MS5607_CS_PORT      (&stm_gpioa)
-#define AO_MS5607_CS_PIN       4
+#define AO_MS5607_CS_PIN       15
 #define AO_MS5607_CS_MASK      (1 << AO_MS5607_CS_PIN)
 #define AO_MS5607_MISO_PORT    (&stm_gpiob)
 #define AO_MS5607_MISO_PIN     4
 
 #define HAS_ADC                        1
 
-#define AO_ADC_PIN0_PORT       (&stm_gpioa)
+#define AO_ADC_PIN0_PORT       (&stm_gpioa)    /* sense_m */
 #define AO_ADC_PIN0_PIN                0
 #define AO_ADC_PIN0_CH         0
-#define AO_ADC_PIN1_PORT       (&stm_gpioa)
+#define AO_ADC_PIN1_PORT       (&stm_gpioa)    /* sense_a */
 #define AO_ADC_PIN1_PIN                1
 #define AO_ADC_PIN1_CH         1
-#define AO_ADC_PIN2_PORT       (&stm_gpioa)
+#define AO_ADC_PIN2_PORT       (&stm_gpioa)    /* v_batt */
 #define AO_ADC_PIN2_PIN                2
 #define AO_ADC_PIN2_CH         2
 
 #define AO_NUM_ADC             3
 
 struct ao_adc {
-       int16_t         sense_a;
        int16_t         sense_m;
+       int16_t         sense_a;
        int16_t         v_batt;
 };
 
@@ -170,11 +165,9 @@ struct ao_adc {
 
 #define AO_IGNITER_DROGUE_PORT (&stm_gpiob)
 #define AO_IGNITER_DROGUE_PIN  7
-#define AO_IGNITER_SET_DROGUE(v)       ao_gpio_set(AO_IGNITER_DROGUE_PORT, AO_IGNITER_DROGUE_PIN, AO_IGNITER_DROGUE, v)
 
 #define AO_IGNITER_MAIN_PORT   (&stm_gpiob)
 #define AO_IGNITER_MAIN_PIN    6
-#define AO_IGNITER_SET_MAIN(v)         ao_gpio_set(AO_IGNITER_MAIN_PORT, AO_IGNITER_MAIN_PIN, AO_IGNITER_MAIN, v)
 
 #define AO_SENSE_DROGUE(p)     ((p)->adc.sense_a)
 #define AO_SENSE_MAIN(p)       ((p)->adc.sense_m)