Stránka 1 z 1

I2C Adresa a INA3221

Napsal: 30 čer 2020, 23:03
od Ondrahorak
Ahoj, jsem v Arduinu úplný nováček, tak mě prosím nesestřelte hned ze začátku :D Žádám vás o radu :)
Potřebuji na I2C sběrnici připojit 2x modul INA3221 na měření napětí a proudů.

Na modulu INA3221 jsou 4 piny, které ovládají adresu I2C od 0x40 do 0x43. Bohužel jsem opravdu úplně nový a ani z datasheetu (https://pdf1.alldatasheet.com/datasheet ... A3221.html) jsem nepochopil, jak jsem toho schopen dosáhnout. Používám Arduino UNO. Mohl bych někoho z Vás poprosit o radu jak mohu změnit na daném zařízení adresu.

Můj druhý dotaz je na program. Projel jsem knihovnu na ovládání I2C pro INA3221 (https://github.com/switchdoclabs/SDL_Arduino_INA3221) bohužel z ní také nejsem moc moudrý. Potřeboval bych poradit, jak jsem schopen následně v kódu rozlišit adresy.

Aktuálně vyčítám na jednom senzoru napětí následovně (Pro Channel 1,2 a 3):
Vinput = ina3221.getBusVoltage_V(1);
Vinput2 = ina3221.getBusVoltage_V(2);
Vinput3 = ina3221.getBusVoltage_V(3);

Bylo by možné mi prosím poradit, jak dále zadefinuji vyčítání pro další INU3221 na dalších adresách adresy? 0x41 a 0x42 ...

Byl bych Vám velice vděčný za případné rady.
S pozdravem, Ondra

Re: I2C Adresa a INA3221

Napsal: 30 čer 2020, 23:48
od Ondrahorak
Přečetl jsme si manuál ještě jednou a narazil jsem na odstavec:
To address a specific device, the master initiates a start condition by pulling SDA from a high to a low logic level
while SCL is high. All slaves on the bus shift in the slave address byte on the SCL rising edge, with the last bit
indicating whether a read or write operation is intended. During the ninth clock pulse, the slave being addressed
responds to the master by generating an acknowledge bit and pulling SDA low.

Data transfer is then initiated and eight bits of data are sent, followed by an acknowledge bit. During data
transfer, SDA must remain stable while SCL is high. Any change in SDA while SCL is high is interpreted as a
start or stop condition
Pokud to chápu dobře pro adresování pustím do SCL hodnotu HIGH
Spustím adresování hodnotou HIGH na SDA
Následně zadám adresu pomocí hodnot HIGH a LOW
Poté netuším co je acknowledge BIT :D

I tak jsem trošku na větvi z toho, jak to provedu :(

Re: I2C Adresa a INA3221

Napsal: 01 črc 2020, 07:07
od ondraN
Zkus si nejdříve přečíst pár článků o základech I2C komunikace (tam se dozvíš co je to ten ACK nebo NACK) a prostudovat si pár prográmků s reálnou aplikací. Pak zjistíš, že to není nic tak hrozně složitého. Ale v tomhle případě se to bez znalosti zásad komunikace neobejde :mrgreen:

Re: I2C Adresa a INA3221

Napsal: 01 črc 2020, 12:13
od kiRRow
Na nastaveni adresy je tam jen jeden pin A0. V datasheetu je tabulka a v ni uvidis, kam ten pin zapojit, aby to melo pozadovanou adresu.

Re: I2C Adresa a INA3221

Napsal: 01 črc 2020, 12:36
od pavel1tu