|
2 | 2 | #include "obc_i2c_io.h" |
3 | 3 | #include "tca6424.h" |
4 | 4 | #include "obc_logging.h" |
| 5 | +#include <gio.h> |
| 6 | +#include "obc_board_config.h" |
5 | 7 | #include <stdio.h> |
6 | 8 | #include <assert.h> |
7 | 9 |
|
@@ -88,28 +90,48 @@ static obc_error_code_t initTca6424PinState(); |
88 | 90 | */ |
89 | 91 | obc_error_code_t initINA230() { |
90 | 92 | obc_error_code_t errCode; |
91 | | - for (uint8_t i = 0; i < INA230_DEVICE_COUNT; ++i) { |
92 | | - const ina230_config_t device = ina230Devices[i]; |
93 | | - const uint16_t configurationRegister = (device.configurationMode << INA230_CONFIG_MODE_SHIFT) | |
94 | | - (device.configurationShunt << INA230_CONFIG_SHU_SHIFT) | |
95 | | - (device.configurationAvg << INA230_CONFIG_AVG_SHIFT) | |
96 | | - (device.configurationBus << INA230_CONFIG_BUS_SHIFT); |
| 93 | + // for (uint8_t i = 0; i < INA230_DEVICE_COUNT; ++i) { |
| 94 | + // const ina230_config_t device = ina230Devices[i]; |
| 95 | + // const uint16_t configurationRegister = (device.configurationMode << INA230_CONFIG_MODE_SHIFT) | |
| 96 | + // (device.configurationShunt << INA230_CONFIG_SHU_SHIFT) | |
| 97 | + // (device.configurationAvg << INA230_CONFIG_AVG_SHIFT) | |
| 98 | + // (device.configurationBus << INA230_CONFIG_BUS_SHIFT); |
| 99 | + // |
| 100 | + // uint8_t configRegisterUnpacked[] = {configurationRegister >> 8, configurationRegister & 0xFF}; |
| 101 | + // uint8_t maskEnRegisterUnpacked[] = {device.maskEnableRegister >> 8, device.maskEnableRegister & 0xFF}; |
| 102 | + // uint8_t alertRegisterUnpacked[] = {device.alertRegister >> 8, device.alertRegister & 0xFF}; |
| 103 | + // uint8_t calibrationRegisterUnpacked[] = {device.calibrationRegister >> 8, device.calibrationRegister & 0xFF}; |
| 104 | + // |
| 105 | + // RETURN_IF_ERROR_CODE(writeINA230Register(INA230_CONFIG_REGISTER_ADDR, configRegisterUnpacked, |
| 106 | + // sizeof(configRegisterUnpacked) / sizeof(configRegisterUnpacked[0]), i)); |
| 107 | + // RETURN_IF_ERROR_CODE(writeINA230Register(INA230_MASK_ENABLE_REGISTER_ADDR, maskEnRegisterUnpacked, |
| 108 | + // sizeof(maskEnRegisterUnpacked) / sizeof(maskEnRegisterUnpacked[0]), i)); |
| 109 | + // RETURN_IF_ERROR_CODE(writeINA230Register(INA230_ALERT_LIMIT_REGISTER_ADDR, alertRegisterUnpacked, |
| 110 | + // sizeof(alertRegisterUnpacked) / sizeof(alertRegisterUnpacked[0]), i)); |
| 111 | + // RETURN_IF_ERROR_CODE( |
| 112 | + // writeINA230Register(INA230_CALIBRATION_REGISTER_ADDR, calibrationRegisterUnpacked, |
| 113 | + // sizeof(calibrationRegisterUnpacked) / sizeof(calibrationRegisterUnpacked[0]), i)); |
| 114 | + // } |
| 115 | + const ina230_config_t device = ina230Devices[0]; |
| 116 | + const uint16_t configurationRegister = (device.configurationMode << INA230_CONFIG_MODE_SHIFT) | |
| 117 | + (device.configurationShunt << INA230_CONFIG_SHU_SHIFT) | |
| 118 | + (device.configurationAvg << INA230_CONFIG_AVG_SHIFT) | |
| 119 | + (device.configurationBus << INA230_CONFIG_BUS_SHIFT); |
97 | 120 |
|
98 | | - uint8_t configRegisterUnpacked[] = {configurationRegister >> 8, configurationRegister & 0xFF}; |
99 | | - uint8_t maskEnRegisterUnpacked[] = {device.maskEnableRegister >> 8, device.maskEnableRegister & 0xFF}; |
100 | | - uint8_t alertRegisterUnpacked[] = {device.alertRegister >> 8, device.alertRegister & 0xFF}; |
101 | | - uint8_t calibrationRegisterUnpacked[] = {device.calibrationRegister >> 8, device.calibrationRegister & 0xFF}; |
| 121 | + uint8_t configRegisterUnpacked[] = {configurationRegister >> 8, configurationRegister & 0xFF}; |
| 122 | + uint8_t maskEnRegisterUnpacked[] = {device.maskEnableRegister >> 8, device.maskEnableRegister & 0xFF}; |
| 123 | + uint8_t alertRegisterUnpacked[] = {device.alertRegister >> 8, device.alertRegister & 0xFF}; |
| 124 | + uint8_t calibrationRegisterUnpacked[] = {device.calibrationRegister >> 8, device.calibrationRegister & 0xFF}; |
102 | 125 |
|
103 | | - RETURN_IF_ERROR_CODE(writeINA230Register(INA230_CONFIG_REGISTER_ADDR, configRegisterUnpacked, |
104 | | - sizeof(configRegisterUnpacked) / sizeof(configRegisterUnpacked[0]), i)); |
105 | | - RETURN_IF_ERROR_CODE(writeINA230Register(INA230_MASK_ENABLE_REGISTER_ADDR, maskEnRegisterUnpacked, |
106 | | - sizeof(maskEnRegisterUnpacked) / sizeof(maskEnRegisterUnpacked[0]), i)); |
107 | | - RETURN_IF_ERROR_CODE(writeINA230Register(INA230_ALERT_LIMIT_REGISTER_ADDR, alertRegisterUnpacked, |
108 | | - sizeof(alertRegisterUnpacked) / sizeof(alertRegisterUnpacked[0]), i)); |
109 | | - RETURN_IF_ERROR_CODE( |
110 | | - writeINA230Register(INA230_CALIBRATION_REGISTER_ADDR, calibrationRegisterUnpacked, |
111 | | - sizeof(calibrationRegisterUnpacked) / sizeof(calibrationRegisterUnpacked[0]), i)); |
112 | | - } |
| 126 | + RETURN_IF_ERROR_CODE(writeINA230Register(INA230_CONFIG_REGISTER_ADDR, configRegisterUnpacked, |
| 127 | + sizeof(configRegisterUnpacked) / sizeof(configRegisterUnpacked[0]), 0)); |
| 128 | + RETURN_IF_ERROR_CODE(writeINA230Register(INA230_MASK_ENABLE_REGISTER_ADDR, maskEnRegisterUnpacked, |
| 129 | + sizeof(maskEnRegisterUnpacked) / sizeof(maskEnRegisterUnpacked[0]), 0)); |
| 130 | + RETURN_IF_ERROR_CODE(writeINA230Register(INA230_ALERT_LIMIT_REGISTER_ADDR, alertRegisterUnpacked, |
| 131 | + sizeof(alertRegisterUnpacked) / sizeof(alertRegisterUnpacked[0]), 0)); |
| 132 | + RETURN_IF_ERROR_CODE( |
| 133 | + writeINA230Register(INA230_CALIBRATION_REGISTER_ADDR, calibrationRegisterUnpacked, |
| 134 | + sizeof(calibrationRegisterUnpacked) / sizeof(calibrationRegisterUnpacked[0]), 0)); |
113 | 135 |
|
114 | 136 | RETURN_IF_ERROR_CODE(initTca6424PinState()); |
115 | 137 | return OBC_ERR_CODE_SUCCESS; |
@@ -155,7 +177,9 @@ static obc_error_code_t writeINA230Register(uint8_t regAddress, uint8_t* data, u |
155 | 177 | return OBC_ERR_CODE_INVALID_ARG; |
156 | 178 | } |
157 | 179 | obc_error_code_t errCode; |
158 | | - RETURN_IF_ERROR_CODE(i2cWriteReg(ina230Devices[device].i2cDeviceAddress, regAddress, data, size)); |
| 180 | + uint8_t dataSize[1] = {0}; |
| 181 | + RETURN_IF_ERROR_CODE(i2cWriteReg(INA230_I2C_ADDRESS_ONE, 0x00, dataSize, 1)); |
| 182 | + gioSetBit(STATE_MGR_DEBUG_LED_GIO_PORT, STATE_MGR_DEBUG_LED_GIO_BIT, 1); |
159 | 183 | return OBC_ERR_CODE_SUCCESS; |
160 | 184 | } |
161 | 185 | /** |
|
0 commit comments