Nucleo-F446RE 内蔵の AD/DA を使うためのライブラリ.DA からの出力は,標本化周波数の4倍のレートで行う.  このライブラリを登録した際のプログラム: Demo_F446_AD_DA_Multirate. Library for built-in ADC and DAC in Nucleo-F446RE. Sampling rate for DAC is four times of that for ADC.

Dependencies:   Array_Matrix

Dependents:   F446_UpSampling_GraphicEqualizer F446_UpSampling_ReverbSystem F446_UpSampling_FrqShifter_Weaver Demo_F446_AD_DA_Multirate ... more

Committer:
MikamiUitOpen
Date:
Sat May 19 04:37:02 2018 +0000
Revision:
2:b55ae17ffd92
Parent:
0:2447a7d225b1
Child:
8:9429fb179c38
3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:2447a7d225b1 1 //--------------------------------------------------------
MikamiUitOpen 0:2447a7d225b1 2 // Class for buit-in single DAC on STM32F446
MikamiUitOpen 0:2447a7d225b1 3 //
MikamiUitOpen 0:2447a7d225b1 4 // STM32F446 内蔵の DAC 用のクラス
MikamiUitOpen 0:2447a7d225b1 5 // DAC_OUT1: A2 (PA_4)
MikamiUitOpen 0:2447a7d225b1 6 // DAC_OUT2: D13 (PA_5)
MikamiUitOpen 0:2447a7d225b1 7 //
MikamiUitOpen 0:2447a7d225b1 8 // 2018/04/16, Copyright (c) 2018 MIKAMI, Naoki
MikamiUitOpen 0:2447a7d225b1 9 //--------------------------------------------------------
MikamiUitOpen 0:2447a7d225b1 10
MikamiUitOpen 0:2447a7d225b1 11 #include "F446_DAC.hpp"
MikamiUitOpen 0:2447a7d225b1 12
MikamiUitOpen 0:2447a7d225b1 13 namespace Mikami
MikamiUitOpen 0:2447a7d225b1 14 {
MikamiUitOpen 0:2447a7d225b1 15 DacF446::DacF446(PinName pin) : da_(pin)
MikamiUitOpen 0:2447a7d225b1 16 {
MikamiUitOpen 0:2447a7d225b1 17 if ( (pin != A2) && (pin != D13) )
MikamiUitOpen 0:2447a7d225b1 18 {
MikamiUitOpen 0:2447a7d225b1 19 fprintf(stderr, "Invalid pin name\r\n");
MikamiUitOpen 0:2447a7d225b1 20 while (true) {}
MikamiUitOpen 0:2447a7d225b1 21 }
MikamiUitOpen 0:2447a7d225b1 22 if (pin == A2)
MikamiUitOpen 0:2447a7d225b1 23 {
MikamiUitOpen 0:2447a7d225b1 24 DAC->CR = DAC_CR_EN1 | DAC_CR_TEN1 | DAC_CR_TSEL1;
MikamiUitOpen 0:2447a7d225b1 25 fpWriteDac = &DacF446::WriteDac1;
MikamiUitOpen 0:2447a7d225b1 26 }
MikamiUitOpen 0:2447a7d225b1 27 else
MikamiUitOpen 0:2447a7d225b1 28 {
MikamiUitOpen 0:2447a7d225b1 29 DAC->CR = DAC_CR_EN2 | DAC_CR_TEN2 | DAC_CR_TSEL2;
MikamiUitOpen 0:2447a7d225b1 30 fpWriteDac = &DacF446::WriteDac2;
MikamiUitOpen 0:2447a7d225b1 31 }
MikamiUitOpen 0:2447a7d225b1 32 }
MikamiUitOpen 0:2447a7d225b1 33
MikamiUitOpen 0:2447a7d225b1 34 // DAC の CH1 へ出力する
MikamiUitOpen 0:2447a7d225b1 35 void DacF446::WriteDac1(uint16_t val)
MikamiUitOpen 0:2447a7d225b1 36 {
MikamiUitOpen 0:2447a7d225b1 37 DAC->DHR12R1 = val;
MikamiUitOpen 0:2447a7d225b1 38 DAC->SWTRIGR = DAC_SWTRIGR_SWTRIG1;
MikamiUitOpen 0:2447a7d225b1 39 }
MikamiUitOpen 0:2447a7d225b1 40 // DAC の CH2 へ出力する
MikamiUitOpen 0:2447a7d225b1 41 void DacF446::WriteDac2(uint16_t val)
MikamiUitOpen 0:2447a7d225b1 42 {
MikamiUitOpen 0:2447a7d225b1 43 DAC->DHR12R2 = val;
MikamiUitOpen 0:2447a7d225b1 44 DAC->SWTRIGR = DAC_SWTRIGR_SWTRIG2;
MikamiUitOpen 0:2447a7d225b1 45 }
MikamiUitOpen 0:2447a7d225b1 46 }