altos/fox: Update ADC to fox-1 IHU Revision 2
authorKeith Packard <keithp@keithp.com>
Sat, 1 Feb 2014 06:39:58 +0000 (22:39 -0800)
committerKeith Packard <keithp@keithp.com>
Fri, 27 Apr 2018 02:33:48 +0000 (19:33 -0700)
Change ADC pin definitions to match new hardware.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/fox1ihu/ao_pins.h

index 028360a50a5ac53f463fbf8dc21ad66edf2e01b2..b5dd7283748084cb3dc0e7788bcc447415aa49b1 100644 (file)
  * ADC
  */
 #define AO_DATA_RING           32
-#define AO_ADC_NUM_SENSE       6
 
 struct ao_adc {
        int16_t                 tx_pa_current;  /* 0 ADC_IN0 */
-       int16_t                 tx_pa_temp;     /* 1 ADC_IN1 */
-       int16_t                 tx_xo_temp;     /* 2 ADC_IN2 */
-       int16_t                 rx_xo_temp;     /* 3 ADC_IN3 */
-       int16_t                 ihu_current;    /* 4 ADC_IN8 */
-       int16_t                 rx_cd;          /* 5 ADC_IN9 */
-       int16_t                 ant_sense_1;    /* 6 ADC_IN10 */
-       int16_t                 ant_sense_2;    /* 7 ADC_IN11 */
-       int16_t                 gyro_x_1;       /* 8 ADC_IN12 */
-       int16_t                 gyro_z_1;       /* 9 ADC_IN13 */
-       int16_t                 gyro_x_2;       /* 10 ADC_IN14 */
-       int16_t                 gyro_z_2;       /* 11 ADC_IN15 */
+       int16_t                 tx_temp;        /* 1 ADC_IN1 */
+       int16_t                 exp4_temp;      /* 2 ADC_IN2 */
+       int16_t                 rx_temp;        /* 3 ADC_IN3 */
+       int16_t                 tx_analog_1;    /* 4 ADC_IN4 */
+       int16_t                 sense_batt;     /* 5 ADC_IN5 */
+       int16_t                 rx_analog_1;    /* 6 ADC_IN6 */
+       int16_t                 rx_rssi;        /* 7 ADC_IN8 */
+       int16_t                 rx_cd;          /* 8 ADC_IN9 */
+       int16_t                 ant_sense_1;    /* 9 ADC_IN10 */
+       int16_t                 ant_sense_2;    /* 10 ADC_IN11 */
+       int16_t                 gyro_x_1;       /* 11 ADC_IN12 */
+       int16_t                 gyro_z_1;       /* 12 ADC_IN13 */
+       int16_t                 gyro_vref_1;    /* 13 ADC_IN24 */
+       int16_t                 gyro_x_2;       /* 14 ADC_IN14 */
+       int16_t                 gyro_z_2;       /* 15 ADC_IN15 */
+       int16_t                 gyro_vref_2;    /* 16 ADC_IN25 */
 };
 
 #define AO_ADC_TX_PA_CURRENT           0
 #define AO_ADC_TX_PA_CURRENT_PORT      (&stm_gpioa)
 #define AO_ADC_TX_PA_CURRENT_PIN       0
 
-#define AO_ADC_TX_PA_TEMP              1
-#define AO_ADC_TX_PA_TEMP_PORT         (&stm_gpioa)
-#define AO_ADC_TX_PA_TEMP_PIN          1
+#define AO_ADC_TX_TEMP                 1
+#define AO_ADC_TX_TEMP_PORT            (&stm_gpioa)
+#define AO_ADC_TX_TEMP_PIN             1
 
-#define AO_ADC_TX_XO_TEMP              2
-#define AO_ADC_TX_XO_TEMP_PORT         (&stm_gpioa)
-#define AO_ADC_TX_XO_TEMP_PIN          2
+#define AO_ADC_EXP4_TEMP               2
+#define AO_ADC_EXP4_TEMP_PORT          (&stm_gpioa)
+#define AO_ADC_EXP4_TEMP_PIN           2
 
-#define AO_ADC_RX_XO_TEMP              3
-#define AO_ADC_RX_XO_TEMP_PORT         (&stm_gpioa)
-#define AO_ADC_RX_XO_TEMP_PIN          3
+#define AO_ADC_RX_TEMP                 3
+#define AO_ADC_RX_TEMP_PORT            (&stm_gpioa)
+#define AO_ADC_RX_TEMP_PIN             3
 
