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.
21 #if defined(TELEMETRUM_V_1_0)
26 #define HAS_SERIAL_1 1
30 #define USE_INTERNAL_FLASH 0
34 #define IGNITE_ON_P2 1
35 #define IGNITE_ON_P0 0
36 #define PACKET_HAS_MASTER 0
37 #define PACKET_HAS_SLAVE 1
40 #define HAS_COMPANION 1
41 #define COMPANION_CS_ON_P1 1
42 #define COMPANION_CS_MASK 0x4 /* CS1 is P1_2 */
43 #define COMPANION_CS P1_2
46 #define LEDS_AVAILABLE (AO_LED_RED)
47 #define HAS_EXTERNAL_TEMP 0
48 #define HAS_ACCEL_REF 0
54 #if defined(TELEMETRUM_V_1_1)
59 #define HAS_SERIAL_1 1
63 #define USE_INTERNAL_FLASH 0
67 #define IGNITE_ON_P2 1
68 #define IGNITE_ON_P0 0
69 #define PACKET_HAS_MASTER 0
70 #define PACKET_HAS_SLAVE 1
72 #define HAS_COMPANION 1
73 #define COMPANION_CS_ON_P1 1
74 #define COMPANION_CS_MASK 0x4 /* CS1 is P1_2 */
75 #define COMPANION_CS P1_2
78 #define LEDS_AVAILABLE (AO_LED_RED)
79 #define HAS_EXTERNAL_TEMP 0
80 #define HAS_ACCEL_REF 1
81 #define SPI_CS_ON_P1 1
82 #define SPI_CS_ON_P0 0
83 #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
84 #define M25_MAX_CHIPS 1
90 #if defined(TELEMETRUM_V_1_2)
95 #define HAS_SERIAL_1 1
99 #define USE_INTERNAL_FLASH 0
103 #define IGNITE_ON_P2 1
104 #define IGNITE_ON_P0 0
105 #define PACKET_HAS_MASTER 0
106 #define PACKET_HAS_SLAVE 1
108 #define HAS_COMPANION 1
109 #define COMPANION_CS_ON_P1 1
110 #define COMPANION_CS_MASK 0x4 /* CS1 is P1_2 */
111 #define COMPANION_CS P1_2
114 #define LEDS_AVAILABLE (AO_LED_RED)
115 #define HAS_EXTERNAL_TEMP 0
116 #define HAS_ACCEL_REF 1
117 #define SPI_CS_ON_P1 1
118 #define SPI_CS_ON_P0 0
119 #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
120 #define M25_MAX_CHIPS 1
123 #define HAS_MONITOR 0
126 #if defined(TELEDONGLE_V_0_2)
130 #define HAS_SERIAL_1 0
137 #define IGNITE_ON_P2 0
138 #define IGNITE_ON_P0 0
139 #define PACKET_HAS_MASTER 1
140 #define PACKET_HAS_SLAVE 0
142 #define AO_LED_GREEN 2
143 #define AO_MONITOR_LED AO_LED_GREEN
144 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
145 #define SPI_CS_ON_P1 1
146 #define SPI_CS_ON_P0 0
148 #define HAS_MONITOR 1
149 #define LEGACY_MONITOR 1
154 #if defined(TELEMINI_V_1_0)
159 #define HAS_SERIAL_1 0
163 #define USE_INTERNAL_FLASH 1
165 #define IGNITE_ON_P2 0
166 #define IGNITE_ON_P0 1
167 #define PACKET_HAS_MASTER 0
168 #define PACKET_HAS_SLAVE 1
169 #define USE_FAST_ASCENT_LOG 1
171 #define AO_LED_GREEN 1
173 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
174 #define HAS_EXTERNAL_TEMP 0
177 #define HAS_MONITOR 0
180 #if defined(TELENANO_V_0_1)
185 #define HAS_SERIAL_1 0
189 #define USE_INTERNAL_FLASH 1
191 #define IGNITE_ON_P2 0
192 #define IGNITE_ON_P0 1
193 #define PACKET_HAS_MASTER 0
194 #define PACKET_HAS_SLAVE 1
196 #define AO_LED_GREEN 1
198 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
199 #define HAS_EXTERNAL_TEMP 0
202 #define HAS_MONITOR 0
205 #if defined(TELEMETRUM_V_0_1)
210 #define HAS_SERIAL_1 1
215 #define USE_INTERNAL_FLASH 0
218 #define IGNITE_ON_P2 1
219 #define IGNITE_ON_P0 0
220 #define PACKET_HAS_MASTER 0
221 #define PACKET_HAS_SLAVE 1
223 #define AO_LED_GREEN 1
224 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
225 #define HAS_EXTERNAL_TEMP 1
226 #define HAS_ACCEL_REF 0
227 #define SPI_CS_ON_P1 1
228 #define SPI_CS_ON_P0 0
231 #define HAS_MONITOR 0
232 #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX ((uint32_t) 127 * (uint32_t) 1024)
235 #if defined(TELEDONGLE_V_0_1)
239 #define HAS_SERIAL_1 0
246 #define IGNITE_ON_P2 0
247 #define IGNITE_ON_P0 0
248 #define PACKET_HAS_MASTER 1
249 #define PACKET_HAS_SLAVE 0
251 #define AO_LED_GREEN 1
252 #define AO_MONITOR_LED AO_LED_GREEN
253 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
254 #define SPI_CS_ON_P1 0
255 #define SPI_CS_ON_P0 1
257 #define HAS_MONITOR 1
258 #define LEGACY_MONITOR 1
263 #if defined(TIDONGLE)
267 #define HAS_SERIAL_1 0
274 #define IGNITE_ON_P2 0
275 #define IGNITE_ON_P0 0
276 #define PACKET_HAS_MASTER 1
277 #define PACKET_HAS_SLAVE 0
279 #define AO_MONITOR_LED AO_LED_RED
280 #define LEDS_AVAILABLE (AO_LED_RED)
281 #define SPI_CS_ON_P1 0
282 #define SPI_CS_ON_P0 1
284 #define HAS_MONITOR 1
285 #define LEGACY_MONITOR 1
290 #if defined(TELEBT_V_0_0)
294 #define HAS_SERIAL_1 1
295 #define USE_SERIAL_1_STDIN 1
296 #define DELAY_SERIAL_1_STDIN 1
304 #define IGNITE_ON_P2 0
305 #define IGNITE_ON_P0 0
306 #define PACKET_HAS_MASTER 1
307 #define PACKET_HAS_SLAVE 0
309 #define AO_LED_GREEN 1
310 #define AO_MONITOR_LED AO_LED_RED
311 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
312 #define SPI_CS_ON_P1 1
313 #define SPI_CS_ON_P0 0
315 #define HAS_IGNITE_REPORT 1
316 #define BT_LINK_ON_P2 1
317 #define BT_LINK_ON_P1 0
318 #define BT_LINK_PIN_INDEX 7
319 #define BT_LINK_PIN P2_1
320 #define HAS_MONITOR 1
321 #define LEGACY_MONITOR 1
326 #if defined(TELEBT_V_0_1)
330 #define HAS_SERIAL_1 1
331 #define HAS_SERIAL_1_ALT_1 1
332 #define HAS_SERIAL_1_ALT_2 0
333 #define HAS_SERIAL_1_HW_FLOW 1
334 #define USE_SERIAL_1_STDIN 1
335 #define DELAY_SERIAL_1_STDIN 1
340 #define USE_INTERNAL_FLASH 0
344 #define IGNITE_ON_P2 0
345 #define IGNITE_ON_P0 0
346 #define PACKET_HAS_MASTER 1
347 #define PACKET_HAS_SLAVE 0
349 #define AO_LED_GREEN 2
350 #define AO_MONITOR_LED AO_LED_RED
351 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
352 #define SPI_CS_ON_P1 1
353 #define SPI_CS_ON_P0 0
354 #define AO_M25_SPI_CS_MASK 0x04 /* CS0 is P1_2 */
355 #define M25_MAX_CHIPS 1
358 #define HAS_IGNITE_REPORT 1
359 #define BT_LINK_ON_P2 0
360 #define BT_LINK_ON_P1 1
361 #define BT_LINK_PIN_INDEX 7
362 #define BT_LINK_PIN P1_7
363 #define HAS_MONITOR 1
364 #define LEGACY_MONITOR 1
369 #if defined(TELELAUNCH_V_0_1)
374 #define HAS_SERIAL_1 1
379 #define USE_INTERNAL_FLASH 1
382 #define IGNITE_ON_P2 1
383 #define IGNITE_ON_P0 0
384 #define PACKET_HAS_MASTER 0
385 #define PACKET_HAS_SLAVE 0
387 #define AO_LED_GREEN 1
388 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
389 #define HAS_EXTERNAL_TEMP 1
390 #define HAS_ACCEL_REF 0
391 #define SPI_CS_ON_P1 1
392 #define SPI_CS_ON_P0 0
395 #define HAS_MONITOR 0
401 #define DBG_CLOCK (1 << 4) /* mi0 */
402 #define DBG_DATA (1 << 5) /* mo0 */
403 #define DBG_RESET_N (1 << 3) /* c0 */
405 #define DBG_CLOCK_PIN (P1_4)
406 #define DBG_DATA_PIN (P1_5)
407 #define DBG_RESET_N_PIN (P1_3)
409 #define DBG_PORT_NUM 1
411 #define DBG_PORT_SEL P1SEL
412 #define DBG_PORT_INP P1INP
413 #define DBG_PORT_DIR P1DIR
415 #endif /* DBG_ON_P1 */
419 #define DBG_CLOCK (1 << 3)
420 #define DBG_DATA (1 << 4)
421 #define DBG_RESET_N (1 << 5)
423 #define DBG_CLOCK_PIN (P0_3)
424 #define DBG_DATA_PIN (P0_4)
425 #define DBG_RESET_N_PIN (P0_5)
427 #define DBG_PORT_NUM 0
429 #define DBG_PORT_SEL P0SEL
430 #define DBG_PORT_INP P0INP
431 #define DBG_PORT_DIR P0DIR
433 #endif /* DBG_ON_P0 */
435 #if COMPANION_CS_ON_P1
436 #define COMPANION_CS_PORT P1
437 #define COMPANION_CS_SEL P1SEL
438 #define COMPANION_CS_DIR P1DIR
442 #define SPI_CS_PORT P1
443 #define SPI_CS_SEL P1SEL
444 #define SPI_CS_DIR P1DIR
448 #define SPI_CS_PORT P0
449 #define SPI_CS_SEL P0SEL
450 #define SPI_CS_DIR P0DIR
453 #define AO_M25_SPI_CS_PORT SPI_CS_PORT
456 #error Please define IGNITE_ON_P2
460 #error Please define IGNITE_ON_P0
464 #error Please define HAS_ADC
468 #error Please define HAS_EEPROM
472 #error Please define HAS_LOG
476 #ifndef USE_INTERNAL_FLASH
477 #error Please define USE_INTERNAL_FLASH
482 #error Please define HAS_DBG
486 #error Please define HAS_IGNITE
490 #define HAS_IGNITE_REPORT 1
493 #ifndef PACKET_HAS_MASTER
494 #error Please define PACKET_HAS_MASTER
497 #ifndef PACKET_HAS_SLAVE
498 #error Please define PACKET_HAS_SLAVE
502 #error Please define HAS_MONITOR
507 #error Please define HAS_RSSI
512 #error Please define HAS_ADC
518 #ifndef HAS_ACCEL_REF
519 #error Please define HAS_ACCEL_REF
522 #define HAS_ACCEL_REF 0
528 #define AO_IGNITER_DROGUE P2_3
529 #define AO_IGNITER_MAIN P2_4
530 #define AO_IGNITER_DIR P2DIR
531 #define AO_IGNITER_DROGUE_BIT (1 << 3)
532 #define AO_IGNITER_MAIN_BIT (1 << 4)
536 #define AO_IGNITER_DROGUE P0_5
537 #define AO_IGNITER_MAIN P0_4
538 #define AO_IGNITER_DIR P0DIR
539 #define AO_IGNITER_DROGUE_BIT (1 << 5)
540 #define AO_IGNITER_MAIN_BIT (1 << 4)
543 /* test these values with real igniters */
544 #define AO_IGNITER_OPEN 1000
545 #define AO_IGNITER_CLOSED 7000
546 #define AO_IGNITER_FIRE_TIME AO_MS_TO_TICKS(50)
547 #define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000)
549 #endif /* _AO_PINS_H_ */