圏9研究所 工作室

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

STM32F411 BlackPill CMSIS-DSPによる楽器用チューナー(7)コード

計測用コードのみ記載1.コード1)計測(1)<fft_peak.h> /** Project Name:FFT_F4 File Name:fft_peak.h Description: USB speaker with isochronous transfer Generation Information : Device : STM32F411CEU6 Version : 01 Created on : 2023/12/20 */ /** Copyri</fft_peak.h>…

STM32F411 BlackPill CMSIS-DSPによる楽器用チューナー(6)定数、変数、処理

1.定数一覧1)FFT シンボル 設定値 単位 内容 FS1 16000 = FSREAD / NK1 Hz FFT1次サンプリング周波数 マイク:160000 USB:48000/3 FT 4 (250msec) Hz 1/サンプリング時間 NS1 4000 = FS1 / FT 読込サンプル数 NFFT 4096 FFTサンプル数 NPOWER 2048 = NF…

STM32F411 BlackPill CMSIS-DSPによる楽器用チューナー(5) STM32CubeMX設定

1.設定一覧 2.ポートマップ 3.解説・表示用として I2C, LED, PWMを準備・TIM1はUSB Speakerのデバッグ専用 続く

STM32F411 BlackPill CMSIS-DSPによる楽器用チューナー(4)CMSIS DSP実装

1.概要 arm CMSIS-DSPライブラリの使用方法 STM32CubeIDE内蔵のCMSIS-DSPはバージョンが古くスプライン補間関数が使えなかったので最新版を導入する 2.先生とお手本1)先生(1)CMSIS-DSP導入方法について aptechlabs.com ioloa.com (2)スプライン補…

STM32F411 BlackPill CMSIS-DSPによる楽器用チューナー(3)トレースサポート実装

コーディング準備 1.トレースサポート実装1)概要 FFTの計算結果をモニターしたいので実装する デバッガのトレースサポート機能を使ってstdoutをデバッガのコンソールに接続してprintf関数等で状態を表示させる UARTを使って外部ターミナルに表示させるこ…

STM32F411 BlackPill CMSIS-DSPによる楽器用チューナー(2)仕様・課題・処理

目標仕様と課題及び処理方法について 1.目標仕様 項目 目標値 備考 用途 弦楽器の調弦 弦を使うピアノも含む 計測値 音名、セント値 オクターブ値は実用上必要ないので参考値とする 計測範囲 55[Hz]〜880[Hz] 下限がベース下限周波数より高いが下記により…

STM32F411 BlackPill CMSIS-DSPによる楽器用チューナー(1)概要

1.概要 ARM社のCMSIS-DSPライブラリーを使ってSTM32F411 Cortec-M4で楽器用チューナーを作ってみる 表示イメージ:YAMAHA TD-90 音名、周波数等はOLEDで表示 2.チューナー構成1)構成と課題 チューナーは周波数カウンターで出来ています 楽器の音には多…

STM32F411 BlackPill USB Speaker ISO(5) コード2/2

3)usbd_sp(1)<usbd_sp.h> /** Project Name: STM170_USB_SP_ISO File Name: usbd_sp.h Description: USB speaker with isochronous transfer Generation Information : Device : STM32F411CEU6 Version : 170 Created on : 2023/11/24 */ /** Copyright (c) 2023 l</usbd_sp.h>…

STM32F411 BlackPill USB Speaker ISO(5) コード1/2

1.コード1)main(1)<main.h> /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "usbd_sp.h” (2)<main.c> /* USER CODE BEGIN WHILE */ usbd_sp_iso(); while (1) { 2)USBD AUDIO(1)<usbd_conf.c></usbd_conf.c></main.c></main.h>…

STM32F411 BlackPill USB Speaker ISO(4) ファイル、定数、変数、シーケンス

