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 USE_INTERNAL_FLASH 1
168 #define IGNITE_ON_P2 0
169 #define IGNITE_ON_P0 1
170 #define PACKET_HAS_MASTER 0
171 #define PACKET_HAS_SLAVE 1
172 #define USE_FAST_ASCENT_LOG 1
174 #define AO_LED_GREEN 1
176 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
177 #define HAS_EXTERNAL_TEMP 0
180 #define HAS_MONITOR 0
183 #if defined(TELENANO_V_0_1)
188 #define HAS_SERIAL_1 0
192 #define USE_INTERNAL_FLASH 1
194 #define IGNITE_ON_P2 0
195 #define IGNITE_ON_P0 1
196 #define PACKET_HAS_MASTER 0
197 #define PACKET_HAS_SLAVE 1
199 #define AO_LED_GREEN 1
201 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
202 #define HAS_EXTERNAL_TEMP 0
205 #define HAS_MONITOR 0
208 #if defined(TELEMETRUM_V_0_1)
213 #define HAS_SERIAL_1 1
218 #define USE_INTERNAL_FLASH 0
221 #define IGNITE_ON_P2 1
222 #define IGNITE_ON_P0 0
223 #define PACKET_HAS_MASTER 0
224 #define PACKET_HAS_SLAVE 1
226 #define AO_LED_GREEN 1
227 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
228 #define HAS_EXTERNAL_TEMP 1
229 #define HAS_ACCEL_REF 0
230 #define SPI_CS_ON_P1 1
231 #define SPI_CS_ON_P0 0
234 #define HAS_MONITOR 0
235 #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX ((uint32_t) 127 * (uint32_t) 1024)
238 #if defined(TELEDONGLE_V_0_1)
242 #define HAS_SERIAL_1 0
249 #define IGNITE_ON_P2 0
250 #define IGNITE_ON_P0 0
251 #define PACKET_HAS_MASTER 1
252 #define PACKET_HAS_SLAVE 0
254 #define AO_LED_GREEN 1
255 #define AO_MONITOR_LED AO_LED_GREEN
256 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
257 #define SPI_CS_ON_P1 0
258 #define SPI_CS_ON_P0 1
260 #define HAS_MONITOR 1
261 #define LEGACY_MONITOR 1
266 #if defined(TIDONGLE)
270 #define HAS_SERIAL_1 0
277 #define IGNITE_ON_P2 0
278 #define IGNITE_ON_P0 0
279 #define PACKET_HAS_MASTER 1
280 #define PACKET_HAS_SLAVE 0
282 #define AO_MONITOR_LED AO_LED_RED
283 #define LEDS_AVAILABLE (AO_LED_RED)
284 #define SPI_CS_ON_P1 0
285 #define SPI_CS_ON_P0 1
287 #define HAS_MONITOR 1
288 #define LEGACY_MONITOR 1
293 #if defined(TELEBT_V_0_0)
297 #define HAS_SERIAL_1 1
298 #define USE_SERIAL_1_STDIN 1
299 #define DELAY_SERIAL_1_STDIN 1
307 #define IGNITE_ON_P2 0
308 #define IGNITE_ON_P0 0
309 #define PACKET_HAS_MASTER 1
310 #define PACKET_HAS_SLAVE 0
312 #define AO_LED_GREEN 1
313 #define AO_MONITOR_LED AO_LED_RED
314 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
315 #define SPI_CS_ON_P1 1
316 #define SPI_CS_ON_P0 0
318 #define HAS_IGNITE_REPORT 1
319 #define BT_LINK_ON_P2 1
320 #define BT_LINK_ON_P1 0
321 #define BT_LINK_PIN_INDEX 7
322 #define BT_LINK_PIN P2_1
323 #define HAS_MONITOR 1
324 #define LEGACY_MONITOR 1
329 #if defined(TELEBT_V_0_1)
333 #define HAS_SERIAL_1 1
334 #define HAS_SERIAL_1_ALT_1 1
335 #define HAS_SERIAL_1_ALT_2 0
336 #define HAS_SERIAL_1_HW_FLOW 1
337 #define USE_SERIAL_1_STDIN 1
338 #define DELAY_SERIAL_1_STDIN 1
343 #define USE_INTERNAL_FLASH 0
347 #define IGNITE_ON_P2 0
348 #define IGNITE_ON_P0 0
349 #define PACKET_HAS_MASTER 1
350 #define PACKET_HAS_SLAVE 0
352 #define AO_LED_GREEN 2
353 #define AO_MONITOR_LED AO_LED_RED
354 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
355 #define SPI_CS_ON_P1 1
356 #define SPI_CS_ON_P0 0
357 #define AO_M25_SPI_CS_MASK 0x04 /* CS0 is P1_2 */
358 #define M25_MAX_CHIPS 1
361 #define HAS_IGNITE_REPORT 1
362 #define BT_LINK_ON_P2 0
363 #define BT_LINK_ON_P1 1
364 #define BT_LINK_PIN_INDEX 7
365 #define BT_LINK_PIN P1_7
366 #define HAS_MONITOR 1
367 #define LEGACY_MONITOR 1
372 #if defined(TELELAUNCH_V_0_1)
377 #define HAS_SERIAL_1 1
382 #define USE_INTERNAL_FLASH 1
385 #define IGNITE_ON_P2 1
386 #define IGNITE_ON_P0 0
387 #define PACKET_HAS_MASTER 0
388 #define PACKET_HAS_SLAVE 0
390 #define AO_LED_GREEN 1
391 #define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
392 #define HAS_EXTERNAL_TEMP 1
393 #define HAS_ACCEL_REF 0
394 #define SPI_CS_ON_P1 1
395 #define SPI_CS_ON_P0 0
398 #define HAS_MONITOR 0
404 #define DBG_CLOCK (1 << 4) /* mi0 */
405 #define DBG_DATA (1 << 5) /* mo0 */
406 #define DBG_RESET_N (1 << 3) /* c0 */
408 #define DBG_CLOCK_PIN (P1_4)
409 #define DBG_DATA_PIN (P1_5)
410 #define DBG_RESET_N_PIN (P1_3)
412 #define DBG_PORT_NUM 1
414 #define DBG_PORT_SEL P1SEL
415 #define DBG_PORT_INP P1INP
416 #define DBG_PORT_DIR P1DIR
418 #endif /* DBG_ON_P1 */
422 #define DBG_CLOCK (1 << 3)
423 #define DBG_DATA (1 << 4)
424 #define DBG_RESET_N (1 << 5)
426 #define DBG_CLOCK_PIN (P0_3)
427 #define DBG_DATA_PIN (P0_4)
428 #define DBG_RESET_N_PIN (P0_5)
430 #define DBG_PORT_NUM 0
432 #define DBG_PORT_SEL P0SEL
433 #define DBG_PORT_INP P0INP
434 #define DBG_PORT_DIR P0DIR
436 #endif /* DBG_ON_P0 */
438 #if COMPANION_CS_ON_P1
439 #define COMPANION_CS_PORT P1
440 #define COMPANION_CS_SEL P1SEL
441 #define COMPANION_CS_DIR P1DIR
445 #define SPI_CS_PORT P1
446 #define SPI_CS_SEL P1SEL
447 #define SPI_CS_DIR P1DIR
451 #define SPI_CS_PORT P0
452 #define SPI_CS_SEL P0SEL
453 #define SPI_CS_DIR P0DIR
456 #define AO_M25_SPI_CS_PORT SPI_CS_PORT
459 #error Please define IGNITE_ON_P2
463 #error Please define IGNITE_ON_P0
467 #error Please define HAS_ADC
471 #error Please define HAS_EEPROM
475 #error Please define HAS_LOG
479 #ifndef USE_INTERNAL_FLASH
480 #error Please define USE_INTERNAL_FLASH
485 #error Please define HAS_DBG
489 #error Please define HAS_IGNITE
493 #define HAS_IGNITE_REPORT 1
496 #ifndef PACKET_HAS_MASTER
497 #error Please define PACKET_HAS_MASTER
500 #ifndef PACKET_HAS_SLAVE
501 #error Please define PACKET_HAS_SLAVE
505 #error Please define HAS_MONITOR
510 #error Please define HAS_RSSI
515 #error Please define HAS_ADC
521 #ifndef HAS_ACCEL_REF
522 #error Please define HAS_ACCEL_REF
525 #define HAS_ACCEL_REF 0
531 #define AO_IGNITER_PORT P2
532 #define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
533 #define AO_IGNITER_DROGUE P2_3
534 #define AO_IGNITER_MAIN P2_4
535 #define AO_IGNITER_DIR P2DIR
536 #define AO_IGNITER_DROGUE_BIT (1 << 3)
537 #define AO_IGNITER_MAIN_BIT (1 << 4)
538 #define AO_IGNITER_DROGUE_PIN 3
539 #define AO_IGNITER_MAIN_PIN 4
543 #define AO_IGNITER_PORT P0
544 #define AO_IGNITER_DROGUE P0_5
545 #define AO_IGNITER_MAIN P0_4
546 #define AO_IGNITER_DIR P0DIR
547 #define AO_IGNITER_DROGUE_BIT (1 << 5)
548 #define AO_IGNITER_MAIN_BIT (1 << 4)
549 #define AO_IGNITER_DROGUE_PIN 5
550 #define AO_IGNITER_MAIN_PIN 4
553 #define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
554 #define AO_IGNITER_MAIN_PORT AO_IGNITER_PORT
556 /* test these values with real igniters */
557 #define AO_IGNITER_OPEN 1000
558 #define AO_IGNITER_CLOSED 7000
559 #define AO_IGNITER_FIRE_TIME AO_MS_TO_TICKS(50)
560 #define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000)
562 #endif /* _AO_PINS_H_ */