I2C device discovery and printout of known device names

Committer:
loopsva
Date:
Thu Jan 10 17:44:10 2019 +0000
Revision:
0:df49b3ed3502
General I2C device updates

Who changed what in which revision?

UserRevisionLine numberNew contents of line
loopsva 0:df49b3ed3502 1 #include "mbed.h"
loopsva 0:df49b3ed3502 2 #include "i2cDevices.h"
loopsva 0:df49b3ed3502 3
loopsva 0:df49b3ed3502 4 extern RawSerial pc;
loopsva 0:df49b3ed3502 5
loopsva 0:df49b3ed3502 6 //--------------------------------------------------------------------------------------------------------------------------------------//
loopsva 0:df49b3ed3502 7 //Constructor
loopsva 0:df49b3ed3502 8
loopsva 0:df49b3ed3502 9 i2c_discovery::i2c_discovery(PinName sda, PinName scl, const char* name) : _i2c(sda, scl) {
loopsva 0:df49b3ed3502 10 _i2c.frequency(100000);
loopsva 0:df49b3ed3502 11 }
loopsva 0:df49b3ed3502 12
loopsva 0:df49b3ed3502 13 //--------------------------------------------------------------------------------------------------------------------------------------//
loopsva 0:df49b3ed3502 14 //Display detected i2c device name
loopsva 0:df49b3ed3502 15
loopsva 0:df49b3ed3502 16 int i2c_discovery::showI2C(i2cDeviceFlags& i2cFlags, char addr) {
loopsva 0:df49b3ed3502 17 switch (addr) {
loopsva 0:df49b3ed3502 18 #ifdef I2C_0x02
loopsva 0:df49b3ed3502 19 case 0x02:
loopsva 0:df49b3ed3502 20 pc.printf("%s\r\n", I2C_0x02);
loopsva 0:df49b3ed3502 21 i2cFlags.PCA9955_GGG_ok = true;
loopsva 0:df49b3ed3502 22 break;
loopsva 0:df49b3ed3502 23 #endif
loopsva 0:df49b3ed3502 24 #ifdef I2C_0x04
loopsva 0:df49b3ed3502 25 case 0x04:
loopsva 0:df49b3ed3502 26 pc.printf("%s\r\n", I2C_0x04);
loopsva 0:df49b3ed3502 27 break;
loopsva 0:df49b3ed3502 28 #endif
loopsva 0:df49b3ed3502 29 #ifdef I2C_0x06
loopsva 0:df49b3ed3502 30 case 0x06:
loopsva 0:df49b3ed3502 31 pc.printf("%s\r\n", I2C_0x06);
loopsva 0:df49b3ed3502 32 break;
loopsva 0:df49b3ed3502 33 #endif
loopsva 0:df49b3ed3502 34 #ifdef I2C_0x08
loopsva 0:df49b3ed3502 35 case 0x08:
loopsva 0:df49b3ed3502 36 pc.printf("%s\r\n", I2C_0x08);
loopsva 0:df49b3ed3502 37 break;
loopsva 0:df49b3ed3502 38 #endif
loopsva 0:df49b3ed3502 39 #ifdef I2C_0x0A
loopsva 0:df49b3ed3502 40 case 0x0A:
loopsva 0:df49b3ed3502 41 pc.printf("%s\r\n", I2C_0x0A);
loopsva 0:df49b3ed3502 42 break;
loopsva 0:df49b3ed3502 43 #endif
loopsva 0:df49b3ed3502 44 #ifdef I2C_0x0C
loopsva 0:df49b3ed3502 45 case 0x0C:
loopsva 0:df49b3ed3502 46 pc.printf("%s\r\n", I2C_0x0C);
loopsva 0:df49b3ed3502 47 break;
loopsva 0:df49b3ed3502 48 #endif
loopsva 0:df49b3ed3502 49 #ifdef I2C_0x0E
loopsva 0:df49b3ed3502 50 case 0x0E:
loopsva 0:df49b3ed3502 51 pc.printf("%s\r\n", I2C_0x0E);
loopsva 0:df49b3ed3502 52 break;
loopsva 0:df49b3ed3502 53 #endif
loopsva 0:df49b3ed3502 54 //----------------------------------------
loopsva 0:df49b3ed3502 55 #ifdef I2C_0x10
loopsva 0:df49b3ed3502 56 case 0x10:
loopsva 0:df49b3ed3502 57 pc.printf("%s\r\n", I2C_0x10);
loopsva 0:df49b3ed3502 58 break;
loopsva 0:df49b3ed3502 59 #endif
loopsva 0:df49b3ed3502 60 #ifdef I2C_0x12
loopsva 0:df49b3ed3502 61 case 0x12:
loopsva 0:df49b3ed3502 62 pc.printf("%s\r\n", I2C_0x12);
loopsva 0:df49b3ed3502 63 break;
loopsva 0:df49b3ed3502 64 #endif
loopsva 0:df49b3ed3502 65 #ifdef I2C_0x14
loopsva 0:df49b3ed3502 66 case 0x14:
loopsva 0:df49b3ed3502 67 pc.printf("%s\r\n", I2C_0x14);
loopsva 0:df49b3ed3502 68 break;
loopsva 0:df49b3ed3502 69 #endif
loopsva 0:df49b3ed3502 70 #ifdef I2C_0x16
loopsva 0:df49b3ed3502 71 case 0x16:
loopsva 0:df49b3ed3502 72 pc.printf("%s\r\n", I2C_0x16);
loopsva 0:df49b3ed3502 73 break;
loopsva 0:df49b3ed3502 74 #endif
loopsva 0:df49b3ed3502 75 #ifdef I2C_0x18
loopsva 0:df49b3ed3502 76 case 0x18:
loopsva 0:df49b3ed3502 77 pc.printf("%s\r\n", I2C_0x18);
loopsva 0:df49b3ed3502 78 break;
loopsva 0:df49b3ed3502 79 #endif
loopsva 0:df49b3ed3502 80 #ifdef I2C_0x1A
loopsva 0:df49b3ed3502 81 case 0x1A:
loopsva 0:df49b3ed3502 82 pc.printf("%s\r\n", I2C_0x1A);
loopsva 0:df49b3ed3502 83 break;
loopsva 0:df49b3ed3502 84 #endif
loopsva 0:df49b3ed3502 85 #ifdef I2C_0x1C
loopsva 0:df49b3ed3502 86 case 0x1C:
loopsva 0:df49b3ed3502 87 pc.printf("%s\r\n", I2C_0x1C);
loopsva 0:df49b3ed3502 88 break;
loopsva 0:df49b3ed3502 89 #endif
loopsva 0:df49b3ed3502 90 #ifdef I2C_0x1E
loopsva 0:df49b3ed3502 91 case 0x1E:
loopsva 0:df49b3ed3502 92 pc.printf("%s\r\n", I2C_0x1E);
loopsva 0:df49b3ed3502 93 break;
loopsva 0:df49b3ed3502 94 #endif
loopsva 0:df49b3ed3502 95 //----------------------------------------
loopsva 0:df49b3ed3502 96 #ifdef I2C_0x20
loopsva 0:df49b3ed3502 97 case 0x20:
loopsva 0:df49b3ed3502 98 pc.printf("%s\r\n", I2C_0x20);
loopsva 0:df49b3ed3502 99 i2cFlags.VEML60xx_ok = true;
loopsva 0:df49b3ed3502 100 break;
loopsva 0:df49b3ed3502 101 #endif
loopsva 0:df49b3ed3502 102 #ifdef I2C_0x22
loopsva 0:df49b3ed3502 103 case 0x22:
loopsva 0:df49b3ed3502 104 pc.printf("%s\r\n", I2C_0x22);
loopsva 0:df49b3ed3502 105 break;
loopsva 0:df49b3ed3502 106 #endif
loopsva 0:df49b3ed3502 107 #ifdef I2C_0x24
loopsva 0:df49b3ed3502 108 case 0x24:
loopsva 0:df49b3ed3502 109 pc.printf("%s\r\n", I2C_0x24);
loopsva 0:df49b3ed3502 110 break;
loopsva 0:df49b3ed3502 111 #endif
loopsva 0:df49b3ed3502 112 #ifdef I2C_0x26
loopsva 0:df49b3ed3502 113 case 0x26:
loopsva 0:df49b3ed3502 114 pc.printf("%s\r\n", I2C_0x26);
loopsva 0:df49b3ed3502 115 break;
loopsva 0:df49b3ed3502 116 #endif
loopsva 0:df49b3ed3502 117 #ifdef I2C_0x28
loopsva 0:df49b3ed3502 118 case 0x28:
loopsva 0:df49b3ed3502 119 pc.printf("%s\r\n", I2C_0x28);
loopsva 0:df49b3ed3502 120 break;
loopsva 0:df49b3ed3502 121 #endif
loopsva 0:df49b3ed3502 122 #ifdef I2C_0x2A
loopsva 0:df49b3ed3502 123 case 0x2A:
loopsva 0:df49b3ed3502 124 pc.printf("%s\r\n", I2C_0x2A);
loopsva 0:df49b3ed3502 125 break;
loopsva 0:df49b3ed3502 126 #endif
loopsva 0:df49b3ed3502 127 #ifdef I2C_0x2C
loopsva 0:df49b3ed3502 128 case 0x2C:
loopsva 0:df49b3ed3502 129 pc.printf("%s\r\n", I2C_0x2C);
loopsva 0:df49b3ed3502 130 break;
loopsva 0:df49b3ed3502 131 #endif
loopsva 0:df49b3ed3502 132 #ifdef I2C_0x2E
loopsva 0:df49b3ed3502 133 case 0x2E:
loopsva 0:df49b3ed3502 134 pc.printf("%s\r\n", I2C_0x2E);
loopsva 0:df49b3ed3502 135 break;
loopsva 0:df49b3ed3502 136 #endif
loopsva 0:df49b3ed3502 137 //----------------------------------------
loopsva 0:df49b3ed3502 138 #ifdef I2C_0x30
loopsva 0:df49b3ed3502 139 case 0x30:
loopsva 0:df49b3ed3502 140 pc.printf("%s\r\n", I2C_0x30);
loopsva 0:df49b3ed3502 141 break;
loopsva 0:df49b3ed3502 142 #endif
loopsva 0:df49b3ed3502 143 #ifdef I2C_0x32
loopsva 0:df49b3ed3502 144 case 0x32:
loopsva 0:df49b3ed3502 145 pc.printf("%s\r\n", I2C_0x32);
loopsva 0:df49b3ed3502 146 break;
loopsva 0:df49b3ed3502 147 #endif
loopsva 0:df49b3ed3502 148 #ifdef I2C_0x34
loopsva 0:df49b3ed3502 149 case 0x34:
loopsva 0:df49b3ed3502 150 pc.printf("%s\r\n", I2C_0x34);
loopsva 0:df49b3ed3502 151 break;
loopsva 0:df49b3ed3502 152 #endif
loopsva 0:df49b3ed3502 153 #ifdef I2C_0x36
loopsva 0:df49b3ed3502 154 case 0x36:
loopsva 0:df49b3ed3502 155 pc.printf("%s\r\n", I2C_0x36);
loopsva 0:df49b3ed3502 156 break;
loopsva 0:df49b3ed3502 157 #endif
loopsva 0:df49b3ed3502 158 #ifdef I2C_0x38
loopsva 0:df49b3ed3502 159 case 0x38:
loopsva 0:df49b3ed3502 160 pc.printf("%s\r\n", I2C_0x38);
loopsva 0:df49b3ed3502 161 i2cFlags.mma8451cs1_ok = true;
loopsva 0:df49b3ed3502 162 //fxos8700_ok = true;
loopsva 0:df49b3ed3502 163 break;
loopsva 0:df49b3ed3502 164 #endif
loopsva 0:df49b3ed3502 165 #ifdef I2C_0x3A
loopsva 0:df49b3ed3502 166 case 0x3A:
loopsva 0:df49b3ed3502 167 pc.printf("%s\r\n", I2C_0x3A);
loopsva 0:df49b3ed3502 168 //fxos8700_ok = true;
loopsva 0:df49b3ed3502 169 break;
loopsva 0:df49b3ed3502 170 #endif
loopsva 0:df49b3ed3502 171 #ifdef I2C_0x3C
loopsva 0:df49b3ed3502 172 case 0x3C:
loopsva 0:df49b3ed3502 173 pc.printf("%s\r\n", I2C_0x3C);
loopsva 0:df49b3ed3502 174 //fxos8700_ok = true;
loopsva 0:df49b3ed3502 175 break;
loopsva 0:df49b3ed3502 176 #endif
loopsva 0:df49b3ed3502 177 #ifdef I2C_0x3E
loopsva 0:df49b3ed3502 178 case 0x3E:
loopsva 0:df49b3ed3502 179 pc.printf("%s\r\n", I2C_0x3E);
loopsva 0:df49b3ed3502 180 //fxos8700_ok = true;
loopsva 0:df49b3ed3502 181 break;
loopsva 0:df49b3ed3502 182 #endif
loopsva 0:df49b3ed3502 183 //----------------------------------------
loopsva 0:df49b3ed3502 184 #ifdef I2C_0x40
loopsva 0:df49b3ed3502 185 case 0x40:
loopsva 0:df49b3ed3502 186 pc.printf("%s\r\n", I2C_0x40);
loopsva 0:df49b3ed3502 187 break;
loopsva 0:df49b3ed3502 188 #endif
loopsva 0:df49b3ed3502 189 #ifdef I2C_0x42
loopsva 0:df49b3ed3502 190 case 0x42:
loopsva 0:df49b3ed3502 191 pc.printf("%s\r\n", I2C_0x42);
loopsva 0:df49b3ed3502 192 break;
loopsva 0:df49b3ed3502 193 #endif
loopsva 0:df49b3ed3502 194 #ifdef I2C_0x44
loopsva 0:df49b3ed3502 195 case 0x44:
loopsva 0:df49b3ed3502 196 pc.printf("%s\r\n", I2C_0x44);
loopsva 0:df49b3ed3502 197 break;
loopsva 0:df49b3ed3502 198 #endif
loopsva 0:df49b3ed3502 199 #ifdef I2C_0x46
loopsva 0:df49b3ed3502 200 case 0x46:
loopsva 0:df49b3ed3502 201 pc.printf("%s\r\n", I2C_0x46);
loopsva 0:df49b3ed3502 202 break;
loopsva 0:df49b3ed3502 203 #endif
loopsva 0:df49b3ed3502 204 #ifdef I2C_0x48
loopsva 0:df49b3ed3502 205 case 0x48:
loopsva 0:df49b3ed3502 206 pc.printf("%s\r\n", I2C_0x48);
loopsva 0:df49b3ed3502 207 break;
loopsva 0:df49b3ed3502 208 #endif
loopsva 0:df49b3ed3502 209 #ifdef I2C_0x4A
loopsva 0:df49b3ed3502 210 case 0x4A:
loopsva 0:df49b3ed3502 211 pc.printf("%s\r\n", I2C_0x4A);
loopsva 0:df49b3ed3502 212 break;
loopsva 0:df49b3ed3502 213 #endif
loopsva 0:df49b3ed3502 214 #ifdef I2C_0x4C
loopsva 0:df49b3ed3502 215 case 0x4C:
loopsva 0:df49b3ed3502 216 pc.printf("%s\r\n", I2C_0x4C);
loopsva 0:df49b3ed3502 217 break;
loopsva 0:df49b3ed3502 218 #endif
loopsva 0:df49b3ed3502 219 #ifdef I2C_0x4E
loopsva 0:df49b3ed3502 220 case 0x4E:
loopsva 0:df49b3ed3502 221 pc.printf("%s\r\n", I2C_0x4E);
loopsva 0:df49b3ed3502 222 break;
loopsva 0:df49b3ed3502 223 #endif
loopsva 0:df49b3ed3502 224 //----------------------------------------
loopsva 0:df49b3ed3502 225 #ifdef I2C_0x50
loopsva 0:df49b3ed3502 226 case 0x50:
loopsva 0:df49b3ed3502 227 pc.printf("%s\r\n", I2C_0x50);
loopsva 0:df49b3ed3502 228 break;
loopsva 0:df49b3ed3502 229 #endif
loopsva 0:df49b3ed3502 230 #ifdef I2C_0x52
loopsva 0:df49b3ed3502 231 case 0x52:
loopsva 0:df49b3ed3502 232 pc.printf("%s\r\n", I2C_0x52);
loopsva 0:df49b3ed3502 233 break;
loopsva 0:df49b3ed3502 234 #endif
loopsva 0:df49b3ed3502 235 #ifdef I2C_0x54
loopsva 0:df49b3ed3502 236 case 0x54:
loopsva 0:df49b3ed3502 237 pc.printf("%s\r\n", I2C_0x54);
loopsva 0:df49b3ed3502 238 break;
loopsva 0:df49b3ed3502 239 #endif
loopsva 0:df49b3ed3502 240 #ifdef I2C_0x56
loopsva 0:df49b3ed3502 241 case 0x56:
loopsva 0:df49b3ed3502 242 pc.printf("%s\r\n", I2C_0x56);
loopsva 0:df49b3ed3502 243 break;
loopsva 0:df49b3ed3502 244 #endif
loopsva 0:df49b3ed3502 245 #ifdef I2C_0x58
loopsva 0:df49b3ed3502 246 case 0x58:
loopsva 0:df49b3ed3502 247 pc.printf("%s\r\n", I2C_0x58);
loopsva 0:df49b3ed3502 248 break;
loopsva 0:df49b3ed3502 249 #endif
loopsva 0:df49b3ed3502 250 #ifdef I2C_0x5A
loopsva 0:df49b3ed3502 251 case 0x5A:
loopsva 0:df49b3ed3502 252 pc.printf("%s\r\n", I2C_0x5A);
loopsva 0:df49b3ed3502 253 break;
loopsva 0:df49b3ed3502 254 #endif
loopsva 0:df49b3ed3502 255 #ifdef I2C_0x5C
loopsva 0:df49b3ed3502 256 case 0x5C:
loopsva 0:df49b3ed3502 257 pc.printf("%s\r\n", I2C_0x5C);
loopsva 0:df49b3ed3502 258 break;
loopsva 0:df49b3ed3502 259 #endif
loopsva 0:df49b3ed3502 260 #ifdef I2C_0x5E
loopsva 0:df49b3ed3502 261 case 0x5E:
loopsva 0:df49b3ed3502 262 pc.printf("%s\r\n", I2C_0x5E);
loopsva 0:df49b3ed3502 263 break;
loopsva 0:df49b3ed3502 264 #endif
loopsva 0:df49b3ed3502 265 //----------------------------------------
loopsva 0:df49b3ed3502 266 #ifdef I2C_0x60
loopsva 0:df49b3ed3502 267 case 0x60:
loopsva 0:df49b3ed3502 268 pc.printf("%s\r\n", I2C_0x60);
loopsva 0:df49b3ed3502 269 break;
loopsva 0:df49b3ed3502 270 #endif
loopsva 0:df49b3ed3502 271 #ifdef I2C_0x62
loopsva 0:df49b3ed3502 272 case 0x62:
loopsva 0:df49b3ed3502 273 pc.printf("%s\r\n", I2C_0x62);
loopsva 0:df49b3ed3502 274 break;
loopsva 0:df49b3ed3502 275 #endif
loopsva 0:df49b3ed3502 276 #ifdef I2C_0x64
loopsva 0:df49b3ed3502 277 case 0x64:
loopsva 0:df49b3ed3502 278 pc.printf("%s\r\n", I2C_0x64);
loopsva 0:df49b3ed3502 279 break;
loopsva 0:df49b3ed3502 280 #endif
loopsva 0:df49b3ed3502 281 #ifdef I2C_0x66
loopsva 0:df49b3ed3502 282 case 0x66:
loopsva 0:df49b3ed3502 283 pc.printf("%s\r\n", I2C_0x66);
loopsva 0:df49b3ed3502 284 break;
loopsva 0:df49b3ed3502 285 #endif
loopsva 0:df49b3ed3502 286 #ifdef I2C_0x68
loopsva 0:df49b3ed3502 287 case 0x68:
loopsva 0:df49b3ed3502 288 pc.printf("%s\r\n", I2C_0x68);
loopsva 0:df49b3ed3502 289 break;
loopsva 0:df49b3ed3502 290 #endif
loopsva 0:df49b3ed3502 291 #ifdef I2C_0x6A
loopsva 0:df49b3ed3502 292 case 0x6A:
loopsva 0:df49b3ed3502 293 pc.printf("%s\r\n", I2C_0x6A);
loopsva 0:df49b3ed3502 294 break;
loopsva 0:df49b3ed3502 295 #endif
loopsva 0:df49b3ed3502 296 #ifdef I2C_0x6C
loopsva 0:df49b3ed3502 297 case 0x6C:
loopsva 0:df49b3ed3502 298 pc.printf("%s\r\n", I2C_0x6C);
loopsva 0:df49b3ed3502 299 break;
loopsva 0:df49b3ed3502 300 #endif
loopsva 0:df49b3ed3502 301 #ifdef I2C_0x6E
loopsva 0:df49b3ed3502 302 case 0x6E:
loopsva 0:df49b3ed3502 303 pc.printf("%s\r\n", I2C_0x6E);
loopsva 0:df49b3ed3502 304 break;
loopsva 0:df49b3ed3502 305 #endif
loopsva 0:df49b3ed3502 306 //----------------------------------------
loopsva 0:df49b3ed3502 307 #ifdef I2C_0x70
loopsva 0:df49b3ed3502 308 case 0x70:
loopsva 0:df49b3ed3502 309 pc.printf("%s\r\n", I2C_0x70);
loopsva 0:df49b3ed3502 310 i2cFlags.VEML6070_ok = true;
loopsva 0:df49b3ed3502 311 break;
loopsva 0:df49b3ed3502 312 #endif
loopsva 0:df49b3ed3502 313 #ifdef I2C_0x72
loopsva 0:df49b3ed3502 314 case 0x72:
loopsva 0:df49b3ed3502 315 pc.printf("%s\r\n", I2C_0x72);
loopsva 0:df49b3ed3502 316 break;
loopsva 0:df49b3ed3502 317 #endif
loopsva 0:df49b3ed3502 318 #ifdef I2C_0x74
loopsva 0:df49b3ed3502 319 case 0x74:
loopsva 0:df49b3ed3502 320 pc.printf("%s\r\n", I2C_0x74);
loopsva 0:df49b3ed3502 321 break;
loopsva 0:df49b3ed3502 322 #endif
loopsva 0:df49b3ed3502 323 #ifdef I2C_0x76
loopsva 0:df49b3ed3502 324 case 0x76:
loopsva 0:df49b3ed3502 325 pc.printf("%s\r\n", I2C_0x76);
loopsva 0:df49b3ed3502 326 break;
loopsva 0:df49b3ed3502 327 #endif
loopsva 0:df49b3ed3502 328 #ifdef I2C_0x78
loopsva 0:df49b3ed3502 329 case 0x78:
loopsva 0:df49b3ed3502 330 pc.printf("%s\r\n", I2C_0x78);
loopsva 0:df49b3ed3502 331 break;
loopsva 0:df49b3ed3502 332 #endif
loopsva 0:df49b3ed3502 333 #ifdef I2C_0x7A
loopsva 0:df49b3ed3502 334 case 0x7A:
loopsva 0:df49b3ed3502 335 pc.printf("%s\r\n", I2C_0x7A);
loopsva 0:df49b3ed3502 336 break;
loopsva 0:df49b3ed3502 337 #endif
loopsva 0:df49b3ed3502 338 #ifdef I2C_0x7C
loopsva 0:df49b3ed3502 339 case 0x7C:
loopsva 0:df49b3ed3502 340 pc.printf("%s\r\n", I2C_0x7C);
loopsva 0:df49b3ed3502 341 break;
loopsva 0:df49b3ed3502 342 #endif
loopsva 0:df49b3ed3502 343 #ifdef I2C_0x7E
loopsva 0:df49b3ed3502 344 case 0x7E:
loopsva 0:df49b3ed3502 345 pc.printf("%s\r\n", I2C_0x7E);
loopsva 0:df49b3ed3502 346 break;
loopsva 0:df49b3ed3502 347 #endif
loopsva 0:df49b3ed3502 348 //----------------------------------------
loopsva 0:df49b3ed3502 349 #ifdef I2C_0x80
loopsva 0:df49b3ed3502 350 case 0x80:
loopsva 0:df49b3ed3502 351 pc.printf("%s\r\n", I2C_0x80);
loopsva 0:df49b3ed3502 352 i2cFlags.HTU21D_ok = true;
loopsva 0:df49b3ed3502 353 i2cFlags.INA219_MAX7300_gg_ok = true;
loopsva 0:df49b3ed3502 354 i2cFlags.INA230_MAX7300_gg_ok = true;
loopsva 0:df49b3ed3502 355 break;
loopsva 0:df49b3ed3502 356 #endif
loopsva 0:df49b3ed3502 357 #ifdef I2C_0x82
loopsva 0:df49b3ed3502 358 case 0x82:
loopsva 0:df49b3ed3502 359 pc.printf("%s\r\n", I2C_0x82);
loopsva 0:df49b3ed3502 360 break;
loopsva 0:df49b3ed3502 361 #endif
loopsva 0:df49b3ed3502 362 #ifdef I2C_0x84
loopsva 0:df49b3ed3502 363 case 0x84:
loopsva 0:df49b3ed3502 364 pc.printf("%s\r\n", I2C_0x84);
loopsva 0:df49b3ed3502 365 break;
loopsva 0:df49b3ed3502 366 #endif
loopsva 0:df49b3ed3502 367 #ifdef I2C_0x86
loopsva 0:df49b3ed3502 368 case 0x86:
loopsva 0:df49b3ed3502 369 pc.printf("%s\r\n", I2C_0x86);
loopsva 0:df49b3ed3502 370 break;
loopsva 0:df49b3ed3502 371 #endif
loopsva 0:df49b3ed3502 372 #ifdef I2C_0x88
loopsva 0:df49b3ed3502 373 case 0x88:
loopsva 0:df49b3ed3502 374 pc.printf("%s\r\n", I2C_0x88);
loopsva 0:df49b3ed3502 375 break;
loopsva 0:df49b3ed3502 376 #endif
loopsva 0:df49b3ed3502 377 #ifdef I2C_0x8A
loopsva 0:df49b3ed3502 378 case 0x8A:
loopsva 0:df49b3ed3502 379 pc.printf("%s\r\n", I2C_0x8A);
loopsva 0:df49b3ed3502 380 break;
loopsva 0:df49b3ed3502 381 #endif
loopsva 0:df49b3ed3502 382 #ifdef I2C_0x8C
loopsva 0:df49b3ed3502 383 case 0x8C:
loopsva 0:df49b3ed3502 384 pc.printf("%s\r\n", I2C_0x8C);
loopsva 0:df49b3ed3502 385 break;
loopsva 0:df49b3ed3502 386 #endif
loopsva 0:df49b3ed3502 387 #ifdef I2C_0x8E
loopsva 0:df49b3ed3502 388 case 0x8E:
loopsva 0:df49b3ed3502 389 pc.printf("%s\r\n", I2C_0x8E);
loopsva 0:df49b3ed3502 390 break;
loopsva 0:df49b3ed3502 391 #endif
loopsva 0:df49b3ed3502 392 //----------------------------------------
loopsva 0:df49b3ed3502 393 #ifdef I2C_0x90
loopsva 0:df49b3ed3502 394 case 0x90:
loopsva 0:df49b3ed3502 395 pc.printf("%s\r\n", I2C_0x90);
loopsva 0:df49b3ed3502 396 break;
loopsva 0:df49b3ed3502 397 #endif
loopsva 0:df49b3ed3502 398 #ifdef I2C_0x92
loopsva 0:df49b3ed3502 399 case 0x92:
loopsva 0:df49b3ed3502 400 pc.printf("%s\r\n", I2C_0x92);
loopsva 0:df49b3ed3502 401 break;
loopsva 0:df49b3ed3502 402 #endif
loopsva 0:df49b3ed3502 403 #ifdef I2C_0x94
loopsva 0:df49b3ed3502 404 case 0x94:
loopsva 0:df49b3ed3502 405 pc.printf("%s\r\n", I2C_0x94);
loopsva 0:df49b3ed3502 406 break;
loopsva 0:df49b3ed3502 407 #endif
loopsva 0:df49b3ed3502 408 #ifdef I2C_0x96
loopsva 0:df49b3ed3502 409 case 0x96:
loopsva 0:df49b3ed3502 410 pc.printf("%s\r\n", I2C_0x96);
loopsva 0:df49b3ed3502 411 break;
loopsva 0:df49b3ed3502 412 #endif
loopsva 0:df49b3ed3502 413 #ifdef I2C_0x98
loopsva 0:df49b3ed3502 414 case 0x98:
loopsva 0:df49b3ed3502 415 pc.printf("%s\r\n", I2C_0x98);
loopsva 0:df49b3ed3502 416 break;
loopsva 0:df49b3ed3502 417 #endif
loopsva 0:df49b3ed3502 418 #ifdef I2C_0x9A
loopsva 0:df49b3ed3502 419 case 0x9A:
loopsva 0:df49b3ed3502 420 pc.printf("%s\r\n", I2C_0x9A);
loopsva 0:df49b3ed3502 421 break;
loopsva 0:df49b3ed3502 422 #endif
loopsva 0:df49b3ed3502 423 #ifdef I2C_0x9C
loopsva 0:df49b3ed3502 424 case 0x9C:
loopsva 0:df49b3ed3502 425 pc.printf("%s\r\n", I2C_0x9C);
loopsva 0:df49b3ed3502 426 break;
loopsva 0:df49b3ed3502 427 #endif
loopsva 0:df49b3ed3502 428 #ifdef I2C_0x9E
loopsva 0:df49b3ed3502 429 case 0x9E:
loopsva 0:df49b3ed3502 430 pc.printf("%s\r\n", I2C_0x9E);
loopsva 0:df49b3ed3502 431 break;
loopsva 0:df49b3ed3502 432 #endif
loopsva 0:df49b3ed3502 433 //----------------------------------------
loopsva 0:df49b3ed3502 434 #ifdef I2C_0xA0
loopsva 0:df49b3ed3502 435 case 0xA0:
loopsva 0:df49b3ed3502 436 pc.printf("%s\r\n", I2C_0xA0);
loopsva 0:df49b3ed3502 437 i2cFlags.eeprom000_ok = true;
loopsva 0:df49b3ed3502 438 break;
loopsva 0:df49b3ed3502 439 #endif
loopsva 0:df49b3ed3502 440 #ifdef I2C_0xA2
loopsva 0:df49b3ed3502 441 case 0xA2:
loopsva 0:df49b3ed3502 442 pc.printf("%s\r\n", I2C_0xA2);
loopsva 0:df49b3ed3502 443 break;
loopsva 0:df49b3ed3502 444 #endif
loopsva 0:df49b3ed3502 445 #ifdef I2C_0xA4
loopsva 0:df49b3ed3502 446 case 0xA4:
loopsva 0:df49b3ed3502 447 pc.printf("%s\r\n", I2C_0xA4);
loopsva 0:df49b3ed3502 448 break;
loopsva 0:df49b3ed3502 449 #endif
loopsva 0:df49b3ed3502 450 #ifdef I2C_0xA6
loopsva 0:df49b3ed3502 451 case 0xA6:
loopsva 0:df49b3ed3502 452 pc.printf("%s\r\n", I2C_0xA6);
loopsva 0:df49b3ed3502 453 break;
loopsva 0:df49b3ed3502 454 #endif
loopsva 0:df49b3ed3502 455 #ifdef I2C_0xA8
loopsva 0:df49b3ed3502 456 case 0xA8:
loopsva 0:df49b3ed3502 457 pc.printf("%s\r\n", I2C_0xA8);
loopsva 0:df49b3ed3502 458 break;
loopsva 0:df49b3ed3502 459 #endif
loopsva 0:df49b3ed3502 460 #ifdef I2C_0xAA
loopsva 0:df49b3ed3502 461 case 0xAA:
loopsva 0:df49b3ed3502 462 pc.printf("%s\r\n", I2C_0xAA);
loopsva 0:df49b3ed3502 463 i2cFlags.bq27210_ok = true;
loopsva 0:df49b3ed3502 464 break;
loopsva 0:df49b3ed3502 465 #endif
loopsva 0:df49b3ed3502 466 #ifdef I2C_0xAC
loopsva 0:df49b3ed3502 467 case 0xAC:
loopsva 0:df49b3ed3502 468 pc.printf("%s\r\n", I2C_0xAC);
loopsva 0:df49b3ed3502 469 break;
loopsva 0:df49b3ed3502 470 #endif
loopsva 0:df49b3ed3502 471 #ifdef I2C_0xAE
loopsva 0:df49b3ed3502 472 case 0xAE:
loopsva 0:df49b3ed3502 473 pc.printf("%s\r\n", I2C_0xAE);
loopsva 0:df49b3ed3502 474 break;
loopsva 0:df49b3ed3502 475 #endif
loopsva 0:df49b3ed3502 476 //----------------------------------------
loopsva 0:df49b3ed3502 477 #ifdef I2C_0xB0
loopsva 0:df49b3ed3502 478 case 0xB0:
loopsva 0:df49b3ed3502 479 pc.printf("%s\r\n", I2C_0xB0);
loopsva 0:df49b3ed3502 480 break;
loopsva 0:df49b3ed3502 481 #endif
loopsva 0:df49b3ed3502 482 #ifdef I2C_0xB2
loopsva 0:df49b3ed3502 483 case 0xB2:
loopsva 0:df49b3ed3502 484 pc.printf("%s\r\n", I2C_0xB2);
loopsva 0:df49b3ed3502 485 break;
loopsva 0:df49b3ed3502 486 #endif
loopsva 0:df49b3ed3502 487 #ifdef I2C_0xB4
loopsva 0:df49b3ed3502 488 case 0xB4:
loopsva 0:df49b3ed3502 489 pc.printf("%s\r\n", I2C_0xB4);
loopsva 0:df49b3ed3502 490 i2cFlags.ccs811_0_ok = true;
loopsva 0:df49b3ed3502 491 break;
loopsva 0:df49b3ed3502 492 #endif
loopsva 0:df49b3ed3502 493 #ifdef I2C_0xB6
loopsva 0:df49b3ed3502 494 case 0xB6:
loopsva 0:df49b3ed3502 495 pc.printf("%s\r\n", I2C_0xB6);
loopsva 0:df49b3ed3502 496 i2cFlags.ccs811_1_ok = true;
loopsva 0:df49b3ed3502 497 break;
loopsva 0:df49b3ed3502 498 #endif
loopsva 0:df49b3ed3502 499 #ifdef I2C_0xB8
loopsva 0:df49b3ed3502 500 case 0xB8:
loopsva 0:df49b3ed3502 501 pc.printf("%s\r\n", I2C_0xB8);
loopsva 0:df49b3ed3502 502 break;
loopsva 0:df49b3ed3502 503 #endif
loopsva 0:df49b3ed3502 504 #ifdef I2C_0xBA
loopsva 0:df49b3ed3502 505 case 0xBA:
loopsva 0:df49b3ed3502 506 pc.printf("%s\r\n", I2C_0xBA);
loopsva 0:df49b3ed3502 507 break;
loopsva 0:df49b3ed3502 508 #endif
loopsva 0:df49b3ed3502 509 #ifdef I2C_0xBC
loopsva 0:df49b3ed3502 510 case 0xBC:
loopsva 0:df49b3ed3502 511 pc.printf("%s\r\n", I2C_0xBC);
loopsva 0:df49b3ed3502 512 break;
loopsva 0:df49b3ed3502 513 #endif
loopsva 0:df49b3ed3502 514 #ifdef I2C_0xBE
loopsva 0:df49b3ed3502 515 case 0xBE:
loopsva 0:df49b3ed3502 516 pc.printf("%s\r\n", I2C_0xBE);
loopsva 0:df49b3ed3502 517 break;
loopsva 0:df49b3ed3502 518 #endif
loopsva 0:df49b3ed3502 519 //----------------------------------------
loopsva 0:df49b3ed3502 520 #ifdef I2C_0xC0
loopsva 0:df49b3ed3502 521 case 0xC0:
loopsva 0:df49b3ed3502 522 pc.printf("%s\r\n", I2C_0xC0);
loopsva 0:df49b3ed3502 523 i2cFlags.mlx90620_ok = true;
loopsva 0:df49b3ed3502 524 //i2cFlags.PCA9955_GGG_ok = true;
loopsva 0:df49b3ed3502 525 break;
loopsva 0:df49b3ed3502 526 #endif
loopsva 0:df49b3ed3502 527 #ifdef I2C_0xC2
loopsva 0:df49b3ed3502 528 case 0xC2:
loopsva 0:df49b3ed3502 529 pc.printf("%s\r\n", I2C_0xC2);
loopsva 0:df49b3ed3502 530 i2cFlags.SCD30_ok = true;
loopsva 0:df49b3ed3502 531 break;
loopsva 0:df49b3ed3502 532 #endif
loopsva 0:df49b3ed3502 533 #ifdef I2C_0xC4
loopsva 0:df49b3ed3502 534 case 0xC4:
loopsva 0:df49b3ed3502 535 pc.printf("%s\r\n", I2C_0xC4);
loopsva 0:df49b3ed3502 536 break;
loopsva 0:df49b3ed3502 537 #endif
loopsva 0:df49b3ed3502 538 #ifdef I2C_0xC6
loopsva 0:df49b3ed3502 539 case 0xC6:
loopsva 0:df49b3ed3502 540 pc.printf("%s\r\n", I2C_0xC6);
loopsva 0:df49b3ed3502 541 break;
loopsva 0:df49b3ed3502 542 #endif
loopsva 0:df49b3ed3502 543 #ifdef I2C_0xC8
loopsva 0:df49b3ed3502 544 case 0xC8:
loopsva 0:df49b3ed3502 545 pc.printf("%s\r\n", I2C_0xC8);
loopsva 0:df49b3ed3502 546 break;
loopsva 0:df49b3ed3502 547 #endif
loopsva 0:df49b3ed3502 548 #ifdef I2C_0xCA
loopsva 0:df49b3ed3502 549 case 0xCA:
loopsva 0:df49b3ed3502 550 pc.printf("%s\r\n", I2C_0xCA);
loopsva 0:df49b3ed3502 551 break;
loopsva 0:df49b3ed3502 552 #endif
loopsva 0:df49b3ed3502 553 #ifdef I2C_0xCC
loopsva 0:df49b3ed3502 554 case 0xCC:
loopsva 0:df49b3ed3502 555 pc.printf("%s\r\n", I2C_0xCC);
loopsva 0:df49b3ed3502 556 break;
loopsva 0:df49b3ed3502 557 #endif
loopsva 0:df49b3ed3502 558 #ifdef I2C_0xCE
loopsva 0:df49b3ed3502 559 case 0xCE:
loopsva 0:df49b3ed3502 560 pc.printf("%s\r\n", I2C_0xCE);
loopsva 0:df49b3ed3502 561 break;
loopsva 0:df49b3ed3502 562 #endif
loopsva 0:df49b3ed3502 563 //----------------------------------------
loopsva 0:df49b3ed3502 564 #ifdef I2C_0xD0
loopsva 0:df49b3ed3502 565 case 0xD0:
loopsva 0:df49b3ed3502 566 pc.printf("%s\r\n", I2C_0xD0);
loopsva 0:df49b3ed3502 567 i2cFlags.rtcDS_ok = true;
loopsva 0:df49b3ed3502 568 break;
loopsva 0:df49b3ed3502 569 #endif
loopsva 0:df49b3ed3502 570 #ifdef I2C_0xD2
loopsva 0:df49b3ed3502 571 case 0xD2:
loopsva 0:df49b3ed3502 572 pc.printf("%s\r\n", I2C_0xD2);
loopsva 0:df49b3ed3502 573 break;
loopsva 0:df49b3ed3502 574 #endif
loopsva 0:df49b3ed3502 575 #ifdef I2C_0xD4
loopsva 0:df49b3ed3502 576 case 0xD4:
loopsva 0:df49b3ed3502 577 pc.printf("%s\r\n", I2C_0xD4);
loopsva 0:df49b3ed3502 578 break;
loopsva 0:df49b3ed3502 579 #endif
loopsva 0:df49b3ed3502 580 #ifdef I2C_0xD6
loopsva 0:df49b3ed3502 581 case 0xD6:
loopsva 0:df49b3ed3502 582 pc.printf("%s\r\n", I2C_0xD6);
loopsva 0:df49b3ed3502 583 break;
loopsva 0:df49b3ed3502 584 #endif
loopsva 0:df49b3ed3502 585 #ifdef I2C_0xD8
loopsva 0:df49b3ed3502 586 case 0xD8:
loopsva 0:df49b3ed3502 587 pc.printf("%s\r\n", I2C_0xD8);
loopsva 0:df49b3ed3502 588 break;
loopsva 0:df49b3ed3502 589 #endif
loopsva 0:df49b3ed3502 590 #ifdef I2C_0xDA
loopsva 0:df49b3ed3502 591 case 0xDA:
loopsva 0:df49b3ed3502 592 pc.printf("%s\r\n", I2C_0xDA);
loopsva 0:df49b3ed3502 593 break;
loopsva 0:df49b3ed3502 594 #endif
loopsva 0:df49b3ed3502 595 #ifdef I2C_0xDC
loopsva 0:df49b3ed3502 596 case 0xDC:
loopsva 0:df49b3ed3502 597 pc.printf("%s\r\n", I2C_0xDC);
loopsva 0:df49b3ed3502 598 break;
loopsva 0:df49b3ed3502 599 #endif
loopsva 0:df49b3ed3502 600 #ifdef I2C_0xDE
loopsva 0:df49b3ed3502 601 case 0xDE:
loopsva 0:df49b3ed3502 602 pc.printf("%s\r\n", I2C_0xDE);
loopsva 0:df49b3ed3502 603 i2cFlags.mcp7941x_ok = true;
loopsva 0:df49b3ed3502 604 break;
loopsva 0:df49b3ed3502 605 #endif
loopsva 0:df49b3ed3502 606 //----------------------------------------
loopsva 0:df49b3ed3502 607 #ifdef I2C_0xE0
loopsva 0:df49b3ed3502 608 case 0xE0:
loopsva 0:df49b3ed3502 609 pc.printf("%s\r\n", I2C_0xE0);
loopsva 0:df49b3ed3502 610 break;
loopsva 0:df49b3ed3502 611 #endif
loopsva 0:df49b3ed3502 612 #ifdef I2C_0xE2
loopsva 0:df49b3ed3502 613 case 0xE2:
loopsva 0:df49b3ed3502 614 pc.printf("%s\r\n", I2C_0xE2);
loopsva 0:df49b3ed3502 615 break;
loopsva 0:df49b3ed3502 616 #endif
loopsva 0:df49b3ed3502 617 #ifdef I2C_0xE4
loopsva 0:df49b3ed3502 618 case 0xE4:
loopsva 0:df49b3ed3502 619 pc.printf("%s\r\n", I2C_0xE4);
loopsva 0:df49b3ed3502 620 break;
loopsva 0:df49b3ed3502 621 #endif
loopsva 0:df49b3ed3502 622 #ifdef I2C_0xE6
loopsva 0:df49b3ed3502 623 case 0xE6:
loopsva 0:df49b3ed3502 624 pc.printf("%s\r\n", I2C_0xE6);
loopsva 0:df49b3ed3502 625 break;
loopsva 0:df49b3ed3502 626 #endif
loopsva 0:df49b3ed3502 627 #ifdef I2C_0xE8
loopsva 0:df49b3ed3502 628 case 0xE8:
loopsva 0:df49b3ed3502 629 pc.printf("%s\r\n", I2C_0xE8);
loopsva 0:df49b3ed3502 630 break;
loopsva 0:df49b3ed3502 631 #endif
loopsva 0:df49b3ed3502 632 #ifdef I2C_0xEA
loopsva 0:df49b3ed3502 633 case 0xEA:
loopsva 0:df49b3ed3502 634 pc.printf("%s\r\n", I2C_0xEA);
loopsva 0:df49b3ed3502 635 break;
loopsva 0:df49b3ed3502 636 #endif
loopsva 0:df49b3ed3502 637 #ifdef I2C_0xEC
loopsva 0:df49b3ed3502 638 case 0xEC:
loopsva 0:df49b3ed3502 639 pc.printf("%s\r\n", I2C_0xEC);
loopsva 0:df49b3ed3502 640 i2cFlags.bme280_cs0_ok = true;
loopsva 0:df49b3ed3502 641 break;
loopsva 0:df49b3ed3502 642 #endif
loopsva 0:df49b3ed3502 643 #ifdef I2C_0xEE
loopsva 0:df49b3ed3502 644 case 0xEE:
loopsva 0:df49b3ed3502 645 pc.printf("%s\r\n", I2C_0xEE);
loopsva 0:df49b3ed3502 646 i2cFlags.ms5611_ok = true;
loopsva 0:df49b3ed3502 647 i2cFlags.bme280_cs1_ok = true;
loopsva 0:df49b3ed3502 648 break;
loopsva 0:df49b3ed3502 649 #endif
loopsva 0:df49b3ed3502 650 //----------------------------------------
loopsva 0:df49b3ed3502 651 #ifdef I2C_0xF0
loopsva 0:df49b3ed3502 652 case 0xF0:
loopsva 0:df49b3ed3502 653 pc.printf("%s\r\n", I2C_0xF0);
loopsva 0:df49b3ed3502 654 break;
loopsva 0:df49b3ed3502 655 #endif
loopsva 0:df49b3ed3502 656 #ifdef I2C_0xF2
loopsva 0:df49b3ed3502 657 case 0xF2:
loopsva 0:df49b3ed3502 658 pc.printf("%s\r\n", I2C_0xF2);
loopsva 0:df49b3ed3502 659 break;
loopsva 0:df49b3ed3502 660 #endif
loopsva 0:df49b3ed3502 661 #ifdef I2C_0xF4
loopsva 0:df49b3ed3502 662 case 0xF4:
loopsva 0:df49b3ed3502 663 pc.printf("%s\r\n", I2C_0xF4);
loopsva 0:df49b3ed3502 664 break;
loopsva 0:df49b3ed3502 665 #endif
loopsva 0:df49b3ed3502 666 #ifdef I2C_0xF6
loopsva 0:df49b3ed3502 667 case 0xF6:
loopsva 0:df49b3ed3502 668 pc.printf("%s\r\n", I2C_0xF6);
loopsva 0:df49b3ed3502 669 break;
loopsva 0:df49b3ed3502 670 #endif
loopsva 0:df49b3ed3502 671 #ifdef I2C_0xF8
loopsva 0:df49b3ed3502 672 case 0xF8:
loopsva 0:df49b3ed3502 673 pc.printf("%s\r\n", I2C_0xF8);
loopsva 0:df49b3ed3502 674 break;
loopsva 0:df49b3ed3502 675 #endif
loopsva 0:df49b3ed3502 676 #ifdef I2C_0xFA
loopsva 0:df49b3ed3502 677 case 0xFA:
loopsva 0:df49b3ed3502 678 pc.printf("%s\r\n", I2C_0xFA);
loopsva 0:df49b3ed3502 679 break;
loopsva 0:df49b3ed3502 680 #endif
loopsva 0:df49b3ed3502 681 #ifdef I2C_0xFC
loopsva 0:df49b3ed3502 682 case 0xFC:
loopsva 0:df49b3ed3502 683 pc.printf("%s\r\n", I2C_0xFC);
loopsva 0:df49b3ed3502 684 break;
loopsva 0:df49b3ed3502 685 #endif
loopsva 0:df49b3ed3502 686 #ifdef I2C_0xFE
loopsva 0:df49b3ed3502 687 case 0xFE:
loopsva 0:df49b3ed3502 688 pc.printf("%s\r\n", I2C_0xFE);
loopsva 0:df49b3ed3502 689 break;
loopsva 0:df49b3ed3502 690 #endif
loopsva 0:df49b3ed3502 691 //----------------------------------------
loopsva 0:df49b3ed3502 692 default:
loopsva 0:df49b3ed3502 693 pc.printf("%sunknown%s\r\n", DOMAGENTA, DONONE);
loopsva 0:df49b3ed3502 694 break;
loopsva 0:df49b3ed3502 695 }
loopsva 0:df49b3ed3502 696 return(0);
loopsva 0:df49b3ed3502 697 }
loopsva 0:df49b3ed3502 698
loopsva 0:df49b3ed3502 699 //------------------------------------------------------------------------------
loopsva 0:df49b3ed3502 700 // Clear I2C device flags
loopsva 0:df49b3ed3502 701
loopsva 0:df49b3ed3502 702 void i2c_discovery::clearFlags(i2cDeviceFlags& i2cFlags) {
loopsva 0:df49b3ed3502 703 i2cFlags.rtcDS_ok = false;
loopsva 0:df49b3ed3502 704 i2cFlags.ms5611_ok = false;
loopsva 0:df49b3ed3502 705 i2cFlags.bme280_cs0_ok = false;
loopsva 0:df49b3ed3502 706 i2cFlags.bme280_cs1_ok = false;
loopsva 0:df49b3ed3502 707 i2cFlags.mma8451cs1_ok = false;
loopsva 0:df49b3ed3502 708 i2cFlags.HTU21D_ok = false;
loopsva 0:df49b3ed3502 709 i2cFlags.PCA9955_GGG_ok = false;
loopsva 0:df49b3ed3502 710 i2cFlags.VEML60xx_ok = false;
loopsva 0:df49b3ed3502 711 i2cFlags.VEML6070_ok = false;
loopsva 0:df49b3ed3502 712 i2cFlags.eeprom000_ok = false;
loopsva 0:df49b3ed3502 713 i2cFlags.INA219_MAX7300_gg_ok = false;
loopsva 0:df49b3ed3502 714 i2cFlags.INA230_MAX7300_gg_ok = false;
loopsva 0:df49b3ed3502 715 i2cFlags.bq27210_ok = false;
loopsva 0:df49b3ed3502 716 i2cFlags.SCD30_ok = false;
loopsva 0:df49b3ed3502 717 i2cFlags.ccs811_0_ok = false;
loopsva 0:df49b3ed3502 718 i2cFlags.ccs811_1_ok = false;
loopsva 0:df49b3ed3502 719 i2cFlags.mcp7941x_ok = false;
loopsva 0:df49b3ed3502 720 }
loopsva 0:df49b3ed3502 721
loopsva 0:df49b3ed3502 722 //------------------------------------------------------------------------------
loopsva 0:df49b3ed3502 723 // Detect I2C device chain. If i2c chain > 1, return illegal number 255. Else,
loopsva 0:df49b3ed3502 724 // return the total number of i2c devices detected
loopsva 0:df49b3ed3502 725
loopsva 0:df49b3ed3502 726 int i2c_discovery::dispI2C(i2cDeviceFlags& i2cFlags) {
loopsva 0:df49b3ed3502 727 //i2c_discovery::clearFlags(i2cFlags);
loopsva 0:df49b3ed3502 728 int count = 0;
loopsva 0:df49b3ed3502 729 for (int address = 2; address < 256; address +=2) {
loopsva 0:df49b3ed3502 730 char xBuf[2] = { 0, 0 };
loopsva 0:df49b3ed3502 731 int x2c = _i2c.write(address, xBuf, 1, false);
loopsva 0:df49b3ed3502 732 if(x2c == 0) {
loopsva 0:df49b3ed3502 733 pc.printf(" - i2c device found at address 0x%02X %s", address, DOBLUE);
loopsva 0:df49b3ed3502 734 showI2C(i2cFlags, address);
loopsva 0:df49b3ed3502 735 pc.printf("%s", DONONE);
loopsva 0:df49b3ed3502 736 count++;
loopsva 0:df49b3ed3502 737 }
loopsva 0:df49b3ed3502 738 }
loopsva 0:df49b3ed3502 739 return(count);
loopsva 0:df49b3ed3502 740 }
loopsva 0:df49b3ed3502 741
loopsva 0:df49b3ed3502 742 //------------------------------------------------------------------------------
loopsva 0:df49b3ed3502 743 // Detect I2C device chain
loopsva 0:df49b3ed3502 744
loopsva 0:df49b3ed3502 745 int i2c_discovery::find_i2c(i2cDeviceFlags& i2cFlags) {
loopsva 0:df49b3ed3502 746 pc.printf("Searching for devices on i2c bus...\n");
loopsva 0:df49b3ed3502 747 int count = dispI2C(i2cFlags);
loopsva 0:df49b3ed3502 748 pc.printf(" - %s%2d%s device(s) found on i2c bus\n", DOBLUE, count, DONONE);
loopsva 0:df49b3ed3502 749 return(count);
loopsva 0:df49b3ed3502 750 }
loopsva 0:df49b3ed3502 751