Nucleo-F401RE: Board GPIOs updated by Frank Bennett

This commit is contained in:
Gregory Nutt 2014-04-29 08:10:27 -06:00
parent 943b083de9
commit 6f3e0d5cfb
5 changed files with 46 additions and 40 deletions

View File

@ -350,8 +350,8 @@ Hardware
SERIAL_TX=PA_2 USER_BUTTON=PC_13
SERIAL_RX=PA_3 LED1 =PA_5
A0=PA_0 D0=PA_3 D8 =PA_9
A1=PA_1 D1=PA_2 D9 =PC_7
A0=PA_0 USART2RX D0=PA_3 D8 =PA_9
A1=PA_1 USART2TX D1=PA_2 D9 =PC_7
A2=PA_4 D2=PA_10 WIFI_CS=D10=PB_6 SPI_CS
A3=PB_0 WIFI_INT=D3=PB_3 D11=PA_7 SPI_MOSI
A4=PC_1 SDCS=D4=PB_5 D12=PA_6 SPI_MISO
@ -359,6 +359,8 @@ Hardware
LED2=D6=PB_10 I2C1_SDA=D14=PB_9 Probe
D7=PA_8 I2C1_SCL=D15=PB_8 Probe
From: https://mbed.org/platforms/ST-Nucleo-F401RE/
Buttons
-------
B1 USER: the user button is connected to the I/O PC13 (pin 2) of the STM32

View File

@ -204,11 +204,11 @@
/* UARTs */
#define GPIO_USART1_RX GPIO_USART1_RX_1 /* Console in from IO */
#define GPIO_USART1_TX 0 /* USART1 is RX-only */
#define GPIO_USART1_RX GPIO_USART1_RX_1 /* PA_10 */
#define GPIO_USART1_TX GPIO_USART1_TX_2 /* PB_6 */
#define GPIO_USART2_RX GPIO_USART2_RX_2
#define GPIO_USART2_TX GPIO_USART2_TX_2
#define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA_3 */
#define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA_2 */
#define GPIO_USART2_RTS GPIO_USART2_RTS_2
#define GPIO_USART2_CTS GPIO_USART2_CTS_2

View File

