Pārlūkot izejas kodu

Updating K-Type bootloader USB switcher pin

- Only works in Prototype 2+
- No longer combining Interconnect and USB switching into the same pin (more flexibility)
ICPad
Jacob Alexander pirms 8 gadiem
vecāks
revīzija
fbc8c873ec
1 mainītis faili ar 6 papildinājumiem un 6 dzēšanām
  1. 6
    6
      Bootloader/main.c

+ 6
- 6
Bootloader/main.c Parādīt failu

usb_init( &dfu_device ); usb_init( &dfu_device );


#if defined(_mk20dx256vlh7_) // Kiibohd-dfu #if defined(_mk20dx256vlh7_) // Kiibohd-dfu
// PTA13 - USB Swap
// PTA4 - USB Swap
// Start, disabled // Start, disabled
GPIOA_PDDR |= (1<<13);
PORTA_PCR13 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
GPIOA_PCOR |= (1<<13);
GPIOA_PDDR |= (1<<4);
PORTA_PCR4 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
GPIOA_PCOR |= (1<<4);


#define USBPortSwapDelay_ms 1000 #define USBPortSwapDelay_ms 1000
#define USBPortSwapIncrement_ms 100 #define USBPortSwapIncrement_ms 100


// Only check for swapping after delay // Only check for swapping after delay
uint32_t wait_ms = systick_millis_count - last_ms; uint32_t wait_ms = systick_millis_count - last_ms;
if ( wait_ms < USBPortSwapDelay_ms + attempt * USBPortSwapIncrement_ms )
if ( wait_ms < USBPortSwapDelay_ms + attempt / 2 * USBPortSwapIncrement_ms )
{ {
continue; continue;
} }
if ( usb.state != USBD_STATE_ADDRESS ) if ( usb.state != USBD_STATE_ADDRESS )
{ {
print("USB not initializing, port swapping (if supported)"); print("USB not initializing, port swapping (if supported)");
GPIOA_PTOR |= (1<<13);
GPIOA_PTOR |= (1<<4);
attempt++; attempt++;
} }
} }