diff --git a/termin2/aufgaben1-2/LaborRechnersysteme2.ioc b/termin2/aufgaben1-2/LaborRechnersysteme2.ioc new file mode 100644 index 0000000..99a053d --- /dev/null +++ b/termin2/aufgaben1-2/LaborRechnersysteme2.ioc @@ -0,0 +1,412 @@ +#MicroXplorer Configuration settings - do not modify +PA11.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PH0-OSC_IN.Locked=true +PD12.GPIO_Label=LD4 [Green Led] +PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PH0-OSC_IN.Signal=RCC_OSC_IN +PC10.GPIO_PuPd=GPIO_NOPULL +SPI1.VirtualType=VM_MASTER +PB10.GPIO_PuPd=GPIO_NOPULL +PC12.Locked=true +PA10.GPIO_PuPd=GPIO_NOPULL +RCC.PLLCLKFreq_Value=168000000 +PC12.Signal=I2S3_SD +PA14.GPIO_Label=SWCLK +RCC.PLLQCLKFreq_Value=48000000 +PC7.Locked=true +I2S3.IPParameters=AudioFreq-Half_Duplex_Master,ErrorAudioFreq-Half_Duplex_Master,RealAudioFreq-Half_Duplex_Master,RealAudioFreq,ErrorAudioFreq,Instance,VirtualMode,FullDuplexMode,AudioFreq +USB_HOST0.BSP.condition= +PC3.Locked=true +RCC.RTCFreq_Value=32000 +PA6.GPIO_Label=SPI1_MISO [LIS302DL_SDO] +PB6.GPIO_Label=Audio_SCL [CS43L22_SCL] +PD4.Locked=true +PC15-OSC32_OUT.GPIO_Label=PC15-OSC32_OUT +PinOutPanel.RotationAngle=0 +PC3.GPIO_Speed=GPIO_SPEED_FREQ_LOW +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +PA6.GPIO_Mode=GPIO_MODE_AF_PP +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true\:false +PD14.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PD15.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label +PA4.Mode=Half_Duplex_Master +SPI1.Direction=SPI_DIRECTION_2LINES +I2S3.AudioFreq-Half_Duplex_Master=I2S_AUDIOFREQ_96K +TIM2.IPParameters=Prescaler,Period +RCC.APB2TimFreq_Value=84000000 +PD4.Signal=GPIO_Output +PB6.Signal=I2C1_SCL +PC7.Signal=I2S3_MCK +USB_HOST0.BSP.component= +PB6.Mode=I2C +SPI1.CalculateBaudRate=21.0 MBits/s +PC3.Signal=I2S2_SD +VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT +PE1.Signal=GPXTI1 +ProjectManager.ProjectBuild=false +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false +USB_OTG_FS.phy_itface=HCD_PHY_EMBEDDED +PB2.Signal=GPIO_Input +PA4.Locked=true +ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.26.2 +MxDb.Version=DB.6.0.21 +I2S3.ErrorAudioFreq=-2.34 % +ProjectManager.BackupPrevious=false +PA5.GPIO_PuPd=GPIO_NOPULL +I2S3.ErrorAudioFreq-Half_Duplex_Master=0.8 % +NVIC.TIM2_IRQn=true\:2\:0\:true\:false\:true\:true\:true +PH1-OSC_OUT.Locked=true +PD5.GPIO_Mode=GPIO_MODE_INPUT +PD14.GPIO_PuPd=GPIO_NOPULL +PE1.Locked=true +PB6.Locked=true +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true\:false +ProjectManager.HalAssertFull=false +PB2.GPIO_PuPd=GPIO_NOPULL +SPI1.CalculateBaudRate-Full_Duplex_Master=42.0 MBits/s +RCC.MCO2PinFreq_Value=168000000 +Mcu.Package=LQFP100 +PB9.Signal=I2C1_SDA +TIM2.Prescaler=84-1 +PA5.Locked=true +PD12.Signal=GPIO_Output +PD5.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PA14.Locked=true +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +PB9.GPIO_PuPd=GPIO_NOPULL +PA10.Signal=USB_OTG_FS_ID +PA5.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +RCC.APB2CLKDivider=RCC_HCLK_DIV2 +RCC.APB1TimFreq_Value=84000000 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false +USB_OTG_FS.IPParameters=phy_itface,VirtualMode +PB10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PC12.GPIO_PuPd=GPIO_NOPULL +PC15-OSC32_OUT.GPIOParameters=GPIO_Label +PA6.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA12.GPIO_PuPd=GPIO_NOPULL +PD5.Locked=true +PA4.GPIO_Label=I2S3_WS [CS43L22_LRCK] +PD15.Signal=GPIO_Output +ProjectManager.CustomerFirmwarePackage= +PC0.PinState=GPIO_PIN_SET +PA5.Mode=Full_Duplex_Master +PA6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +I2S3.FullDuplexMode=I2S_FULLDUPLEXMODE_DISABLE +ProjectManager.ProjectFileName=LaborRechnersysteme2.ioc +Mcu.PinsNb=37 +PA9.GPIO_Label=VBUS_FS +PB6.GPIO_PuPd=GPIO_NOPULL +PD13.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label +SH.GPXTI0.ConfNb=1 +PA11.GPIO_Label=OTG_FS_DM +PE1.GPIO_PuPd=GPIO_NOPULL +PC0.Signal=GPIO_Output +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +PC14-OSC32_IN.Signal=RCC_OSC32_IN +PA0-WKUP.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING +PA0-WKUP.GPIO_Label=B1 [Blue PushButton] +PA0-WKUP.Signal=GPXTI0 +USB_HOST0.BSP.semaphore= +PC3.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +USB_HOST0.BSP.STBoard=false +PC10.GPIO_Mode=GPIO_MODE_AF_PP +PA11.Locked=true +PB10.GPIO_Mode=GPIO_MODE_AF_PP +PC15-OSC32_OUT.Locked=true +PA9.Signal=USB_OTG_FS_VBUS +PB9.Locked=true +I2S3.VirtualMode=I2S_MODE_MASTER +PC7.GPIO_PuPd=GPIO_NOPULL +PB10.Signal=I2S2_CK +PA5.Signal=SPI1_SCK +I2S3.AudioFreq=I2S_AUDIOFREQ_96K +PC12.Mode=Half_Duplex_Master +PE1.GPIO_Label=MEMS_INT2 [LIS302DL_INT2] +ProjectManager.LastFirmware=true +USB_HOST.VirtualModeFS=Cdc +PA7.GPIO_Speed=GPIO_SPEED_FREQ_LOW +NVIC.TIM3_IRQn=true\:1\:0\:true\:false\:true\:true\:true +PB2.GPIO_Mode=GPIO_MODE_INPUT +Mcu.Pin35=VP_TIM3_VS_ClockSourceINT +Mcu.Pin36=VP_USB_HOST_VS_USB_HOST_CDC_FS +SPI1.Mode=SPI_MODE_MASTER +PD4.GPIO_Speed=GPIO_SPEED_FREQ_LOW +Mcu.Pin30=PB6 +RCC.EthernetFreq_Value=168000000 +Mcu.Pin33=VP_SYS_VS_Systick +TIM3.IPParameters=Prescaler,Period +PE3.GPIO_PuPd=GPIO_NOPULL +Mcu.Pin34=VP_TIM2_VS_ClockSourceINT +Mcu.Pin31=PB9 +Mcu.Pin32=PE1 +PA9.Locked=true +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:true\:false +RCC.AHBCLKDivider=RCC_SYSCLK_DIV2 +PC10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PH1-OSC_OUT.GPIO_Label=PH1-OSC_OUT +TIM2.Period=500000-1 +PA13.Mode=Serial_Wire +ProjectManager.FreePins=false +Mcu.Pin26=PC12 +Mcu.Pin27=PD4 +RCC.RTCHSEDivFreq_Value=4000000 +Mcu.Pin24=PA14 +ProjectManager.UnderRoot=true +Mcu.Pin25=PC10 +Mcu.Pin28=PD5 +PC7.GPIO_Label=I2S3_MCK [CS43L22_MCLK] +Mcu.Pin29=PB3 +PD14.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label +PA4.Signal=I2S3_WS +Mcu.Pin22=PA12 +PC12.GPIO_Mode=GPIO_MODE_AF_PP +Mcu.Pin23=PA13 +Mcu.Pin20=PA10 +Mcu.Pin21=PA11 +PA5.GPIO_Label=SPI1_SCK [LIS302DL_SCL/SPC] +PA10.Locked=true +NVIC.ForceEnableDMAVector=true +PE3.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA14.GPIOParameters=GPIO_Label +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:true\:false +PC12.GPIO_Label=I2S3_SD [CS43L22_SDIN] +ProjectManager.CompilerOptimize=6 +PD15.Locked=true +PA11.Signal=USB_OTG_FS_DM +ProjectManager.HeapSize=0x200 +Mcu.Pin15=PD13 +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false +Mcu.Pin16=PD14 +Mcu.Pin13=PB10 +Mcu.Pin14=PD12 +Mcu.Pin19=PA9 +ProjectManager.ComputerToolchain=false +Mcu.Pin17=PD15 +Mcu.Pin18=PC7 +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_2 +Mcu.Pin11=PA7 +Mcu.Pin12=PB2 +Mcu.Pin10=PA6 +PE3.Signal=GPIO_Output +PC3.GPIO_Label=PDM_OUT [MP45DT02_DOUT] +I2S3.Instance=SPI$Index +PB6.GPIO_Speed=GPIO_SPEED_FREQ_LOW +SH.GPXTI1.ConfNb=1 +SPI1.BaudRatePrescaler-Full_Duplex_Master=SPI_BAUDRATEPRESCALER_2 +USB_HOST0.BSP.mode=Output +PA7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PC0.Locked=true +Mcu.Family=STM32F4 +SH.GPXTI1.0=GPIO_EXTI1 +ProjectManager.MainLocation=Core/Src +PC3.GPIO_Mode=GPIO_MODE_AF_PP +PA6.Mode=Full_Duplex_Master +RCC.CortexFreq_Value=84000000 +ProjectManager.KeepUserCode=true +PB10.GPIO_Speed=GPIO_SPEED_FREQ_LOW +Mcu.UserName=STM32F407VGTx +PB6.GPIO_Mode=GPIO_MODE_AF_OD +PC10.Locked=true +PD15.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PC10.Signal=I2S3_CK +PA7.GPIO_Mode=GPIO_MODE_AF_PP +PA12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_I2C1_Init-I2C1-false-HAL-true,4-MX_I2S3_Init-I2S3-false-HAL-true,5-MX_SPI1_Init-SPI1-false-HAL-true,6-MX_USB_HOST_Init-USB_HOST-false-HAL-false +PC0.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label +PA9.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PA11.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PC0.GPIO_Label=OTG_FS_PowerSwitchOn +PA11.Mode=Host_Only +PH0-OSC_IN.GPIOParameters=GPIO_Label +PC10.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA11.GPIO_PuPd=GPIO_NOPULL +ProjectManager.StackSize=0x400 +SPI1.Mode-Full_Duplex_Master=SPI_MODE_MASTER +PD13.Signal=GPIO_Output +Mcu.IP4=SPI1 +RCC.FCLKCortexFreq_Value=84000000 +Mcu.IP5=SYS +Mcu.IP2=NVIC +PD13.Locked=true +Mcu.IP3=RCC +Mcu.IP0=I2C1 +PA12.Locked=true +Mcu.IP1=I2S3 +PA12.Signal=USB_OTG_FS_DP +Mcu.UserConstants= +Mcu.ThirdPartyNb=0 +RCC.HCLKFreq_Value=84000000 +RCC.I2SClocksFreq_Value=96000000 +Mcu.IPNb=10 +ProjectManager.PreviousToolchain= +TIM3.Period=10000-1 +RCC.VcooutputI2S=96000000 +Mcu.Pin6=PC3 +Mcu.Pin7=PA0-WKUP +Mcu.Pin8=PA4 +Mcu.Pin9=PA5 +USB_HOST0.BSP.ip=GPIO +RCC.AHBFreq_Value=84000000 +PH0-OSC_IN.Mode=HSE-External-Oscillator +PH0-OSC_IN.GPIO_Label=PH0-OSC_IN +Mcu.Pin0=PE3 +Mcu.Pin1=PC14-OSC32_IN +GPIO.groupedBy=Group By Peripherals +Mcu.Pin2=PC15-OSC32_OUT +PA9.GPIO_Mode=GPIO_MODE_INPUT +Mcu.Pin3=PH0-OSC_IN +Mcu.Pin4=PH1-OSC_OUT +PA0-WKUP.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI +Mcu.Pin5=PC0 +RCC.HSE_VALUE=8000000 +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:true\:false +PA4.GPIO_PuPd=GPIO_NOPULL +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true\:true +PA4.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PA6.GPIO_PuPd=GPIO_NOPULL +PC14-OSC32_IN.Mode=LSE-External-Oscillator +RCC.VCOInputFreq_Value=1000000 +PA14.Mode=Serial_Wire +TIM3.Prescaler=840-1 +File.Version=6 +PA10.GPIO_Label=OTG_FS_ID +PC7.GPIO_Mode=GPIO_MODE_AF_PP +PE3.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label +PB3.GPIOParameters=GPIO_Label +PE3.Locked=true +USB_HOST0.BSP.i2creg=0 +PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PC14-OSC32_IN.GPIOParameters=GPIO_Label +ProjectManager.ProjectName=LaborRechnersysteme2 +PA13.GPIOParameters=GPIO_Label +PH1-OSC_OUT.Mode=HSE-External-Oscillator +USB_HOST0.BSP.i2caddr=0 +PD13.GPIO_Label=LD3 [Orange Led] +PA6.Signal=SPI1_MISO +PA7.Locked=true +USB_HOST.USBH_HandleTypeDef-CDC_FS=hUsbHostFS +PD5.GPIO_Label=OTG_FS_OverCurrent +NVIC.OTG_FS_IRQn=true\:0\:0\:false\:false\:true\:true\:true +ProjectManager.ToolChainLocation= +PD15.GPIO_PuPd=GPIO_NOPULL +PD14.Locked=true +RCC.LSI_VALUE=32000 +SH.GPXTI0.0=GPIO_EXTI0 +USB_OTG_FS.VirtualMode=Host_Only +PA10.GPIO_Speed=GPIO_SPEED_FREQ_LOW +USB_HOST0.BSP.name=Drive_VBUS_FS +PB9.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PC14-OSC32_IN.GPIO_Label=PC14-OSC32_IN +PC0.GPIO_PuPd=GPIO_NOPULL +VP_TIM3_VS_ClockSourceINT.Mode=Internal +PC14-OSC32_IN.Locked=true +PA12.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PB3.Locked=true +PB3.GPIO_Label=SWO +PC15-OSC32_OUT.Mode=LSE-External-Oscillator +USB_HOST.IPParameters=VirtualModeFS,USBH_HandleTypeDef-CDC_FS +PD12.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PD15.GPIO_Label=LD6 [Blue Led] +PA7.Mode=Full_Duplex_Master +PB9.GPIO_Label=Audio_SDA [CS43L22_SDA] +PC10.GPIO_Label=I2S3_SCK [CS43L22_SCLK] +ProjectManager.NoMain=false +SPI1.IPParameters=CalculateBaudRate-Full_Duplex_Master,BaudRatePrescaler-Full_Duplex_Master,Mode-Full_Duplex_Master,Mode,VirtualType,Direction,CalculateBaudRate +USB_HOST0.BSP.solution=PC0 +PC10.Mode=Half_Duplex_Master +USB_HOST.BSP.number=1 +ProjectManager.DefaultFWLocation=true +PD5.Signal=GPIO_Input +ProjectManager.DeletePrevious=true +PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING +PB10.Locked=true +boardIOC=true +PA9.GPIO_PuPd=GPIO_NOPULL +PA12.GPIO_Label=OTG_FS_DP +RCC.FamilyName=M +PA0-WKUP.Locked=true +PB9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PA10.GPIO_Mode=GPIO_MODE_AF_PP +PD12.Locked=true +PC12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PA13.Signal=SYS_JTMS-SWDIO +PD4.GPIO_PuPd=GPIO_NOPULL +PA9.Mode=Activate_VBUS +PC0.GPIO_Speed=GPIO_SPEED_FREQ_LOW +I2S3.RealAudioFreq-Half_Duplex_Master=96.774 KHz +PD12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label +ProjectManager.TargetToolchain=STM32CubeIDE +PB10.GPIO_Label=CLK_IN [MP45DT02_CLK] +PB9.Mode=I2C +PB2.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +ProjectManager.RegisterCallBack= +VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT +PC15-OSC32_OUT.Signal=RCC_OSC32_OUT +PA7.GPIO_PuPd=GPIO_NOPULL +RCC.VCOI2SOutputFreq_Value=192000000 +board=STM32F407G-DISC1 +PD13.GPIO_Speed=GPIO_SPEED_FREQ_LOW +PC7.GPIO_Speed=GPIO_SPEED_FREQ_LOW +RCC.VCOOutputFreq_Value=336000000 +PB9.GPIO_Mode=GPIO_MODE_AF_OD +PA12.GPIO_Mode=GPIO_MODE_AF_PP +PA4.GPIO_Mode=GPIO_MODE_AF_PP +RCC.APB2Freq_Value=42000000 +USB_HOST0.BSP.api=Unknown +MxCube.Version=6.2.1 +VP_TIM2_VS_ClockSourceINT.Mode=Internal +PD4.GPIO_Label=Audio_RST [CS43L22_RESET] +VP_SYS_VS_Systick.Mode=SysTick +PD4.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label +PA10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +PH1-OSC_OUT.Signal=RCC_OSC_OUT +PD13.GPIO_PuPd=GPIO_NOPULL +PD5.GPIO_PuPd=GPIO_NOPULL +PD14.GPIO_Label=LD5 [Red Led] +PA4.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode +RCC.IPParameters=48MHZClocksFreq_Value,AHBCLKDivider,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S +ProjectManager.AskForMigrate=true +Mcu.Name=STM32F407V(E-G)Tx +PA13.GPIO_Label=SWDIO +PB2.Locked=true +Mcu.IP8=USB_HOST +Mcu.IP9=USB_OTG_FS +PD14.Signal=GPIO_Output +Mcu.IP6=TIM2 +Mcu.IP7=TIM3 +ProjectManager.CoupleFile=false +RCC.48MHZClocksFreq_Value=48000000 +PB3.Signal=SYS_JTDO-SWO +NVIC.EXTI0_IRQn=true\:3\:0\:true\:false\:true\:true\:true +RCC.SYSCLKFreq_VALUE=168000000 +VP_USB_HOST_VS_USB_HOST_CDC_FS.Signal=USB_HOST_VS_USB_HOST_CDC_FS +PA7.GPIO_Label=SPI1_MOSI [LIS302DL_SDA/SDI/SDO] +PA12.Mode=Host_Only +KeepUserPlacement=false +VP_USB_HOST_VS_USB_HOST_CDC_FS.Mode=CDC_FS +PA13.Locked=true +PH1-OSC_OUT.GPIOParameters=GPIO_Label +PA14.Signal=SYS_JTCK-SWCLK +PB2.GPIO_Label=BOOT1 +RCC.HSI_VALUE=16000000 +PA5.GPIO_Speed=GPIO_SPEED_FREQ_LOW +RCC.PLLQ=7 +I2S3.RealAudioFreq=93.75 KHz +RCC.PLLM=8 +RCC.PLLN=336 +PE3.GPIO_Label=CS_I2C/SPI [LIS302DL_CS_I2C/SPI] +PC7.Mode=Master_Clock_Activated +PA11.GPIO_Mode=GPIO_MODE_AF_PP +RCC.APB1Freq_Value=42000000 +PA5.GPIO_Mode=GPIO_MODE_AF_PP +PC12.GPIO_Speed=GPIO_SPEED_FREQ_LOW +ProjectManager.DeviceId=STM32F407VGTx +ProjectManager.LibraryCopy=1 +PC3.GPIO_PuPd=GPIO_NOPULL +PD12.GPIO_PuPd=GPIO_NOPULL +PE1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI +PA7.Signal=SPI1_MOSI +USB_HOST0.BSP.instance=PC0 +PA6.Locked=true +isbadioc=false diff --git a/termin2/aufgaben1-2/main1.c b/termin2/aufgaben1-2/main1.c new file mode 100644 index 0000000..82127b7 --- /dev/null +++ b/termin2/aufgaben1-2/main1.c @@ -0,0 +1,541 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + * Musab Erdem + * 8757524 + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2024 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * www.st.com/SLA0044 + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "usb_host.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +I2C_HandleTypeDef hi2c1; + +I2S_HandleTypeDef hi2s3; + +SPI_HandleTypeDef hspi1; + +TIM_HandleTypeDef htim2; +TIM_HandleTypeDef htim3; + +/* USER CODE BEGIN PV */ +int IRQ_TIM2_Svc = 0; +int IRQ_TIM3_Svc = 0; +int SkipTIM3 = 0; +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_I2C1_Init(void); +static void MX_I2S3_Init(void); +static void MX_SPI1_Init(void); +static void MX_TIM2_Init(void); +static void MX_TIM3_Init(void); +void MX_USB_HOST_Process(void); + +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_I2C1_Init(); + MX_I2S3_Init(); + MX_SPI1_Init(); + MX_USB_HOST_Init(); + MX_TIM2_Init(); + MX_TIM3_Init(); + /* USER CODE BEGIN 2 */ + /* Timer starten ! */ + HAL_TIM_Base_Start_IT(&htim2); + HAL_TIM_Base_Start_IT(&htim3); + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + /* USER CODE END WHILE */ + MX_USB_HOST_Process(); + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /** Initializes the RCC Oscillators according to the specified parameters + * in the RCC_OscInitTypeDef structure. + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 8; + RCC_OscInitStruct.PLL.PLLN = 336; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 7; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB buses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV2; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S; + PeriphClkInitStruct.PLLI2S.PLLI2SN = 192; + PeriphClkInitStruct.PLLI2S.PLLI2SR = 2; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief I2C1 Initialization Function + * @param None + * @retval None + */ +static void MX_I2C1_Init(void) +{ + + /* USER CODE BEGIN I2C1_Init 0 */ + + /* USER CODE END I2C1_Init 0 */ + + /* USER CODE BEGIN I2C1_Init 1 */ + + /* USER CODE END I2C1_Init 1 */ + hi2c1.Instance = I2C1; + hi2c1.Init.ClockSpeed = 100000; + hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; + hi2c1.Init.OwnAddress1 = 0; + hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; + hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; + hi2c1.Init.OwnAddress2 = 0; + hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; + hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; + if (HAL_I2C_Init(&hi2c1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2C1_Init 2 */ + + /* USER CODE END I2C1_Init 2 */ + +} + +/** + * @brief I2S3 Initialization Function + * @param None + * @retval None + */ +static void MX_I2S3_Init(void) +{ + + /* USER CODE BEGIN I2S3_Init 0 */ + + /* USER CODE END I2S3_Init 0 */ + + /* USER CODE BEGIN I2S3_Init 1 */ + + /* USER CODE END I2S3_Init 1 */ + hi2s3.Instance = SPI3; + hi2s3.Init.Mode = I2S_MODE_MASTER_TX; + hi2s3.Init.Standard = I2S_STANDARD_PHILIPS; + hi2s3.Init.DataFormat = I2S_DATAFORMAT_16B; + hi2s3.Init.MCLKOutput = I2S_MCLKOUTPUT_ENABLE; + hi2s3.Init.AudioFreq = I2S_AUDIOFREQ_96K; + hi2s3.Init.CPOL = I2S_CPOL_LOW; + hi2s3.Init.ClockSource = I2S_CLOCK_PLL; + hi2s3.Init.FullDuplexMode = I2S_FULLDUPLEXMODE_DISABLE; + if (HAL_I2S_Init(&hi2s3) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN I2S3_Init 2 */ + + /* USER CODE END I2S3_Init 2 */ + +} + +/** + * @brief SPI1 Initialization Function + * @param None + * @retval None + */ +static void MX_SPI1_Init(void) +{ + + /* USER CODE BEGIN SPI1_Init 0 */ + + /* USER CODE END SPI1_Init 0 */ + + /* USER CODE BEGIN SPI1_Init 1 */ + + /* USER CODE END SPI1_Init 1 */ + /* SPI1 parameter configuration*/ + hspi1.Instance = SPI1; + hspi1.Init.Mode = SPI_MODE_MASTER; + hspi1.Init.Direction = SPI_DIRECTION_2LINES; + hspi1.Init.DataSize = SPI_DATASIZE_8BIT; + hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; + hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; + hspi1.Init.NSS = SPI_NSS_SOFT; + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; + hspi1.Init.TIMode = SPI_TIMODE_DISABLE; + hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + hspi1.Init.CRCPolynomial = 10; + if (HAL_SPI_Init(&hspi1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN SPI1_Init 2 */ + + /* USER CODE END SPI1_Init 2 */ + +} + +/** + * @brief TIM2 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM2_Init(void) +{ + + /* USER CODE BEGIN TIM2_Init 0 */ + + /* USER CODE END TIM2_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + + /* USER CODE BEGIN TIM2_Init 1 */ + + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + htim2.Init.Prescaler = 84-1; + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + htim2.Init.Period = 500000-1; + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM2_Init 2 */ + + /* USER CODE END TIM2_Init 2 */ + +} + +/** + * @brief TIM3 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM3_Init(void) +{ + + /* USER CODE BEGIN TIM3_Init 0 */ + + /* USER CODE END TIM3_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + + /* USER CODE BEGIN TIM3_Init 1 */ + + /* USER CODE END TIM3_Init 1 */ + htim3.Instance = TIM3; + htim3.Init.Prescaler = 840-1; + htim3.Init.CounterMode = TIM_COUNTERMODE_UP; + htim3.Init.Period = 10000-1; + htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim3) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM3_Init 2 */ + + /* USER CODE END TIM3_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOE_CLK_ENABLE(); + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + __HAL_RCC_GPIOD_CLK_ENABLE(); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(CS_I2C_SPI_GPIO_Port, CS_I2C_SPI_Pin, GPIO_PIN_RESET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(OTG_FS_PowerSwitchOn_GPIO_Port, OTG_FS_PowerSwitchOn_Pin, GPIO_PIN_SET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOD, LD4_Pin|LD3_Pin|LD5_Pin|LD6_Pin + |Audio_RST_Pin, GPIO_PIN_RESET); + + /*Configure GPIO pin : CS_I2C_SPI_Pin */ + GPIO_InitStruct.Pin = CS_I2C_SPI_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(CS_I2C_SPI_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : OTG_FS_PowerSwitchOn_Pin */ + GPIO_InitStruct.Pin = OTG_FS_PowerSwitchOn_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(OTG_FS_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : PDM_OUT_Pin */ + GPIO_InitStruct.Pin = PDM_OUT_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; + HAL_GPIO_Init(PDM_OUT_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : B1_Pin */ + GPIO_InitStruct.Pin = B1_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : BOOT1_Pin */ + GPIO_InitStruct.Pin = BOOT1_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : CLK_IN_Pin */ + GPIO_InitStruct.Pin = CLK_IN_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; + HAL_GPIO_Init(CLK_IN_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pins : LD4_Pin LD3_Pin LD5_Pin LD6_Pin + Audio_RST_Pin */ + GPIO_InitStruct.Pin = LD4_Pin|LD3_Pin|LD5_Pin|LD6_Pin + |Audio_RST_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + + /*Configure GPIO pin : OTG_FS_OverCurrent_Pin */ + GPIO_InitStruct.Pin = OTG_FS_OverCurrent_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(OTG_FS_OverCurrent_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pin : MEMS_INT2_Pin */ + GPIO_InitStruct.Pin = MEMS_INT2_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(MEMS_INT2_GPIO_Port, &GPIO_InitStruct); + + /* EXTI interrupt init*/ + HAL_NVIC_SetPriority(EXTI0_IRQn, 3, 0); + HAL_NVIC_EnableIRQ(EXTI0_IRQn); + +} + +/* USER CODE BEGIN 4 */ +void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { + + if ( htim == &htim2 ) { + IRQ_TIM2_Svc = 1; + HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin,1); // blue + for(int i=0;i<1800000;i++); + HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin,0); + IRQ_TIM2_Svc = 0; + } + + if ( htim == &htim3 && SkipTIM3 == 0 ) { + IRQ_TIM3_Svc = 2; + HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin,1); // red + for(int i=0;i<100000;i++); + HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin,0); + IRQ_TIM3_Svc = 0; + } + +} + + +void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { + if ( GPIO_Pin == B1_Pin ) { + HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin); + if ( SkipTIM3 == 0 ) + SkipTIM3 = 1; + else + SkipTIM3 = 0; + } +} + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) + { + } + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/