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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
|
/************************************************************************************
* configs/spark/src/spark.h
*
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
* Author: Laurent Latil <laurent@latil.nom.fr>
* Librae <librae8226@gmail.com>
* David_s5 <david_s5@nscdg.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
************************************************************************************/
#ifndef __CONFIGS_SPARK_SRC_SPARK_H
#define __CONFIGS_SPARK_SRC_SPARK_H
/************************************************************************************
* Included Files
************************************************************************************/
#include <nuttx/config.h>
#include <nuttx/compiler.h>
#include <stdint.h>
/************************************************************************************
* Definitions
************************************************************************************/
/* During the development of the SparkCore, the hardware was in limited supply
* As a work around david_s5 created a SparkCore Big board (http://nscdg.com/spark/sparkBB.png)
* that will interface with a maple mini (http://leaflabs.com/docs/hardware/maple-mini.html),
* and a CC3000BOOST (https://estore.ti.com/CC3000BOOST-CC3000-BoosterPack-P4258.aspx)
*
* It breaks out the Tx, Rx to connect to a FTDI TTL-232RG-VREG3V3-WE for the console and
* wires in the spark LEDs and serial flash to the same I/O as the sparkcore. It has a Jlink
* compatible Jtag connector on it.
*
*
* Board GPIO Usage:
*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
* PA[00] WKUP/USART2_CTS/ADC12_IN0/TIM2_CH1_ETR 10 A0 JP1-12 J1-8
* PA[01] USART2_RTS/ADC12_IN1/TIM2_CH2 11 A1 JP1-11 J1-9
* PA[02] USART2_TX/ADC12_IN2/TIM2_CH3 12 TX JP1-3 J1-10
* PA[03] USART2_RX/ADC12_IN3/TIM2_CH4 13 RX JP1-4 J1-11
* PA[04] SPI1_NSS/USART2_CK/ADC12_IN4 14 A2 JP1-10 J1-12
* PA[05] SPI1_SCK/ADC12_IN5 15 A3 JP1-9 J1-13
* PA[06] SPI1_MISO/ADC12_IN6/TIM3_CH1 16 A4 JP1-8 J1-14
* PA[07] SPI1_MOSI/ADC12_IN7/TIM3_CH2 17 A5 JP1-7 J1-15
* PA[08] USART1_CK/TIM1_CH1/MCO 29 LED2 J2-5
* PA[09] USART1_TX/TIM1_CH2 30 LED3 J2-6
* PA[10] USART1_RX/TIM1_CH3 31 LED4 J2-7
* PA[11] USART1_CTS/CAN_RX/TIM1_CH4/USBDM 32 USBM USBDM J2-8
* PA[12] USART1_RTS/CAN_TX/TIM1_ETR/USBDP 33 USBP USBDP J2-9
* PA[13] JTMS/SWDIO 34 D7,LED1 JP2-5 J2-10
* PA[14] JTCK/SWCLK 37 D6 JP2-6 J2-11
* PA[15] JTDI 38 D5 JP2-7 J2-12
*
* PB[00] ADC12_IN8/TIM3_CH3 18 A6 JP1-6 J1-16
* PB[01] ADC12_IN9/TIM3_CH4 19 A7 JP1-5 R1-LED
* PB[02] BOOT1 20 BTN BTN J1-17
* PB[03] JTDO 39 D4 JP2-8 J2-13
* PB[04] NJTRST 40 D3 JP2-9 J2-14
* PB[05] I2C1_SMBA 41 D2 JP2-10 J2-15
* PB[06] I2C1_SCL/TIM4_CH1 42 D1 JP2-11 J2-16
* PB[07] I2C1_SDA/TIM4_CH2 43 D0 JP2-12 J2-17
* PB[08] TIM4_CH3 45 WIFI_EN BOOT0 J2-18
* PB[09] TIM4_CH4 46 MEM_CS DISC
* PB[10] I2C2_SCL/USART3_TX 21 USB_DISC J1-18
* PB[11] I2C2_SDA/USART3_RX 22 WIFI_INT J1-19
* PB[12] SPI2_NSS/I2C2_SMBA/USART3_CK/TIM1_BKIN 25 WIFI_CS J2-1
* PB[13] SPI2_SCK/USART3_CTS/TIM1_CH1N 26 SPI_CLK J2-2
* PB[14] SPI2_MISO/USART3_RTS/TIM1_CH2N 27 SPI_MISO J2-3
* PB[15] SPI2_MOSI/TIM1_CH3N 28 SPI_MOSI J2-4
*
* PC[13] TAMPER-RTC 2 N.C. J1-4
* PC[14] OSC32_IN 3 OSC32_IN Y1 N.C.
* PC[15] OSC32_OUT 4 OSC32_OUT Y1 N.C.
*
* PD[00] OSC_IN 5 OSC_IN Y2 8MHZ OSC 8MHZ OSC
* PD[01] OSC_OUT 6 OSC_OUT Y2 8MHZ OSC 8MHZ OSC
*
* Spark Core pin Mapping
*
* GPIO ADC Timer I2C UART SPI JTAG Other 5V? STM Pin# Core HW Core SW
* PA0 CH0 2_CH1_ETR 2_CTS 10 A0 10
* PA1 CH1 2_CH2 2_RTS 11 A1 11
* PA2 CH2 2_CH3 2_TX 12 TX 19
* PA3 CH3 2_CH4 2_RX 13 RX 18
* PA4 CH4 2_CK 1_NSS 14 A2 12
* PA5 CH5 1_SCK 15 A3 13
* PA6 CH6 3_CH1 1_MISO 16 A4 14
* PA7 CH7 3_CH2 1_MOSI 17 A5 15
* PA8 1_CH1 1_CK MCO Yes 29 LED2
* PA9 1_CH2 1_TX Yes 30 LED3
* PA10 1_CH3 1_RX Yes 31 LED4
* PA11 1_CH4 1_CTS USB- Yes 32 USBM
* PA12 1_ETR 1_RTS USB+ Yes 33 USBP
* PA13 JTMS Yes 34 D7 7
* PA14 JTCK Yes 37 D6 6
* PA15 JTDI Yes 38 D5 5
*
* PB0 CH8 3_CH3 18 A6 16
* PB1 CH9 3_CH4 19 A7 17
* PB2 BOOT1 Yes 20 BTN
* PB3 JTDO Yes 39 D4 4
* PB4 NJTRST Yes 40 D3 3
* PB5 1_SMBA 41 D2 2
* PB6 4_CH1 1_SCL Yes 42 D1 1
* PB7 4_CH2 1_SDA Yes 43 D0 0
* PB8 4_CH3 Yes 45 WIFI_EN
* PB9 4_CH4 Yes 46 MEM_CS
* PB10 2_SCL 3_TX Yes 21 USB_DISC
* PB11 2_SDA 3_RX Yes 22 WIFI_INT
* PB12 1_BKIN 2_SMBA 3_CK 2_NSS Yes 25 WIFI_CS
* PB13 3_CTS 2_SCK Yes 26 SPI_SCK
* PB14 3_RTS 2_MISO Yes 27 SPI_MISO
* PB15 2_MOSI Yes 28 SPI_MOSI
*
* PC13 2
* PC14 RTC Oscillator 3 OSC32IN
* PC15 RTC Oscillator 4 OSC32OUT
*
* PD0 Oscillator <= 5 OSC
* PD1 Oscillator => 6 OSC
*/
/* How many SPI modules does this chip support? The LM3S6918 supports 2 SPI
* modules (others may support more -- in such case, the following must be
* expanded).
*/
#if STM32_NSPI < 1
# undef CONFIG_STM32_SPI1
# undef CONFIG_STM32_SPI2
#elif STM32_NSPI < 2
# undef CONFIG_STM32_SPI2
#endif
/* LEDs *****************************************************************************/
/*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
*
* PA[08] USART1_CK/TIM1_CH1/MCO 29 LED2 J2-5
* PA[09] USART1_TX/TIM1_CH2 30 LED3 J2-6
* PA[10] USART1_RX/TIM1_CH3 31 LED4 J2-7
* PA[13] JTMS/SWDIO 34 D7,LED1 JP2-5 J2-10
*/
#define GPIO_LED1 (GPIO_PORTA | GPIO_PIN13 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_LED_USR GPIO_LED1
#define GPIO_LED2 (GPIO_PORTA | GPIO_PIN8 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_LED3 (GPIO_PORTA | GPIO_PIN9 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_LED4 (GPIO_PORTA | GPIO_PIN10 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_USB_PULLUP (GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz | GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9)
/* BUTTON ***************************************************************************/
/*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
* PB[02] BOOT1 20 BTN BTN J1-17
*/
#define IRQBUTTON BUTTON_USER
#define GPIO_BTN (GPIO_PORTB | GPIO_PIN2 | GPIO_INPUT | GPIO_CNF_INPULLUP | GPIO_EXTI)
/* MEMORYs **************************************************************************/
/*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
* PB[09] TIM4_CH4 46 MEM_CS DISC
*/
#define GPIO_MEM_CS (GPIO_PORTB | GPIO_PIN9 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
/* CCS3000 **************************************************************************/
/*
* GPIO Function MPU Core Core Maple Maple
* Pin # Name Pin # Name Pin #
* ----- -------------------------------- --------------------------------------------------------
* PB[08] TIM4_CH3 45 WIFI_EN BOOT0 J2-18
* PB[11] I2C2_SDA/USART3_RX 22 WIFI_INT J1-19
* PB[12] SPI2_NSS/I2C2_SMBA/USART3_CK/TIM1_BKIN 25 WIFI_CS J2-1
*/
#define GPIO_WIFI_EN (GPIO_PORTB | GPIO_PIN8 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_WIFI_CS (GPIO_PORTB | GPIO_PIN12 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_CNF_OUTPP | GPIO_MODE_50MHz)
#define GPIO_WIFI_INT (GPIO_PORTB | GPIO_PIN11 | GPIO_INPUT | GPIO_CNF_INPULLUP | GPIO_EXTI)
/************************************************************************************
* Public Types
************************************************************************************/
/************************************************************************************
* Public data
************************************************************************************/
#ifndef __ASSEMBLY__
/************************************************************************************
* Public Functions
************************************************************************************/
/************************************************************************************
* Name: stm32_spiinitialize
*
* Description:
* Called to configure SPI chip select GPIO pins.
*
************************************************************************************/
void stm32_spiinitialize(void);
/************************************************************************************
* Name: stm32_usbinitialize
*
* Description:
* Called to setup USB-related GPIO pins.
*
************************************************************************************/
void stm32_usbinitialize(void);
#endif /* __ASSEMBLY__ */
#endif /* __CONFIGS_SPARK_SRC_SPARK_H */
|