I2C Adresa a INA3221

Odpovědět
Ondrahorak
Příspěvky: 2
Registrován: 30 čer 2020, 22:38
Reputation: 0

I2C Adresa a INA3221

Příspěvek od Ondrahorak » 30 čer 2020, 23:03

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

Ondrahorak
Příspěvky: 2
Registrován: 30 čer 2020, 22:38
Reputation: 0

Re: I2C Adresa a INA3221

Příspěvek od Ondrahorak » 30 čer 2020, 23:48

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 :(

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: I2C Adresa a INA3221

Příspěvek od ondraN » 01 črc 2020, 07:07

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:

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: I2C Adresa a INA3221

Příspěvek od kiRRow » 01 črc 2020, 12:13

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.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: I2C Adresa a INA3221

Příspěvek od pavel1tu » 01 črc 2020, 12:36

UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů