Working USB stream but without the clock sync

This commit is contained in:
2022-05-21 19:13:48 -03:00
parent 495b54aa8c
commit a5806fe9e2
7 changed files with 27 additions and 32 deletions

View File

@@ -1,5 +1,5 @@
635E684B79701B039C64EA45C3F84D30=786B3C9175F8FD59BE24144A9C2C0972
66BE74F758C12D739921AEA421D593D3=0
8DF89ED150041C4CBC7CB9A9CAA90856=AB300AAF2E04A330B7C06C41BF25F205
DC22A860405A8BF2F2C095E5B6529F12=AB300AAF2E04A330B7C06C41BF25F205
8DF89ED150041C4CBC7CB9A9CAA90856=93686BBC250D6AB1A1396FED176FCE30
DC22A860405A8BF2F2C095E5B6529F12=93686BBC250D6AB1A1396FED176FCE30
eclipse.preferences.version=1

View File

@@ -10,15 +10,8 @@
#include "AUDIO.h"
uint16_t pBuffer[200];
void Start(){
for(uint32_t i = 0; i<100; i++){
pBuffer[2*i] = i*655;
pBuffer[(2*i)+1] = 32768;
}
AUDIO_OUT_Init(2, 35, 96000);
AUDIO_OUT_Play(pBuffer, 400);
AUDIO_OUT_Init(2, 100, 48000);
while(1){
}

View File

@@ -146,12 +146,11 @@ void SystemClock_Config(void)
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
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_HSI;
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 4;
RCC_OscInitStruct.PLL.PLLN = 192;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
RCC_OscInitStruct.PLL.PLLQ = 8;
@@ -187,7 +186,7 @@ void PeriphCommonClock_Config(void)
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S;
PeriphClkInitStruct.PLLI2S.PLLI2SN = 200;
PeriphClkInitStruct.PLLI2S.PLLI2SM = 10;
PeriphClkInitStruct.PLLI2S.PLLI2SM = 5;
PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
@@ -283,7 +282,7 @@ static void MX_I2S3_Init(void)
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.AudioFreq = I2S_AUDIOFREQ_48K;
hi2s3.Init.CPOL = I2S_CPOL_LOW;
hi2s3.Init.ClockSource = I2S_CLOCK_PLL;
hi2s3.Init.FullDuplexMode = I2S_FULLDUPLEXMODE_DISABLE;

View File

@@ -35,12 +35,13 @@ I2S2.IPParameters=FullDuplexMode,ErrorAudioFreq,RealAudioFreq,AudioFreq,Instance
I2S2.Instance=SPI$Index
I2S2.RealAudioFreq=96.153 KHz
I2S2.VirtualMode=I2S_MODE_MASTER
I2S3.AudioFreq=I2S_AUDIOFREQ_96K
I2S3.ErrorAudioFreq=-6.99 %
I2S3.AudioFreq=I2S_AUDIOFREQ_48K
I2S3.AudioFreqCustom=48000
I2S3.ErrorAudioFreq=0.15 %
I2S3.FullDuplexMode=I2S_FULLDUPLEXMODE_DISABLE
I2S3.IPParameters=AudioFreq,ErrorAudioFreq,RealAudioFreq,Instance,VirtualMode,FullDuplexMode
I2S3.IPParameters=AudioFreq,ErrorAudioFreq,RealAudioFreq,Instance,VirtualMode,FullDuplexMode,AudioFreqCustom
I2S3.Instance=SPI$Index
I2S3.RealAudioFreq=89.285 KHz
I2S3.RealAudioFreq=48.076 KHz
I2S3.VirtualMode=I2S_MODE_MASTER
KeepUserPlacement=false
Mcu.CPN=STM32F411VET6
@@ -309,10 +310,12 @@ 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
@@ -327,7 +330,7 @@ ProjectManager.DeviceId=STM32F411VETx
ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.27.0
ProjectManager.FreePins=false
ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x200
ProjectManager.HeapSize=0x2000
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=1
@@ -338,7 +341,7 @@ ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=F411-DMA-Audio.ioc
ProjectManager.ProjectName=F411-DMA-Audio
ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x400
ProjectManager.StackSize=0x4000
ProjectManager.TargetToolchain=STM32CubeIDE
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=true
@@ -358,17 +361,16 @@ RCC.HCLKFreq_Value=96000000
RCC.HSE_VALUE=8000000
RCC.HSI_VALUE=16000000
RCC.I2SClocksFreq_Value=160000000
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,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,PLLI2SM,PLLI2SN,PLLM,PLLP,PLLQ,PLLQCLKFreq_Value,PLLSourceVirtualString,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOInputMFreq_Value,VCOOutputFreq_Value,VcooutputI2S
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,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,PLLI2SM,PLLI2SN,PLLM,PLLP,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOInputMFreq_Value,VCOOutputFreq_Value,VcooutputI2S
RCC.LSI_VALUE=32000
RCC.MCO2PinFreq_Value=96000000
RCC.PLLCLKFreq_Value=96000000
RCC.PLLI2SM=10
RCC.PLLI2SM=5
RCC.PLLI2SN=200
RCC.PLLM=8
RCC.PLLM=4
RCC.PLLP=RCC_PLLP_DIV4
RCC.PLLQ=8
RCC.PLLQCLKFreq_Value=48000000
RCC.PLLSourceVirtualString=RCC_PLLSOURCE_HSI
RCC.RTCFreq_Value=32000
RCC.RTCHSEDivFreq_Value=4000000
RCC.SYSCLKFreq_VALUE=96000000
@@ -394,7 +396,7 @@ SPI1.Mode=SPI_MODE_MASTER
SPI1.VirtualType=VM_MASTER
USB_DEVICE.CLASS_NAME_FS=AUDIO
USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS,USBD_AUDIO_FREQ
USB_DEVICE.USBD_AUDIO_FREQ=44100
USB_DEVICE.USBD_AUDIO_FREQ=48000
USB_DEVICE.VirtualMode=Audio
USB_DEVICE.VirtualModeFS=Audio_FS
USB_OTG_FS.IPParameters=VirtualMode

View File

@@ -38,8 +38,8 @@ ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
_Min_Heap_Size = 0x200 ; /* required amount of heap */
_Min_Stack_Size = 0x400 ; /* required amount of stack */
_Min_Heap_Size = 0x2000 ; /* required amount of heap */
_Min_Stack_Size = 0x4000 ; /* required amount of stack */
/* Memories definition */
MEMORY

View File

@@ -31,7 +31,6 @@
/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
/* USER CODE END PV */
/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
@@ -186,9 +185,11 @@ static int8_t AUDIO_AudioCmd_FS(uint8_t* pbuf, uint32_t size, uint8_t cmd)
switch(cmd)
{
case AUDIO_CMD_START:
AUDIO_OUT_Play(pbuf, 2*size);
break;
case AUDIO_CMD_PLAY:
break;
}
UNUSED(pbuf);

View File

@@ -75,7 +75,7 @@
/*---------- -----------*/
#define USBD_SELF_POWERED 1U
/*---------- -----------*/
#define USBD_AUDIO_FREQ 44100U
#define USBD_AUDIO_FREQ 48000U
/****************************************/
/* #define for FS and HS identification */