altos: Use ublox-10 mode for TM v4.0
[fw/altos] / src / telemetrum-v4.0 / ao_pins.h
index e33db912c1955bae7508f3c9ecdf20c39cd369a8..66b3e955541a1f32e47260578039bfa3d7d74c4c 100644 (file)
 
 #define HAS_EEPROM             1
 #define USE_INTERNAL_FLASH     0
-#define USE_EEPROM_CONFIG      1
-#define USE_STORAGE_CONFIG     0
+#define USE_EEPROM_CONFIG      0
+#define USE_STORAGE_CONFIG     1
 #define HAS_USB                        1
 #define USE_USB_STDIO  1
-#define HAS_BEEP               1
 #define HAS_BATTERY_REPORT     1
 #define BEEPER_CHANNEL         4
 #define BEEPER_TIMER           3
 #define BEEPER_PORT            (&samd21_port_a)
 #define BEEPER_PIN             16
 #define HAS_RADIO              1
+#define HAS_RADIO_10MW         1
 #define HAS_TELEMETRY          1
 #define HAS_APRS               1
 #define HAS_COMPANION          1
 
-#define HAS_SPI_1              1
-#define SPI_1_PA5_PA6_PA7      1       /* Barometer */
-#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, Radio */
-#define SPI_2_PD1_PD3_PD4      0
-#define SPI_2_OSPEEDR          STM_OSPEEDR_10MHz
+#define HAS_SPI_0              1
+#define HAS_SPI_3              1
+#define HAS_SPI_5              1
 
 #define PACKET_HAS_SLAVE       1
 #define PACKET_HAS_MASTER      0
 
 #define LOW_LEVEL_DEBUG                0
 
-#define LED_PORT               (&samd21_port_b)
-#define LED_PIN_RED            10
-#define LED_PIN_GREEN          11
-#define AO_LED_RED             (1 << LED_PIN_RED)
-#define AO_LED_GREEN           (1 << LED_PIN_GREEN)
-
-#define LEDS_AVAILABLE         (AO_LED_RED | AO_LED_GREEN)
+#define HAS_LED                        1
+#define LED_0_PORT             (&samd21_port_b)
+#define LED_0_PIN              10
+#define LED_1_PORT             (&samd21_port_b)
+#define LED_1_PIN              11
+#define AO_LED_RED             (1 << 0)
+#define AO_LED_GREEN           (1 << 1)
 
 #define HAS_GPS                        1
 #define HAS_FLIGHT             1
 #define HAS_ADC_TEMP           1
 #define HAS_LOG                        1
 
+/*
+ * Beeper
+ */
+
+#define HAS_BEEP               1
+/* Beep on PA16 function E TCC2.0 */
+
+#define AO_BEEP_TCC            (&samd21_tcc2)
+#define AO_BEEP_TCC_APBC_MASK  SAMD21_PM_APBCMASK_TCC2
+#define AO_BEEP_PORT           (&samd21_port_a)
+#define AO_BEEP_PIN            (16)
+#define AO_BEEP_FUNC           SAMD21_PORT_PMUX_FUNC_E
+
 /*
  * Igniter
  */
@@ -122,21 +128,21 @@ struct ao_adc {
               (p)->adc.sense_a, (p)->adc.sense_m, \
               (p)->adc.v_batt);
 
-#define AO_ADC_SENSE_DROGUE    1
+#define AO_ADC_SENSE_DROGUE            18
 #define AO_ADC_SENSE_DROGUE_PORT       (&samd21_port_a)
-#define AO_ADC_SENSE_DROGUE_PIN        10
+#define AO_ADC_SENSE_DROGUE_PIN                10
 
-#define AO_ADC_SENSE_MAIN      1
-#define AO_ADC_SENSE_MAIN_PORT (&samd21_port_a)
-#define AO_ADC_SENSE_MAIN_PIN  11
+#define AO_ADC_SENSE_MAIN              19
+#define AO_ADC_SENSE_MAIN_PORT         (&samd21_port_a)
+#define AO_ADC_SENSE_MAIN_PIN          11
 
-#define AO_ADC_V_BATT          8
-#define AO_ADC_V_BATT_PORT     (&samd21_port_a)
-#define AO_ADC_V_BATT_PIN      9
+#define AO_ADC_V_BATT                  17
+#define AO_ADC_V_BATT_PORT             (&samd21_port_a)
+#define AO_ADC_V_BATT_PIN              9
 
-#define AO_ADC_TEMP            16
+#define AO_ADC_TEMP                    SAMD21_ADC_INPUTCTRL_MUXPOS_TEMP
 
