diff --git a/.cproject b/.cproject
index 5cc5cf7..9b516b9 100644
--- a/.cproject
+++ b/.cproject
@@ -50,8 +50,8 @@
-
+
@@ -135,8 +135,9 @@
-
+
+
@@ -188,4 +189,5 @@
+
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index b6cbcbe..d39a11f 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -1,27 +1,52 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs
index df27a66..33ce972 100644
--- a/.settings/stm32cubeide.project.prefs
+++ b/.settings/stm32cubeide.project.prefs
@@ -1,3 +1,3 @@
-8DF89ED150041C4CBC7CB9A9CAA90856=0200E7423990B2759ED933AA554D57BA
-DC22A860405A8BF2F2C095E5B6529F12=0200E7423990B2759ED933AA554D57BA
+8DF89ED150041C4CBC7CB9A9CAA90856=AB865C83BA39543F83B9ABB4BDB18952
+DC22A860405A8BF2F2C095E5B6529F12=A0ADE871A3658E381E3DD38DCB6504D2
eclipse.preferences.version=1
diff --git a/AudioDAC.ioc b/AudioDAC.ioc
index 30e37d0..3b19314 100644
--- a/AudioDAC.ioc
+++ b/AudioDAC.ioc
@@ -1,381 +1,380 @@
#MicroXplorer Configuration settings - do not modify
-File.Version=6
-I2S2.ErrorAudioFreq=0.0 %
-I2S2.FullDuplexMode=I2S_FULLDUPLEXMODE_DISABLE
-I2S2.IPParameters=RealAudioFreq,ErrorAudioFreq,Instance,VirtualMode,FullDuplexMode
-I2S2.Instance=SPI$Index
-I2S2.RealAudioFreq=8.0 KHz
-I2S2.VirtualMode=I2S_MODE_MASTER
-I2S3.AudioFreq=I2S_AUDIOFREQ_96K
-I2S3.ErrorAudioFreq=-2.34 %
-I2S3.FullDuplexMode=I2S_FULLDUPLEXMODE_DISABLE
-I2S3.IPParameters=AudioFreq,RealAudioFreq,ErrorAudioFreq,Instance,VirtualMode,FullDuplexMode
-I2S3.Instance=SPI$Index
-I2S3.RealAudioFreq=93.75 KHz
-I2S3.VirtualMode=I2S_MODE_MASTER
-KeepUserPlacement=false
Mcu.Family=STM32F4
-Mcu.IP0=I2C1
-Mcu.IP1=I2S2
-Mcu.IP2=I2S3
-Mcu.IP3=NVIC
+PC3.Mode=Half_Duplex_Master
+SH.GPXTI1.0=GPIO_EXTI1
+ProjectManager.MainLocation=Core/Src
+PD12.GPIO_Label=LD4 [Green Led]
+PA6.Mode=Full_Duplex_Master
+PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
+USART2.IPParameters=VirtualMode
+RCC.CortexFreq_Value=84000000
+PC10.GPIO_PuPd=GPIO_NOPULL
+ProjectManager.KeepUserCode=true
+Mcu.UserName=STM32F401VCTx
+SPI1.VirtualType=VM_MASTER
+PB6.GPIO_Mode=GPIO_MODE_AF_OD
+PB10.Mode=Half_Duplex_Master
+PC12.Locked=true
+PC10.Locked=true
+PD15.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+RCC.PLLCLKFreq_Value=84000000
+PC10.Signal=I2S3_CK
+PC12.Signal=I2S3_SD
+PA14.GPIO_Label=SWCLK
+RCC.PLLQCLKFreq_Value=48000000
+PC7.Locked=true
+I2S3.IPParameters=AudioFreq,RealAudioFreq,ErrorAudioFreq,Instance,VirtualMode,FullDuplexMode
+PA12.GPIOParameters=GPIO_Label
+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_I2S2_Init-I2S2-false-HAL-true,5-MX_I2S3_Init-I2S3-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_USB_HOST_Init-USB_HOST-false-HAL-false,8-MX_USART2_UART_Init-USART2-false-HAL-true
+PC0.GPIOParameters=PinState,GPIO_Label
+PA9.GPIOParameters=GPIO_Label
+PA11.GPIOParameters=GPIO_Label
+USB_HOST0.BSP.condition=
+PC0.GPIO_Label=OTG_FS_PowerSwitchOn
+PC3.Locked=true
+PA11.Mode=Host_Only
+RCC.RTCFreq_Value=32000
+PA6.GPIO_Label=SPI1_MISO [L3GD20_AS0/SDO]
+PB6.GPIO_Label=Audio_SCL [CS43L22_SCL]
+PC10.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+PD4.Locked=true
+PC15-OSC32_OUT.GPIO_Label=PC15-OSC32_OUT
+PinOutPanel.RotationAngle=0
+PE5.GPIOParameters=GPIO_ModeDefaultEXTI
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
+ProjectManager.StackSize=0x400
+PD13.Signal=GPIO_Output
Mcu.IP4=RCC
+RCC.FCLKCortexFreq_Value=84000000
Mcu.IP5=SPI1
-Mcu.IP6=SYS
-Mcu.IP7=USART2
-Mcu.IP8=USB_HOST
-Mcu.IP9=USB_OTG_FS
+PD13.Locked=true
+Mcu.IP2=I2S3
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+Mcu.IP3=NVIC
+PD14.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+Mcu.IP0=I2C1
+PA12.Locked=true
+Mcu.IP1=I2S2
+PA12.Signal=USB_OTG_FS_DP
+PE4.GPIOParameters=GPIO_ModeDefaultEXTI
+Mcu.UserConstants=
+PD15.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+PH0\ -\ OSC_IN.Signal=RCC_OSC_IN
+PA4.Mode=Half_Duplex_Master
+PH0\ -\ OSC_IN.Locked=true
+Mcu.ThirdPartyNb=0
+SPI1.Direction=SPI_DIRECTION_2LINES
+RCC.HCLKFreq_Value=84000000
Mcu.IPNb=10
-Mcu.Name=STM32F401V(B-C)Tx
-Mcu.Package=LQFP100
-Mcu.Pin0=PE2
-Mcu.Pin1=PE3
-Mcu.Pin10=PA0-WKUP
-Mcu.Pin11=PA2
-Mcu.Pin12=PA3
-Mcu.Pin13=PA4
-Mcu.Pin14=PA5
-Mcu.Pin15=PA6
-Mcu.Pin16=PA7
-Mcu.Pin17=PB10
-Mcu.Pin18=PB12
-Mcu.Pin19=PD12
-Mcu.Pin2=PE4
-Mcu.Pin20=PD13
-Mcu.Pin21=PD14
-Mcu.Pin22=PD15
-Mcu.Pin23=PC7
-Mcu.Pin24=PA9
-Mcu.Pin25=PA10
-Mcu.Pin26=PA11
-Mcu.Pin27=PA12
-Mcu.Pin28=PA13
-Mcu.Pin29=PA14
-Mcu.Pin3=PE5
-Mcu.Pin30=PC10
-Mcu.Pin31=PC12
-Mcu.Pin32=PD4
-Mcu.Pin33=PD5
-Mcu.Pin34=PB3
-Mcu.Pin35=PB6
-Mcu.Pin36=PB9
-Mcu.Pin37=PE1
-Mcu.Pin38=VP_SYS_VS_Systick
-Mcu.Pin39=VP_USB_HOST_VS_USB_HOST_CDC_FS
-Mcu.Pin4=PC14-OSC32_IN
-Mcu.Pin5=PC15-OSC32_OUT
+RCC.I2SClocksFreq_Value=96000000
+ProjectManager.PreviousToolchain=
+PD4.Signal=GPIO_Output
+RCC.APB2TimFreq_Value=84000000
+PB6.Signal=I2C1_SCL
+RCC.VcooutputI2S=96000000
+PC7.Signal=I2S3_MCK
+USB_HOST0.BSP.component=
+PB6.Mode=I2C
+SPI1.CalculateBaudRate=42.0 MBits/s
+PC3.Signal=I2S2_SD
Mcu.Pin6=PH0 - OSC_IN
Mcu.Pin7=PH1 - OSC_OUT
+PE5.Signal=GPXTI5
Mcu.Pin8=PC0
Mcu.Pin9=PC3
-Mcu.PinsNb=40
-Mcu.ThirdPartyNb=0
-Mcu.UserConstants=
-Mcu.UserName=STM32F401VCTx
-MxCube.Version=6.1.1
-MxDb.Version=DB.6.0.10
-NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
-NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:true\:false
-NVIC.ForceEnableDMAVector=true
-NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
-NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:true\:false
-NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:true\:false
-NVIC.OTG_FS_IRQn=true\:0\:0\:false\:false\:true\:true\:true
-NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true\:false
-NVIC.PriorityGroup=NVIC_PRIORITYGROUP_0
-NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true\:false
-NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true\:true
-NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
-PA0-WKUP.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
-PA0-WKUP.GPIO_Label=B1 [Blue PushButton]
-PA0-WKUP.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
-PA0-WKUP.Locked=true
-PA0-WKUP.Signal=GPXTI0
-PA10.GPIOParameters=GPIO_Label
-PA10.GPIO_Label=OTG_FS_ID
-PA10.Locked=true
-PA10.Signal=USB_OTG_FS_ID
-PA11.GPIOParameters=GPIO_Label
-PA11.GPIO_Label=OTG_FS_DM
-PA11.Locked=true
-PA11.Mode=Host_Only
-PA11.Signal=USB_OTG_FS_DM
-PA12.GPIOParameters=GPIO_Label
-PA12.GPIO_Label=OTG_FS_DP
-PA12.Locked=true
-PA12.Mode=Host_Only
-PA12.Signal=USB_OTG_FS_DP
-PA13.GPIOParameters=GPIO_Label
-PA13.GPIO_Label=SWDIO
-PA13.Locked=true
-PA13.Mode=Serial_Wire
-PA13.Signal=SYS_JTMS-SWDIO
-PA14.GPIOParameters=GPIO_Label
-PA14.GPIO_Label=SWCLK
-PA14.Locked=true
-PA14.Mode=Serial_Wire
-PA14.Signal=SYS_JTCK-SWCLK
-PA2.Mode=Asynchronous
-PA2.Signal=USART2_TX
-PA3.Mode=Asynchronous
-PA3.Signal=USART2_RX
-PA4.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
-PA4.GPIO_Label=I2S3_WS [CS43L22_LRCK]
-PA4.GPIO_Mode=GPIO_MODE_AF_PP
-PA4.GPIO_PuPd=GPIO_NOPULL
-PA4.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PA4.Locked=true
-PA4.Mode=Half_Duplex_Master
-PA4.Signal=I2S3_WS
-PA5.GPIOParameters=GPIO_Label
-PA5.GPIO_Label=SPI1_SCK [L3GD20_SC/SPC]
-PA5.Locked=true
-PA5.Mode=Full_Duplex_Master
-PA5.Signal=SPI1_SCK
-PA6.GPIOParameters=GPIO_Label
-PA6.GPIO_Label=SPI1_MISO [L3GD20_AS0/SDO]
-PA6.Locked=true
-PA6.Mode=Full_Duplex_Master
-PA6.Signal=SPI1_MISO
-PA7.GPIOParameters=GPIO_Label
-PA7.GPIO_Label=SPI1_MISO [L3GD20_SDA/SDI/SDO]
-PA7.Locked=true
-PA7.Mode=Full_Duplex_Master
-PA7.Signal=SPI1_MOSI
-PA9.GPIOParameters=GPIO_Label
-PA9.GPIO_Label=VBUS_FS
-PA9.Locked=true
-PA9.Mode=Activate_VBUS
-PA9.Signal=USB_OTG_FS_VBUS
-PB10.GPIOParameters=GPIO_Label
-PB10.GPIO_Label=CLK_IN [MP45DT02_CLK]
-PB10.Locked=true
-PB10.Mode=Half_Duplex_Master
-PB10.Signal=I2S2_CK
-PB12.Locked=true
-PB12.Mode=Half_Duplex_Master
-PB12.Signal=I2S2_WS
-PB3.GPIOParameters=GPIO_Label
-PB3.GPIO_Label=SWO
-PB3.Locked=true
-PB3.Signal=SYS_JTDO-SWO
-PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
-PB6.GPIO_Label=Audio_SCL [CS43L22_SCL]
-PB6.GPIO_Mode=GPIO_MODE_AF_OD
-PB6.GPIO_PuPd=GPIO_NOPULL
-PB6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PB6.Locked=true
-PB6.Mode=I2C
-PB6.Signal=I2C1_SCL
-PB9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
-PB9.GPIO_Label=Audio_SDA [CS43L22_SDA]
-PB9.GPIO_Mode=GPIO_MODE_AF_OD
-PB9.GPIO_PuPd=GPIO_NOPULL
-PB9.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PB9.Locked=true
-PB9.Mode=I2C
-PB9.Signal=I2C1_SDA
-PC0.GPIOParameters=PinState,GPIO_Label
-PC0.GPIO_Label=OTG_FS_PowerSwitchOn
-PC0.Locked=true
-PC0.PinState=GPIO_PIN_SET
-PC0.Signal=GPIO_Output
-PC10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
-PC10.GPIO_Label=I2S3_SCK [CS43L22_SCLK]
-PC10.GPIO_Mode=GPIO_MODE_AF_PP
-PC10.GPIO_PuPd=GPIO_NOPULL
-PC10.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PC10.Locked=true
-PC10.Mode=Half_Duplex_Master
-PC10.Signal=I2S3_CK
-PC12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
-PC12.GPIO_Label=I2S3_SD [CS43L22_SDIN]
-PC12.GPIO_Mode=GPIO_MODE_AF_PP
-PC12.GPIO_PuPd=GPIO_NOPULL
-PC12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PC12.Locked=true
-PC12.Mode=Half_Duplex_Master
-PC12.Signal=I2S3_SD
-PC14-OSC32_IN.GPIOParameters=GPIO_Label
-PC14-OSC32_IN.GPIO_Label=PC14-OSC32_IN
-PC14-OSC32_IN.Locked=true
-PC14-OSC32_IN.Mode=LSE-External-Oscillator
-PC14-OSC32_IN.Signal=RCC_OSC32_IN
-PC15-OSC32_OUT.GPIOParameters=GPIO_Label
-PC15-OSC32_OUT.GPIO_Label=PC15-OSC32_OUT
-PC15-OSC32_OUT.Locked=true
-PC15-OSC32_OUT.Mode=LSE-External-Oscillator
-PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
-PC3.GPIOParameters=GPIO_Label
-PC3.GPIO_Label=PDM_OUT [MP45DT02_DOUT]
-PC3.Locked=true
-PC3.Mode=Half_Duplex_Master
-PC3.Signal=I2S2_SD
-PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
-PC7.GPIO_Label=I2S3_MCK [CS43L22_MCLK]
-PC7.GPIO_Mode=GPIO_MODE_AF_PP
-PC7.GPIO_PuPd=GPIO_NOPULL
-PC7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PC7.Locked=true
-PC7.Mode=Master_Clock_Activated
-PC7.Signal=I2S3_MCK
-PD12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
-PD12.GPIO_Label=LD4 [Green Led]
-PD12.GPIO_PuPd=GPIO_NOPULL
-PD12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PD12.Locked=true
-PD12.Signal=GPIO_Output
-PD13.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
-PD13.GPIO_Label=LD3 [Orange Led]
-PD13.GPIO_PuPd=GPIO_NOPULL
-PD13.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PD13.Locked=true
-PD13.Signal=GPIO_Output
-PD14.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
-PD14.GPIO_Label=LD5 [Red Led]
-PD14.GPIO_PuPd=GPIO_NOPULL
-PD14.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PD14.Locked=true
-PD14.Signal=GPIO_Output
-PD15.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
-PD15.GPIO_Label=LD6 [Blue Led]
-PD15.GPIO_PuPd=GPIO_NOPULL
-PD15.GPIO_Speed=GPIO_SPEED_FREQ_LOW
-PD15.Locked=true
-PD15.Signal=GPIO_Output
-PD4.GPIOParameters=GPIO_Label
-PD4.GPIO_Label=Audio_RST [CS43L22_RESET]
-PD4.Locked=true
-PD4.Signal=GPIO_Output
-PD5.GPIOParameters=GPIO_Label
-PD5.GPIO_Label=OTG_FS_OverCurrent
-PD5.Locked=true
-PD5.Signal=GPIO_Input
-PE1.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
-PE1.GPIO_Label=MEMS_INT2 [L3GD20_INT2]
-PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
-PE1.Locked=true
PE1.Signal=GPXTI1
-PE2.Locked=true
-PE2.Signal=GPIO_Input
-PE3.GPIOParameters=GPIO_Label
-PE3.GPIO_Label=CS_I2C/SPI [L3GD20_CS_I2C/SPI]
-PE3.Locked=true
-PE3.Signal=GPIO_Output
-PE4.GPIOParameters=GPIO_ModeDefaultEXTI
-PE4.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
-PE4.Locked=true
-PE4.Signal=GPXTI4
-PE5.GPIOParameters=GPIO_ModeDefaultEXTI
-PE5.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
-PE5.Locked=true
-PE5.Signal=GPXTI5
-PH0\ -\ OSC_IN.GPIOParameters=GPIO_Label
-PH0\ -\ OSC_IN.GPIO_Label=PH0-OSC_IN
-PH0\ -\ OSC_IN.Locked=true
-PH0\ -\ OSC_IN.Mode=HSE-External-Oscillator
-PH0\ -\ OSC_IN.Signal=RCC_OSC_IN
-PH1\ -\ OSC_OUT.GPIOParameters=GPIO_Label
-PH1\ -\ OSC_OUT.GPIO_Label=PH1-OSC_OUT
-PH1\ -\ OSC_OUT.Locked=true
-PH1\ -\ OSC_OUT.Mode=HSE-External-Oscillator
-PH1\ -\ OSC_OUT.Signal=RCC_OSC_OUT
-PinOutPanel.RotationAngle=0
-ProjectManager.AskForMigrate=true
-ProjectManager.BackupPrevious=false
-ProjectManager.CompilerOptimize=6
-ProjectManager.ComputerToolchain=false
-ProjectManager.CoupleFile=false
-ProjectManager.CustomerFirmwarePackage=
-ProjectManager.DefaultFWLocation=true
-ProjectManager.DeletePrevious=true
-ProjectManager.DeviceId=STM32F401VCTx
-ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.2
-ProjectManager.FreePins=false
-ProjectManager.HalAssertFull=false
-ProjectManager.HeapSize=0x200
-ProjectManager.KeepUserCode=true
-ProjectManager.LastFirmware=true
-ProjectManager.LibraryCopy=1
-ProjectManager.MainLocation=Core/Src
-ProjectManager.NoMain=false
-ProjectManager.PreviousToolchain=
-ProjectManager.ProjectBuild=false
-ProjectManager.ProjectFileName=AudioDAC.ioc
-ProjectManager.ProjectName=AudioDAC
-ProjectManager.RegisterCallBack=
-ProjectManager.StackSize=0x400
-ProjectManager.TargetToolchain=STM32CubeIDE
-ProjectManager.ToolChainLocation=
-ProjectManager.UnderRoot=true
-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_I2S2_Init-I2S2-false-HAL-true,5-MX_I2S3_Init-I2S3-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_USB_HOST_Init-USB_HOST-false-HAL-false
+USB_HOST0.BSP.ip=GPIO
RCC.AHBFreq_Value=84000000
-RCC.APB1CLKDivider=RCC_HCLK_DIV2
-RCC.APB1Freq_Value=42000000
-RCC.APB1TimFreq_Value=84000000
-RCC.APB2Freq_Value=84000000
-RCC.APB2TimFreq_Value=84000000
-RCC.CortexFreq_Value=84000000
-RCC.FCLKCortexFreq_Value=84000000
-RCC.HCLKFreq_Value=84000000
+Mcu.Pin0=PE2
+Mcu.Pin1=PE3
+Mcu.Pin2=PE4
+Mcu.Pin3=PE5
+Mcu.Pin4=PC14-OSC32_IN
+PA0-WKUP.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
+Mcu.Pin5=PC15-OSC32_OUT
+ProjectManager.ProjectBuild=false
RCC.HSE_VALUE=8000000
-RCC.HSI_VALUE=16000000
-RCC.I2SClocksFreq_Value=96000000
-RCC.IPParameters=AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLP,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
-RCC.LSI_VALUE=32000
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+USB_OTG_FS.phy_itface=HCD_PHY_EMBEDDED
+PA4.GPIO_PuPd=GPIO_NOPULL
+PA4.Locked=true
+NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+PA4.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.2
+MxDb.Version=DB.6.0.10
+I2S3.ErrorAudioFreq=-2.34 %
+ProjectManager.BackupPrevious=false
+PC14-OSC32_IN.Mode=LSE-External-Oscillator
+RCC.VCOInputFreq_Value=1000000
+PA14.Mode=Serial_Wire
+File.Version=6
+PA10.GPIO_Label=OTG_FS_ID
+PC7.GPIO_Mode=GPIO_MODE_AF_PP
+PE3.GPIOParameters=GPIO_Label
+PB3.GPIOParameters=GPIO_Label
+PE2.Signal=GPIO_Input
+PE3.Locked=true
+I2S2.IPParameters=RealAudioFreq,ErrorAudioFreq,Instance,VirtualMode,FullDuplexMode
+PD14.GPIO_PuPd=GPIO_NOPULL
+PE1.Locked=true
+PB6.Locked=true
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+USB_HOST0.BSP.i2creg=0
+PE4.Signal=GPXTI4
+PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
+ProjectManager.HalAssertFull=false
+PC14-OSC32_IN.GPIOParameters=GPIO_Label
+ProjectManager.ProjectName=AudioDAC
+PH0\ -\ OSC_IN.GPIOParameters=GPIO_Label
+PA13.GPIOParameters=GPIO_Label
RCC.MCO2PinFreq_Value=84000000
-RCC.PLLCLKFreq_Value=84000000
-RCC.PLLM=8
-RCC.PLLN=336
+USB_HOST0.BSP.i2caddr=0
+PD13.GPIO_Label=LD3 [Orange Led]
+Mcu.Package=LQFP100
+PB9.Signal=I2C1_SDA
+PA6.Signal=SPI1_MISO
+PB12.Mode=Half_Duplex_Master
+PA7.Locked=true
+PA5.Locked=true
+USART2.VirtualMode=VM_ASYNC
+PD12.Signal=GPIO_Output
+PA14.Locked=true
+PD5.GPIO_Label=OTG_FS_OverCurrent
+PD5.GPIOParameters=GPIO_Label
+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
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+SH.GPXTI5.ConfNb=1
+PA10.Signal=USB_OTG_FS_ID
+PB9.GPIO_PuPd=GPIO_NOPULL
+USB_OTG_FS.VirtualMode=Host_Only
+PA5.GPIOParameters=GPIO_Label
+USB_HOST0.BSP.name=Drive_VBUS_FS
+PB9.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+RCC.APB1TimFreq_Value=84000000
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+PC14-OSC32_IN.GPIO_Label=PC14-OSC32_IN
+USB_OTG_FS.IPParameters=phy_itface,VirtualMode
+PB10.GPIOParameters=GPIO_Label
+PC12.GPIO_PuPd=GPIO_NOPULL
+PC15-OSC32_OUT.GPIOParameters=GPIO_Label
+PD5.Locked=true
+PA4.GPIO_Label=I2S3_WS [CS43L22_LRCK]
+PD15.Signal=GPIO_Output
+ProjectManager.CustomerFirmwarePackage=
+PC0.PinState=GPIO_PIN_SET
+PC14-OSC32_IN.Locked=true
+PB3.Locked=true
+PA3.Signal=USART2_RX
+PA5.Mode=Full_Duplex_Master
+PB3.GPIO_Label=SWO
+PA6.GPIOParameters=GPIO_Label
+PC15-OSC32_OUT.Mode=LSE-External-Oscillator
+USB_HOST.IPParameters=VirtualModeFS,USBH_HandleTypeDef
+SH.GPXTI5.0=GPIO_EXTI5
+I2S3.FullDuplexMode=I2S_FULLDUPLEXMODE_DISABLE
+ProjectManager.ProjectFileName=AudioDAC.ioc
+PD12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+PD15.GPIO_Label=LD6 [Blue Led]
+PA7.Mode=Full_Duplex_Master
+I2S2.Instance=SPI$Index
+PB9.GPIO_Label=Audio_SDA [CS43L22_SDA]
+PC10.GPIO_Label=I2S3_SCK [CS43L22_SCLK]
+Mcu.PinsNb=40
+ProjectManager.NoMain=false
+SPI1.IPParameters=Mode,CalculateBaudRate,VirtualType,Direction
+PA9.GPIO_Label=VBUS_FS
+PB6.GPIO_PuPd=GPIO_NOPULL
+PH1\ -\ OSC_OUT.Mode=HSE-External-Oscillator
+USB_HOST0.BSP.solution=PC0
+PC10.Mode=Half_Duplex_Master
+USB_HOST.BSP.number=1
+PE4.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
+PD13.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+SH.GPXTI0.ConfNb=1
+PA11.GPIO_Label=OTG_FS_DM
+ProjectManager.DefaultFWLocation=true
+PD5.Signal=GPIO_Input
+PB12.Locked=true
+ProjectManager.DeletePrevious=true
+PC0.Signal=GPIO_Output
+PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
+RCC.APB1CLKDivider=RCC_HCLK_DIV2
+PC14-OSC32_IN.Signal=RCC_OSC32_IN
+PB10.Locked=true
+boardIOC=true
+PH1\ -\ OSC_OUT.Locked=true
+PA0-WKUP.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
+PA12.GPIO_Label=OTG_FS_DP
+PA0-WKUP.GPIO_Label=B1 [Blue PushButton]
+PA0-WKUP.Signal=GPXTI0
+PA0-WKUP.Locked=true
+PB9.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
+USB_HOST0.BSP.semaphore=
+PD12.Locked=true
+PC3.GPIOParameters=GPIO_Label
+USB_HOST0.BSP.STBoard=false
+PC12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
+PA3.Mode=Asynchronous
+PA13.Signal=SYS_JTMS-SWDIO
+PC10.GPIO_Mode=GPIO_MODE_AF_PP
+PA11.Locked=true
+PA9.Mode=Activate_VBUS
+PH0\ -\ OSC_IN.Mode=HSE-External-Oscillator
+PC15-OSC32_OUT.Locked=true
+PD12.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+ProjectManager.TargetToolchain=STM32CubeIDE
+PE5.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
+PB10.GPIO_Label=CLK_IN [MP45DT02_CLK]
+PB9.Mode=I2C
+PA9.Signal=USB_OTG_FS_VBUS
+I2S2.VirtualMode=I2S_MODE_MASTER
+PE4.Locked=true
+PB9.Locked=true
+I2S3.VirtualMode=I2S_MODE_MASTER
+ProjectManager.RegisterCallBack=
+PC7.GPIO_PuPd=GPIO_NOPULL
+PC15-OSC32_OUT.Signal=RCC_OSC32_OUT
+PB10.Signal=I2S2_CK
+RCC.VCOI2SOutputFreq_Value=192000000
+PA5.Signal=SPI1_SCK
+I2S3.AudioFreq=I2S_AUDIOFREQ_96K
+PC12.Mode=Half_Duplex_Master
+PH1\ -\ OSC_OUT.Signal=RCC_OSC_OUT
+board=STM32F401C-DISCO
+PD13.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+PC7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+RCC.VCOOutputFreq_Value=336000000
+PE1.GPIO_Label=MEMS_INT2 [L3GD20_INT2]
+ProjectManager.LastFirmware=true
+USB_HOST.VirtualModeFS=Cdc
+PB9.GPIO_Mode=GPIO_MODE_AF_OD
+PA4.GPIO_Mode=GPIO_MODE_AF_PP
+RCC.APB2Freq_Value=84000000
+USB_HOST0.BSP.api=Unknown
+MxCube.Version=6.1.1
+Mcu.Pin37=PE1
+Mcu.Pin38=VP_SYS_VS_Systick
+Mcu.Pin35=PB6
+Mcu.Pin36=PB9
+SPI1.Mode=SPI_MODE_MASTER
+PD4.GPIO_Label=Audio_RST [CS43L22_RESET]
+Mcu.Pin39=VP_USB_HOST_VS_USB_HOST_CDC_FS
+Mcu.Pin30=PC10
+PA10.GPIOParameters=GPIO_Label
+PD4.GPIOParameters=GPIO_Label
+VP_SYS_VS_Systick.Mode=SysTick
+Mcu.Pin33=PD5
+Mcu.Pin34=PB3
+Mcu.Pin31=PC12
+PD13.GPIO_PuPd=GPIO_NOPULL
+Mcu.Pin32=PD4
+PA9.Locked=true
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+PD14.GPIO_Label=LD5 [Red Led]
+PA4.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
+PE5.Locked=true
+PC10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
+PH1\ -\ OSC_OUT.GPIOParameters=GPIO_Label
+PA13.Mode=Serial_Wire
+ProjectManager.FreePins=false
+RCC.IPParameters=AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLP,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
+ProjectManager.AskForMigrate=true
+Mcu.Name=STM32F401V(B-C)Tx
+Mcu.Pin26=PA11
+Mcu.Pin27=PA12
+RCC.RTCHSEDivFreq_Value=4000000
+PA2.Signal=USART2_TX
+Mcu.Pin24=PA9
+PA13.GPIO_Label=SWDIO
+ProjectManager.UnderRoot=true
+Mcu.Pin25=PA10
+I2S2.FullDuplexMode=I2S_FULLDUPLEXMODE_DISABLE
+Mcu.IP8=USB_HOST
+Mcu.IP9=USB_OTG_FS
+PC7.GPIO_Label=I2S3_MCK [CS43L22_MCLK]
+PD14.Signal=GPIO_Output
+PH1\ -\ OSC_OUT.GPIO_Label=PH1-OSC_OUT
+Mcu.Pin28=PA13
+Mcu.IP6=SYS
+Mcu.Pin29=PA14
+Mcu.IP7=USART2
+ProjectManager.CoupleFile=false
+PB3.Signal=SYS_JTDO-SWO
+PA4.Signal=I2S3_WS
+PD14.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+RCC.SYSCLKFreq_VALUE=84000000
+Mcu.Pin22=PD15
+PC12.GPIO_Mode=GPIO_MODE_AF_PP
+Mcu.Pin23=PC7
+VP_USB_HOST_VS_USB_HOST_CDC_FS.Signal=USB_HOST_VS_USB_HOST_CDC_FS
+PA7.GPIO_Label=SPI1_MISO [L3GD20_SDA/SDI/SDO]
+Mcu.Pin20=PD13
+Mcu.Pin21=PD14
+SH.GPXTI4.0=GPIO_EXTI4
+PA12.Mode=Host_Only
+PA5.GPIO_Label=SPI1_SCK [L3GD20_SC/SPC]
+PA10.Locked=true
+I2S2.ErrorAudioFreq=0.0 %
+NVIC.ForceEnableDMAVector=true
+KeepUserPlacement=false
+VP_USB_HOST_VS_USB_HOST_CDC_FS.Mode=CDC_FS
+PA14.GPIOParameters=GPIO_Label
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+PA13.Locked=true
+PC12.GPIO_Label=I2S3_SD [CS43L22_SDIN]
+ProjectManager.CompilerOptimize=6
+PD15.Locked=true
+PA11.Signal=USB_OTG_FS_DM
+PA14.Signal=SYS_JTCK-SWCLK
+ProjectManager.HeapSize=0x200
+Mcu.Pin15=PA6
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+Mcu.Pin16=PA7
+Mcu.Pin13=PA4
+SH.GPXTI4.ConfNb=1
+Mcu.Pin14=PA5
+Mcu.Pin19=PD12
+ProjectManager.ComputerToolchain=false
+Mcu.Pin17=PB10
+RCC.HSI_VALUE=16000000
+Mcu.Pin18=PB12
+USB_HOST.USBH_HandleTypeDef=hUsbHostFS
RCC.PLLP=RCC_PLLP_DIV4
RCC.PLLQ=7
-RCC.PLLQCLKFreq_Value=48000000
-RCC.RTCFreq_Value=32000
-RCC.RTCHSEDivFreq_Value=4000000
-RCC.SYSCLKFreq_VALUE=84000000
-RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
-RCC.VCOI2SOutputFreq_Value=192000000
-RCC.VCOInputFreq_Value=1000000
-RCC.VCOOutputFreq_Value=336000000
-RCC.VcooutputI2S=96000000
-SH.GPXTI0.0=GPIO_EXTI0
-SH.GPXTI0.ConfNb=1
-SH.GPXTI1.0=GPIO_EXTI1
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_0
+Mcu.Pin11=PA2
+I2S3.RealAudioFreq=93.75 KHz
+Mcu.Pin12=PA3
+RCC.PLLM=8
+RCC.PLLN=336
+Mcu.Pin10=PA0-WKUP
+PE2.Locked=true
+PE3.Signal=GPIO_Output
+PA2.Mode=Asynchronous
+PE3.GPIO_Label=CS_I2C/SPI [L3GD20_CS_I2C/SPI]
+PC3.GPIO_Label=PDM_OUT [MP45DT02_DOUT]
+PH0\ -\ OSC_IN.GPIO_Label=PH0-OSC_IN
+I2S3.Instance=SPI$Index
+PC7.Mode=Master_Clock_Activated
+PB6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
SH.GPXTI1.ConfNb=1
-SH.GPXTI4.0=GPIO_EXTI4
-SH.GPXTI4.ConfNb=1
-SH.GPXTI5.0=GPIO_EXTI5
-SH.GPXTI5.ConfNb=1
-SPI1.CalculateBaudRate=42.0 MBits/s
-SPI1.Direction=SPI_DIRECTION_2LINES
-SPI1.IPParameters=Mode,CalculateBaudRate,VirtualType,Direction
-SPI1.Mode=SPI_MODE_MASTER
-SPI1.VirtualType=VM_MASTER
-USART2.IPParameters=VirtualMode
-USART2.VirtualMode=VM_ASYNC
-USB_HOST.BSP.number=1
-USB_HOST.IPParameters=VirtualModeFS,USBH_HandleTypeDef
-USB_HOST.USBH_HandleTypeDef=hUsbHostFS
-USB_HOST.VirtualModeFS=Cdc
-USB_HOST0.BSP.STBoard=false
-USB_HOST0.BSP.api=Unknown
-USB_HOST0.BSP.component=
-USB_HOST0.BSP.condition=
-USB_HOST0.BSP.i2caddr=0
-USB_HOST0.BSP.i2creg=0
-USB_HOST0.BSP.instance=PC0
-USB_HOST0.BSP.ip=GPIO
+RCC.APB1Freq_Value=42000000
+PC12.GPIO_Speed=GPIO_SPEED_FREQ_LOW
+I2S2.RealAudioFreq=8.0 KHz
USB_HOST0.BSP.mode=Output
-USB_HOST0.BSP.name=Drive_VBUS_FS
-USB_HOST0.BSP.semaphore=
-USB_HOST0.BSP.solution=PC0
-USB_OTG_FS.IPParameters=phy_itface,VirtualMode
-USB_OTG_FS.VirtualMode=Host_Only
-USB_OTG_FS.phy_itface=HCD_PHY_EMBEDDED
-VP_SYS_VS_Systick.Mode=SysTick
-VP_SYS_VS_Systick.Signal=SYS_VS_Systick
-VP_USB_HOST_VS_USB_HOST_CDC_FS.Mode=CDC_FS
-VP_USB_HOST_VS_USB_HOST_CDC_FS.Signal=USB_HOST_VS_USB_HOST_CDC_FS
-board=STM32F401C-DISCO
-boardIOC=true
-isbadioc=false
+PA7.GPIOParameters=GPIO_Label
+PC0.Locked=true
+ProjectManager.DeviceId=STM32F401VCTx
+PB12.Signal=I2S2_WS
+ProjectManager.LibraryCopy=1
+PD12.GPIO_PuPd=GPIO_NOPULL
+PE1.GPIOParameters=GPIO_Label,GPIO_ModeDefaultEXTI
+PA7.Signal=SPI1_MOSI
+USB_HOST0.BSP.instance=PC0
+PA6.Locked=true
diff --git a/Core/Src/app.c b/Core/Src/app.c
index ab7cc70..c736406 100644
--- a/Core/Src/app.c
+++ b/Core/Src/app.c
@@ -92,6 +92,8 @@ void loop(void)
else
printf("Device id : %u, revID : %u\r\n", chipID, revID);
+ dacRegDump();
+
ts_blink = HAL_GetTick();
}
}