adc

Dependents:   h7adc

Revision:
1:5796bdddf29c
Parent:
0:e5d06036dd60
Child:
2:f480200c8600
--- a/ADE7912.h	Wed Oct 21 20:45:11 2020 +0000
+++ b/ADE7912.h	Tue Oct 27 12:13:16 2020 +0000
@@ -50,85 +50,93 @@
 #define ADE7912_DALAY_TIME									2
 #define ADE7912_WAITING_TIME								5 * ADE7912_DALAY_TIME
 
-struct ADE7912_BrushRead_Data
-{
-	int32_t IWV; 
-	int32_t V1WV;
-	int32_t V2WV;
-	uint16_t ADC_CRC;
-	uint8_t STATUS0;
-	uint16_t CNT_SNAPSHOT;
+#define ADE7912_TEMPGAIN_WITH_3K3_BW				8.72101e-5f
+#define ADE7912_TEMPGAIN_WITH_2K_BW					8.21015e-5f
+#define ADE7912_CONST_TEMPOS								306.47f
+
+#define ADE7912_IWV_TRANSLATE_COEF          5.87344e-9f
+#define ADE7912_VWV_TRANSLATE_COEF          9.39369e-8f
+
+struct ADE7912_BrushRead_Data {
+    int32_t IWV;
+    int32_t V1WV;
+    int32_t V2WV;
+    uint16_t ADC_CRC;
+    uint8_t STATUS0;
+    uint16_t CNT_SNAPSHOT;
 };
 
-struct ADE7912_Inst 
-{
-	SPI_HandleTypeDef *spi;
-	uint8_t phasesEnable[4];
-	GPIO_TypeDef *CS_ports[4];
-	uint16_t CS_pins[4];
-	struct ADE7912_BrushRead_Data *phasesData[4];
-	uint8_t version[4];
+struct ADE7912_Inst {
+    SPI_HandleTypeDef *spi;
+    uint8_t phasesEnable[4];
+    GPIO_TypeDef *CS_ports[4];
+    uint16_t CS_pins[4];
+    struct ADE7912_BrushRead_Data *phasesData[4];
+    uint8_t version[4];
+    float tempos[4];
+    float tempGain[4];
+    GPIO_TypeDef *DReadyPort;
+    uint16_t DReadyPin;
+    IRQn_Type EXTIinterrupt;
 };
 
 
 
-enum ADE7912_Phases
-{
-	PHASE_A = 0,
-	PHASE_B,
-	PHASE_C,
-	COM
+enum ADE7912_Phases {
+    PHASE_A = 0,
+    PHASE_B,
+    PHASE_C,
+    COM
 };
 
-enum ADE7912_DataUpdateFreq
-{
-	F_8KHZ,
-	F_4KHZ,
-	F_2KHZ,
-	F_1KHZ
+enum ADE7912_DataUpdateFreq {
+    F_8KHZ,
+    F_4KHZ,
+    F_2KHZ,
+    F_1KHZ
 };
 
-enum ADE7912_Bandwidths
-{
-	BW_3K3HZ,
-	BW_2KHZ
+enum ADE7912_Bandwidths {
+    BW_3K3HZ,
+    BW_2KHZ
 };
 
-enum ADE7912_CLKOUT_Functionality
-{
-	CLKOUT,
-	DREADY
+enum ADE7912_CLKOUT_Functionality {
+    CLKOUT,
+    DREADY
 };
 
-struct ADE7912_Phase_Settings
-{
-	GPIO_TypeDef *CS_port;
-	uint16_t CS_pin;
-	enum ADE7912_DataUpdateFreq freq;
-	enum ADE7912_Bandwidths bandwidth;
+struct ADE7912_Phase_Settings {
+    GPIO_TypeDef *CS_port;
+    uint16_t CS_pin;
+    enum ADE7912_DataUpdateFreq freq;
+    enum ADE7912_Bandwidths bandwidth;
+    enum ADE7912_CLKOUT_Functionality clkoutFunc;
 };
 
-void ADE7912_WriteToReg(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, uint8_t addr, uint8_t *buf, uint8_t length);
-void ADE7912_ReadFromReg(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, uint8_t addr, uint8_t *buf, uint8_t length);
+
 
 void ADE7912_UpdateData(struct ADE7912_Inst *ade);
-int ADE7912_GetPhaseData(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, struct ADE7912_BrushRead_Data *data);
 
 struct ADE7912_Inst* New_ADE7912(SPI_HandleTypeDef *spi);
+
 void ADE7912_PhaseInit(struct ADE7912_Inst *ade, struct ADE7912_Phase_Settings *settings, enum ADE7912_Phases phase);
-
 void ADE7912_EnablePhase(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
 void ADE7912_DisablePhase(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
 void ADE7912_ResetPhase(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
 
-void ADE7912_SetDataUdateFreq(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, enum ADE7912_DataUpdateFreq freq);
+void ADE7912_SetDataUpdateFreq(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, enum ADE7912_DataUpdateFreq freq);
 void ADE7912_SetPwrConverterEnabled(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, _Bool enabled);
 void ADE7912_SetTempEnabled(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, _Bool enabled);
 void ADE7912_SetBandwidth(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, enum ADE7912_Bandwidths bandwidth);
 void ADE7912_SetCLKOUTFunctionality(struct ADE7912_Inst *ade, enum ADE7912_Phases phase, enum ADE7912_CLKOUT_Functionality functionality);
-uint8_t ADE7912_GetADCVersion(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
 
 void ADE7912_LockConfigurationRegisters(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
 void ADE7912_UnlockConfigurationRegisters(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
 
+uint8_t ADE7912_GetADCVersion(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
+float ADE7912_GetVoltage(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
+float ADE7912_GetCurrent(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
+float ADE7912_GetTemp(struct ADE7912_Inst *ade, enum ADE7912_Phases phase);
+
 #endif