X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Ftelemini-v2.0%2Fao_pins.h;h=948310e553207f196c76d1121217e3a06e6ac0cf;hp=9ecd076e4e12f6e9c86d07fb6d95867e2a3f5636;hb=1684291ba9a4f3bc2828e7b079ac27efcba6a163;hpb=312f6194a4bc75473cb0d61a6d58b66fb1f7c068 diff --git a/src/telemini-v2.0/ao_pins.h b/src/telemini-v2.0/ao_pins.h index 9ecd076e..948310e5 100644 --- a/src/telemini-v2.0/ao_pins.h +++ b/src/telemini-v2.0/ao_pins.h @@ -22,8 +22,18 @@ #define HAS_FLIGHT 1 #define HAS_USB 1 + +#define HAS_USB_PULLUP 1 +#define AO_USB_PULLUP_PORT P1 +#define AO_USB_PULLUP_PIN 0 +#define AO_USB_PULLUP P1_0 + +#define AO_SMALL_ALTITUDE_TABLE 1 + #define USB_FORCE_FLIGHT_IDLE 1 #define HAS_BEEP 1 +#define HAS_BEEP_CONFIG 1 +#define HAS_BATTERY_REPORT 1 #define HAS_GPS 0 #define HAS_SERIAL_1 0 #define HAS_EEPROM 1 @@ -31,11 +41,11 @@ #define USE_INTERNAL_FLASH 0 #define HAS_DBG 0 #define PACKET_HAS_SLAVE 1 -#define USE_FAST_ASCENT_LOG 1 +#define HAS_RADIO_RATE 1 +#define HAS_TELEMETRY 1 -#define AO_LED_GREEN 1 #define AO_LED_RED 2 -#define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN) +#define LEDS_AVAILABLE AO_LED_RED #define HAS_EXTERNAL_TEMP 0 #define HAS_ACCEL 0 #define HAS_IGNITE 1 @@ -75,6 +85,7 @@ #define AO_MS5607_CS_MASK (1 << AO_MS5607_CS_PIN) #define AO_MS5607_MISO_PORT P0 #define AO_MS5607_MISO_PIN 2 +#define AO_MS5607_MISO P0_2 #define AO_MS5607_MISO_MASK (1 << AO_MS5607_MISO_PIN) #define AO_MS5607_SPI_INDEX 0 #define HAS_EXTI_0 1 @@ -102,6 +113,7 @@ #define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000) #define AO_SEND_MINI +#define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMINI /* * ADC @@ -127,22 +139,51 @@ struct ao_adc { printf("tick: %5u apogee: %5d main: %5d batt: %5d\n", \ (p)->tick, (p)->adc.sense_a, (p)->adc.sense_m, (p)->adc.v_batt) -#define FETCH_ADC() \ - a = (uint8_t __xdata *) (&ao_data_ring[ao_data_head].adc); \ - switch (sequence) { \ - case 4: \ - a += 4; \ - sequence = 0; \ - break; \ - case 1: \ - a += 2; \ - sequence = 4; \ - break; \ - case 0: \ - sequence = 1; \ - break; \ - } \ - if (sequence) \ - ; +#define AO_ADC_PINS ((1 << 0) | (1 << 1) | (1 << 4)) + +#define FETCH_ADC() do { \ + a = (uint8_t __xdata *) (&ao_data_ring[ao_data_head].adc); \ + switch (sequence) { \ + case 4: \ + a += 4; \ + sequence = 0; \ + break; \ + case 1: \ + a += 2; \ + sequence = 4; \ + break; \ + case 0: \ + sequence = 1; \ + break; \ + } \ + a[0] = ADCL; \ + a[1] = ADCH; \ + if (sequence) { \ + ADCCON3 = ADCCON3_EREF_VDD | ADCCON3_EDIV_512 | sequence; \ + return; \ + } \ + AO_DATA_PRESENT(AO_DATA_ADC); \ + if (ao_data_present != AO_DATA_ALL) \ + return; \ + ao_data_ring[ao_data_head].ms5607_raw.pres = ao_ms5607_current.pres; \ + ao_data_ring[ao_data_head].ms5607_raw.temp = ao_ms5607_current.temp; \ + } while (0) + +/* + * Voltage divider on ADC battery sampler + */ +#define AO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_BATTERY_DIV_MINUS 27 /* 27k */ + +/* + * 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_ */