native: hw rev 5 has the usb vbus sense pin on PA15.
We had to move the pin to free up the SPI SCLK pin.
This commit is contained in:
parent
9ffa923bc1
commit
655014ac9c
|
@ -343,7 +343,18 @@ void platform_request_boot(void)
|
||||||
|
|
||||||
void exti15_10_isr(void)
|
void exti15_10_isr(void)
|
||||||
{
|
{
|
||||||
if (gpio_get(USB_VBUS_PORT, USB_VBUS_PIN)) {
|
uint32_t usb_vbus_port;
|
||||||
|
uint16_t usb_vbus_pin;
|
||||||
|
|
||||||
|
if (platform_hwversion() < 5) {
|
||||||
|
usb_vbus_port = USB_VBUS_PORT;
|
||||||
|
usb_vbus_pin = USB_VBUS_PIN;
|
||||||
|
} else {
|
||||||
|
usb_vbus_port = USB_VBUS5_PORT;
|
||||||
|
usb_vbus_pin = USB_VBUS5_PIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gpio_get(usb_vbus_port, usb_vbus_pin)) {
|
||||||
/* Drive pull-up high if VBUS connected */
|
/* Drive pull-up high if VBUS connected */
|
||||||
gpio_set_mode(USB_PU_PORT, GPIO_MODE_OUTPUT_10_MHZ,
|
gpio_set_mode(USB_PU_PORT, GPIO_MODE_OUTPUT_10_MHZ,
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, USB_PU_PIN);
|
GPIO_CNF_OUTPUT_PUSHPULL, USB_PU_PIN);
|
||||||
|
@ -353,24 +364,35 @@ void exti15_10_isr(void)
|
||||||
GPIO_CNF_INPUT_FLOAT, USB_PU_PIN);
|
GPIO_CNF_INPUT_FLOAT, USB_PU_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
exti_reset_request(USB_VBUS_PIN);
|
exti_reset_request(usb_vbus_pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setup_vbus_irq(void)
|
static void setup_vbus_irq(void)
|
||||||
{
|
{
|
||||||
|
uint32_t usb_vbus_port;
|
||||||
|
uint16_t usb_vbus_pin;
|
||||||
|
|
||||||
|
if (platform_hwversion() < 5) {
|
||||||
|
usb_vbus_port = USB_VBUS_PORT;
|
||||||
|
usb_vbus_pin = USB_VBUS_PIN;
|
||||||
|
} else {
|
||||||
|
usb_vbus_port = USB_VBUS5_PORT;
|
||||||
|
usb_vbus_pin = USB_VBUS5_PIN;
|
||||||
|
}
|
||||||
|
|
||||||
nvic_set_priority(USB_VBUS_IRQ, IRQ_PRI_USB_VBUS);
|
nvic_set_priority(USB_VBUS_IRQ, IRQ_PRI_USB_VBUS);
|
||||||
nvic_enable_irq(USB_VBUS_IRQ);
|
nvic_enable_irq(USB_VBUS_IRQ);
|
||||||
|
|
||||||
gpio_set(USB_VBUS_PORT, USB_VBUS_PIN);
|
gpio_set(usb_vbus_port, usb_vbus_pin);
|
||||||
gpio_set(USB_PU_PORT, USB_PU_PIN);
|
gpio_set(USB_PU_PORT, USB_PU_PIN);
|
||||||
|
|
||||||
gpio_set_mode(USB_VBUS_PORT, GPIO_MODE_INPUT,
|
gpio_set_mode(usb_vbus_port, GPIO_MODE_INPUT,
|
||||||
GPIO_CNF_INPUT_PULL_UPDOWN, USB_VBUS_PIN);
|
GPIO_CNF_INPUT_PULL_UPDOWN, usb_vbus_pin);
|
||||||
|
|
||||||
/* Configure EXTI for USB VBUS monitor */
|
/* Configure EXTI for USB VBUS monitor */
|
||||||
exti_select_source(USB_VBUS_PIN, USB_VBUS_PORT);
|
exti_select_source(usb_vbus_pin, usb_vbus_port);
|
||||||
exti_set_trigger(USB_VBUS_PIN, EXTI_TRIGGER_BOTH);
|
exti_set_trigger(usb_vbus_pin, EXTI_TRIGGER_BOTH);
|
||||||
exti_enable_request(USB_VBUS_PIN);
|
exti_enable_request(usb_vbus_pin);
|
||||||
|
|
||||||
exti15_10_isr();
|
exti15_10_isr();
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,6 +61,8 @@ int usbuart_debug_write(const char *buf, size_t len);
|
||||||
* USB cable pull-up: PA8
|
* USB cable pull-up: PA8
|
||||||
* USB VBUS detect: PB13 -- New on mini design.
|
* USB VBUS detect: PB13 -- New on mini design.
|
||||||
* Enable pull up for compatibility.
|
* Enable pull up for compatibility.
|
||||||
|
* Hardware 4 and older. (we needed the pin for SPI on 5)
|
||||||
|
* PA15 -- Hardware 5 and newer.
|
||||||
* Force DFU mode button: PB12
|
* Force DFU mode button: PB12
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -96,10 +98,16 @@ int usbuart_debug_write(const char *buf, size_t len);
|
||||||
#define USB_PU_PORT GPIOA
|
#define USB_PU_PORT GPIOA
|
||||||
#define USB_PU_PIN GPIO8
|
#define USB_PU_PIN GPIO8
|
||||||
|
|
||||||
|
// For HW Rev 4 and older
|
||||||
#define USB_VBUS_PORT GPIOB
|
#define USB_VBUS_PORT GPIOB
|
||||||
#define USB_VBUS_PIN GPIO13
|
#define USB_VBUS_PIN GPIO13
|
||||||
|
// IRQ stays the same for all hw revisions.
|
||||||
#define USB_VBUS_IRQ NVIC_EXTI15_10_IRQ
|
#define USB_VBUS_IRQ NVIC_EXTI15_10_IRQ
|
||||||
|
|
||||||
|
// For HW Rev 5 and newer
|
||||||
|
#define USB_VBUS5_PORT GPIOA
|
||||||
|
#define USB_VBUS5_PIN GPIO15
|
||||||
|
|
||||||
#define LED_PORT GPIOB
|
#define LED_PORT GPIOB
|
||||||
#define LED_PORT_UART GPIOB
|
#define LED_PORT_UART GPIOB
|
||||||
#define LED_0 GPIO2
|
#define LED_0 GPIO2
|
||||||
|
|
Loading…
Reference in New Issue