-#define AO_ADC_IHU_CURRENT             8
-#define AO_ADC_IHU_CURRENT_PORT                (&stm_gpiob)
-#define AO_ADC_IHU_CURRENT_PIN         0
+#define AO_ADC_TX_ANALOG_1             4
+#define AO_ADC_TX_ANALOG_1_PORT                (&stm_gpioa)
+#define AO_ADC_TX_ANALOG_1_PIN         4
+
+#define AO_ADC_SENSE_BATT              5
+#define AO_ADC_SENSE_BATT_PORT         (&stm_gpioa)
+#define AO_ADC_SENSE_BATT_PIN          5
+
+#define AO_ADC_RX_ANALOG_1             6
+#define AO_ADC_RX_ANALOG_1_PORT                (&stm_gpioa)
+#define AO_ADC_RX_ANALOG_1_PIN         6
+
+#define AO_ADC_RX_RSSI                 8
+#define AO_ADC_RX_RSSI_PORT            (&stm_gpiob)
+#define AO_ADC_RX_RSSI_PIN             0
 
 #define AO_ADC_RX_CD                   9
 #define AO_ADC_RX_CD_PORT              (&stm_gpiob)
@@ -177,6 +193,10 @@ struct ao_adc {
 #define AO_ADC_GYRO_Z_1_PORT           (&stm_gpioc)
 #define AO_ADC_GYRO_Z_1_PIN            3
 
+#define AO_ADC_GYRO_VREF_1             24
+#define AO_ADC_GYRO_VREF_1_PORT                (&stm_gpioe)
+#define AO_ADC_GYRO_VREF_1_PIN         9
+
 #define AO_ADC_GYRO_X_2                        14
 #define AO_ADC_GYRO_X_2_PORT           (&stm_gpioc)
 #define AO_ADC_GYRO_X_2_PIN            4
@@ -185,67 +205,92 @@ struct ao_adc {
 #define AO_ADC_GYRO_Z_2_PORT           (&stm_gpioc)
 #define AO_ADC_GYRO_Z_2_PIN            5
 
+#define AO_ADC_GYRO_VREF_2             25
+#define AO_ADC_GYRO_VREF_2_PORT                (&stm_gpioe)
+#define AO_ADC_GYRO_VREF_2_PIN         10
+
 #define AO_ADC_TEMP                    16
 
 #define AO_ADC_RCC_AHBENR      ((1 << STM_RCC_AHBENR_GPIOAEN) | \
                                 (1 << STM_RCC_AHBENR_GPIOBEN) | \
-                                (1 << STM_RCC_AHBENR_GPIOCEN))
+                                (1 << STM_RCC_AHBENR_GPIOCEN) | \
+                                (1 << STM_RCC_AHBENR_GPIOEEN))
 
-#define AO_NUM_ADC_PIN         (12)
+#define AO_NUM_ADC_PIN         (17)
 
 #define AO_ADC_PIN0_PORT       AO_ADC_TX_PA_CURRENT_PORT
 #define AO_ADC_PIN0_PIN                AO_ADC_TX_PA_CURRENT_PIN
