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。
ここに画像の説明を挿入
ここに画像の説明を挿入
コンパイル後にプログラムを書き込み、波形を観察します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/rude_dragon/article/details/112132509
おすすめ