branch to test I2C

Dependencies:   ADBMS2950

Committer:
sgarg2
Date:
Mon May 24 02:38:00 2021 +0000
Revision:
9:0a4828d32e76
Parent:
6:5d29fdcbae72
Add I2C test for EEPROM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dpandit1988 1:94a3e8fe5e25 1 /**
dpandit1988 1:94a3e8fe5e25 2 ********************************************************************************
dpandit1988 1:94a3e8fe5e25 3 *
dpandit1988 1:94a3e8fe5e25 4 * @file: application.c
dpandit1988 1:94a3e8fe5e25 5 *
dpandit1988 1:94a3e8fe5e25 6 * @brief: This file contains the application test cases.
dpandit1988 1:94a3e8fe5e25 7 *
dpandit1988 1:94a3e8fe5e25 8 * @details:
dpandit1988 1:94a3e8fe5e25 9 *
dpandit1988 1:94a3e8fe5e25 10 *******************************************************************************
dpandit1988 1:94a3e8fe5e25 11 Copyright(c) 2020 Analog Devices, Inc. All Rights Reserved. This software is
dpandit1988 1:94a3e8fe5e25 12 proprietary & confidential to Analog Devices, Inc. and its licensors. By using
dpandit1988 1:94a3e8fe5e25 13 this software you agree to the terms of the associated Analog Devices License
dpandit1988 1:94a3e8fe5e25 14 Agreement.
dpandit1988 1:94a3e8fe5e25 15 *******************************************************************************
dpandit1988 1:94a3e8fe5e25 16 */
dpandit1988 1:94a3e8fe5e25 17 /*! \addtogroup Main
dpandit1988 1:94a3e8fe5e25 18 * @{
dpandit1988 1:94a3e8fe5e25 19 */
dpandit1988 1:94a3e8fe5e25 20
dpandit1988 1:94a3e8fe5e25 21 /*! \addtogroup Application
dpandit1988 1:94a3e8fe5e25 22 * @{
dpandit1988 1:94a3e8fe5e25 23 */
dpandit1988 1:94a3e8fe5e25 24 /*============= I N C L U D E S =============*/
dpandit1988 1:94a3e8fe5e25 25 /*============== D E F I N E S ===============*/
dpandit1988 1:94a3e8fe5e25 26 /*============= E X T E R N A L S ============*/
dpandit1988 1:94a3e8fe5e25 27 /*============= E N U M E R A T O R S ============*/
dpandit1988 1:94a3e8fe5e25 28
dpandit1988 1:94a3e8fe5e25 29 #include "application.h"
dpandit1988 1:94a3e8fe5e25 30 #ifdef MBED
dpandit1988 1:94a3e8fe5e25 31 extern Serial pc;
dpandit1988 1:94a3e8fe5e25 32 #endif /* MBED */
dpandit1988 1:94a3e8fe5e25 33 /**
dpandit1988 1:94a3e8fe5e25 34 *******************************************************************************
dpandit1988 1:94a3e8fe5e25 35 * @brief Setup Variables
dpandit1988 1:94a3e8fe5e25 36 * The following variables can be modified to configure the software.
dpandit1988 1:94a3e8fe5e25 37 *******************************************************************************
dpandit1988 1:94a3e8fe5e25 38 */
dpandit1988 1:94a3e8fe5e25 39
dpandit1988 1:94a3e8fe5e25 40 #define TOTAL_IC 1
dpandit1988 1:94a3e8fe5e25 41 cell_asic IC[TOTAL_IC];
dpandit1988 6:5d29fdcbae72 42 int loop_measurment_count = 10; /* Loop measurment count (default count)*/
dpandit1988 6:5d29fdcbae72 43 int loop_measurment_time = 1; /* milliseconds(mS)*/
dpandit1988 6:5d29fdcbae72 44 int loop_count = 0;
dpandit1988 1:94a3e8fe5e25 45
dpandit1988 1:94a3e8fe5e25 46 void app_main()
dpandit1988 1:94a3e8fe5e25 47 {
dpandit1988 1:94a3e8fe5e25 48 printMenu();
dpandit1988 1:94a3e8fe5e25 49 while(1)
dpandit1988 1:94a3e8fe5e25 50 {
dpandit1988 1:94a3e8fe5e25 51 int user_command;
dpandit1988 6:5d29fdcbae72 52 readUserInupt(&user_command);
dpandit1988 1:94a3e8fe5e25 53 adi2950_init_config(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 54 run_command(user_command); /*!< Run test case */
dpandit1988 1:94a3e8fe5e25 55 }
dpandit1988 1:94a3e8fe5e25 56 }
dpandit1988 1:94a3e8fe5e25 57
dpandit1988 1:94a3e8fe5e25 58 void run_command(int cmd)
dpandit1988 1:94a3e8fe5e25 59 {
dpandit1988 1:94a3e8fe5e25 60 switch(cmd)
dpandit1988 1:94a3e8fe5e25 61 {
dpandit1988 1:94a3e8fe5e25 62 case 1:
dpandit1988 1:94a3e8fe5e25 63 adi2950_write_read_config(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 64 break;
dpandit1988 1:94a3e8fe5e25 65
dpandit1988 1:94a3e8fe5e25 66 case 2:
dpandit1988 1:94a3e8fe5e25 67 adi2950_read_config(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 68 break;
dpandit1988 1:94a3e8fe5e25 69
dpandit1988 1:94a3e8fe5e25 70 case 3:
dpandit1988 6:5d29fdcbae72 71 adi2950_start_adi1_single_measurment(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 72 break;
dpandit1988 1:94a3e8fe5e25 73
dpandit1988 1:94a3e8fe5e25 74 case 4:
dpandit1988 6:5d29fdcbae72 75 adi2950_start_adi2_single_measurment(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 76 break;
dpandit1988 1:94a3e8fe5e25 77
dpandit1988 1:94a3e8fe5e25 78 case 5:
dpandit1988 6:5d29fdcbae72 79 adi2950_start_adi1_continuous_measurment(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 80 break;
dpandit1988 1:94a3e8fe5e25 81
dpandit1988 1:94a3e8fe5e25 82 case 6:
dpandit1988 6:5d29fdcbae72 83 adi2950_start_adi2_continuous_measurment(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 84 break;
dpandit1988 1:94a3e8fe5e25 85
dpandit1988 1:94a3e8fe5e25 86 case 7:
dpandit1988 6:5d29fdcbae72 87 adi2950_start_adi1_redundant_single_measurment(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 88 break;
dpandit1988 1:94a3e8fe5e25 89
dpandit1988 1:94a3e8fe5e25 90 case 8:
dpandit1988 6:5d29fdcbae72 91 adi2950_start_adi1_redundant_continuous_measurment(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 92 break;
dpandit1988 1:94a3e8fe5e25 93
dpandit1988 1:94a3e8fe5e25 94 case 9:
dpandit1988 6:5d29fdcbae72 95 adi2950_read_cr_vbat_ivbat_registers(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 96 break;
dpandit1988 1:94a3e8fe5e25 97
dpandit1988 1:94a3e8fe5e25 98 case 10:
dpandit1988 6:5d29fdcbae72 99 loop_count = 0;
dpandit1988 6:5d29fdcbae72 100 printMsg("Please enter loop measurment count:");
dpandit1988 6:5d29fdcbae72 101 readUserInupt(&loop_measurment_count);
dpandit1988 6:5d29fdcbae72 102 while(loop_count < loop_measurment_count)
dpandit1988 6:5d29fdcbae72 103 {
dpandit1988 6:5d29fdcbae72 104 printResultCount(loop_count);
dpandit1988 6:5d29fdcbae72 105 adi2950_read_cr_vbat_ivbat_registers(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 106 Delay_ms(loop_measurment_time);
dpandit1988 6:5d29fdcbae72 107 loop_count = loop_count + 1;
dpandit1988 6:5d29fdcbae72 108 }
dpandit1988 1:94a3e8fe5e25 109 break;
dpandit1988 1:94a3e8fe5e25 110
dpandit1988 1:94a3e8fe5e25 111 case 11:
dpandit1988 6:5d29fdcbae72 112 adi2950_read_ocr_register(TOTAL_IC, &IC[0]);
dpandit1988 4:0e99350684aa 113 break;
dpandit1988 4:0e99350684aa 114
dpandit1988 4:0e99350684aa 115 case 12:
dpandit1988 6:5d29fdcbae72 116 loop_count = 0;
dpandit1988 6:5d29fdcbae72 117 printMsg("Please enter loop measurment count:");
dpandit1988 6:5d29fdcbae72 118 readUserInupt(&loop_measurment_count);
dpandit1988 6:5d29fdcbae72 119 while(loop_count < loop_measurment_count)
dpandit1988 6:5d29fdcbae72 120 {
dpandit1988 6:5d29fdcbae72 121 printResultCount(loop_count);
dpandit1988 6:5d29fdcbae72 122 adi2950_read_ocr_register(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 123 Delay_ms(loop_measurment_time);
dpandit1988 6:5d29fdcbae72 124 loop_count = loop_count + 1;
dpandit1988 6:5d29fdcbae72 125 }
dpandit1988 1:94a3e8fe5e25 126 break;
dpandit1988 1:94a3e8fe5e25 127
dpandit1988 4:0e99350684aa 128 case 13:
dpandit1988 6:5d29fdcbae72 129 adi2950_read_avgcr_avgvbat_avgivbat_registers(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 130 break;
dpandit1988 1:94a3e8fe5e25 131
dpandit1988 4:0e99350684aa 132 case 14:
dpandit1988 6:5d29fdcbae72 133 loop_count = 0;
dpandit1988 6:5d29fdcbae72 134 printMsg("Please enter loop measurment count:");
dpandit1988 6:5d29fdcbae72 135 readUserInupt(&loop_measurment_count);
dpandit1988 6:5d29fdcbae72 136 while(loop_count < loop_measurment_count)
dpandit1988 6:5d29fdcbae72 137 {
dpandit1988 6:5d29fdcbae72 138 printResultCount(loop_count);
dpandit1988 6:5d29fdcbae72 139 adi2950_read_avgcr_avgvbat_avgivbat_registers(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 140 Delay_ms(loop_measurment_time);
dpandit1988 6:5d29fdcbae72 141 loop_count = loop_count + 1;
dpandit1988 6:5d29fdcbae72 142 }
dpandit1988 6:5d29fdcbae72 143 break;
dpandit1988 6:5d29fdcbae72 144
dpandit1988 6:5d29fdcbae72 145 case 15:
dpandit1988 6:5d29fdcbae72 146 adi2950_all_current_battery_voltage_registers(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 147 break;
dpandit1988 6:5d29fdcbae72 148
dpandit1988 6:5d29fdcbae72 149 case 16:
dpandit1988 6:5d29fdcbae72 150 printMsg("Please enter loop measurment count:");
dpandit1988 6:5d29fdcbae72 151 readUserInupt(&loop_measurment_count);
dpandit1988 6:5d29fdcbae72 152 loop_count = 0;
dpandit1988 6:5d29fdcbae72 153 while(loop_count < loop_measurment_count)
dpandit1988 6:5d29fdcbae72 154 {
dpandit1988 6:5d29fdcbae72 155 printResultCount(loop_count);
dpandit1988 6:5d29fdcbae72 156 adi2950_all_current_battery_voltage_registers(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 157 Delay_ms(loop_measurment_time);
dpandit1988 6:5d29fdcbae72 158 loop_count = loop_count + 1;
dpandit1988 6:5d29fdcbae72 159 }
dpandit1988 6:5d29fdcbae72 160 break;
dpandit1988 6:5d29fdcbae72 161
dpandit1988 6:5d29fdcbae72 162 case 17:
dpandit1988 6:5d29fdcbae72 163 adi2950_start_adv_measurment(TOTAL_IC);
dpandit1988 6:5d29fdcbae72 164 break;
dpandit1988 6:5d29fdcbae72 165
dpandit1988 6:5d29fdcbae72 166 case 18:
dpandit1988 1:94a3e8fe5e25 167 adi2950_read_vr_registers(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 168 break;
dpandit1988 1:94a3e8fe5e25 169
dpandit1988 6:5d29fdcbae72 170 case 19:
dpandit1988 6:5d29fdcbae72 171 adi2950_read_rvr_registers(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 172 break;
dpandit1988 6:5d29fdcbae72 173
dpandit1988 6:5d29fdcbae72 174 case 20:
dpandit1988 6:5d29fdcbae72 175 adi2950_read_vr_rvr_registers(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 176 break;
dpandit1988 6:5d29fdcbae72 177
dpandit1988 6:5d29fdcbae72 178 case 21:
dpandit1988 1:94a3e8fe5e25 179 adi2950_read_vrx_registers(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 180 break;
dpandit1988 1:94a3e8fe5e25 181
dpandit1988 6:5d29fdcbae72 182 case 22:
dpandit1988 4:0e99350684aa 183 adi2950_start_adaux_measurment(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 184 break;
dpandit1988 1:94a3e8fe5e25 185
dpandit1988 6:5d29fdcbae72 186 case 23:
dpandit1988 4:0e99350684aa 187 adi2950_read_adaux_measurment(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 188 break;
dpandit1988 1:94a3e8fe5e25 189
dpandit1988 6:5d29fdcbae72 190 case 24:
dpandit1988 6:5d29fdcbae72 191 adi2950_read_status_c_register(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 192 break;
dpandit1988 6:5d29fdcbae72 193
dpandit1988 6:5d29fdcbae72 194 case 25:
dpandit1988 4:0e99350684aa 195 adi2950_read_all_status_registers(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 196 break;
dpandit1988 1:94a3e8fe5e25 197
dpandit1988 6:5d29fdcbae72 198 case 26:
dpandit1988 4:0e99350684aa 199 adi2950_read_device_sid(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 200 break;
dpandit1988 1:94a3e8fe5e25 201
dpandit1988 6:5d29fdcbae72 202 case 27:
dpandit1988 4:0e99350684aa 203 adi2950_soft_reset(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 204 break;
dpandit1988 1:94a3e8fe5e25 205
dpandit1988 6:5d29fdcbae72 206 case 28:
dpandit1988 4:0e99350684aa 207 adi2950_reset_cmd_count(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 208 break;
dpandit1988 1:94a3e8fe5e25 209
dpandit1988 6:5d29fdcbae72 210 case 29:
dpandit1988 4:0e99350684aa 211 adi2950_snap(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 212 break;
dpandit1988 1:94a3e8fe5e25 213
dpandit1988 6:5d29fdcbae72 214 case 30:
dpandit1988 4:0e99350684aa 215 adi2950_unsnap(TOTAL_IC);
dpandit1988 1:94a3e8fe5e25 216 break;
dpandit1988 1:94a3e8fe5e25 217
dpandit1988 6:5d29fdcbae72 218 case 31:
dpandit1988 6:5d29fdcbae72 219 adi2950_set_reset_gpo_pins(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 220 break;
dpandit1988 1:94a3e8fe5e25 221
dpandit1988 6:5d29fdcbae72 222 case 32:
dpandit1988 6:5d29fdcbae72 223 adi2950_gpio_spi_write_to_slave(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 224 break;
dpandit1988 6:5d29fdcbae72 225
dpandit1988 6:5d29fdcbae72 226 case 33:
dpandit1988 6:5d29fdcbae72 227 adi2950_gpio_spi_read_from_slave(TOTAL_IC, &IC[0]);
dpandit1988 6:5d29fdcbae72 228 break;
dpandit1988 6:5d29fdcbae72 229
dpandit1988 6:5d29fdcbae72 230 case 34:
dpandit1988 4:0e99350684aa 231 adi2950_gpio_i2c_write_to_slave(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 232 adi2950_gpio_i2c_read_from_slave(TOTAL_IC, &IC[0]);
dpandit1988 1:94a3e8fe5e25 233 break;
dpandit1988 1:94a3e8fe5e25 234
dpandit1988 1:94a3e8fe5e25 235 case 0:
dpandit1988 1:94a3e8fe5e25 236 printMenu();
dpandit1988 1:94a3e8fe5e25 237 break;
dpandit1988 1:94a3e8fe5e25 238
dpandit1988 1:94a3e8fe5e25 239 default:
dpandit1988 1:94a3e8fe5e25 240 printMsg("Incorrect Option");
dpandit1988 1:94a3e8fe5e25 241 break;
dpandit1988 1:94a3e8fe5e25 242 }
dpandit1988 1:94a3e8fe5e25 243 }
dpandit1988 1:94a3e8fe5e25 244 /** @}*/
dpandit1988 1:94a3e8fe5e25 245 /** @}*/