-#define AO_ADC_PIN1_PORT       AO_ADC_TX_PA_TEMP_PORT
-#define AO_ADC_PIN1_PIN                AO_ADC_TX_PA_TEMP_PIN
-#define AO_ADC_PIN2_PORT       AO_ADC_TX_XO_TEMP_PORT
-#define AO_ADC_PIN2_PIN                AO_ADC_TX_XO_TEMP_PIN
-#define AO_ADC_PIN3_PORT       AO_ADC_RX_XO_TEMP_PORT
-#define AO_ADC_PIN3_PIN                AO_ADC_RX_XO_TEMP_PIN
-#define AO_ADC_PIN4_PORT       AO_ADC_IHU_CURRENT_PORT
-#define AO_ADC_PIN4_PIN                AO_ADC_IHU_CURRENT_PIN
-#define AO_ADC_PIN5_PORT       AO_ADC_RX_CD_PORT
-#define AO_ADC_PIN5_PIN                AO_ADC_RX_CD_PIN
-#define AO_ADC_PIN6_PORT       AO_ADC_ANT_SENSE_1_PORT
-#define AO_ADC_PIN6_PIN                AO_ADC_ANT_SENSE_1_PIN
-#define AO_ADC_PIN7_PORT       AO_ADC_ANT_SENSE_2_PORT
-#define AO_ADC_PIN7_PIN                AO_ADC_ANT_SENSE_2_PIN
-#define AO_ADC_PIN8_PORT       AO_ADC_GYRO_X_1_PORT
-#define AO_ADC_PIN8_PIN                AO_ADC_GYRO_X_1_PIN
-#define AO_ADC_PIN9_PORT       AO_ADC_GYRO_Z_1_PORT
-#define AO_ADC_PIN9_PIN                AO_ADC_GYRO_Z_1_PIN
-#define AO_ADC_PIN10_PORT      AO_ADC_GYRO_X_2_PORT
-#define AO_ADC_PIN10_PIN       AO_ADC_GYRO_X_2_PIN
-#define AO_ADC_PIN11_PORT      AO_ADC_GYRO_Z_2_PORT
-#define AO_ADC_PIN11_PIN       AO_ADC_GYRO_Z_2_PIN
+#define AO_ADC_PIN1_PORT       AO_ADC_TX_TEMP_PORT
+#define AO_ADC_PIN1_PIN                AO_ADC_TX_TEMP_PIN
+#define AO_ADC_PIN2_PORT       AO_ADC_EXP4_TEMP_PORT
+#define AO_ADC_PIN2_PIN                AO_ADC_EXP4_TEMP_PIN
+#define AO_ADC_PIN3_PORT       AO_ADC_RX_TEMP_PORT
+#define AO_ADC_PIN3_PIN                AO_ADC_RX_TEMP_PIN
+#define AO_ADC_PIN4_PORT       AO_ADC_TX_ANALOG_1_PORT
+#define AO_ADC_PIN4_PIN                AO_ADC_TX_ANALOG_1_PIN
+#define AO_ADC_PIN5_PORT       AO_ADC_SENSE_BATT_PORT
+#define AO_ADC_PIN5_PIN                AO_ADC_SENSE_BATT_PIN
+#define AO_ADC_PIN6_PORT       AO_ADC_RX_ANALOG_1_PORT
+#define AO_ADC_PIN6_PIN                AO_ADC_RX_ANALOG_1_PIN
+#define AO_ADC_PIN7_PORT       AO_ADC_RX_RSSI_PORT
+#define AO_ADC_PIN7_PIN                AO_ADC_RX_RSSI_PIN
+#define AO_ADC_PIN8_PORT       AO_ADC_RX_CD_PORT
+#define AO_ADC_PIN8_PIN                AO_ADC_RX_CD_PIN
+#define AO_ADC_PIN9_PORT       AO_ADC_ANT_SENSE_1_PORT
+#define AO_ADC_PIN9_PIN                AO_ADC_ANT_SENSE_1_PIN
+#define AO_ADC_PIN10_PORT      AO_ADC_ANT_SENSE_2_PORT
+#define AO_ADC_PIN10_PIN       AO_ADC_ANT_SENSE_2_PIN
+#define AO_ADC_PIN11_PORT      AO_ADC_GYRO_X_1_PORT
+#define AO_ADC_PIN11_PIN       AO_ADC_GYRO_X_1_PIN
+#define AO_ADC_PIN12_PORT      AO_ADC_GYRO_Z_1_PORT
+#define AO_ADC_PIN12_PIN       AO_ADC_GYRO_Z_1_PIN
+#define AO_ADC_PIN13_PORT      AO_ADC_GYRO_VREF_1_PORT
+#define AO_ADC_PIN13_PIN       AO_ADC_GYRO_VREF_1_PIN
+#define AO_ADC_PIN14_PORT      AO_ADC_GYRO_X_2_PORT
+#define AO_ADC_PIN14_PIN       AO_ADC_GYRO_X_2_PIN
+#define AO_ADC_PIN15_PORT      AO_ADC_GYRO_Z_2_PORT
+#define AO_ADC_PIN15_PIN       AO_ADC_GYRO_Z_2_PIN
+#define AO_ADC_PIN16_PORT      AO_ADC_GYRO_VREF_2_PORT
+#define AO_ADC_PIN16_PIN       AO_ADC_GYRO_VREF_2_PIN
 
 #define AO_NUM_ADC             (AO_NUM_ADC_PIN + 1)    /* Add internal temp sensor */
 
 #define AO_ADC_SQ1             AO_ADC_TX_PA_CURRENT
 #define AO_ADC_SQ1_NAME                "tx_pa_current"
-#define AO_ADC_SQ2             AO_ADC_TX_PA_TEMP
-#define AO_ADC_SQ2_NAME                "tx_pa_temp"
-#define AO_ADC_SQ3             AO_ADC_TX_XO_TEMP
-#define AO_ADC_SQ3_NAME                "tx_xo_temp"
-#define AO_ADC_SQ4             AO_ADC_RX_XO_TEMP
-#define AO_ADC_SQ4_NAME                "rx_xo_temp"
-#define AO_ADC_SQ5             AO_ADC_IHU_CURRENT
-#define AO_ADC_SQ5_NAME                "ihu_current"
-#define AO_ADC_SQ6             AO_ADC_RX_CD
-#define AO_ADC_SQ6_NAME                "rx_cd"
-#define AO_ADC_SQ7             AO_ADC_ANT_SENSE_1
-#define AO_ADC_SQ7_NAME                "ant_sense_1"
-#define AO_ADC_SQ8             AO_ADC_ANT_SENSE_2
-#define AO_ADC_SQ8_NAME                "ant_sense_2"
-#define AO_ADC_SQ9             AO_ADC_GYRO_X_1
-#define AO_ADC_SQ9_NAME                "gyro_x_1"
-#define AO_ADC_SQ10            AO_ADC_GYRO_Z_1
-#define AO_ADC_SQ10_NAME       "gyro_z_1"
-#define AO_ADC_SQ11            AO_ADC_GYRO_X_2
-#define AO_ADC_SQ11_NAME       "gyro_x_2"
-#define AO_ADC_SQ12            AO_ADC_GYRO_Z_2
-#define AO_ADC_SQ12_NAME       "gyro_z_2"
-#define AO_ADC_SQ13            AO_ADC_TEMP
-#define AO_ADC_SQ13_NAME       "temp"
+#define AO_ADC_SQ2             AO_ADC_TX_TEMP
+#define AO_ADC_SQ2_NAME                "tx_temp"
+#define AO_ADC_SQ3             AO_ADC_EXP4_TEMP
+#define AO_ADC_SQ3_NAME                "expr_temp"
+#define AO_ADC_SQ4             AO_ADC_RX_TEMP
+#define AO_ADC_SQ4_NAME                "rx_temp"
+#define AO_ADC_SQ5             AO_ADC_TX_ANALOG_1
+#define AO_ADC_SQ5_NAME                "tx_analog_1"
+#define AO_ADC_SQ6             AO_ADC_SENSE_BATT
+#define AO_ADC_SQ6_NAME                "sense_batt"
+#define AO_ADC_SQ7             AO_ADC_RX_ANALOG_1
+#define AO_ADC_SQ7_NAME                "rx_analog_1"
+#define AO_ADC_SQ8             AO_ADC_RX_RSSI
+#define AO_ADC_SQ8_NAME                "rx_rssi"
+#define AO_ADC_SQ9             AO_ADC_RX_CD
+#define AO_ADC_SQ9_NAME                "rx_cd"
+#define AO_ADC_SQ10            AO_ADC_ANT_SENSE_1
+#define AO_ADC_SQ10_NAME       "ant_sense_1"
+#define AO_ADC_SQ11            AO_ADC_ANT_SENSE_2
+#define AO_ADC_SQ11_NAME       "ant_sense_2"
+#define AO_ADC_SQ12            AO_ADC_GYRO_X_1
+#define AO_ADC_SQ12_NAME       "gyro_x_1"
+#define AO_ADC_SQ13            AO_ADC_GYRO_Z_1
+#define AO_ADC_SQ13_NAME       "gyro_z_1"
+#define AO_ADC_SQ14            AO_ADC_GYRO_VREF_1
+#define AO_ADC_SQ14_NAME       "gyro_vref_1"
+#define AO_ADC_SQ15            AO_ADC_GYRO_X_2
+#define AO_ADC_SQ15_NAME       "gyro_x_2"
+#define AO_ADC_SQ16            AO_ADC_GYRO_Z_2
+#define AO_ADC_SQ16_NAME       "gyro_z_2"
+#define AO_ADC_SQ17            AO_ADC_GYRO_VREF_2
+#define AO_ADC_SQ17_NAME       "gyro_vref_2"
+#define AO_ADC_SQ18            AO_ADC_TEMP
+#define AO_ADC_SQ18_NAME       "temp"
 
 /* Watchdog timer */