cc1111: Wait for internal flash write to complete
[fw/altos] / src / cc1111 / ao_pins.h
index fc6ed3ec280a0287fe1fe6b3b800cce4cc0364f6..e12f813f8b0b7f8a48fef078252f093de42bb615 100644 (file)
 #ifndef _AO_PINS_H_
 #define _AO_PINS_H_
 
-#define HAS_RADIO      1
+#define HAS_RADIO              1
+#define DISABLE_LOG_SPACE      1
+#define AO_VALUE_32            0
+#define HAS_WIDE_GPS           0
 
 #if defined(TELEMETRUM_V_1_0)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 1
        #define HAS_BEEP                1
+       #define HAS_BEEP_CONFIG         0
        #define HAS_GPS                 1
        #define HAS_SERIAL_1            1
        #define HAS_ADC                 1
        #define HAS_ACCEL               1
        #define HAS_IGNITE              1
        #define HAS_MONITOR             0
+       #define HAS_TELEMETRY           1
+       #define HAS_RADIO_RATE          0       /* not enough space for this */
+       #define HAS_MUTEX_TRY           0
 #endif
 
 #if defined(TELEMETRUM_V_1_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 1
        #define HAS_BEEP                1
+       #define HAS_BEEP_CONFIG         0
+       #define HAS_BATTERY_REPORT      1
        #define HAS_GPS                 1
        #define HAS_SERIAL_1            1
        #define HAS_ADC                 1
        #define HAS_ACCEL               1
        #define HAS_IGNITE              1
        #define HAS_MONITOR             0
+       #define HAS_TELEMETRY           1
+       #define HAS_RADIO_RATE          0       /* not enough space for this */
+       #define HAS_MUTEX_TRY           0
 #endif
 
 #if defined(TELEMETRUM_V_1_2)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 1
        #define HAS_BEEP                1
+       #define HAS_BEEP_CONFIG         0
+       #define HAS_BATTERY_REPORT      1
        #define HAS_GPS                 1
        #define HAS_SERIAL_1            1
        #define HAS_ADC                 1
        #define HAS_ACCEL               1
        #define HAS_IGNITE              1
        #define HAS_MONITOR             0
+       #define HAS_TELEMETRY           1
+       #define HAS_RADIO_RATE          0       /* not enough space for this */
+       #define HAS_MUTEX_TRY           0
 #endif
 
 #if defined(TELEDONGLE_V_0_2)
        #define LEGACY_MONITOR          1
        #define HAS_RSSI                1
        #define HAS_AES                 0
+       #define HAS_TELEMETRY           0
+       #define AO_RADIO_REG_TEST       1
 #endif
 
 #if defined(TELEMINI_V_1_0)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 0
        #define HAS_BEEP                0
        #define HAS_ACCEL               0
        #define HAS_IGNITE              1
        #define HAS_MONITOR             0
+       #define HAS_TELEMETRY           1
+       #define HAS_RADIO_RATE          0       /* not enough space for this */
 #endif
 
 #if defined(TELENANO_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 0
        #define HAS_BEEP                0
        #define HAS_ACCEL               0
        #define HAS_IGNITE              0
        #define HAS_MONITOR             0
+       #define HAS_TELEMETRY           1
+       #define HAS_RADIO_RATE          0       /* not enough space for this */
 #endif
 
 #if defined(TELEMETRUM_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 1
        #define HAS_BEEP                1
+       #define HAS_BEEP_CONFIG         0
        #define HAS_GPS                 1
        #define HAS_SERIAL_1            1
        #define HAS_ADC                 1
        #define HAS_ACCEL               1
        #define HAS_IGNITE              1
        #define HAS_MONITOR             0
+       #define HAS_TELEMETRY           1
+       #define HAS_RADIO_RATE          0       /* not enough space for this */
        #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX        ((uint32_t) 127 * (uint32_t) 1024)
 #endif
 
 #if defined(TELEDONGLE_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                0
        #define LEGACY_MONITOR          1
        #define HAS_RSSI                1
        #define HAS_AES                 0
+       #define HAS_TELEMETRY           0
 #endif
 
 #if defined(TIDONGLE)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                0
        #define LEGACY_MONITOR          1
        #define HAS_RSSI                1
        #define HAS_AES                 0
+       #define HAS_TELEMETRY           0
 #endif
 
 #if defined(TELEBT_V_0_0)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                0
        #define LEGACY_MONITOR          1
        #define HAS_RSSI                0
        #define HAS_AES                 0
+       #define HAS_TELEMETRY           0
+       #define AO_RADIO_REG_TEST       1
 #endif
 
 #if defined(TELEBT_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                1
+       #define HAS_BEEP_CONFIG         0
        #define HAS_SERIAL_1            1
        #define HAS_SERIAL_1_ALT_1      1
        #define HAS_SERIAL_1_ALT_2      0
        #define LEGACY_MONITOR          1
        #define HAS_RSSI                0
        #define HAS_AES                 0
+       #define HAS_TELEMETRY           0
+       #define AO_RADIO_REG_TEST       1
 #endif
 
 #if defined(TELELAUNCH_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                1
        #define HAS_IGNITE              1
        #define HAS_MONITOR             0
        #define HAS_AES                 1
+       #define HAS_TELEMETRY           0
 #endif
 
 #if DBG_ON_P1
 #define AO_IGNITER_FIRE_TIME   AO_MS_TO_TICKS(50)
 #define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000)
 
+struct ao_adc {
+       int16_t         accel;          /* accelerometer */
+       int16_t         pres;           /* pressure sensor */
+       int16_t         temp;           /* temperature sensor */
+       int16_t         v_batt;         /* battery voltage */
+       int16_t         sense_d;        /* drogue continuity sense */
+       int16_t         sense_m;        /* main continuity sense */
+#if HAS_ACCEL_REF
+       uint16_t        accel_ref;      /* acceleration reference */
+#endif
+};
+
+/*
+ * Voltage divider on ADC battery sampler
+ */
+#define AO_BATTERY_DIV_PLUS    5       /* 5k */
+#define AO_BATTERY_DIV_MINUS   10      /* 10k */
+
+/*
+ * Voltage divider on ADC igniter samplers
+ */
+#define AO_IGNITE_DIV_PLUS     100     /* 100k */
+#define AO_IGNITE_DIV_MINUS    27      /* 27k */
+
+/*
+ * ADC reference in decivolts
+ */
+#define AO_ADC_REFERENCE_DV    33
+
 #endif /* _AO_PINS_H_ */