Class library for internal ADC and DAC connected by SPI. ADC is triggered by TIM2. This library support clock generator using TIM3 for switched-capacitor filter to smooth output signal of DAC. This library includes derivative class to support interrupt occured in end of AD conversion. Slave select of SPI for DAC is generated using TIM4. Validated for ST Nucleo F401RE, F411RE. New version. 内蔵 ADC と,SPI 接続の DAC のためのクラスライブラリ.ADC の変換開始トリガは TIM2 で発生.DAC の出力信号を平滑化するためのスイッチトキャパシタフィルタ用のクロックは TIM3 を使用.DAC の SPI 用スレーブ選択信号は TIM4 で発生.ST Nucleo F401RE,F411RE で動作を確認.新バージョン

Dependents:   UIT2_MovingAverage UIT2_AllpassReverb UIT2_CombReverb UIT2_FIR_LPF_Symmetry ... more

Committer:
MikamiUitOpen
Date:
Fri Jan 30 07:22:28 2015 +0000
Revision:
19:900efc6796d4
Parent:
10:c326d04aa6b8
Child:
21:3731753ebf24
20

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 1:b59e98443a6e 1 //------------------------------------------------------
MikamiUitOpen 1:b59e98443a6e 2 // Class for dual channel DAC in MCP4922
MikamiUitOpen 19:900efc6796d4 3 // This class does not support clock for SCF
MikamiUitOpen 19:900efc6796d4 4 // 2015/01/30, Copyright (c) 2015 MIKAMI, Naoki
MikamiUitOpen 1:b59e98443a6e 5 //------------------------------------------------------
MikamiUitOpen 1:b59e98443a6e 6
MikamiUitOpen 1:b59e98443a6e 7 #ifndef DAC_MCP4922_DUAL_HPP
MikamiUitOpen 1:b59e98443a6e 8 #define DAC_MCP4922_DUAL_HPP
MikamiUitOpen 1:b59e98443a6e 9
MikamiUitOpen 1:b59e98443a6e 10 #include "DAC_MCP4922.hpp"
MikamiUitOpen 19:900efc6796d4 11
MikamiUitOpen 1:b59e98443a6e 12 namespace Mikami
MikamiUitOpen 19:900efc6796d4 13
MikamiUitOpen 1:b59e98443a6e 14 {
MikamiUitOpen 1:b59e98443a6e 15 class DAC_MCP4922Dual
MikamiUitOpen 1:b59e98443a6e 16 {
MikamiUitOpen 1:b59e98443a6e 17 public:
MikamiUitOpen 1:b59e98443a6e 18 DAC_MCP4922Dual()
MikamiUitOpen 1:b59e98443a6e 19 : myDac1_(DAC_MCP4922::DAC_A),
MikamiUitOpen 2:2a3b4ed3eb58 20 myDac2_(DAC_MCP4922::DAC_B) {}
MikamiUitOpen 1:b59e98443a6e 21
MikamiUitOpen 1:b59e98443a6e 22 void Write(float valA, float valB)
MikamiUitOpen 1:b59e98443a6e 23 {
MikamiUitOpen 1:b59e98443a6e 24 myDac1_.Write(valA); // Write to DAC A
MikamiUitOpen 1:b59e98443a6e 25 myDac2_.Write(valB); // Write to DAC B
MikamiUitOpen 19:900efc6796d4 26 myDac2_.Wait();
MikamiUitOpen 1:b59e98443a6e 27 while (myDac2_.IsBusy()) {}
MikamiUitOpen 1:b59e98443a6e 28 myDac1_.Ldac();
MikamiUitOpen 1:b59e98443a6e 29 }
MikamiUitOpen 1:b59e98443a6e 30
MikamiUitOpen 1:b59e98443a6e 31 void Write(uint16_t valA, uint16_t valB)
MikamiUitOpen 1:b59e98443a6e 32 {
MikamiUitOpen 1:b59e98443a6e 33 myDac1_.Write(valA); // Write to DAC A
MikamiUitOpen 1:b59e98443a6e 34 myDac2_.Write(valB); // Write to DAC B
MikamiUitOpen 19:900efc6796d4 35 myDac2_.Wait();
MikamiUitOpen 1:b59e98443a6e 36 while (myDac2_.IsBusy()) {}
MikamiUitOpen 1:b59e98443a6e 37 myDac1_.Ldac(); // dual load
MikamiUitOpen 1:b59e98443a6e 38 }
MikamiUitOpen 1:b59e98443a6e 39
MikamiUitOpen 1:b59e98443a6e 40 private:
MikamiUitOpen 1:b59e98443a6e 41 DAC_MCP4922 myDac1_;
MikamiUitOpen 1:b59e98443a6e 42 DAC_MCP4922 myDac2_;
MikamiUitOpen 1:b59e98443a6e 43 };
MikamiUitOpen 1:b59e98443a6e 44 }
MikamiUitOpen 1:b59e98443a6e 45 #endif // DAC_MCP4922_DUAL_HPP