Class library for internal ADC and DAC connected by SPI. 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. Validated for ST Nucleo F401RE, F411RE. 内蔵 ADC と,SPI 接続の DAC のためのクラスライブラリ.DAC の出力信号を平滑化するためのスイッチトキャパシタフィルタ用のクロックは TIM3 を使用.ST Nucleo F401RE,F411RE で動作を確認.

Dependents:   UITDSP_ADDA_Example UIT2_MovingAv_Intr UIT2_VariableFIR UIT2_VowelSynthesizer ... more

Committer:
MikamiUitOpen
Date:
Fri Feb 20 05:52:03 2015 +0000
Revision:
0:2cdd5c91d975
Child:
2:0cf4cc40ee02
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:2cdd5c91d975 1 //------------------------------------------------------
MikamiUitOpen 0:2cdd5c91d975 2 // Class for single DAC in MCP4922
MikamiUitOpen 0:2cdd5c91d975 3 //
MikamiUitOpen 0:2cdd5c91d975 4 // 2015/01/31, Copyright (c) 2015 MIKAMI, Naoki
MikamiUitOpen 0:2cdd5c91d975 5 //------------------------------------------------------
MikamiUitOpen 0:2cdd5c91d975 6
MikamiUitOpen 0:2cdd5c91d975 7 #ifndef DAC_MCP4922_HPP
MikamiUitOpen 0:2cdd5c91d975 8 #define DAC_MCP4922_HPP
MikamiUitOpen 0:2cdd5c91d975 9
MikamiUitOpen 0:2cdd5c91d975 10 #include "DAC_MCP4921.hpp"
MikamiUitOpen 0:2cdd5c91d975 11
MikamiUitOpen 0:2cdd5c91d975 12 namespace Mikami
MikamiUitOpen 0:2cdd5c91d975 13 {
MikamiUitOpen 0:2cdd5c91d975 14 class DAC_MCP4922 : public DAC_MCP4921
MikamiUitOpen 0:2cdd5c91d975 15 {
MikamiUitOpen 0:2cdd5c91d975 16 public:
MikamiUitOpen 0:2cdd5c91d975 17 enum DAC { DAC_A = 0, DAC_B = 0x8000 };
MikamiUitOpen 0:2cdd5c91d975 18
MikamiUitOpen 0:2cdd5c91d975 19 // Constructor
MikamiUitOpen 0:2cdd5c91d975 20 DAC_MCP4922(
MikamiUitOpen 0:2cdd5c91d975 21 DAC dac = DAC_A, // channel A
MikamiUitOpen 0:2cdd5c91d975 22 PinName mosi = SPI_MOSI, // D11
MikamiUitOpen 0:2cdd5c91d975 23 PinName sclk = SPI_SCK, // D13
MikamiUitOpen 0:2cdd5c91d975 24 PinName cs = SPI_CS, // D10
MikamiUitOpen 0:2cdd5c91d975 25 PinName ldac = SPI_MISO) // D12
MikamiUitOpen 0:2cdd5c91d975 26 : DAC_MCP4921(mosi, sclk, cs, ldac),
MikamiUitOpen 0:2cdd5c91d975 27 wcr_(dac | 0x3000) {}
MikamiUitOpen 0:2cdd5c91d975 28
MikamiUitOpen 0:2cdd5c91d975 29 private:
MikamiUitOpen 0:2cdd5c91d975 30 uint16_t wcr_; // write command register
MikamiUitOpen 0:2cdd5c91d975 31
MikamiUitOpen 0:2cdd5c91d975 32 // for inhibition of copy constructor
MikamiUitOpen 0:2cdd5c91d975 33 DAC_MCP4922(const DAC_MCP4922&);
MikamiUitOpen 0:2cdd5c91d975 34 // for inhibition of substitute operator
MikamiUitOpen 0:2cdd5c91d975 35 DAC_MCP4922& operator=(const DAC_MCP4922&);
MikamiUitOpen 0:2cdd5c91d975 36
MikamiUitOpen 0:2cdd5c91d975 37 // for internal use
MikamiUitOpen 0:2cdd5c91d975 38 virtual void WriteDac(uint16_t value)
MikamiUitOpen 0:2cdd5c91d975 39 {
MikamiUitOpen 0:2cdd5c91d975 40 while (IsBusy()) {}
MikamiUitOpen 0:2cdd5c91d975 41 SlaveSelect();
MikamiUitOpen 0:2cdd5c91d975 42 WriteSpi(value | wcr_);
MikamiUitOpen 0:2cdd5c91d975 43 }
MikamiUitOpen 0:2cdd5c91d975 44 };
MikamiUitOpen 0:2cdd5c91d975 45 }
MikamiUitOpen 0:2cdd5c91d975 46 #endif // DAC_MCP4922_HPP
MikamiUitOpen 0:2cdd5c91d975 47