Dansk Elektronik Forum

Generel Elektronik => Arduino & Lign. => Emne startet af: Elfix efter Oktober 25, 2015, 19:18:43

Titel: I2C konflikt
Indlæg af: Elfix efter Oktober 25, 2015, 19:18:43
Hej forum
Så har jeg et nyt problem :-\ jeg har et Ic2 lcd display med adresse (03F) det køre fint
men når jeg så tilslutter min temp/tryk sensor bmp085 med adresse (077) som også køre fint alene så går det galt når de skal køre på samme SDA/SCL bus seriel monitor går i stå!!
Jeg ved ikke hvad der sker!!

Håber at der er nogen der kan hjælpe :)
Se evt. vedhæftet fil!

Mvh Jonny
Titel: Sv: I2C konflikt
Indlæg af: asm7100 efter Oktober 25, 2015, 23:26:31
Er der evt mere end et sæt pull up modstande?
Titel: Sv: I2C konflikt
Indlæg af: Elfix efter Oktober 26, 2015, 05:24:45
Hej Alan
Der er slet ikke nogen pull up modstand da jeg ikke er sikker på hvordan jeg skal gøre
da LCDet er 5v og bmp085 er 3.3v :(
Men jeg kan nu heller ikke se at det skulle værre problem at sætte 10k på 5v siden eller er det?

Mvh Jonny
Titel: Sv: I2C konflikt
Indlæg af: asm7100 efter Oktober 26, 2015, 08:26:17
Jeg ville nok bruge en level shifter til 3v3 fra de 5 5volt, og der skal altid være en en pull up på de to linier (4k7) burde kunne gøre det.

Er det arduino du bruger?
Titel: Sv: I2C konflikt
Indlæg af: Elfix efter Oktober 29, 2015, 23:03:10
Hej Alan
Undskyld at jeg ikke lige har svaret men der har været så meget :) Jo det er arduino
jeg har prøvet med pull up med det er det samme :( så jeg ved ikke hvad det skyltes!!

Mvh Jonny
Titel: Sv: I2C konflikt
Indlæg af: microtec efter Oktober 29, 2015, 23:26:19
I2C standarden siger at der skal være en 2,2k Ohm pull-up på både SDA og SCL.
Forbind pull-up modstandene til 3,3V, det er rigeligt til at 5V kredsen opfatter det som high. En level-shifter er unødvendig her.
Titel: Sv: I2C konflikt
Indlæg af: asm7100 efter Oktober 29, 2015, 23:41:17
Ja men displayet bruger 5v?
Det kunne give problemer.
Titel: Sv: I2C konflikt
Indlæg af: microtec efter Oktober 30, 2015, 16:02:24
Ja men displayet bruger 5v?
Det kunne give problemer.

Det vil aldrig kunne give problemer.
3.3V på indgangstrinnene af SDA og SCL er tilstrækkelig til at blive opfatte som "high", hvis man vel og mærke husker pull-up modstandene på 2,2k Ohm.
Titel: Sv: I2C konflikt
Indlæg af: Elfix efter Oktober 30, 2015, 18:05:35
Hej mictotec
Jeg vil prøve med to pull-up modstandene på 2k2 Ohm her i weekenden så skal i nok høre
fra mig!!
God weekend :)

Mvh Elfix/Jonny
Titel: Sv: I2C konflikt
Indlæg af: asm7100 efter Oktober 31, 2015, 00:49:55
Hvad med data tilbage SDA må da snakke tilbage??
Titel: Sv: I2C konflikt
Indlæg af: Elfix efter Oktober 31, 2015, 06:14:45
Hej Alan
Nej jeg for ikke noget tilbage!! som jeg tidligere skrev så går seriel monitor går i stå!! så snart
jeg tilslutter begge dele  :)

Mvh Elfix/Jonny
Titel: Sv: I2C konflikt
Indlæg af: asm7100 efter Oktober 31, 2015, 10:21:00
Ja men det kan skyldes manglende Pull ups, Men hvis dit Display drives af 5V vil jeg mene at SDA linien snakker tilbage med 5V og det er der ikke mange 3v3 enheder der kan klare.

Og scanner du f.eks efter hvilke enheder du har på din I2C linie, vil Displays chip jo melde tilbage via SDA linie hey jeg er her og har dette id.

Men jeg er ikke 100% sikker i min sag, men syntes det lyder logisk.

Jeg har et ESP-01 modul der skal max hae 3v3, så har jeg et TSL2561 og et BMP180 Modul tilkoblet.
På disse moduler var der pull up modstande og dem blev jeg nød til at fjerne på begge print, da jeg allerede på printet med ESP-01 modulet havde lavet disse pull up modstande.

Titel: Sv: I2C konflikt
Indlæg af: microtec efter Oktober 31, 2015, 18:52:29
Ja men det kan skyldes manglende Pull ups, Men hvis dit Display drives af 5V vil jeg mene at SDA linien snakker tilbage med 5V og det er der ikke mange 3v3 enheder der kan klare.

Nej det gør den ikke.
Udgangen er en open-drain, så spændingen kan aldrig blive højere end den forsyningsspænding pull-up modstanden er forbundet til.

Prøv at se det vedhæftede diagram, som viser hvordan det SDA og SCL er opbygget internt i en I2C-device.

Netop fordi der er tale om open-drain udgange, er det vigtigt at man husker pull-up modstandende, ellers er der ikke noget til at trække SDA og SCL high.
Titel: Sv: I2C konflikt
Indlæg af: asm7100 efter Oktober 31, 2015, 19:32:14
Takker, ja så lærte man lige noget nyt der :-)
Det vil sige at om en i2c device får 3v3 eller 5v betyder intet?
Men er din master device 3v3 skal der pull's up til ja selvsagt 3v3 og og en 5v device til 5v, hvad modulerne så ellers køre betyder intet, så længe de selvfølgelig ikke overstiger vcc max.
Er det korrekt?
Titel: Sv: I2C konflikt
Indlæg af: microtec efter Oktober 31, 2015, 19:58:27
Tror stadig ikke du er helt med.

Pull-up modstandene skal forbindes til den laveste forsyningsspænding for dine I2C devices, her er det 3,3V. Derved kommer SDA og SCL til at skifte mellem 0V (logisk "0") og 3,3V (logisk "1").
3,3V er højt nok til at en 5V device også vil opfatte signalet som logisk "1", så det vil fungere med både 3,3V og 5V devices på samme I2C-bus.

Forsyningsspændingen til 5V devicen er stadig 5V og 3,3V devicen forsynes naturligvis med 3,3V så den ikke ødelægges.
Titel: Sv: I2C konflikt
Indlæg af: asm7100 efter Oktober 31, 2015, 20:55:58
Jov var også sådan jeg havde forstået det :-)
Titel: Sv: I2C konflikt
Indlæg af: Elfix efter November 05, 2015, 22:09:24
Hej igen
Så fik jeg tid (efter nogle træfældninger) til at afprøve det med 2 2k2 ohm pull-up modstande men jeg kan stadigvæk ikke få det til virke :( men man må jo ikke give op
så jeg prøver at se på det igen her i weekenden :)

Mvh Elfix
Titel: Sv: I2C konflikt
Indlæg af: asm7100 efter November 05, 2015, 22:55:21
Lyder underligt, syntes aldrig jeg har problemer med det.
kan du ikke beskrive / tegne hvad du laver. Husk på at arduino har to ben til I2c
Titel: Sv: I2C konflikt
Indlæg af: Elfix efter Februar 23, 2016, 18:49:02
Hej Forum
Så har jeg løst I2c konflikten men spørg mig ikke hvordan!!  :( men nu virker det  :)
Men tak for hjælpen!
Mvh Elfix