-
-
Save kvalv/79bba0ffd924810b0d68 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| enum ltc6804_RegisterGroup | |
| { | |
| RegisterGroup_CONFIG, | |
| RegisterGroup_CELLA, | |
| RegisterGroup_CELLB, | |
| RegisterGroup_CELLC, | |
| RegisterGroup_CELLD, | |
| ReigsterGroup_AUXA, | |
| RegisterGroup_AUXB, | |
| RegisterGroup_STATA, | |
| RegisterGroup_STATB | |
| }; | |
| enum ltc6804_Command | |
| { | |
| Command_ADCV, /* Start Cell Voltage ADC Conversion and Poll status */ | |
| Command_ADOW, /* Start Open Wire ADC Conversion and Poll Status */ | |
| Command_CVST, /* Start Self-Test Cell Voltage Conversion and Poll Status */ | |
| Command_ADAX, /* Start GPIOs ADC Conversion and Poll Status */ | |
| Command_AXST, /* Start Self-Test GPIOs Conversion and Poll Status */ | |
| Command_ADSTAT, /* Start Status group ADC Conversion and Poll Status */ | |
| Command_STATST, /* Start Self-Test Status group Conversion and Pol Status */ | |
| Command_ADCVAX, /* Start Combined Cell VOltage and GPIO1, GPIO2 Conversion and Poll Status */ | |
| Command_Diagn /* Diagnose MUX and Poll Status */ | |
| }; | |
| enum ltc6804_DischargeTimeOutValue | |
| { | |
| DischargeTimeout_DISABLED, | |
| DischargeTimeout_SEC30, | |
| DischargeTimeout_MIN1, | |
| DischargeTimeout_MIN2, | |
| DischargeTimeout_MIN3, | |
| DischargeTimeout_MIN4, | |
| DischargeTimeout_MIN5, | |
| DischargeTimeout_MIN10, | |
| DischargeTimeout_MIN15, | |
| DischargeTimeout_MIN20, | |
| DischargeTimeout_MIN30, | |
| DischargeTimeout_MIN40, | |
| DischargeTimeout_MIN60, | |
| DischargeTimeout_MIN75, | |
| DischargeTimeout_MIN90, | |
| DischargeTimeout_MIN120 | |
| }; | |
| enum ltc6804_MuxFailStatus | |
| { | |
| MuxStatus_NO_FAILURE, | |
| MuxStatus_FAILURE | |
| }; | |
| enum ltc6804_ThermalShutdownStatus | |
| { | |
| ThermalStatus_NO_SHUTDOWN, | |
| ThermalStatus_SHUTDOWN | |
| }; | |
| typedef union ltc6804_RegisterData | |
| { | |
| uint8_t rawData[8]; | |
| struct { | |
| uint8_t adcModeOpt : 1; | |
| uint8_t swtrd : 1; | |
| uint8_t refon : 1; | |
| uint8_t gpioValue : 5; | |
| uint8_t UNUSED1; | |
| uint16_t UNUSED2; | |
| uint16_t dischargeEnable_bf : 12; | |
| enum ltc6804_DischargeTimeOutValue dischargeTimeout : 4; | |
| } config; | |
| struct { | |
| uint16_t cellVoltage1; | |
| uint16_t cellVoltage2; | |
| uint16_t cellVoltage3; | |
| } cvA; | |
| struct { | |
| uint16_t cellVoltage4; | |
| uint16_t cellVoltage5; | |
| uint16_t cellVoltage6; | |
| } cvB; | |
| struct { | |
| uint16_t cellVoltage7; | |
| uint16_t cellVoltage8; | |
| uint16_t cellVoltage9; | |
| } cvC; | |
| struct { | |
| uint16_t cellVoltage10; | |
| uint16_t cellVoltage11; | |
| uint16_t cellVoltage12; | |
| } cvD; | |
| struct { | |
| uint16_t gpioVoltage1; | |
| uint16_t gpioVoltage2; | |
| uint16_t gpioVoltage3; | |
| } auxA; | |
| struct { | |
| uint16_t gpioVoltage4; | |
| uint16_t gpioVoltage5; | |
| uint16_t refVoltage; | |
| } auxB; | |
| struct { | |
| uint16_t sumOfCellsVoltage; | |
| uint16_t internalTemperature; | |
| uint16_t analogPowerSupplyVoltage; | |
| } statusA; | |
| struct { | |
| uint16_t digitalPowerSupplyVoltage; | |
| uint16_t UNUSED1; | |
| uint8_t UNUSED2; | |
| enum ltc6804_ThermalShutdownStatus thermalShutdownStatus : 1; | |
| enum ltc6804_MuxFailStatus muxFailStatus : 1; | |
| uint8_t UNUSED3 : 2; | |
| uint8_t deviceRevisionCode : 4; | |
| } statusB; | |
| } ltc6804_RegisterData; | |
| void ltc6804_wakeUp ( void ); | |
| void ltc6804_sendCommand ( enum ltc6804_Command command ); | |
| void ltc6804_readRegisterGroup ( enum ltc6804_RegisterGroup registerGroup ); | |
| void ltc6804_writeConfigurationRegister ( ltc6804_RegisterData configurationRegister ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment