STM32F4のAD
STM32F446は、ADが3CH搭載されており、データシートでは、タイマートリガーモードで1.7Msps(ADクロック30MHz時)なので、IF信号455kHzのサンプリングに関しては、
やや実力不足ぎみですが、実際に評価していきます。
データシートでは他に2Mspsのデータも記載がありますが、トリガーモード条件ではなさそうなので、今回はトリガーモード使用でのADの実力評価もしてみたいと思います。
ADにトリガーをかけるタイマーはTIM1〜TIM5、TIM8が使用できるので、今回はTIM3を使ってみます。
プロジェクトの作成、コード生成
-1.「Lチカ」でのプロジェクト作成手順に同じですが、プロジェクト名は適当に「renshyuAD」とします。
-2.続いて、ピン配置の設定。PA0をADC1入力、PA5をGPIOoutputに設定、デフォルト状態では、それ以外のピンも設定されていますが、reset_stateにします。
-3.続いて、1us毎のトリガ作成する為のTIM設定、Categories欄をクリックTimer >TIM3をクリックでMode欄のClock SourceをInternal Clockを選択、それ以外はデフォルトのDisable
パラメーター設定として
Prescaler 6-1. Counter mode UP. Counter periode 14-1. Internal Clockdiv NoDivision. auto-reload Enable Tttiger Output> Master/Slave〜をDisable
Trriger EventをUpDate Eventに設定
-4.次にADの設定、Categories欄をクリックAnalog > Mode CH0設定、Configurationの設定 Mode independent mode. PCLK divided by 4. Resolution 12bit
Data aligment Right. TrigをTIM3 Trig outに設定、他はデフォルト。
-5.次にDMA設定、addをクリックしADC1を追加します。
-6.クロック設定として、TIM3へのクロックを84MHzにします。TIM3の設定でPrescaleを6-1、Preodeを14-1にしたので1us毎にADをトリガ―することになります。
当初、Prescaleを84-1、Preode 0として設定したらAD値がエラーとなり、原因が判るまで時間がかかりました。
-6.次にメニュー欄のコード生成ボタン(歯車マーク)をクリックで、ひな型コードが表示されます。
ソースコードの記述
テスト回路
AD入力に左図外付け回路を追加しボード上コネクタCN8 A0にAF信号を入力し、AD結果を確認します。
|
AD結果を見てみる
AD結果は、adbuf[0]〜adbuf[15]の値をデバックモードで走らせて確認出来ます。デバックモードで走らせると、変数確認などの画面が出るので
expressionをクリックして確認したい変数値をaddすれば、結果が表示されます。
|