I2C konflikt (Læst 9803x)

Offline Elfix

  • Spændingsdeler
  • ****
  • Indlæg: 64
  • Antal brugbare Indlæg: 1
  • Gammeldam
    • Vis profil
I2C konflikt
« Dato: 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
Alle opgaver løses kun umuligheder tager lidt længere tid

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: I2C konflikt
« Svar #1 Dato: Oktober 25, 2015, 23:26:31 »
Er der evt mere end et sæt pull up modstande?
MVH
Allan Madsen

 

Offline Elfix

  • Spændingsdeler
  • ****
  • Indlæg: 64
  • Antal brugbare Indlæg: 1
  • Gammeldam
    • Vis profil
Sv: I2C konflikt
« Svar #2 Dato: 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
Alle opgaver løses kun umuligheder tager lidt længere tid

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: I2C konflikt
« Svar #3 Dato: 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?
MVH
Allan Madsen

 

Offline Elfix

  • Spændingsdeler
  • ****
  • Indlæg: 64
  • Antal brugbare Indlæg: 1
  • Gammeldam
    • Vis profil
Sv: I2C konflikt
« Svar #4 Dato: 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
Alle opgaver løses kun umuligheder tager lidt længere tid

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: I2C konflikt
« Svar #5 Dato: 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.
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: I2C konflikt
« Svar #6 Dato: Oktober 29, 2015, 23:41:17 »
Ja men displayet bruger 5v?
Det kunne give problemer.
MVH
Allan Madsen

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: I2C konflikt
« Svar #7 Dato: 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.
« Senest Redigeret: Oktober 30, 2015, 16:07:23 af microtec »
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline Elfix

  • Spændingsdeler
  • ****
  • Indlæg: 64
  • Antal brugbare Indlæg: 1
  • Gammeldam
    • Vis profil
Sv: I2C konflikt
« Svar #8 Dato: 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
Alle opgaver løses kun umuligheder tager lidt længere tid

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: I2C konflikt
« Svar #9 Dato: Oktober 31, 2015, 00:49:55 »
Hvad med data tilbage SDA må da snakke tilbage??
MVH
Allan Madsen

 

Offline Elfix

  • Spændingsdeler
  • ****
  • Indlæg: 64
  • Antal brugbare Indlæg: 1
  • Gammeldam
    • Vis profil
Sv: I2C konflikt
« Svar #10 Dato: 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
Alle opgaver løses kun umuligheder tager lidt længere tid

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: I2C konflikt
« Svar #11 Dato: 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.

« Senest Redigeret: Oktober 31, 2015, 10:24:28 af asm7100 »
MVH
Allan Madsen

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: I2C konflikt
« Svar #12 Dato: 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.
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline asm7100

  • Højpas filter
  • *****
  • Indlæg: 309
  • Antal brugbare Indlæg: 17
  • Hvis det ikke kan gøres så gør det alligevel.
    • Vis profil
Sv: I2C konflikt
« Svar #13 Dato: 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?
MVH
Allan Madsen

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: I2C konflikt
« Svar #14 Dato: 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.
« Senest Redigeret: Oktober 31, 2015, 20:00:40 af microtec »
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk