diff --git a/.gitignore b/.gitignore index 1645c0b..4650c9d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,17 @@ Source/BlankF4-2.launch Source/StereoTurnerOnner.launch Hardware/~$PSDR.pcb.inf Hardware/Test Boards/~$MultiTestBoard2.pcb.inf +Hardware/PSDR.eco +Hardware/PSDR.rep +Hardware/PSDR_Layou1.pcb +Hardware/PSDR_Layou2.pcb +Hardware/PSDR_Layou3.pcb +Hardware/PSDR_Layout.pcb +Hardware/PSDR_Logic0.sch +Hardware/PSDR_Logic1.sch +Hardware/PSDR_Logic2.sch +Hardware/PSDR_Logic3.sch +Hardware/PSDR_PCB/3D/3DSettings.xml +Hardware/PSDR_PCB/PSDR_3DViewer.cce +Hardware/STM32F756_Config.ioc +Source/STM32F4 Test.launch diff --git a/Hardware/PSDR.sch b/Hardware/PSDR.sch index 090ae2b..4e8ba91 100644 Binary files a/Hardware/PSDR.sch and b/Hardware/PSDR.sch differ diff --git a/Hardware/STM32F429_Config.ioc b/Hardware/STM32F429_Config.ioc index 2d5615d..8c77d8a 100644 --- a/Hardware/STM32F429_Config.ioc +++ b/Hardware/STM32F429_Config.ioc @@ -1,5 +1,5 @@ #MicroXplorer Configuration settings - do not modify -File.Version=5 +File.Version=6 KeepUserPlacement=false Mcu.Family=STM32F4 Mcu.IP0=DAC @@ -49,22 +49,29 @@ Mcu.Pin33=PB5 Mcu.Pin34=PB6 Mcu.Pin35=PB7 Mcu.Pin36=VP_ADC1_TempSens_Input -Mcu.Pin37=VP_TIM1_VS_ControllerModeGated -Mcu.Pin38=VP_TIM1_VS_ClockSourceINT -Mcu.Pin39=VP_TIM4_VS_ClockSourceINT +Mcu.Pin37=VP_SYS_VS_Systick +Mcu.Pin38=VP_TIM1_VS_ControllerModeGated +Mcu.Pin39=VP_TIM1_VS_ClockSourceINT Mcu.Pin4=PA1 +Mcu.Pin40=VP_TIM4_VS_ClockSourceINT Mcu.Pin5=PA4 Mcu.Pin6=PA5 Mcu.Pin7=PE7 Mcu.Pin8=PE9 Mcu.Pin9=PB10 -Mcu.PinsNb=40 +Mcu.PinsNb=41 Mcu.UserConstants= Mcu.UserName=STM32F429VITx -MxCube.Version=4.12.0 -MxDb.Version=DB.4.0.120 +MxCube.Version=4.14.0 +MxDb.Version=DB.4.0.140 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:false +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_0 -NVIC.SysTick_IRQn=true\:0\:0\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:false PA1.GPIOParameters=GPIO_Label PA1.GPIO_Label=BOOT1 PA1.Locked=true @@ -79,7 +86,7 @@ PA13.Mode=Serial-Wire PA13.Signal=SYS_JTMS-SWDIO PA14.Mode=Serial-Wire PA14.Signal=SYS_JTCK-SWCLK -PA15.Mode=NSS_Signal_Hard +PA15.Mode=NSS_Signal_Hard_Input PA15.Signal=SPI1_NSS PA4.Signal=COMP_DAC1_group PA5.Signal=COMP_DAC2_group @@ -89,7 +96,7 @@ PB10.Mode=I2C PB10.Signal=I2C2_SCL PB11.Mode=I2C PB11.Signal=I2C2_SDA -PB12.Mode=NSS_Signal_Hard +PB12.Mode=NSS_Signal_Hard_Input PB12.Signal=SPI2_NSS PB13.Mode=Full_Duplex_Master PB13.Signal=SPI2_SCK @@ -145,7 +152,7 @@ PCC.Battery.SelfDischarge=10.0 PCC.Checker=false PCC.Line=STM32F429/439 PCC.MCU=STM32F429V(E-G-I)Tx -PCC.MXVersion=4.12.0 +PCC.MXVersion=4.14.0 PCC.PartNumber=STM32F429VITx PCC.Seq0=0 PCC.Series=STM32F4 @@ -180,7 +187,7 @@ RCC.EthernetFreq_Value=168000000 RCC.FCLKCortexFreq_Value=168000000 RCC.FamilyName=M RCC.HCLKFreq_Value=168000000 -RCC.HSE_VALUE=8000000 +RCC.HSE_VALUE=26000000 RCC.HSI_VALUE=16000000 RCC.I2SClocksFreq_Value=96000000 RCC.IPParameters=LSI_VALUE,FamilyName,APB1CLKDivider,HSE_VALUE,HSI_VALUE,RTCHSEDivFreq_Value,VCOInputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueR,LCDTFTFreq_Value,VCOSAIOutputFreq_ValueQ,VCOOutputFreq_Value,PLLCLKFreq_Value,PLLQCLKFreq_Value,VCOI2SOutputFreq_Value,VcooutputI2S,I2SClocksFreq_Value,VcooutputI2SQ,SYSCLKFreq_VALUE,AHBFreq_Value,HCLKFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,EthernetFreq_Value,MCO2PinFreq_Value,RTCFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,48MHZClocksFreq_Value,APB2CLKDivider,PLLM,PLLN,SYSCLKSource,PLLQ @@ -188,12 +195,12 @@ RCC.LCDTFTFreq_Value=12250000 RCC.LSI_VALUE=32000 RCC.MCO2PinFreq_Value=168000000 RCC.PLLCLKFreq_Value=168000000 -RCC.PLLM=8 +RCC.PLLM=26 RCC.PLLN=336 RCC.PLLQ=7 RCC.PLLQCLKFreq_Value=48000000 RCC.RTCFreq_Value=32000 -RCC.RTCHSEDivFreq_Value=4000000 +RCC.RTCHSEDivFreq_Value=13000000 RCC.SAI_AClocksFreq_Value=12250000 RCC.SAI_BClocksFreq_Value=12250000 RCC.SYSCLKFreq_VALUE=168000000 @@ -219,15 +226,19 @@ SH.S_TIM1_ETR.0=TIM1_ETR,TriggerSource_ETR SH.S_TIM1_ETR.ConfNb=1 SH.S_TIM4_CH1.0=TIM4_CH1,Output Compare1 CH1 SH.S_TIM4_CH1.ConfNb=1 +SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2 SPI1.CalculateBaudRate=42.0 MBits/s -SPI1.IPParameters=Mode,CalculateBaudRate,VirtualNSS +SPI1.IPParameters=Mode,CalculateBaudRate,VirtualNSS,BaudRatePrescaler SPI1.Mode=SPI_MODE_MASTER SPI1.VirtualNSS=VM_NSSHARD +SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2 SPI2.CalculateBaudRate=21.0 MBits/s -SPI2.IPParameters=Mode,CalculateBaudRate,VirtualNSS +SPI2.IPParameters=Mode,CalculateBaudRate,VirtualNSS,BaudRatePrescaler SPI2.Mode=SPI_MODE_MASTER SPI2.VirtualNSS=VM_NSSHARD VP_ADC1_TempSens_Input.Signal=ADC1_TempSens_Input +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick VP_TIM1_VS_ClockSourceINT.Mode=Internal VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT VP_TIM1_VS_ControllerModeGated.Mode=Gated Mode diff --git a/Source/src/TinyGPS.c b/Source/src/TinyGPS.c index b7df640..91943a1 100644 --- a/Source/src/TinyGPS.c +++ b/Source/src/TinyGPS.c @@ -107,7 +107,7 @@ void TinyGPS_init() } //Initial Uart setup - uart_init(hal_gpsUart); + //uart_init(hal_gpsUart); #ifdef SIRF_MODULE //TODO: Determine which of these delays can be eliminated or reduced @@ -139,7 +139,7 @@ void TinyGPS_init() #endif #ifdef MEDIATEK_MODULE //Send it something to wake it up - uart_write(hal_gpsUart, "\r\n", 2); + //uart_write(hal_gpsUart, "\r\n", 2); #endif } diff --git a/Source/src/main.c b/Source/src/main.c index 12c8eab..4b13d05 100644 --- a/Source/src/main.c +++ b/Source/src/main.c @@ -709,7 +709,6 @@ USART1_IRQHandler(void) } -GPIO_InitTypeDef GPIO_InitStruct; __IO ITStatus UartReady = RESET; uint8_t aTxBuffer[] = "Chris a baby! "; @@ -717,38 +716,58 @@ uint8_t aRxBuffer[256]; void configUartPeripheral() { // //Enable Clocks -// __GPIOB_CLK_ENABLE(); -// __USART1_CLK_ENABLE(); -// + __GPIOC_CLK_ENABLE(); + __USART6_CLK_ENABLE(); + + GPIO_InitTypeDef GPIO_InitStruct; + // //Setup TX Pin -// GPIO_InitStruct.Pin = GPIO_PIN_6; -// GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; -// GPIO_InitStruct.Pull = GPIO_NOPULL; -// GPIO_InitStruct.Speed = GPIO_SPEED_FAST; -// GPIO_InitStruct.Alternate = GPIO_AF7_USART1; -// -// HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); -// -// //Setup RX Pin -// //It doesn't get set as an input? -// GPIO_InitStruct.Pin = GPIO_PIN_7; -// GPIO_InitStruct.Alternate = GPIO_AF7_USART1; -// -// HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); -// + GPIO_InitStruct.Pin = RX_TO_GPS.pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FAST; + GPIO_InitStruct.Alternate = GPIO_AF8_USART6; + HAL_GPIO_Init(RX_TO_GPS.port, &GPIO_InitStruct); + + //Setup RX Pin + //It doesn't get set as an input? + GPIO_InitStruct.Pin = TX_FROM_GPS.pin; + GPIO_InitStruct.Alternate = GPIO_AF8_USART6; + HAL_GPIO_Init(TX_FROM_GPS.port, &GPIO_InitStruct); + + // //Configure NVIC // HAL_NVIC_SetPriority(USART1_IRQn, 0, 1); // HAL_NVIC_EnableIRQ(USART1_IRQn); // -// UartHandle.Instance = USART1; -// UartHandle.Init.BaudRate = 9600; -// UartHandle.Init.WordLength = UART_WORDLENGTH_8B; -// UartHandle.Init.StopBits = UART_STOPBITS_1; -// UartHandle.Init.Parity = UART_PARITY_NONE; -// UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; -// UartHandle.Init.Mode = UART_MODE_TX_RX; -// -// HAL_UART_Init(&UartHandle); + UartHandle.Instance = USART6; + UartHandle.Init.BaudRate = 9600; + UartHandle.Init.WordLength = UART_WORDLENGTH_8B; + UartHandle.Init.StopBits = UART_STOPBITS_1; + UartHandle.Init.Parity = UART_PARITY_NONE; + UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; + UartHandle.Init.Mode = UART_MODE_TX_RX; + UartHandle.Init.OverSampling = UART_OVERSAMPLING_16; + + if(HAL_UART_Init(&UartHandle) != HAL_OK) + { + trace_puts("UART didn't init rightly."); + } + + TinyGPS_init(); + + while(1) + { + if(HAL_UART_Receive(&UartHandle, (uint8_t *)aRxBuffer, 256, 5000) != HAL_OK) + { + trace_puts("UART recieve didn't work. No sir."); + } else { + trace_puts(aRxBuffer); + for(int i = 0; i < 256; i++) + TinyGPS_encode(aRxBuffer[i]); + + } + } }