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)
28 #define HAS_SERIAL_1 1
32 #define USE_INTERNAL_FLASH 0
36 #define IGNITE_ON_P2 1
37 #define IGNITE_ON_P0 0
38 #define PACKET_HAS_MASTER 0
39 #define PACKET_HAS_SLAVE 1
42 #define HAS_COMPANION 1
43 #define COMPANION_CS_ON_P1 1
44 #define AO_COMPANION_CS_PORT P1
45 #define AO_COMPANION_CS_PIN 2
46 #define AO_COMPANION_CS P1_2
49 #define LEDS_AVAILABLE (AO_LED_RED)
50 #define HAS_EXTERNAL_TEMP 0
51 #define HAS_ACCEL_REF 0
57 #if defined(TELEMETRUM_V_1_1)
62 #define HAS_SERIAL_1 1
66 #define USE_INTERNAL_FLASH 0
70 #define IGNITE_ON_P2 1
71 #define IGNITE_ON_P0 0
72 #define PACKET_HAS_MASTER 0
73 #define PACKET_HAS_SLAVE 1
75 #define HAS_COMPANION 1
76 #define AO_COMPANION_CS_PORT P1
77 #define AO_COMPANION_CS_PIN 2
78 #define AO_COMPANION_CS P1_2
81 #define LEDS_AVAILABLE (AO_LED_RED)
82 #define HAS_EXTERNAL_TEMP 0
83 #define HAS_ACCEL_REF 1
84 #define SPI_CS_ON_P1 1
85 #define SPI_CS_ON_P0 0
86 #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
87 #define M25_MAX_CHIPS 1
93 #if defined(TELEMETRUM_V_1_2)
98 #define HAS_SERIAL_1 1
102 #define USE_INTERNAL_FLASH 0
106 #define IGNITE_ON_P2 1
107 #define IGNITE_ON_P0 0
108 #define PACKET_HAS_MASTER 0
109 #define PACKET_HAS_SLAVE 1
111 #define HAS_COMPANION 1
112 #define AO_COMPANION_CS_PORT P1
113 #define AO_COMPANION_CS_PIN 2
114 #define AO_COMPANION_CS P1_2
117 #define LEDS_AVAILABLE (AO_LED_RED)
118 #define HAS_EXTERNAL_TEMP 0
119 #define HAS_ACCEL_REF 1
120 #define SPI_CS_ON_P1 1
121 #define SPI_CS_ON_P0 0
122 #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
123 #define M25_MAX_CHIPS 1
126 #define HAS_MONITOR 0
129 #if defined(TELEDONGLE_V_0_2)
133 #define HAS_SERIAL_1 0
140 #define IGNITE_ON_P2 0
141 #define IGNITE_ON_P0 0
142 #define PACKET_HAS_MASTER 1
143 #define PACKET_HAS_SLAVE 0
145 #define AO_LED_GREEN 2
146 #define AO_MONITOR_LED AO_LED_GREEN
147 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
148 #define SPI_CS_ON_P1 1
149 #define SPI_CS_ON_P0 0
151 #define HAS_MONITOR 1
152 #define LEGACY_MONITOR 1
157 #if defined(TELEMINI_V_1_0)
162 #define HAS_SERIAL_1 0
166 #define HAS_FORCE_FREQ 1
167 #define USE_INTERNAL_FLASH 1
169 #define IGNITE_ON_P2 0
170 #define IGNITE_ON_P0 1
171 #define PACKET_HAS_MASTER 0
172 #define PACKET_HAS_SLAVE 1
173 #define USE_FAST_ASCENT_LOG 1
175 #define AO_LED_GREEN 1
177 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
178 #define HAS_EXTERNAL_TEMP 0
181 #define HAS_MONITOR 0
184 #if defined(TELENANO_V_0_1)
189 #define HAS_SERIAL_1 0
193 #define USE_INTERNAL_FLASH 1
195 #define IGNITE_ON_P2 0
196 #define IGNITE_ON_P0 1
197 #define PACKET_HAS_MASTER 0
198 #define PACKET_HAS_SLAVE 1
200 #define AO_LED_GREEN 1
202 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
203 #define HAS_EXTERNAL_TEMP 0
206 #define HAS_MONITOR 0
209 #if defined(TELEMETRUM_V_0_1)
214 #define HAS_SERIAL_1 1
219 #define USE_INTERNAL_FLASH 0
222 #define IGNITE_ON_P2 1
223 #define IGNITE_ON_P0 0
224 #define PACKET_HAS_MASTER 0
225 #define PACKET_HAS_SLAVE 1
227 #define AO_LED_GREEN 1
228 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
229 #define HAS_EXTERNAL_TEMP 1
230 #define HAS_ACCEL_REF 0
231 #define SPI_CS_ON_P1 1
232 #define SPI_CS_ON_P0 0
235 #define HAS_MONITOR 0
236 #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX ((uint32_t) 127 * (uint32_t) 1024)
239 #if defined(TELEDONGLE_V_0_1)
243 #define HAS_SERIAL_1 0
250 #define IGNITE_ON_P2 0
251 #define IGNITE_ON_P0 0
252 #define PACKET_HAS_MASTER 1
253 #define PACKET_HAS_SLAVE 0
255 #define AO_LED_GREEN 1
256 #define AO_MONITOR_LED AO_LED_GREEN
257 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
258 #define SPI_CS_ON_P1 0
259 #define SPI_CS_ON_P0 1
261 #define HAS_MONITOR 1
262 #define LEGACY_MONITOR 1
267 #if defined(TIDONGLE)
271 #define HAS_SERIAL_1 0
278 #define IGNITE_ON_P2 0
279 #define IGNITE_ON_P0 0
280 #define PACKET_HAS_MASTER 1
281 #define PACKET_HAS_SLAVE 0
283 #define AO_MONITOR_LED AO_LED_RED
284 #define LEDS_AVAILABLE (AO_LED_RED)
285 #define SPI_CS_ON_P1 0
286 #define SPI_CS_ON_P0 1
288 #define HAS_MONITOR 1
289 #define LEGACY_MONITOR 1
294 #if defined(TELEBT_V_0_0)
298 #define HAS_SERIAL_1 1
299 #define USE_SERIAL_1_STDIN 1
300 #define DELAY_SERIAL_1_STDIN 1
308 #define IGNITE_ON_P2 0
309 #define IGNITE_ON_P0 0
310 #define PACKET_HAS_MASTER 1
311 #define PACKET_HAS_SLAVE 0
313 #define AO_LED_GREEN 1
314 #define AO_MONITOR_LED AO_LED_RED
315 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
316 #define SPI_CS_ON_P1 1
317 #define SPI_CS_ON_P0 0
319 #define HAS_IGNITE_REPORT 1
320 #define BT_LINK_ON_P2 1
321 #define BT_LINK_ON_P1 0
322 #define BT_LINK_PIN_INDEX 7
323 #define BT_LINK_PIN P2_1
324 #define HAS_MONITOR 1
325 #define LEGACY_MONITOR 1
330 #if defined(TELEBT_V_0_1)
334 #define HAS_SERIAL_1 1
335 #define HAS_SERIAL_1_ALT_1 1
336 #define HAS_SERIAL_1_ALT_2 0
337 #define HAS_SERIAL_1_HW_FLOW 1
338 #define USE_SERIAL_1_STDIN 1
339 #define DELAY_SERIAL_1_STDIN 1
344 #define USE_INTERNAL_FLASH 0
348 #define IGNITE_ON_P2 0
349 #define IGNITE_ON_P0 0
350 #define PACKET_HAS_MASTER 1
351 #define PACKET_HAS_SLAVE 0
353 #define AO_LED_GREEN 2
354 #define AO_MONITOR_LED AO_LED_RED
355 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
356 #define SPI_CS_ON_P1 1
357 #define SPI_CS_ON_P0 0
358 #define AO_M25_SPI_CS_MASK 0x04 /* CS0 is P1_2 */
359 #define M25_MAX_CHIPS 1
362 #define HAS_IGNITE_REPORT 1
363 #define BT_LINK_ON_P2 0
364 #define BT_LINK_ON_P1 1
365 #define BT_LINK_PIN_INDEX 7
366 #define BT_LINK_PIN P1_7
367 #define HAS_MONITOR 1
368 #define LEGACY_MONITOR 1
373 #if defined(TELELAUNCH_V_0_1)
378 #define HAS_SERIAL_1 1
383 #define USE_INTERNAL_FLASH 1
386 #define IGNITE_ON_P2 1
387 #define IGNITE_ON_P0 0
388 #define PACKET_HAS_MASTER 0
389 #define PACKET_HAS_SLAVE 0
391 #define AO_LED_GREEN 1
392 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
393 #define HAS_EXTERNAL_TEMP 1
394 #define HAS_ACCEL_REF 0
395 #define SPI_CS_ON_P1 1
396 #define SPI_CS_ON_P0 0
399 #define HAS_MONITOR 0
405 #define DBG_CLOCK (1 << 4) /* mi0 */
406 #define DBG_DATA (1 << 5) /* mo0 */
407 #define DBG_RESET_N (1 << 3) /* c0 */
409 #define DBG_CLOCK_PIN (P1_4)
410 #define DBG_DATA_PIN (P1_5)
411 #define DBG_RESET_N_PIN (P1_3)
413 #define DBG_PORT_NUM 1
415 #define DBG_PORT_SEL P1SEL
416 #define DBG_PORT_INP P1INP
417 #define DBG_PORT_DIR P1DIR
419 #endif /* DBG_ON_P1 */
423 #define DBG_CLOCK (1 << 3)
424 #define DBG_DATA (1 << 4)
425 #define DBG_RESET_N (1 << 5)
427 #define DBG_CLOCK_PIN (P0_3)
428 #define DBG_DATA_PIN (P0_4)
429 #define DBG_RESET_N_PIN (P0_5)
431 #define DBG_PORT_NUM 0
433 #define DBG_PORT_SEL P0SEL
434 #define DBG_PORT_INP P0INP
435 #define DBG_PORT_DIR P0DIR
437 #endif /* DBG_ON_P0 */
439 #if COMPANION_CS_ON_P1
440 #define COMPANION_CS_PORT P1
441 #define COMPANION_CS_SEL P1SEL
442 #define COMPANION_CS_DIR P1DIR
446 #define SPI_CS_PORT P1
447 #define SPI_CS_SEL P1SEL
448 #define SPI_CS_DIR P1DIR
452 #define SPI_CS_PORT P0
453 #define SPI_CS_SEL P0SEL
454 #define SPI_CS_DIR P0DIR
457 #define AO_M25_SPI_CS_PORT SPI_CS_PORT
460 #error Please define IGNITE_ON_P2
464 #error Please define IGNITE_ON_P0
468 #error Please define HAS_ADC
472 #error Please define HAS_EEPROM
476 #error Please define HAS_LOG
480 #ifndef USE_INTERNAL_FLASH
481 #error Please define USE_INTERNAL_FLASH
486 #error Please define HAS_DBG
490 #error Please define HAS_IGNITE
494 #define HAS_IGNITE_REPORT 1
497 #ifndef PACKET_HAS_MASTER
498 #error Please define PACKET_HAS_MASTER
501 #ifndef PACKET_HAS_SLAVE
502 #error Please define PACKET_HAS_SLAVE
506 #error Please define HAS_MONITOR
511 #error Please define HAS_RSSI
516 #error Please define HAS_ADC
522 #ifndef HAS_ACCEL_REF
523 #error Please define HAS_ACCEL_REF
526 #define HAS_ACCEL_REF 0
532 #define AO_IGNITER_PORT P2
533 #define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
534 #define AO_IGNITER_DROGUE P2_3
535 #define AO_IGNITER_MAIN P2_4
536 #define AO_IGNITER_DIR P2DIR
537 #define AO_IGNITER_DROGUE_BIT (1 << 3)
538 #define AO_IGNITER_MAIN_BIT (1 << 4)
539 #define AO_IGNITER_DROGUE_PIN 3
540 #define AO_IGNITER_MAIN_PIN 4
544 #define AO_IGNITER_PORT P0
545 #define AO_IGNITER_DROGUE P0_5
546 #define AO_IGNITER_MAIN P0_4
547 #define AO_IGNITER_DIR P0DIR
548 #define AO_IGNITER_DROGUE_BIT (1 << 5)
549 #define AO_IGNITER_MAIN_BIT (1 << 4)
550 #define AO_IGNITER_DROGUE_PIN 5
551 #define AO_IGNITER_MAIN_PIN 4
554 #define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
555 #define AO_IGNITER_MAIN_PORT AO_IGNITER_PORT
557 /* test these values with real igniters */
558 #define AO_IGNITER_OPEN 1000
559 #define AO_IGNITER_CLOSED 7000
560 #define AO_IGNITER_FIRE_TIME AO_MS_TO_TICKS(50)
561 #define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000)
564 int16_t accel; /* accelerometer */
565 int16_t pres; /* pressure sensor */
566 int16_t temp; /* temperature sensor */
567 int16_t v_batt; /* battery voltage */
568 int16_t sense_d; /* drogue continuity sense */
569 int16_t sense_m; /* main continuity sense */
571 uint16_t accel_ref; /* acceleration reference */
575 #endif /* _AO_PINS_H_ */