summaryrefslogtreecommitdiff
path: root/src/avr/ao_pins.h
blob: a08e87fa021660ed21c04050c1690e37e4ad1ea1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*
 * Copyright © 2011 Keith Packard <keithp@keithp.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 2 of the License.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 */

#ifndef _AO_PINS_H_
#define _AO_PINS_H_

#ifdef AVR_DEMO
	#define AO_LED_RED		(1<<7)
	#define LEDS_AVAILABLE		(AO_LED_RED)
	#define USE_SERIAL_1_STDIN	1
	#define HAS_USB			1
	#define PACKET_HAS_SLAVE	0
	#define HAS_SERIAL_1		1
	#define TEENSY			1
	#define AVR_VCC_5V	       	1
	#define AVR_VCC_3V3		0
	#define AVR_CLOCK		16000000UL
	#define HAS_BEEP		0
#endif

#if defined(TELESCIENCE) || defined(TELESCIENCE_PWM)
	#define LEDS_AVAILABLE		0
	#define HAS_USB			1
	#define HAS_LOG			1
	#define TEENSY			0
	#define HAS_SERIAL_1		0
	#define HAS_ADC			1
	#define PACKET_HAS_SLAVE	0
	#define HAS_BEEP		0
	#define HAS_EEPROM		1
	#define HAS_STORAGE_DEBUG	0

	#define AVR_VCC_5V	       	0
	#define AVR_VCC_3V3		1
	#define AVR_CLOCK		8000000UL
#ifdef TELESCIENCE_PWM
	#define HAS_ICP3_COUNT		1
#else
	#define HAS_ICP3_COUNT		0
#endif

	#define SPI_CS_PORT		PORTE
	#define SPI_CS_DIR		DDRE
	#define M25_CS_MASK		(1 << PORTE6)
	#define M25_MAX_CHIPS		1

	#define SPI_SLAVE_CS_PORT	PORTB
	#define SPI_SLAVE_CS_PIN	PINB
	#define SPI_SLAVE_CS_PIN_NO	PINB0

	#define SPI_SLAVE_PIN_0_3	1
	#define SPI_SLAVE_PIN_2_5	0

	#define IS_COMPANION		1
#endif

#ifdef TELEPYRO
	#define AO_STACK_SIZE		104
	#define LEDS_AVAILABLE		0
	#define HAS_USB			1
	#define HAS_LOG			0
	#define TEENSY			0
	#define USE_SERIAL_1_STDIN	1
	#define HAS_SERIAL_1		1
	#define HAS_USB			1
	#define HAS_ADC			1
	#define PACKET_HAS_SLAVE	0
	#define HAS_BEEP		0
	#define HAS_EEPROM		1
	#define USE_INTERNAL_FLASH	1
	#define DISABLE_HELP		1
	#define HAS_STORAGE_DEBUG	0
	#define IS_COMPANION		1
	#define HAS_ORIENT		0
	#define ao_storage_pos_t	uint16_t
	#define HAS_ICP3_COUNT		0

	#define AVR_VCC_5V	       	0
	#define AVR_VCC_3V3		1
	#define AVR_CLOCK		8000000UL

	#define SPI_SLAVE_CS_PORT	PORTB
	#define SPI_SLAVE_CS_PIN	PINB
	#define SPI_SLAVE_CS_PIN_NO	PINB0

	#define SPI_SLAVE_PIN_0_3	1
	#define SPI_SLAVE_PIN_2_5	0

	#define AO_PYRO_NUM		8

	#define AO_PYRO_PORT_0	B
	#define AO_PYRO_PIN_0	5

	#define AO_PYRO_PORT_1	B
	#define AO_PYRO_PIN_1	6

	#define AO_PYRO_PORT_2	B
	#define AO_PYRO_PIN_2	7

	#define AO_PYRO_PORT_3	C
	#define AO_PYRO_PIN_3	6

	#define AO_PYRO_PORT_4	C
	#define AO_PYRO_PIN_4	7

	#define AO_PYRO_PORT_5	D
	#define AO_PYRO_PIN_5	5

	#define AO_PYRO_PORT_6	D
	#define AO_PYRO_PIN_6	3

	#define AO_PYRO_PORT_7	D
	#define AO_PYRO_PIN_7	2

#endif

#define AO_M25_SPI_CS_PORT	SPI_CS_PORT
#define AO_M25_SPI_CS_MASK	M25_CS_MASK

#define AO_TELESCIENCE_NUM_ADC	12

struct ao_adc {
	uint16_t	adc[AO_TELESCIENCE_NUM_ADC];	/* samples */
};

#define AO_DATA_RING	16

#endif /* _AO_PINS_H_ */