1.ファイル一覧1)mainシーケンス関連 ファイル名 修正 追加 <main.h> ー ・#include "usbd_sp.h" <main.c> ー ・usbd_sp() 呼び出し <stm32f4xx_it.c> ・デバッグ用 <usbd_sp.h> 定数定義 <usbd_sp.c> メインシーケンス実装 2)usbd audio関連 ファイル名 関数/定義 修正追加内容 <usbd_audio.h> #define USB_AUDIO_CONFIG_DE</usbd_audio.h></usbd_sp.c></usbd_sp.h></stm32f4xx_it.c></main.c></main.h>…

STM32F411 BlackPill USB Speaker ISO(3) STM32CubeMX設定

1.設定一覧 2.ポートマップ 3.解説 前回比 ・TIM1はデバッグ専用 ・ポートにSWO追加 次のプロジェクトのデバッグでprintfを使うため コード未実装 次はファイル構成等

STM32F411 BlackPill USB Speaker ISO(2)アイソクロナス転送

アイソクロナス転送の詳細 1.エンドポイント1)仕様書 Universal Serial Bus Device Class Definition for Audio Devices Release 1.0 March 18, 1998 4.6 AudioStreaming Endpoint Descriptors 2)受信用エンドポイント Audio Data Endpoint Descriptor…

STM32F411 BlackPill USB Speaker ISO(1)概要

1.経緯 宿題のアイソクロナス転送 USB Speaker 2.システム概要・STM32F411 BlackPill USB Speaker をアイソクロナス転送にする・ハードウェアは変更なしソフトのみ変更 3.手順1)アイソクロナス転送実装・受信用エンドポイントをアイソクロナス転送タ…

STM32F411 BlackPill USB Speaker(9)まとめ

1.追加変更コード一覧 main.h と main.c に書いたメインシーケンス処理コードを別ファイルにしてまとめる dir File Function 内容 Core usbd_sp.h ー 追加定数等定義 usbd_sp.c usbd_sp_iso() メインシーケンス main.h ー 定数定義 include main.c ー メイ…

STM32F411 BlackPill USB Speaker(8)同期

1.データ数同期1)サンプリング数とDMA PWM出力数の同期・TIM1割込関数にTransferComplete_CallBack_FS() とHalfTransfer_CallBack_FS()を追記する 2)データ数調整(1)データ数のコード ・コードを見ると AUDIO_AudioCmd_FS() の size数が±4 調整され…

STM32F411 BlackPill USB Speaker(7)メインシーケンス

1.メインシーケンス seq 処理内容 次への遷移条件 SEQ_START AUDIO_CMD_START 処理後 初回audio data開始 SEQ_PLAY ・DMAバッファポインタ初期化 ・タイマー起動 ・DMA起動 SEQ_PLAY AUDIO_CMD_PLAY haudio->alt_setting == 0U 再生停止 audio data出力 SE…

STM32F411 BlackPill USB Speaker(6)USB audio data 転送処理

メインシーケンス作成のためデータハンドリング内容と定数を整理 1.オーディオデータ遷移1)オーディオデータバッファとDAC PWMデータ遷移 関数 バッファ クロック 処理 ホスト ー ー ホスト 1msec毎に1 PACKETオーディオデータを送信 デバイス USBD_AUDI…

STM32F411 BlackPill USB Speaker(5)USB接続ダウン対策

ホストとの接続が不安定なため対策しておきます 1. USB接続ダウン発生状況と対策1)USB接続ダウン状況(1)発生状況 発生するのは ・USBコネクタ接続直後 USBリセット解除から80msec後付近 ・再生停止 ・ホスト側でのスピーカー選択解除 概ね50%の確率で…

STM32F411 BlackPill USB Speaker(4)STM32CubeMX設定

1.設定一覧 2.STM32CubeMX タイマー設定 赤枠内:TIM2カウンタアップデートをTIM1クロックとして使うために必要な設定 3.ポートマップ(2)回路 に記載 4.解説・TIM2_TRGO(TIM2出力)をTIM1クロック源にする設定 TIM1のTrigger Source 設定でITR0を選…

STM32F411 BlackPill USB Speaker(3)PWM DAC構成

1.ブロック図 2.構成説明1)PWM ・周期 サンプリング周波数より 1/48kHz ・分解能 システムクロック96MHzをクロックとして 2000 2)オーディオデータ ・USBデータバッファ合計 Middleware実装値 48 * 80 パケット: 15360byte/ms ・仕様と変換 48kHz 16…

