Librairie de l'IOGS nécessaire pour utiliser le CNA AD7303
AD7303.h@0:30a6c5c8c8eb, 2017-06-22 (annotated)
- Committer:
- Thur
- Date:
- Thu Jun 22 12:58:18 2017 +0000
- Revision:
- 0:30a6c5c8c8eb
Intial Publication AD7303;
Who changed what in which revision?
User | Revision | Line number | New 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 |