圏9研究所 工作室

圏9研究所の開発情報資料など

STM32F411 BlackPill USB Speaker(8)同期

1.データ数同期
1)サンプリング数とDMA PWM出力数の同期
・TIM1割込関数にTransferComplete_CallBack_FS() とHalfTransfer_CallBack_FS()を追記する 

2)データ数調整
(1)データ数のコード
 ・コードを見ると AUDIO_AudioCmd_FS() の size数が±4 調整されている
 ・実測すると 7680 – 4 = 7676 となる場合がある
 ・標準のデータ数:AUDIO_OUT_PACKET_NUM 回分
  size基準値 = AUDIO_TOTAL_BUF_SIZE / 2 = サンプリング数 * AUDIO_OUT_PACKET_NUM * 2 = 7680
 ・実サンプリング数 = size  / 2

(2)同期手順
 ・サンプリング数を同期させているTIM1 Reload値を調整する
 ・ size が更新されるAUDIO_CMD_PLAY毎に再設定

// Update TIM1 to synchronize the number of audio data
	__HAL_TIM_SET_AUTORELOAD(&htim1, g_size / 2 -1);