From 2f60747dd3b51321903de9c51789765d41ed83e4 Mon Sep 17 00:00:00 2001 From: ozpv <39195175+ozpv@users.noreply.github.com> Date: Mon, 17 Aug 2026 00:01:22 -0500 Subject: audio driver --- audio.ioc | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 88 insertions(+), 21 deletions(-) (limited to 'audio.ioc') diff --git a/audio.ioc b/audio.ioc index 4a620ce..68685db 100755 --- a/audio.ioc +++ b/audio.ioc @@ -2,20 +2,65 @@ CAD.formats= CAD.pinconfig= CAD.provider= +CORTEX_M7.AccessPermission_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_REGION_FULL_ACCESS CORTEX_M7.AccessPermission_Spec=MPU_REGION_FULL_ACCESS +CORTEX_M7.BaseAddress_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=0x24000000 CORTEX_M7.BaseAddress_Spec=0x90000000 CORTEX_M7.CPU_DCache=Enabled CORTEX_M7.CPU_ICache=Enabled +CORTEX_M7.DisableExec_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_INSTRUCTION_ACCESS_ENABLE CORTEX_M7.DisableExec_Spec=MPU_INSTRUCTION_ACCESS_ENABLE -CORTEX_M7.Enable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=__NULL -CORTEX_M7.IPParameters=default_mode_Activation,BaseAddress_Spec,Size_Spec,SubRegionDisable_Spec,AccessPermission_Spec,IsShareable_Spec,IsCacheable_Spec,IsBufferable_Spec,CPU_DCache,CPU_ICache,Enable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,DisableExec_Spec,TypeExtField_Spec +CORTEX_M7.Enable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_REGION_ENABLE +CORTEX_M7.IPParameters=default_mode_Activation,BaseAddress_Spec,Size_Spec,SubRegionDisable_Spec,AccessPermission_Spec,IsShareable_Spec,IsCacheable_Spec,IsBufferable_Spec,CPU_DCache,CPU_ICache,Enable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,DisableExec_Spec,TypeExtField_Spec,BaseAddress_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,Size_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,TypeExtField_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,AccessPermission_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,DisableExec_S-Cortex_Memory_Protection_Unit_Region1_Settings_S,IsShareable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S CORTEX_M7.IsBufferable_Spec=MPU_ACCESS_BUFFERABLE CORTEX_M7.IsCacheable_Spec=MPU_ACCESS_CACHEABLE +CORTEX_M7.IsShareable_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_ACCESS_SHAREABLE CORTEX_M7.IsShareable_Spec=MPU_ACCESS_NOT_SHAREABLE +CORTEX_M7.Size_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_REGION_SIZE_512KB CORTEX_M7.Size_Spec=MPU_REGION_SIZE_16MB CORTEX_M7.SubRegionDisable_Spec=0x0 +CORTEX_M7.TypeExtField_S-Cortex_Memory_Protection_Unit_Region1_Settings_S=MPU_TEX_LEVEL1 CORTEX_M7.TypeExtField_Spec=MPU_TEX_LEVEL1 CORTEX_M7.default_mode_Activation=1 +Dma.Request0=SAI1_B +Dma.Request1=SAI1_A +Dma.RequestsNb=2 +Dma.SAI1_A.1.Direction=DMA_MEMORY_TO_PERIPH +Dma.SAI1_A.1.EventEnable=DISABLE +Dma.SAI1_A.1.FIFOMode=DMA_FIFOMODE_DISABLE +Dma.SAI1_A.1.Instance=DMA1_Stream1 +Dma.SAI1_A.1.MemDataAlignment=DMA_MDATAALIGN_WORD +Dma.SAI1_A.1.MemInc=DMA_MINC_ENABLE +Dma.SAI1_A.1.Mode=DMA_CIRCULAR +Dma.SAI1_A.1.PeriphDataAlignment=DMA_PDATAALIGN_WORD +Dma.SAI1_A.1.PeriphInc=DMA_PINC_DISABLE +Dma.SAI1_A.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING +Dma.SAI1_A.1.Priority=DMA_PRIORITY_HIGH +Dma.SAI1_A.1.RequestNumber=1 +Dma.SAI1_A.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber +Dma.SAI1_A.1.SignalID=NONE +Dma.SAI1_A.1.SyncEnable=DISABLE +Dma.SAI1_A.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT +Dma.SAI1_A.1.SyncRequestNumber=1 +Dma.SAI1_A.1.SyncSignalID=NONE +Dma.SAI1_B.0.Direction=DMA_PERIPH_TO_MEMORY +Dma.SAI1_B.0.EventEnable=DISABLE +Dma.SAI1_B.0.FIFOMode=DMA_FIFOMODE_DISABLE +Dma.SAI1_B.0.Instance=DMA1_Stream0 +Dma.SAI1_B.0.MemDataAlignment=DMA_MDATAALIGN_WORD +Dma.SAI1_B.0.MemInc=DMA_MINC_ENABLE +Dma.SAI1_B.0.Mode=DMA_CIRCULAR +Dma.SAI1_B.0.PeriphDataAlignment=DMA_PDATAALIGN_WORD +Dma.SAI1_B.0.PeriphInc=DMA_PINC_DISABLE +Dma.SAI1_B.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING +Dma.SAI1_B.0.Priority=DMA_PRIORITY_HIGH +Dma.SAI1_B.0.RequestNumber=1 +Dma.SAI1_B.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber +Dma.SAI1_B.0.SignalID=NONE +Dma.SAI1_B.0.SyncEnable=DISABLE +Dma.SAI1_B.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT +Dma.SAI1_B.0.SyncRequestNumber=1 +Dma.SAI1_B.0.SyncSignalID=NONE FMC.CASLatency1=FMC_SDRAM_CAS_LATENCY_2 FMC.ColumnBitsNumber1=FMC_SDRAM_COLUMN_BITS_NUM_9 FMC.ExitSelfRefreshDelay1=12 @@ -33,8 +78,9 @@ FMC.SDClockPeriod2=FMC_SDRAM_CLOCK_PERIOD_2 File.Version=6 GPIO.groupedBy=Group By Peripherals I2C4.I2C_Speed_Mode=I2C_Standard -I2C4.IPParameters=Timing,I2C_Speed_Mode -I2C4.Timing=0x00201E2D +I2C4.IPParameters=I2C_Speed_Mode,Speed,Timing +I2C4.Speed=100 +I2C4.Timing=0x307075B1 KeepUserPlacement=false MMTAppRegionsCount=0 MMTConfigApplied=false @@ -43,17 +89,18 @@ Mcu.CPN=STM32H750ZBT6 Mcu.Family=STM32H7 Mcu.IP0=CORTEX_M7 Mcu.IP1=DEBUG -Mcu.IP10=USB_DEVICE -Mcu.IP11=USB_OTG_HS -Mcu.IP2=FMC -Mcu.IP3=I2C4 -Mcu.IP4=MEMORYMAP -Mcu.IP5=NVIC -Mcu.IP6=QUADSPI -Mcu.IP7=RCC -Mcu.IP8=SAI1 -Mcu.IP9=SYS -Mcu.IPNb=12 +Mcu.IP10=SYS +Mcu.IP11=USB_DEVICE +Mcu.IP12=USB_OTG_HS +Mcu.IP2=DMA +Mcu.IP3=FMC +Mcu.IP4=I2C4 +Mcu.IP5=MEMORYMAP +Mcu.IP6=NVIC +Mcu.IP7=QUADSPI +Mcu.IP8=RCC +Mcu.IP9=SAI1 +Mcu.IPNb=13 Mcu.Name=STM32H750ZBTx Mcu.Package=LQFP144 Mcu.Pin0=PE2 @@ -153,6 +200,8 @@ Mcu.UserName=STM32H750ZBTx MxCube.Version=6.17.0 MxDb.Version=DB.6.0.170 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true +NVIC.DMA1_Stream1_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.ForceEnableDMAVector=true NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false @@ -286,14 +335,29 @@ PE12.Signal=FMC_D9_DA9 PE13.Signal=FMC_D10_DA10 PE14.Signal=FMC_D11_DA11 PE15.Signal=FMC_D12_DA12 +PE2.GPIOParameters=GPIO_Speed,GPIO_Mode +PE2.GPIO_Mode=GPIO_MODE_AF_PP +PE2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PE2.Mode=SAI_A_MasterWithClock PE2.Signal=SAI1_MCLK_A +PE3.GPIOParameters=GPIO_Speed,GPIO_Mode +PE3.GPIO_Mode=GPIO_MODE_AF_PP +PE3.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PE3.Mode=SAI_B_SyncSlave PE3.Signal=SAI1_SD_B +PE4.GPIOParameters=GPIO_Speed,GPIO_Mode +PE4.GPIO_Mode=GPIO_MODE_AF_PP +PE4.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PE4.Mode=SAI_A_MasterWithClock PE4.Signal=SAI1_FS_A +PE5.GPIOParameters=GPIO_Speed,GPIO_Mode +PE5.GPIO_Mode=GPIO_MODE_AF_PP +PE5.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PE5.Mode=SAI_A_MasterWithClock PE5.Signal=SAI1_SCK_A +PE6.GPIOParameters=GPIO_Speed,GPIO_Mode +PE6.GPIO_Mode=GPIO_MODE_AF_PP +PE6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PE6.Mode=SAI_A_MasterWithClock PE6.Signal=SAI1_SD_A PE7.Signal=FMC_D4_DA4 @@ -368,7 +432,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_FMC_Init-FMC-false-HAL-true,4-MX_I2C4_Init-I2C4-false-HAL-true,5-MX_SAI1_Init-SAI1-false-HAL-true,6-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,7-MX_QUADSPI_Init-QUADSPI-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_FMC_Init-FMC-false-HAL-true,5-MX_I2C4_Init-I2C4-false-HAL-true,6-MX_SAI1_Init-SAI1-false-HAL-true,7-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,8-MX_QUADSPI_Init-QUADSPI-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true QUADSPI.ClockPrescaler=2 QUADSPI.FifoThreshold=4 QUADSPI.FlashSize=23 @@ -423,9 +487,8 @@ RCC.HPRE=RCC_HCLK_DIV2 RCC.HRTIMFreq_Value=240000000 RCC.HSE_VALUE=25000000 RCC.I2C123Freq_Value=120000000 -RCC.I2C4CLockSelection=RCC_I2C4CLKSOURCE_PLL3 -RCC.I2C4Freq_Value=8192016.6015625 -RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVM3,DIVN1,DIVN2,DIVN3,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2,DIVR2Freq_Value,DIVR3,DIVR3Freq_Value,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4CLockSelection,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1CLockSelection,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value +RCC.I2C4Freq_Value=120000000 +RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVM3,DIVN1,DIVN2,DIVN3,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2,DIVR2Freq_Value,DIVR3,DIVR3Freq_Value,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1CLockSelection,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value RCC.LPTIM1Freq_Value=120000000 RCC.LPTIM2Freq_Value=120000000 RCC.LPTIM345Freq_Value=120000000 @@ -465,16 +528,20 @@ RCC.VCO3OutputFreq_Value=245760498.046875 RCC.VCOInput1Freq_Value=5000000 RCC.VCOInput2Freq_Value=12500000 RCC.VCOInput3Freq_Value=5000000 +SAI1.AudioFrequency-SAI_A_MasterWithClock=SAI_AUDIO_FREQUENCY_48K SAI1.BasicDataSize-SAI_A_MasterWithClock=SAI_PROTOCOL_DATASIZE_24BIT SAI1.BasicDataSize-SAI_B_SyncSlave=SAI_PROTOCOL_DATASIZE_24BIT -SAI1.ErrorAudioFreq-SAI_A_MasterWithClock=-75.0 % -SAI1.IPParameters=Instance-SAI_A_MasterWithClock,VirtualMode-SAI_A_MasterWithClock,MClockEnable-SAI_A_MasterWithClock,RealAudioFreq-SAI_A_MasterWithClock,ErrorAudioFreq-SAI_A_MasterWithClock,InitProtocol-SAI_A_MasterWithClock,VirtualProtocol-SAI_A_BASIC,Instance-SAI_B_SyncSlave,VirtualMode-SAI_B_SyncSlave,InitProtocol-SAI_B_SyncSlave,VirtualProtocol-SAI_B_BASIC,BasicDataSize-SAI_A_MasterWithClock,BasicDataSize-SAI_B_SyncSlave,NoDivider-SAI_A_MasterWithClock +SAI1.ErrorAudioFreq-SAI_A_MasterWithClock=0.0 % +SAI1.FIFOThreshold-SAI_A_MasterWithClock=SAI_FIFOTHRESHOLD_EMPTY +SAI1.FIFOThreshold-SAI_B_SyncSlave=SAI_FIFOTHRESHOLD_EMPTY +SAI1.IPParameters=Instance-SAI_A_MasterWithClock,VirtualMode-SAI_A_MasterWithClock,MClockEnable-SAI_A_MasterWithClock,RealAudioFreq-SAI_A_MasterWithClock,ErrorAudioFreq-SAI_A_MasterWithClock,InitProtocol-SAI_A_MasterWithClock,VirtualProtocol-SAI_A_BASIC,Instance-SAI_B_SyncSlave,VirtualMode-SAI_B_SyncSlave,BasicDataSize-SAI_A_MasterWithClock,NoDivider-SAI_A_MasterWithClock,AudioFrequency-SAI_A_MasterWithClock,OutputDrive-SAI_A_MasterWithClock,FIFOThreshold-SAI_A_MasterWithClock,FIFOThreshold-SAI_B_SyncSlave,InitProtocol-SAI_B_SyncSlave,VirtualProtocol-SAI_B_BASIC,BasicDataSize-SAI_B_SyncSlave SAI1.InitProtocol-SAI_A_MasterWithClock=Enable SAI1.InitProtocol-SAI_B_SyncSlave=Enable SAI1.Instance-SAI_A_MasterWithClock=SAI$Index_Block_A SAI1.Instance-SAI_B_SyncSlave=SAI$Index_Block_B SAI1.MClockEnable-SAI_A_MasterWithClock=SAI_MASTERCLOCK_ENABLE SAI1.NoDivider-SAI_A_MasterWithClock=SAI_MCK_OVERSAMPLING_DISABLE +SAI1.OutputDrive-SAI_A_MasterWithClock=SAI_OUTPUTDRIVE_DISABLE SAI1.RealAudioFreq-SAI_A_MasterWithClock=48.0 KHz SAI1.VirtualMode-SAI_A_MasterWithClock=VM_MASTER SAI1.VirtualMode-SAI_B_SyncSlave=VM_SLAVE -- cgit v1.2.3