-#define AO_NUM_ADC_PIN         3
+#define AO_NUM_ADC_PIN                 3
 
 #define AO_ADC_PIN0_PORT       AO_ADC_SENSE_DROGUE_PORT
 #define AO_ADC_PIN0_PIN                AO_ADC_SENSE_DROGUE_PIN
@@ -147,10 +153,10 @@ struct ao_adc {
 
 #define AO_NUM_ADC             (AO_NUM_ADC_PIN + 1)
 
-#define AO_ADC_SQ1             AO_ADC_SENSE_DROGUE
-#define AO_ADC_SQ2             AO_ADC_SENSE_MAIN
-#define AO_ADC_SQ3             AO_ADC_V_BATT
-#define AO_ADC_SQ4             AO_ADC_TEMP
+#define AO_ADC_SQ0             AO_ADC_SENSE_DROGUE
+#define AO_ADC_SQ1             AO_ADC_SENSE_MAIN
+#define AO_ADC_SQ2             AO_ADC_V_BATT
+#define AO_ADC_SQ3             AO_ADC_TEMP
 
 /*
  * Voltage divider on ADC battery sampler
@@ -174,23 +180,28 @@ struct ao_adc {
  */
 
 #define AO_SERIAL_SPEED_UBLOX  AO_SERIAL_SPEED_9600
+#define AO_UBLOX_VERSION       10
+
+#define HAS_SERIAL_1           1
+#define USE_SERIAL_1_STDIN     0
+#define SERIAL_1_PA00_PA01     1
 
-#define ao_gps_getchar         ao_serial3_getchar
-#define ao_gps_putchar         ao_serial3_putchar
-#define ao_gps_set_speed       ao_serial3_set_speed
-#define ao_gps_fifo            (ao_stm_usart3.rx_fifo)
+#define ao_gps_getchar         ao_serial1_getchar
+#define ao_gps_putchar         ao_serial1_putchar
+#define ao_gps_set_speed       ao_serial1_set_speed
+#define ao_gps_fifo            (ao_samd21_usart1.rx_fifo)
 
 /*
  * Pressure sensor settings
  */
 #define HAS_MS5607             1
 #define HAS_MS5611             0
-#define AO_MS5607_PRIVATE_PINS 1
+#define AO_MS5607_PRIVATE_PINS 0
 #define AO_MS5607_CS_PORT      (&samd21_port_a)
 #define AO_MS5607_CS_PIN       21
-#define AO_MS5607_CS_MASK      (1 << AO_MS5607_CS)
 #define AO_MS5607_MISO_PORT    (&samd21_port_a)
 #define AO_MS5607_MISO_PIN     20
+#define AO_MS5607_SPI_INDEX    AO_SPI_3_PA22_PA23_PA20
 
 /*
  * SPI Flash memory
@@ -198,7 +209,9 @@ struct ao_adc {
 
 #define M25_MAX_CHIPS          1
 #define AO_M25_SPI_CS_PORT     (&samd21_port_a)
-#define AO_M25_SPI_CS_MASK     (1 << 8)
+#define AO_M25_SPI_CS_MASK     (1 << 27)
+#define AO_M25_SPI_BUS         AO_SPI_5_PB22_PB23_PB03
+
 
 /*
  * Radio (cc1200)
@@ -210,6 +223,7 @@ struct ao_adc {
 
 #define AO_CC1200_SPI_CS_PORT  (&samd21_port_a)
 #define AO_CC1200_SPI_CS_PIN   7
+#define AO_CC1200_SPI_BUS      AO_SPI_5_PB22_PB23_PB03
 
 #define AO_CC1200_INT_PORT             (&samd21_port_b)
 #define AO_CC1200_INT_PIN              (8)
@@ -231,6 +245,7 @@ struct ao_adc {
 #define HAS_ADXL375            1
 #define AO_ADXL375_CS_PORT     (&samd21_port_a)
 #define AO_ADXL375_CS_PIN      8
+#define AO_ADXL375_SPI_INDEX   (AO_SPI_0_PA04_PA05_PA06 | AO_SPI_MODE_3)
 
 #define AO_ADXL375_AXIS                x
 #define AO_ADXL375_INVERT      1
@@ -243,6 +258,7 @@ struct ao_adc {
 
 #define AO_COMPANION_CS_PORT   (&samd21_port_a)
 #define AO_COMPANION_CS_PIN    (13)
+#define AO_COMPANION_SPI_BUS   AO_SPI_5_PB22_PB23_PB03
 
 /*
  * Monitor