STM32F411 BlackPill USB Speaker(2)回路

1.ポートマップ PIN IO EX PU PD NAME Function OSC-IN ー ー ー ー ← 25MHz system clock OSC-OUT ー ー ー ー ← JTMS/SWDIO[PA13] ー ー ー ー ← Debug SWD JTCK/SWCLK[PA14] ー ー ー ー ← PA11/USBDM ー ー ー ー ← USB D- PA12/USBDP ー ー ー ー ← U…

STM32F411 BlackPill USB Speaker(1)概要

1.経緯 USBオーディオデータをリアルタイムでDSP処理するアプリを検討中です とりあえずUSB audio でデータを取込む部分をUSB Speaker として作ってみます 2.システム概要1)ボード:WeAct Black Pill V2.0 STM32F411CEU6 Arm Cortex-M4, RTC RTCチップ…

AT32F403A BlackPill:その4 FPU

Cortex-M4FのFPUを動かしてみる 1.手順1)コーディング: STM32CubeIDE(MX) ・STM32CubeIDE(MX)を使ってSTM32F103RGT6でプロジェクトを作成しコードを書く ・関数として math library と CMSIS-DSP を使う ・FPUを使えるようにコードを変える 2)コンパ…

AT32F403A BlackPill:その3 DAC

1.概要 BluePill や STM32F411 BlackPill にはないDACモジュールの動作確認 2.STM32CubeIDEプロジェクト作成1)MCU/MPU STM32F103RGT6 2)STM32CubeMX設定 クロックは外付け8MHz システム72MHz タブ 項目 設定 Pinout & Configuration System Core GPI…

AT32F403A BlackPill:その2 240MHz クロック設定(USB含む)

1.概要 システムクロックを240MHzに設定してLチカ USBのクロック設定も行う 2.クロック設定1)Clock configuration register 構成と設定(1)クロック設定レジスタ STM32Fx : RCC_CFGR AT32F4x : CRM_CFG ・名前は違うがアドレスは同じ 0x4002-1004 ・…

AT32F403A BlackPill:その1 Core Board とチップ

BlackPill は BluePill Core Board の上位ボードとしてSTMマイクロの STM32F411 を搭載したボードがありますここでは少々変わったチップが搭載されているBlackPill Core Board があるので調べてみます 1.概要 WeAct社製 Webact at32f403acgu7 at32f4 at32 …

STM32F103 BluePill USBマイク その3:マイク実装

1.概要 マイクを接続しSTM32CubeIDEに導入したTinyUSBで処理する 2.構成 コンデンサマイクモジュール → BluePillボード :ADC > DMA > TinyUSB → MacBook Air 3.仕様 項目 仕様 ボード BluePill:STM32F103C8T6/CBT6 USB USB Audio 2.0 LEDによる状態表…

STM32F103 BluePill USBマイク その2:TinyUSB audio_test

1.概要 STM32CubeIDEにTinyUSBを導入して audio_test を動かす 2.構成1)回路構成 BluePillボード : USB → MacBook Air audio_test はソフトで作った鋸波データをUSBに出力する example マイクが無くてもデータは出力される 3.STM32CubeIDEプロジェク…

STM32F103 BluePill USBマイク その1:構成と回路

1.概要 BluePillでUSBマイクを作ってみます STM32CubeIDEのSTM32F103 Middlewarでは動かないのでTinyUSBを使います 2.構成1)回路構成 コンデンサマイクモジュール → BluePillボード : ADC > USB → MacBook Air (1)コンデンサマイクモジュール 秋月 …

STM32F103 clone & BluePill  その7:SWD IDCODEコンバーター STM32F103版 ソフト編

1.概要 PIC16FからSTM32F103に移植する 2.ソフト構成1)構成・コンバーターについてはPIC16F仕様をそのままSTM32F103に移植するため構成は同じ・おまけのIDCODE等送信機能はEUART送信をUSB・VPCに変更・リソース、ポート及びUSB・VPCコードはSTM32CubeM…