mirror of
https://github.com/juribeparada/MMDVM_HS.git
synced 2025-12-06 07:12:08 +01:00
Fix for USB bug in RPi 3 B+
This commit is contained in:
parent
3fbeee3c3b
commit
ad2df94a46
|
|
@ -153,7 +153,7 @@ void CIO::Init()
|
|||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
pinMode(PIN_SCLK, OUTPUT);
|
||||
pinMode(PIN_SDATA, OUTPUT);
|
||||
pinMode(PIN_SREAD, INPUT);
|
||||
|
|
@ -170,19 +170,18 @@ void CIO::Init()
|
|||
pinMode(PIN_NXDN_LED, OUTPUT);
|
||||
pinMode(PIN_PTT_LED, OUTPUT);
|
||||
pinMode(PIN_COS_LED, OUTPUT);
|
||||
|
||||
|
||||
#if defined(DUPLEX)
|
||||
pinMode(PIN_SLE2, OUTPUT);
|
||||
pinMode(PIN_RXD2, INPUT);
|
||||
pinMode(PIN_TXD2, INPUT);
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(BIDIR_DATA_PIN)
|
||||
pinMode(PIN_TXD, INPUT);
|
||||
#else
|
||||
pinMode(PIN_TXD, OUTPUT);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void CIO::startInt()
|
||||
|
|
|
|||
48
IOSTM.cpp
48
IOSTM.cpp
|
|
@ -278,8 +278,15 @@ extern "C" {
|
|||
}
|
||||
|
||||
void CIO::Init()
|
||||
{
|
||||
// USB Conf IO:
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
GPIO_StructInit(&GPIO_InitStruct);
|
||||
|
||||
EXTI_InitTypeDef EXTI_InitStructure;
|
||||
#if defined(DUPLEX)
|
||||
EXTI_InitTypeDef EXTI_InitStructure2;
|
||||
#endif
|
||||
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
|
||||
|
||||
#if defined(PI_HAT_7021_REV_02)
|
||||
|
|
@ -288,32 +295,25 @@ void CIO::Init()
|
|||
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
|
||||
#endif
|
||||
|
||||
// Pin PA11,PA12 = LOW, USB Reset
|
||||
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12;
|
||||
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
GPIO_WriteBit(GPIOA, GPIO_Pin_11, Bit_RESET);
|
||||
GPIO_WriteBit(GPIOA, GPIO_Pin_12, Bit_RESET);
|
||||
|
||||
// 10 ms delay
|
||||
delay_us(10000U);
|
||||
|
||||
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12;
|
||||
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
||||
GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);
|
||||
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE);
|
||||
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
|
||||
|
||||
EXTI_InitTypeDef EXTI_InitStructure;
|
||||
#if defined(DUPLEX)
|
||||
EXTI_InitTypeDef EXTI_InitStructure2;
|
||||
#endif
|
||||
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
GPIO_StructInit(&GPIO_InitStruct);
|
||||
|
||||
// Pin PA12 = LOW, USB Reset in generic boards
|
||||
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12;
|
||||
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
GPIO_WriteBit(GPIOA, GPIO_Pin_12, Bit_RESET);
|
||||
|
||||
volatile unsigned int delay;
|
||||
for(delay = 0;delay<512;delay++);
|
||||
|
||||
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12;
|
||||
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
||||
GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
// Pin SCLK
|
||||
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStruct.GPIO_Pin = PIN_SCLK;
|
||||
|
|
|
|||
Loading…
Reference in a new issue