Source lists for AD converter is explained on "Interface" No.10, CQ publishing Co.,Ltd, 2014. Source lists for DA converter is explained on "Interface" No.11, CQ publishing Co.,Ltd, 2014. 本ライブラリのADコンバータ用のソースリストについては,CQ出版社のインターフェース 2014年10月号に載っています. DAコンバータ用のソースリストについての説明は,CQ出版社のインターフェース 2014年11月号に載っています.
Dependents: FFT_Sampling FIR_LPF_Direct FIR_LPF_Symmetry IIR_LPF ... more
Fork of SignalProcessingIO by
MCP4922Single.hpp@2:2a8a3dc3da8e, 2014-07-29 (annotated)
- Committer:
- CQpub0Mikami
- Date:
- Tue Jul 29 06:41:14 2014 +0000
- Revision:
- 2:2a8a3dc3da8e
- Parent:
- 1:c3f647a89947
ver.2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CQpub0Mikami | 0:a2cdffe24b67 | 1 | //------------------------------------------------------ |
CQpub0Mikami | 0:a2cdffe24b67 | 2 | // Class for 1 DAC in MCP4922 -- Header |
CQpub0Mikami | 0:a2cdffe24b67 | 3 | // |
CQpub0Mikami | 0:a2cdffe24b67 | 4 | // Default pin assign |
CQpub0Mikami | 0:a2cdffe24b67 | 5 | // D11 SPI Master Out Slave In |
CQpub0Mikami | 0:a2cdffe24b67 | 6 | // D13 SPI Serial Clock |
CQpub0Mikami | 1:c3f647a89947 | 7 | // D10 SPI Slave Select |
CQpub0Mikami | 0:a2cdffe24b67 | 8 | // D9 to MCP9922 LDAC pin |
CQpub0Mikami | 0:a2cdffe24b67 | 9 | // |
CQpub0Mikami | 0:a2cdffe24b67 | 10 | // Copyright (c) 2014 MIKAMI, Naoki, 2014/06/18 |
CQpub0Mikami | 0:a2cdffe24b67 | 11 | //------------------------------------------------------ |
CQpub0Mikami | 0:a2cdffe24b67 | 12 | |
CQpub0Mikami | 0:a2cdffe24b67 | 13 | #ifndef MCP4922_SINGLE_HPP |
CQpub0Mikami | 0:a2cdffe24b67 | 14 | #define MCP4922_SINGLE_HPP |
CQpub0Mikami | 0:a2cdffe24b67 | 15 | |
CQpub0Mikami | 0:a2cdffe24b67 | 16 | #include "mbed.h" |
CQpub0Mikami | 0:a2cdffe24b67 | 17 | |
CQpub0Mikami | 0:a2cdffe24b67 | 18 | namespace Mikami |
CQpub0Mikami | 0:a2cdffe24b67 | 19 | { |
CQpub0Mikami | 0:a2cdffe24b67 | 20 | class Dac |
CQpub0Mikami | 0:a2cdffe24b67 | 21 | { |
CQpub0Mikami | 0:a2cdffe24b67 | 22 | public: |
CQpub0Mikami | 0:a2cdffe24b67 | 23 | enum DAC { DAC_A = 0, DAC_B = 0x8000 }; |
CQpub0Mikami | 0:a2cdffe24b67 | 24 | |
CQpub0Mikami | 0:a2cdffe24b67 | 25 | // Constructor |
CQpub0Mikami | 0:a2cdffe24b67 | 26 | Dac(DAC dac, |
CQpub0Mikami | 0:a2cdffe24b67 | 27 | PinName mosi = SPI_MOSI, // D11 |
CQpub0Mikami | 0:a2cdffe24b67 | 28 | PinName sclk = SPI_SCK, // D13 |
CQpub0Mikami | 0:a2cdffe24b67 | 29 | PinName cs = SPI_CS, // D10 |
CQpub0Mikami | 0:a2cdffe24b67 | 30 | PinName ldac = D9, // D9 |
CQpub0Mikami | 0:a2cdffe24b67 | 31 | int hz = 20000000); |
CQpub0Mikami | 0:a2cdffe24b67 | 32 | |
CQpub0Mikami | 2:2a8a3dc3da8e | 33 | // -1.0f <= value <= 1.0f |
CQpub0Mikami | 0:a2cdffe24b67 | 34 | void Write(float value); |
CQpub0Mikami | 2:2a8a3dc3da8e | 35 | // 0 <= value <= 4095 |
CQpub0Mikami | 0:a2cdffe24b67 | 36 | void Write(uint16_t value); |
CQpub0Mikami | 0:a2cdffe24b67 | 37 | |
CQpub0Mikami | 0:a2cdffe24b67 | 38 | // generate LDAC pulse |
CQpub0Mikami | 0:a2cdffe24b67 | 39 | void Ldac(); |
CQpub0Mikami | 0:a2cdffe24b67 | 40 | |
CQpub0Mikami | 0:a2cdffe24b67 | 41 | private: |
CQpub0Mikami | 0:a2cdffe24b67 | 42 | uint16_t wcr_; // write command register |
CQpub0Mikami | 0:a2cdffe24b67 | 43 | SPI mySpi_; // SPI object |
CQpub0Mikami | 0:a2cdffe24b67 | 44 | DigitalOut myCs_; // for chip select |
CQpub0Mikami | 0:a2cdffe24b67 | 45 | DigitalOut myLd_; // for LDAC |
CQpub0Mikami | 0:a2cdffe24b67 | 46 | |
CQpub0Mikami | 0:a2cdffe24b67 | 47 | Dac(const Dac&); |
CQpub0Mikami | 0:a2cdffe24b67 | 48 | Dac& operator=(const Dac&); |
CQpub0Mikami | 0:a2cdffe24b67 | 49 | |
CQpub0Mikami | 0:a2cdffe24b67 | 50 | // for use internally |
CQpub0Mikami | 0:a2cdffe24b67 | 51 | void WriteDac(uint16_t value); |
CQpub0Mikami | 0:a2cdffe24b67 | 52 | }; |
CQpub0Mikami | 0:a2cdffe24b67 | 53 | } |
CQpub0Mikami | 0:a2cdffe24b67 | 54 | #endif // MCP4922_SINGLE_HPP |