diff --git a/IOArduino.cpp b/IOArduino.cpp index 41042f1..1eae9ce 100644 --- a/IOArduino.cpp +++ b/IOArduino.cpp @@ -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() diff --git a/IOSTM.cpp b/IOSTM.cpp index ac2e26b..bb377c4 100644 --- a/IOSTM.cpp +++ b/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; diff --git a/version.h b/version.h index e20c56c..414d4d7 100644 --- a/version.h +++ b/version.h @@ -24,8 +24,8 @@ #define VER_MAJOR "1" #define VER_MINOR "4" -#define VER_REV "7" -#define VERSION_DATE "20180821" +#define VER_REV "8" +#define VERSION_DATE "20180908" #if defined(ZUMSPOT_ADF7021) #define BOARD_INFO "ZUMspot"