Librairie de l'IOGS nécessaire pour utiliser le CNA AD7303
Diff: AD7303.h
- Revision:
- 0:30a6c5c8c8eb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AD7303.h Thu Jun 22 12:58:18 2017 +0000 @@ -0,0 +1,90 @@ +#ifndef MBED_AD7303_H +#define MBED_AD7303_H +/** Classe AD7303. + * Utilisée par l'IOGS pour le DAC AD7303. + * + * Example: + * @code + * #include "mbed.h" + * #include "AD7303.h" + * + * AD7303 dac8b(D10,D11,D12,D13); + * char c; + * + * int main() + * { + * dac8b.initDAC(); + * while(1) { + * c=' '; + * for(c=0; c<255; c++) { + * dac8b.changeDACA_IntRef(c); + * } + * } + * } + * @endcode + */ +#include "mbed.h" +/* Modes de fonctionnement */ +#define INT_REF 0x00 // Internal reference voltage Vref ? VDD/2 +#define EXT_REF 0x80 // External reference voltage + +#define POWER_DOWN_DACA 0b00001000 // Switch off DACA +#define POWER_DOWN_DACB 0b00010000 // Switch off DACB + +#define UPDATE_DACA 0b00000011 // Update DACA from shift register +#define UPDATE_DACB 0b00100111 // Update DACB from shitf register + +class AD7303{ +public: + /** Déclare un CNA AD7303 + * + * @param Cs Broche de la carte Nucleo L476RG reliée à la broche Cs du CNA AD7303 + * @param Miso Broche de la carte Nucleo L476RG reliée à la broche Miso du CNA AD7303 + * @param Mosi Broche de la carte Nucleo L476RG reliée à la broche Mosi du CNA AD7303 + * @param Sck Broche de la carte Nucleo L476RG reliée à la broche Sck du CNA AD7303 + + */ + AD7303(PinName Cs,PinName Mosi, PinName Miso, PinName Sck); + /** Fonction d'initialisation du CNA AD7303 + * Internal Vref / Power-Up on both DACA and DACB + * Load DACA and DACB with VDD/2 on outputs + * @note l'appel de cette fonction est essentielle pour utiliser le CNA AD7303 + */ + void initDAC(void); + /** Changement mode de configuration + * + * @param mode mode de fonctionnement souhaite + * @param val valeur en sortie (8 bits) + * @returns rien + */ + void changeModeDAC(char mode, char val); + /** Modification de la tension de sortie du DACA - Reference interne + * + * @param val valeur sur 8 bits de la tension a appliquer + * @returns rien + */ + void changeDACA_IntRef(char val); + /** Modification de la tension de sortie du DACB - Reference interne + * + * @param val valeur sur 8 bits de la tension a appliquer + * @returns rien + */ + void changeDACB_IntRef(char val); + /** Modification de la tension de sortie du DACA - Reference externe + * + * @param val valeur sur 8 bits de la tension a appliquer + * @returns rien + */ + void changeDACA_ExtRef(char val); + /** Modification de la tension de sortie du DACB - Reference externe + * + * @param val valeur sur 8 bits de la tension a appliquer + * @returns rien + */ + void changeDACB_ExtRef(char val); +private: + DigitalOut CS_DAC; //CS + SPI ad7303; // mosi, miso, sclk +}; + +#endif \ No newline at end of file