STM32PWMおよびDACに関する基本的な試みと演習
STM32のPWMの最初の試み
PWMの概要
PWMは、Pulse Width Modulationの略語で、中国語でパルス幅変調、または略してパルス幅変調を意味します。マイクロプロセッサのデジタル出力を利用してアナログ回路を制御する非常に効果的な技術であり、簡単な制御、柔軟性、優れた動的応答という利点があり、パワーエレクトロニクスで最も広く使用されている制御方法になっています。測定、通信、電力制御と変換、モーター制御、サーボ制御、調光、スイッチング電源、さらには一部のオーディオアンプでさえ、PWMを学ぶことは非常に重要な実用的重要性を持っています。実際、PWMはアナログ信号レベルをデジタルエンコードする方法であることも理解できます。高分解能カウンタを使用することにより、方形波のデューティサイクルが変調され、特定のアナログ信号のレベルがエンコードされます。フルスケールDC電源が完全に(オン)または完全に存在しない(オフ)ため、PWM信号はデジタルのままです。電圧または電流源は、オン(ON)またはオフ(OFF)の繰り返しパルスシーケンスでアナログ負荷に印加されます。オンの場合は負荷にDC電源を追加し、オフの場合は電源を切断します。帯域幅が十分である限り、PWMを使用して任意のアナログ値をエンコードできます。
STM32F1の基本タイマーTIM6およびTIM7に加えて、他のタイマーがPWM出力を生成できます。その中で、高度なタイマーTIM1とTIM8は、同時に最大7つのPWM出力を生成できます。PWM出力は、実際にはパルス幅が調整可能な方形波信号(つまり、デューティサイクル調整)です。信号周波数は自動リロードレジスタARRの値によって決定され、デューティサイクルは比較レジスタの値によって決定されます。 CCR。
合計8つのPWM出力比較モードがあり、CCMRxレジスタのビットOCxM [2:0]によって特別に構成されます。最も一般的に使用される2つのPWM出力モードであるPWM1とPWM2についてのみ説明します。PWM1とPWM2の
使用法は似ていますが、出力レベルの極性が異なる点が異なります。
STM32を使用してPWM波形を出力します
1.この実験では、コードを使用してkeil5でシミュレーションを実現します。テストプロジェクトでは、パンクチャリアトムコンプリートプロジェクトを採用しています
。2。特定の波形生成方法。
プロジェクト構成デバッグツールを
開きます。2。デバッグを開きます
。3。GPIO出力を設定して確認します。
ロジックアナライザを見つけるためのピンこのオプションは、デバッグパネルでのみ使用できます)
4。波形を実行して観察します
。5。メインコード部分
int main(void)
{
u16 led0pwmval=0;
u8 dir=1;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
TIM3_PWM_Init(899,0); //不分频。PWM频率=72000000/900=80Khz
while(1)
{
delay_ms(10);
if(dir)led0pwmval++;
else led0pwmval--;
if(led0pwmval>300)dir=0;
if(led0pwmval==0)dir=1;
TIM_SetCompare2(TIM3,led0pwmval);
}
}
出力波形を観察するためのオシロスコープ
STM32DACの基本的な演習
モノフォニックの実現
ここでは、Adobe Auditionを使用して正弦波を直接生成し、シングルトーンを実現
します。設定は次のとおりです。
これは「ドロップ...」を表すシングルトーンです。
適切な再生長を選択し、wav形式で保存します。
DACの練習
1.デジタルオーディオソングデータをアナログオーディオ波形出力(ループ)8kHz、量子化16ビット、シングルチャネルに変換します。持続時間はわずか5〜10秒です。
2.お気に入りの曲を開き、適切な長さを選択して5〜10秒間保存します。
3.次の設定でwav形式で保存します
出力を観察します
1.UltraEditでwavファイルを開きます。2。CTRL
+ A(すべて選択)を右クリックし、16進数を選択して、選択したビューをコピーし、新しいファイルを作成して貼り付けます。
3.必要な部分を
見つけます。下のバイトを見つけ、右クリックして範囲を選択し、開始行番号と列番号を入力し、必要なコンテンツ全体が選択されていることを確認し、コピーして貼り付けて新しいファイルを作成します。
4.次に、notepad ++を開き、必要な部分をコピーして、0x形式に変換します
。5 。結果をプロジェクトの波形データの場所にコピーします。6。
コンパイル後にプログラムを書き込み、波形を観察します。