I2C přes wiringpi na RPI

cizek.milan na seznam.cz cizek.milan na seznam.cz
Sobota Březen 30 02:43:30 CET 2019


Ahoj,
chci se zeptat, jestli jste někdo neřešil na RPIčku komunikaci s více I2C
zařízeními (v mém případě 2xADC převodník).

Mám problém s tím, že když odpojím druhý převodník, je stále jakoby
detekován. (v i2cdetect není), ale wiringpi ho asi nějak vidí, resp.
inicializace nevrací -1.
Tady je výňatek...

int fd1 = wiringPiI2CSetup(0x48);
  printf("%d!\n", fd1);
  if (fd1 == -1) {
    printf("MCP3221 not found!\n");
    return EXIT_FAILURE;
  }

int fd2 = wiringPiI2CSetup(0x68);
printf("%d!\n", fd2);
  if (fd2 == -1) {
    printf("MCP3424 not found!\n");
    return EXIT_FAILURE;
  }

První volání vrátí 4. (adc připojen)
Druhé volání vrátí 5. (adc odpojen). Je to nějaký busy stav.
Hledal jsem, jestli není nutné i2c nějak uvolnit (close,fclose...), ale nic
moc jsem nenašel.
Čekal bych, že v případě odpojení senzoru dostanu -1, ale možná jsem to jen
blbě pochopil?

"The return value is the standard Linux filehandle, or -1 if any error - in
which case, you can consult errno as usual."

Milan



Další informace o konferenci Hw-list