2 * Copyright © 2010 Keith Packard <keithp@keithp.com>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
23 #if defined(TELEMETRUM_V_1_0)
27 #define HAS_BEEP_CONFIG 0
29 #define HAS_SERIAL_1 1
33 #define USE_INTERNAL_FLASH 0
37 #define IGNITE_ON_P2 1
38 #define IGNITE_ON_P0 0
39 #define PACKET_HAS_MASTER 0
40 #define PACKET_HAS_SLAVE 1
43 #define HAS_COMPANION 1
44 #define COMPANION_CS_ON_P1 1
45 #define AO_COMPANION_CS_PORT P1
46 #define AO_COMPANION_CS_PIN 2
47 #define AO_COMPANION_CS P1_2
50 #define LEDS_AVAILABLE (AO_LED_RED)
51 #define HAS_EXTERNAL_TEMP 0
52 #define HAS_ACCEL_REF 0
58 #if defined(TELEMETRUM_V_1_1)
62 #define HAS_BEEP_CONFIG 0
63 #define HAS_BATTERY_REPORT 1
65 #define HAS_SERIAL_1 1
69 #define USE_INTERNAL_FLASH 0
73 #define IGNITE_ON_P2 1
74 #define IGNITE_ON_P0 0
75 #define PACKET_HAS_MASTER 0
76 #define PACKET_HAS_SLAVE 1
78 #define HAS_COMPANION 1
79 #define AO_COMPANION_CS_PORT P1
80 #define AO_COMPANION_CS_PIN 2
81 #define AO_COMPANION_CS P1_2
84 #define LEDS_AVAILABLE (AO_LED_RED)
85 #define HAS_EXTERNAL_TEMP 0
86 #define HAS_ACCEL_REF 1
87 #define SPI_CS_ON_P1 1
88 #define SPI_CS_ON_P0 0
89 #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
90 #define M25_MAX_CHIPS 1
96 #if defined(TELEMETRUM_V_1_2)
100 #define HAS_BEEP_CONFIG 0
101 #define HAS_BATTERY_REPORT 1
103 #define HAS_SERIAL_1 1
107 #define USE_INTERNAL_FLASH 0
111 #define IGNITE_ON_P2 1
112 #define IGNITE_ON_P0 0
113 #define PACKET_HAS_MASTER 0
114 #define PACKET_HAS_SLAVE 1
116 #define HAS_COMPANION 1
117 #define AO_COMPANION_CS_PORT P1
118 #define AO_COMPANION_CS_PIN 2
119 #define AO_COMPANION_CS P1_2
122 #define LEDS_AVAILABLE (AO_LED_RED)
123 #define HAS_EXTERNAL_TEMP 0
124 #define HAS_ACCEL_REF 1
125 #define SPI_CS_ON_P1 1
126 #define SPI_CS_ON_P0 0
127 #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
128 #define M25_MAX_CHIPS 1
131 #define HAS_MONITOR 0
134 #if defined(TELEDONGLE_V_0_2)
138 #define HAS_SERIAL_1 0
145 #define IGNITE_ON_P2 0
146 #define IGNITE_ON_P0 0
147 #define PACKET_HAS_MASTER 1
148 #define PACKET_HAS_SLAVE 0
150 #define AO_LED_GREEN 2
151 #define AO_MONITOR_LED AO_LED_GREEN
152 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
153 #define SPI_CS_ON_P1 1
154 #define SPI_CS_ON_P0 0
156 #define HAS_MONITOR 1
157 #define LEGACY_MONITOR 1
162 #if defined(TELEMINI_V_1_0)
167 #define HAS_SERIAL_1 0
171 #define HAS_FORCE_FREQ 1
172 #define USE_INTERNAL_FLASH 1
174 #define IGNITE_ON_P2 0
175 #define IGNITE_ON_P0 1
176 #define PACKET_HAS_MASTER 0
177 #define PACKET_HAS_SLAVE 1
178 #define USE_FAST_ASCENT_LOG 1
180 #define AO_LED_GREEN 1
182 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
183 #define HAS_EXTERNAL_TEMP 0
186 #define HAS_MONITOR 0
189 #if defined(TELENANO_V_0_1)
194 #define HAS_SERIAL_1 0
198 #define USE_INTERNAL_FLASH 1
200 #define IGNITE_ON_P2 0
201 #define IGNITE_ON_P0 1
202 #define PACKET_HAS_MASTER 0
203 #define PACKET_HAS_SLAVE 1
205 #define AO_LED_GREEN 1
207 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
208 #define HAS_EXTERNAL_TEMP 0
211 #define HAS_MONITOR 0
214 #if defined(TELEMETRUM_V_0_1)
218 #define HAS_BEEP_CONFIG 0
220 #define HAS_SERIAL_1 1
225 #define USE_INTERNAL_FLASH 0
228 #define IGNITE_ON_P2 1
229 #define IGNITE_ON_P0 0
230 #define PACKET_HAS_MASTER 0
231 #define PACKET_HAS_SLAVE 1
233 #define AO_LED_GREEN 1
234 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
235 #define HAS_EXTERNAL_TEMP 1
236 #define HAS_ACCEL_REF 0
237 #define SPI_CS_ON_P1 1
238 #define SPI_CS_ON_P0 0
241 #define HAS_MONITOR 0
242 #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX ((uint32_t) 127 * (uint32_t) 1024)
245 #if defined(TELEDONGLE_V_0_1)
249 #define HAS_SERIAL_1 0
256 #define IGNITE_ON_P2 0
257 #define IGNITE_ON_P0 0
258 #define PACKET_HAS_MASTER 1
259 #define PACKET_HAS_SLAVE 0
261 #define AO_LED_GREEN 1
262 #define AO_MONITOR_LED AO_LED_GREEN
263 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
264 #define SPI_CS_ON_P1 0
265 #define SPI_CS_ON_P0 1
267 #define HAS_MONITOR 1
268 #define LEGACY_MONITOR 1
273 #if defined(TIDONGLE)
277 #define HAS_SERIAL_1 0
284 #define IGNITE_ON_P2 0
285 #define IGNITE_ON_P0 0
286 #define PACKET_HAS_MASTER 1
287 #define PACKET_HAS_SLAVE 0
289 #define AO_MONITOR_LED AO_LED_RED
290 #define LEDS_AVAILABLE (AO_LED_RED)
291 #define SPI_CS_ON_P1 0
292 #define SPI_CS_ON_P0 1
294 #define HAS_MONITOR 1
295 #define LEGACY_MONITOR 1
300 #if defined(TELEBT_V_0_0)
304 #define HAS_SERIAL_1 1
305 #define USE_SERIAL_1_STDIN 1
306 #define DELAY_SERIAL_1_STDIN 1
314 #define IGNITE_ON_P2 0
315 #define IGNITE_ON_P0 0
316 #define PACKET_HAS_MASTER 1
317 #define PACKET_HAS_SLAVE 0
319 #define AO_LED_GREEN 1
320 #define AO_MONITOR_LED AO_LED_RED
321 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
322 #define SPI_CS_ON_P1 1
323 #define SPI_CS_ON_P0 0
325 #define HAS_IGNITE_REPORT 1
326 #define BT_LINK_ON_P2 1
327 #define BT_LINK_ON_P1 0
328 #define BT_LINK_PIN_INDEX 7
329 #define BT_LINK_PIN P2_1
330 #define HAS_MONITOR 1
331 #define LEGACY_MONITOR 1
336 #if defined(TELEBT_V_0_1)
340 #define HAS_BEEP_CONFIG 0
341 #define HAS_SERIAL_1 1
342 #define HAS_SERIAL_1_ALT_1 1
343 #define HAS_SERIAL_1_ALT_2 0
344 #define HAS_SERIAL_1_HW_FLOW 1
345 #define USE_SERIAL_1_STDIN 1
346 #define DELAY_SERIAL_1_STDIN 1
351 #define USE_INTERNAL_FLASH 0
355 #define IGNITE_ON_P2 0
356 #define IGNITE_ON_P0 0
357 #define PACKET_HAS_MASTER 1
358 #define PACKET_HAS_SLAVE 0
360 #define AO_LED_GREEN 2
361 #define AO_MONITOR_LED AO_LED_RED
362 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
363 #define SPI_CS_ON_P1 1
364 #define SPI_CS_ON_P0 0
365 #define AO_M25_SPI_CS_MASK 0x04 /* CS0 is P1_2 */
366 #define M25_MAX_CHIPS 1
369 #define HAS_IGNITE_REPORT 1
370 #define BT_LINK_ON_P2 0
371 #define BT_LINK_ON_P1 1
372 #define BT_LINK_PIN_INDEX 7
373 #define BT_LINK_PIN P1_7
374 #define HAS_MONITOR 1
375 #define LEGACY_MONITOR 1
380 #if defined(TELELAUNCH_V_0_1)
385 #define HAS_SERIAL_1 1
390 #define USE_INTERNAL_FLASH 1
393 #define IGNITE_ON_P2 1
394 #define IGNITE_ON_P0 0
395 #define PACKET_HAS_MASTER 0
396 #define PACKET_HAS_SLAVE 0
398 #define AO_LED_GREEN 1
399 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
400 #define HAS_EXTERNAL_TEMP 1
401 #define HAS_ACCEL_REF 0
402 #define SPI_CS_ON_P1 1
403 #define SPI_CS_ON_P0 0
406 #define HAS_MONITOR 0
412 #define DBG_CLOCK (1 << 4) /* mi0 */
413 #define DBG_DATA (1 << 5) /* mo0 */
414 #define DBG_RESET_N (1 << 3) /* c0 */
416 #define DBG_CLOCK_PIN (P1_4)
417 #define DBG_DATA_PIN (P1_5)
418 #define DBG_RESET_N_PIN (P1_3)
420 #define DBG_PORT_NUM 1
422 #define DBG_PORT_SEL P1SEL
423 #define DBG_PORT_INP P1INP
424 #define DBG_PORT_DIR P1DIR
426 #endif /* DBG_ON_P1 */
430 #define DBG_CLOCK (1 << 3)
431 #define DBG_DATA (1 << 4)
432 #define DBG_RESET_N (1 << 5)
434 #define DBG_CLOCK_PIN (P0_3)
435 #define DBG_DATA_PIN (P0_4)
436 #define DBG_RESET_N_PIN (P0_5)
438 #define DBG_PORT_NUM 0
440 #define DBG_PORT_SEL P0SEL
441 #define DBG_PORT_INP P0INP
442 #define DBG_PORT_DIR P0DIR
444 #endif /* DBG_ON_P0 */
446 #if COMPANION_CS_ON_P1
447 #define COMPANION_CS_PORT P1
448 #define COMPANION_CS_SEL P1SEL
449 #define COMPANION_CS_DIR P1DIR
453 #define SPI_CS_PORT P1
454 #define SPI_CS_SEL P1SEL
455 #define SPI_CS_DIR P1DIR
459 #define SPI_CS_PORT P0
460 #define SPI_CS_SEL P0SEL
461 #define SPI_CS_DIR P0DIR
464 #define AO_M25_SPI_CS_PORT SPI_CS_PORT
467 #error Please define IGNITE_ON_P2
471 #error Please define IGNITE_ON_P0
475 #error Please define HAS_ADC
479 #error Please define HAS_EEPROM
483 #error Please define HAS_LOG
487 #ifndef USE_INTERNAL_FLASH
488 #error Please define USE_INTERNAL_FLASH
493 #error Please define HAS_DBG
497 #error Please define HAS_IGNITE
501 #define HAS_IGNITE_REPORT 1
504 #ifndef PACKET_HAS_MASTER
505 #error Please define PACKET_HAS_MASTER
508 #ifndef PACKET_HAS_SLAVE
509 #error Please define PACKET_HAS_SLAVE
513 #error Please define HAS_MONITOR
518 #error Please define HAS_RSSI
523 #error Please define HAS_ADC
529 #ifndef HAS_ACCEL_REF
530 #error Please define HAS_ACCEL_REF
533 #define HAS_ACCEL_REF 0
539 #define AO_IGNITER_PORT P2
540 #define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
541 #define AO_IGNITER_DROGUE P2_3
542 #define AO_IGNITER_MAIN P2_4
543 #define AO_IGNITER_DIR P2DIR
544 #define AO_IGNITER_DROGUE_BIT (1 << 3)
545 #define AO_IGNITER_MAIN_BIT (1 << 4)
546 #define AO_IGNITER_DROGUE_PIN 3
547 #define AO_IGNITER_MAIN_PIN 4
551 #define AO_IGNITER_PORT P0
552 #define AO_IGNITER_DROGUE P0_5
553 #define AO_IGNITER_MAIN P0_4
554 #define AO_IGNITER_DIR P0DIR
555 #define AO_IGNITER_DROGUE_BIT (1 << 5)
556 #define AO_IGNITER_MAIN_BIT (1 << 4)
557 #define AO_IGNITER_DROGUE_PIN 5
558 #define AO_IGNITER_MAIN_PIN 4
561 #define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
562 #define AO_IGNITER_MAIN_PORT AO_IGNITER_PORT
564 /* test these values with real igniters */
565 #define AO_IGNITER_OPEN 1000
566 #define AO_IGNITER_CLOSED 7000
567 #define AO_IGNITER_FIRE_TIME AO_MS_TO_TICKS(50)
568 #define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000)
571 int16_t accel; /* accelerometer */
572 int16_t pres; /* pressure sensor */
573 int16_t temp; /* temperature sensor */
574 int16_t v_batt; /* battery voltage */
575 int16_t sense_d; /* drogue continuity sense */
576 int16_t sense_m; /* main continuity sense */
578 uint16_t accel_ref; /* acceleration reference */
583 * Voltage divider on ADC battery sampler
585 #define AO_BATTERY_DIV_PLUS 5 /* 5k */
586 #define AO_BATTERY_DIV_MINUS 10 /* 10k */
589 * Voltage divider on ADC igniter samplers
591 #define AO_IGNITE_DIV_PLUS 100 /* 100k */
592 #define AO_IGNITE_DIV_MINUS 27 /* 27k */
595 * ADC reference in decivolts
597 #define AO_ADC_REFERENCE_DV 33
599 #endif /* _AO_PINS_H_ */