Librairie de l'IOGS nécessaire pour utiliser le CNA AD7303

Committer:
Thur
Date:
Thu Jun 22 12:58:18 2017 +0000
Revision:
0:30a6c5c8c8eb
Intial Publication AD7303;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Thur 0:30a6c5c8c8eb 1 #ifndef MBED_AD7303_H
Thur 0:30a6c5c8c8eb 2 #define MBED_AD7303_H
Thur 0:30a6c5c8c8eb 3 /** Classe AD7303.
Thur 0:30a6c5c8c8eb 4 * Utilisée par l'IOGS pour le DAC AD7303.
Thur 0:30a6c5c8c8eb 5 *
Thur 0:30a6c5c8c8eb 6 * Example:
Thur 0:30a6c5c8c8eb 7 * @code
Thur 0:30a6c5c8c8eb 8 * #include "mbed.h"
Thur 0:30a6c5c8c8eb 9 * #include "AD7303.h"
Thur 0:30a6c5c8c8eb 10 *
Thur 0:30a6c5c8c8eb 11 * AD7303 dac8b(D10,D11,D12,D13);
Thur 0:30a6c5c8c8eb 12 * char c;
Thur 0:30a6c5c8c8eb 13 *
Thur 0:30a6c5c8c8eb 14 * int main()
Thur 0:30a6c5c8c8eb 15 * {
Thur 0:30a6c5c8c8eb 16 * dac8b.initDAC();
Thur 0:30a6c5c8c8eb 17 * while(1) {
Thur 0:30a6c5c8c8eb 18 * c=' ';
Thur 0:30a6c5c8c8eb 19 * for(c=0; c<255; c++) {
Thur 0:30a6c5c8c8eb 20 * dac8b.changeDACA_IntRef(c);
Thur 0:30a6c5c8c8eb 21 * }
Thur 0:30a6c5c8c8eb 22 * }
Thur 0:30a6c5c8c8eb 23 * }
Thur 0:30a6c5c8c8eb 24 * @endcode
Thur 0:30a6c5c8c8eb 25 */
Thur 0:30a6c5c8c8eb 26 #include "mbed.h"
Thur 0:30a6c5c8c8eb 27 /* Modes de fonctionnement */
Thur 0:30a6c5c8c8eb 28 #define INT_REF 0x00 // Internal reference voltage Vref ? VDD/2
Thur 0:30a6c5c8c8eb 29 #define EXT_REF 0x80 // External reference voltage
Thur 0:30a6c5c8c8eb 30
Thur 0:30a6c5c8c8eb 31 #define POWER_DOWN_DACA 0b00001000 // Switch off DACA
Thur 0:30a6c5c8c8eb 32 #define POWER_DOWN_DACB 0b00010000 // Switch off DACB
Thur 0:30a6c5c8c8eb 33
Thur 0:30a6c5c8c8eb 34 #define UPDATE_DACA 0b00000011 // Update DACA from shift register
Thur 0:30a6c5c8c8eb 35 #define UPDATE_DACB 0b00100111 // Update DACB from shitf register
Thur 0:30a6c5c8c8eb 36
Thur 0:30a6c5c8c8eb 37 class AD7303{
Thur 0:30a6c5c8c8eb 38 public:
Thur 0:30a6c5c8c8eb 39 /** Déclare un CNA AD7303
Thur 0:30a6c5c8c8eb 40 *
Thur 0:30a6c5c8c8eb 41 * @param Cs Broche de la carte Nucleo L476RG reliée à la broche Cs du CNA AD7303
Thur 0:30a6c5c8c8eb 42 * @param Miso Broche de la carte Nucleo L476RG reliée à la broche Miso du CNA AD7303
Thur 0:30a6c5c8c8eb 43 * @param Mosi Broche de la carte Nucleo L476RG reliée à la broche Mosi du CNA AD7303
Thur 0:30a6c5c8c8eb 44 * @param Sck Broche de la carte Nucleo L476RG reliée à la broche Sck du CNA AD7303
Thur 0:30a6c5c8c8eb 45
Thur 0:30a6c5c8c8eb 46 */
Thur 0:30a6c5c8c8eb 47 AD7303(PinName Cs,PinName Mosi, PinName Miso, PinName Sck);
Thur 0:30a6c5c8c8eb 48 /** Fonction d'initialisation du CNA AD7303
Thur 0:30a6c5c8c8eb 49 * Internal Vref / Power-Up on both DACA and DACB
Thur 0:30a6c5c8c8eb 50 * Load DACA and DACB with VDD/2 on outputs
Thur 0:30a6c5c8c8eb 51 * @note l'appel de cette fonction est essentielle pour utiliser le CNA AD7303
Thur 0:30a6c5c8c8eb 52 */
Thur 0:30a6c5c8c8eb 53 void initDAC(void);
Thur 0:30a6c5c8c8eb 54 /** Changement mode de configuration
Thur 0:30a6c5c8c8eb 55 *
Thur 0:30a6c5c8c8eb 56 * @param mode mode de fonctionnement souhaite
Thur 0:30a6c5c8c8eb 57 * @param val valeur en sortie (8 bits)
Thur 0:30a6c5c8c8eb 58 * @returns rien
Thur 0:30a6c5c8c8eb 59 */
Thur 0:30a6c5c8c8eb 60 void changeModeDAC(char mode, char val);
Thur 0:30a6c5c8c8eb 61 /** Modification de la tension de sortie du DACA - Reference interne
Thur 0:30a6c5c8c8eb 62 *
Thur 0:30a6c5c8c8eb 63 * @param val valeur sur 8 bits de la tension a appliquer
Thur 0:30a6c5c8c8eb 64 * @returns rien
Thur 0:30a6c5c8c8eb 65 */
Thur 0:30a6c5c8c8eb 66 void changeDACA_IntRef(char val);
Thur 0:30a6c5c8c8eb 67 /** Modification de la tension de sortie du DACB - Reference interne
Thur 0:30a6c5c8c8eb 68 *
Thur 0:30a6c5c8c8eb 69 * @param val valeur sur 8 bits de la tension a appliquer
Thur 0:30a6c5c8c8eb 70 * @returns rien
Thur 0:30a6c5c8c8eb 71 */
Thur 0:30a6c5c8c8eb 72 void changeDACB_IntRef(char val);
Thur 0:30a6c5c8c8eb 73 /** Modification de la tension de sortie du DACA - Reference externe
Thur 0:30a6c5c8c8eb 74 *
Thur 0:30a6c5c8c8eb 75 * @param val valeur sur 8 bits de la tension a appliquer
Thur 0:30a6c5c8c8eb 76 * @returns rien
Thur 0:30a6c5c8c8eb 77 */
Thur 0:30a6c5c8c8eb 78 void changeDACA_ExtRef(char val);
Thur 0:30a6c5c8c8eb 79 /** Modification de la tension de sortie du DACB - Reference externe
Thur 0:30a6c5c8c8eb 80 *
Thur 0:30a6c5c8c8eb 81 * @param val valeur sur 8 bits de la tension a appliquer
Thur 0:30a6c5c8c8eb 82 * @returns rien
Thur 0:30a6c5c8c8eb 83 */
Thur 0:30a6c5c8c8eb 84 void changeDACB_ExtRef(char val);
Thur 0:30a6c5c8c8eb 85 private:
Thur 0:30a6c5c8c8eb 86 DigitalOut CS_DAC; //CS
Thur 0:30a6c5c8c8eb 87 SPI ad7303; // mosi, miso, sclk
Thur 0:30a6c5c8c8eb 88 };
Thur 0:30a6c5c8c8eb 89
Thur 0:30a6c5c8c8eb 90 #endif