ATMEGA32+INA219+I2C

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

ATMEGA32+INA219+I2C

Príspevok od používateľa dan21 » 30 Mar 2018, 20:10

Zdravim,
mam zostavu : Atmega32+ina219(i2c)+Lcd(4-bit hd44780). Nejde mi komunikacia z ina219.
Vyskusal som senzor na aduine a vsetko slapalo, takze senzor je OK - adresa 0x40.
Na MCU mam na SDA a SCL pull-upy 4k7. I2C funguje pretoze mi ide druhy lcd cez toto rozhranie.
Pouzivam upravenu i2c kniznicu od petra fleuryho. Zavolam init a potom start s adresou 0x40.
Ale dostavam na deviatom bite NACK ako keby tam ziaden senzor nebol. Kontroloval som zapojenie asi 10 krat
a stale nic. Neviete kde by som mal hladat chybu ?
Diky
Prílohy
ina219.png
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: ATMEGA32+INA219+I2C

Príspevok od používateľa peterple » 30 Mar 2018, 20:21

Ja tam nič závadného nevidím. Ale možno by bolo lepšie to nabrať osciloskopom pozrieť hrany, prípadne nejaké skryté pulzy na CLK. Ak to s arduínom ide a s iným procesorom nie, tak by som porovnával oba priebehy a snažil a aby boli úplne rovnaké
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: ATMEGA32+INA219+I2C

Príspevok od používateľa dan21 » 30 Mar 2018, 20:30

Ono priebehy su rovnake, akurat ze pri starte (atmega) dostanem NACK a tym padom je vlastne senzor "nenajdeny" lebo neodpovedal.
Rozdiel je akurat v 9-tom bite. Z Arduina ide 0 (ACK) a z atmegy 1 (NACK).
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: ATMEGA32+INA219+I2C

Príspevok od používateľa peterple » 30 Mar 2018, 21:35

to ACK/NACK nejde z procesora. To ide z toho senzora. Procesor si to iba číta a podľa toho vie či slave je na zbernici alebo nie. Nejaká rozdielnosť tam byť musí. Napätia? časovanie? hrany? Zákmity na CLK? Tá knižnica to robí sw? alebo sa požíva TWI procesora?
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: ATMEGA32+INA219+I2C

Príspevok od používateľa dan21 » 30 Mar 2018, 21:52

Je mi jasne ze ACK/NACK posiela (nastavuje) receiver.
No sprava sa to ako keby tam ten senzor ani nebol. Skusal som menit frkvenciu I2C (100kHz - 400kHz) - nepomohlo. Stale vracia NACK.
Zmenil som adresu a rovnako nic.
Skusim este "rozobrat"ten arduino kod, ci tam nerobia nejaku prasarnu :-)
Nie som arduinista, tak sa opytam. Aka je default I2C frekvecia ak ju nikde nenastavim ?

[size=75][color=#999999]-- Spojený príspevok 30 Mar 2018, 21:31 --[/size][/color]

No zistil som ze arduino kod pouziva adresu 0x80 aj ked ma v *ina219.h definovane
#define INA219_ADDRESS (0x40)

s druhou adresou sa to rozbehlo !!!
uz to len nejako nakonfigurovat a citat hodnoty !!
Diky
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: ATMEGA32+INA219+I2C

Príspevok od používateľa jirka.jirka. » 30 Mar 2018, 22:34

Adresa je 7 bitová.

skutečná adresa toho senzoru je:
0x40 = 0b01000000

A u I2C musíš adresu šiftnout o 1 doleva, protože 0 bit určuje zápis/čtení z I2C.

Kód: Vybrať všetko

(0b01000000 << 1) = 0b10000000
A po posunu dostaneš 0b10000000 = 0x80.
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: ATMEGA32+INA219+I2C

Príspevok od používateľa dan21 » 30 Mar 2018, 22:46

pravda ! to som si neuvedomil !
Diky !!
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok