Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
mk0388 Član


Pridružen-a: Čet 30 Okt 2008 21:52 Prispevkov: 161 Aktiv.: 0.80 Kraj: Celje
|
Objavljeno: Pet Jul 01, 2011 11:01 am Naslov sporočila: I2C |
|
|
Pozdravljeni!
Verjetno se je že kdo od vas srečal s I2C komunikacijo. Na spodnji sliki imam prikazan mikrokontroler in dve napravi, s katerima bi rad komunicairal. S posamezno napravo znam komunicirat, ampak nevem kako naj komuniciram z obema na istem vodilu. Bil bi hvaležen vsakega nasveta.
LP Mitja
Opis: |
|
 Download |
Ime datoteke: |
I2C.png |
Velikost datoteke: |
14.12 KB |
Downloadano: |
62 krat |
_________________ Victims - aren't we all... |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Pet Jul 01, 2011 11:03 am Naslov sporočila: |
|
|
Vsaka naprava na I2C mora imeti drugačen naslov, potem načeloma ni problemov.
_________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
mk0388 Član


Pridružen-a: Čet 30 Okt 2008 21:52 Prispevkov: 161 Aktiv.: 0.80 Kraj: Celje
|
Objavljeno: Pet Jul 01, 2011 11:08 am Naslov sporočila: |
|
|
Pozabil sem omenit da program pišem v CCS C compiler-ju. Nevem kako dobim oz. kako določim na katero napravo bom pisal/bral podatke.
_________________ Victims - aren't we all... |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Pet Jul 01, 2011 11:21 am Naslov sporočila: |
|
|
Prvi bajt, ki ga pošlješ na I2C je naslov naprave (slave address). Malo naštudiraj I2C protokol, ti bo takoj jasno...
_________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
mk0388 Član


Pridružen-a: Čet 30 Okt 2008 21:52 Prispevkov: 161 Aktiv.: 0.80 Kraj: Celje
|
Objavljeno: Čet Jul 14, 2011 6:56 pm Naslov sporočila: |
|
|
Pozdravljeni!
Vezava, ki sem jo priložil v prvi objavi ni izvedljiva.
LP Mitja
Opis: |
|
Velikost datoteke: |
21.61 KB |
Pogledana: |
2 krat |

|
_________________ Victims - aren't we all... |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Čet Jul 14, 2011 7:52 pm Naslov sporočila: |
|
|
mk0388 je napisal/a: |
Pozdravljeni!
Vezava, ki sem jo priložil v prvi objavi ni izvedljiva.
LP Mitja |
Če boš spisal lastne protokole je seveda izvedljiva. Nekoč sem uporabil za 1Wire ter I2C isti pin.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
. Neznanec

Pridružen-a: Pet 01 Okt 2004 1:17 Prispevkov: 1 Aktiv.: 0.00
|
Objavljeno: Pet Jul 15, 2011 6:51 am Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
|
|
Nazaj na vrh |
|
 |
logist Član

Pridružen-a: Pon 25 Jan 2010 1:12 Prispevkov: 126 Aktiv.: 0.67 Kraj: dom(o)vina
|
Objavljeno: Pet Dec 30, 2011 6:26 pm Naslov sporočila: |
|
|
Mene pa zanima zakaj mi PCF8574A in DS1307 nočeta skupaj delat. PCF8574A dela lepo naprej lučke prižiga, DS1307 pa noče.
Vezano pa ju imam kot je prikazano na sliki (pull-up upora sta 10k).
Hvala.
Opis: |
|
Velikost datoteke: |
17.06 KB |
Pogledana: |
11 krat |

|
_________________ Mihael |
|
Nazaj na vrh |
|
 |
David2204 Član


Pridružen-a: Pon 03 Nov 2008 0:01 Prispevkov: 997 Aktiv.: 4.93 Kraj: Ljubljana - Nova Gorica
|
Objavljeno: Pet Dec 30, 2011 7:02 pm Naslov sporočila: |
|
|
Poskusi zmanjšati upornost pullupov.
Več naprav na vodilu pomeni večjo kapacitivnost, zato potrebuješ pa manjše upornosti pullupov, da pravočasno dvignejo napetost.
Poskusi s 4,7kΩ.
|
|
Nazaj na vrh |
|
 |
logist Član

Pridružen-a: Pon 25 Jan 2010 1:12 Prispevkov: 126 Aktiv.: 0.67 Kraj: dom(o)vina
|
Objavljeno: Sob Dec 31, 2011 12:27 am Naslov sporočila: |
|
|
Torej potem takem tudi dolžina vodnika (linije) treba upoštevat in spravit na čim krajše?
_________________ Mihael |
|
Nazaj na vrh |
|
 |
aljoš Član



Pridružen-a: Čet 08 Sep 2005 20:03 Prispevkov: 3132 Aktiv.: 13.22 Kraj: Škofja loka-poljanska dolina
|
Objavljeno: Sob Dec 31, 2011 11:33 am Naslov sporočila: |
|
|
Adreso imaš pravo? Pullup upore pa res zmanjšaj, kot je napisal predhodnik....
_________________ Najprej se je pokadilo, nato izjavi Sokrat: dva Watt-a my ass...LOOOLL::: |
|
Nazaj na vrh |
|
 |
logist Član

Pridružen-a: Pon 25 Jan 2010 1:12 Prispevkov: 126 Aktiv.: 0.67 Kraj: dom(o)vina
|
Objavljeno: Sob Dec 31, 2011 11:39 am Naslov sporočila: |
|
|
Naslov in vse dela, ker sem že pri enem projektu uporabil - samo takrat je bil samo RTC na vodilu.
_________________ Mihael |
|
Nazaj na vrh |
|
 |
davide Član


Pridružen-a: Pet 10 Sep 2010 16:45 Prispevkov: 149 Aktiv.: 0.83 Kraj: Savinjska
|
Objavljeno: Sob Mar 03, 2012 11:18 pm Naslov sporočila: |
|
|
nisem si sam spisal kode za pošiljanje po vodilu i2c, pa me zanima v spodnji kodi, kaj pomeni while zanka, kjer se cikla, dokler je scl pin enak 0, če predpostavim, da je to ročno generairana ura i2c in je z ukazom pred tem postavljena na 1???
uint8_t i;
Koda: |
for(i=0;i<8;i++)
{
SOFT_I2C_SCL_LOW;
Q_DEL;
if(data & 0x80)
SOFT_I2C_SDA_HIGH;
else
SOFT_I2C_SDA_LOW;
H_DEL;
SOFT_I2C_SCL_HIGH;
H_DEL;
while((SCLPIN & (1<<SCL))==0);
data=data<<1;
}
//The 9th clock (ACK Phase)
SOFT_I2C_SCL_LOW;
Q_DEL;
SOFT_I2C_SDA_HIGH;
H_DEL;
SOFT_I2C_SCL_HIGH;
H_DEL;
uint8_t ack=!(SDAPIN & (1<<SDA));
SOFT_I2C_SCL_LOW;
H_DEL;
return ack; |
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|