@ -22,7 +22,7 @@
* - When the I/O is LOW, the LED is off.
*/
#define GPIO_LD2 (GPIO_PORTA | GPIO_PIN13 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
#define GPIO_LD2 (GPIO_PORTA | GPIO_PIN5 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
/* Buttons
*
@ -40,34 +40,37 @@
*
* +5V
* GND
* Digital pin 3: IRQ for WiFi
* Digital pin 4: Card Select for SD card
* Digital pin 5: WiFi enable
* Digital pin 10: Chip Select for WiFi
* Digital pins 11, 12, 13 for SPI communication (both WiFi and SD).
* Digital pin 11:
* Digital pin 12:
* Digital pin 13:
* Even if optional 6-pin SPI header is used, these pins are unavailable for other use.
* SERIAL_TX=PA_2 USER_BUTTON=PC_13
* SERIAL_RX=PA_3 LD2=PA_5
*
* Analog Digital
* A0=PA_0 USART2RX D0=PA_3 D8 =PA_9
* A1=PA_1 USART2TX D1=PA_2 D9 =PC_7
* A2=PA_4 D2=PA_10 WIFI_CS=D10=PB_6 SPI_CS
* A3=PB_0 WIFI_INT=D3=PB_3 D11=PA_7 SPI_MOSI
* A4=PC_1 SD_CS=D4=PB_5 D12=PA_6 SPI_MISO
* A5=PC_0 WIFI_EN=D5=PB_4 LD2=D13=PA_5 SPI_SCK
* LED2=D6=PB_10 I2C1_SDA=D14=PB_9 WIFI Probe
* D7=PA_8 I2C1_SCL=D15=PB_8 WIFI Probe
*
* mostly from: https://mbed.org/platforms/ST-Nucleo-F401RE/
*
*/
#define GPIO_WIFI_INT (GPIO_PORTB | GPIO_PIN3 | GPIO_INPUT | GPIO_PULLUP | GPIO_EXTI)
#define GPIO_WIFI_EN (GPIO_PORTB | GPIO_PIN4 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
#define GPIO_WIFI_CS (GPIO_PORTB | GPIO_PIN6 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
#if defined(CONFIG_CC3000_PROBES)
# define GPIO_D14 (GPIO_PORTB | GPIO_PIN9 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
# define GPIO_D15 (GPIO_PORTB | GPIO_PIN8 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
#else
# define GPIO_D0 (GPIO_PORTA | GPIO_PIN3 | GPIO_INPUT | GPIO_PULLUP | GPIO_EXTI)
# define GPIO_D1 (GPIO_PORTA | GPIO_PIN2 | GPIO_INPUT | GPIO_PULLUP | GPIO_EXTI)
# define GPIO_D0 (GPIO_PORTA | GPIO_PIN3 | GPIO_INPUT | GPIO_PULLUP )
# define GPIO_D1 (GPIO_PORTA | GPIO_PIN2 | GPIO_OUTPUT_CLEAR | GPIO_PULLUP )
# define GPIO_D2 (GPIO_PORTA | GPIO_PIN10 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
# define GPIO_A0 (GPIO_PORTA | GPIO_PIN0 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
# define GPIO_A1 (GPIO_PORTA | GPIO_PIN1 | GPIO_OUTPUT_SET | GPIO_OUTPUT | GPIO_PULLUP | GPIO_SPEED_50MHz)
# define GPIO_A2 (GPIO_PORTA | GPIO_PIN4 | GPIO_INPUT | GPIO_PULLUP )
# define GPIO_A3 (GPIO_PORTB | GPIO_PIN0 | GPIO_INPUT | GPIO_PULLUP )
#endif
/* SPI1 off */
@ -85,9 +88,9 @@
/* SPI chip selects */
#define GPIO_SPI_CS_WIFI \
(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN13)
(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN6)
#define GPIO_SPI_CS_SD_CARD \
(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN15)
(GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN5)
/* Devices on the onboard bus.
*

View File

@ -119,13 +119,14 @@ void up_ioinit(void)
*/
up_leds(0,0,0,0);
stm32_configgpio(GPIO_A0); /* Probes */
stm32_configgpio(GPIO_A1); /* Probes */
stm32_configgpio(GPIO_A2); /* Smart Config */
stm32_configgpio(GPIO_A3); /* not used */
stm32_configgpio(GPIO_D0); /* Sw 1 */
stm32_configgpio(GPIO_D1); /* Sw 2 */
stm32_configgpio(GPIO_D2); /* Activate */
stm32_configgpio(GPIO_A0); /* Probes */
stm32_configgpio(GPIO_A1); /* Probes */
stm32_configgpio(GPIO_A2); /* Smart Config */
stm32_configgpio(GPIO_A3); /* not used */
stm32_configgpio(GPIO_BTN_USER); /* Sw 1 */
stm32_configgpio(GPIO_D0); /* USART2 RX*/
stm32_configgpio(GPIO_D1); /* uSART2 TX*/
stm32_configgpio(GPIO_D2); /* Activate */
}
/****************************************************************************
@ -138,10 +139,10 @@ void up_ioinit(void)
uint8_t up_read_inputs(void)
{
uint8_t bits = 0;
bits |= stm32_gpioread(GPIO_D0) == 0 ? 1 : 0;
bits |= stm32_gpioread(GPIO_D1) == 0 ? 2 : 0;
bits |= stm32_gpioread(GPIO_A2) == 0 ? 4 : 0;
bits |= stm32_gpioread(GPIO_A3) == 0 ? 8 : 0;
bits |= stm32_gpioread(GPIO_D14) == 0 ? 1 : 0;
bits |= stm32_gpioread(GPIO_D15) == 0 ? 2 : 0;
bits |= stm32_gpioread(GPIO_A2) == 0 ? 4 : 0;
bits |= stm32_gpioread(GPIO_A3) == 0 ? 8 : 0;
return bits;
}
@ -183,11 +184,11 @@ xcpt_t up_irqio(int id, xcpt_t irqhandler)
if (id == 0)
{
oldhandler = stm32_gpiosetevent(GPIO_D0, true, true, true, irqhandler);
oldhandler = stm32_gpiosetevent(GPIO_D14, true, true, true, irqhandler);
}
else if (id == 1)
{
oldhandler = stm32_gpiosetevent(GPIO_D1, true, true, true, irqhandler);
oldhandler = stm32_gpiosetevent(GPIO_D15, true, true, true, irqhandler);
}
return oldhandler;

View File

@ -243,12 +243,12 @@ static bool probe(FAR struct cc3000_config_s *state,int n, bool s)
{
if (n == 0)
{
stm32_gpiowrite(GPIO_D0, s);
stm32_gpiowrite(GPIO_D14, s);
}
if (n == 1)
{
stm32_gpiowrite(GPIO_D1, s);
stm32_gpiowrite(GPIO_D15, s);
}
return true;
@ -284,9 +284,9 @@ int wireless_archinitialize(size_t max_rx_size)
DEBUGASSERT(CONFIG_CC3000_DEVMINOR == 0);
#ifdef CONFIG_CC3000_PROBES
stm32_configgpio(GPIO_D7);
stm32_configgpio(GPIO_D14);
stm32_configgpio(GPIO_D15);
stm32_gpiowrite(GPIO_D7, 1);
stm32_gpiowrite(GPIO_D14, 1);
stm32_gpiowrite(GPIO_D15, 1);
#endif