Sida 1 av 2
I2C multiplexning?
Postat: 31 augusti 2010, 09:28:21
av AndersG
Har behov av att läsa 2..4 enheter över I2C från en PIC. Problemet är att alla har samma adress

Adressen är "Factory programmable" så jag antar att jag kan få men olika om jag köper, typ 1000 av var
Hur förfar jag enklast? Med en dedikerad mux typ LTC4305, eller kan man vara så simpel att man använder en vanlig CMOS-switch? Behöver inte speciellt hög signaleringshastighet, tänkte tvärtom hålla den låg för att minimera RFI.
Re: I2C multiplexning?
Postat: 31 augusti 2010, 11:28:28
av vfr
Hmmm. Det borde ju egentligen räcka att muxa den ena signalen, förslagsvis klockan.
Ska du köra med hårdvaru-I2C?
Ska man inte göra det utan köra helt mjukvarumässigt, så kan man ju använda olika klockpinnar på PIC:en för varje enhet.
Re: I2C multiplexning?
Postat: 31 augusti 2010, 11:51:33
av AndersG
Nu hade jag tänkt göra det enkelt för mig och köra med PICens hårdvaru-I2C, men visst kan man väl bitbanga oxå. Detdöär med att bara muxa kliockan var även jag inne på, men undrar hur den enhet som då inte får klocka påverkar bussen?
Re: I2C multiplexning?
Postat: 31 augusti 2010, 12:03:40
av vfr
Som jag har för mig när jag höll på med I2C, så händer ingenting på en enhet så länge klockan ligger inaktiv. Jag tror inte det borde bli något problem.
Re: I2C multiplexning?
Postat: 31 augusti 2010, 12:10:53
av AndersG
OK. Det är väl bara att testa då. Betydligt enklare att muxa klockan som är envägs

Re: I2C multiplexning?
Postat: 31 augusti 2010, 12:58:32
av limpan4all
I2C är en dubbelriktad open-collector buss så det ställer ju till det lite...
Vilken krets är det du har problem med?
Re: I2C multiplexning?
Postat: 31 augusti 2010, 13:13:44
av babbage
Re: I2C multiplexning?
Postat: 31 augusti 2010, 13:34:28
av Johanb
Finns det chip-enable eller liknande på kretsarna?
Re: I2C multiplexning?
Postat: 31 augusti 2010, 13:36:45
av sodjan
> Betydligt enklare att muxa klockan som är envägs
Njae, det beror på slavarna. Om de använder "clock streching"
så går det inte att köra envägs...
Är det hemligt vad det är för kretsar du tänker köra mot ?
Re: I2C multiplexning?
Postat: 31 augusti 2010, 14:02:16
av AndersG
Nej, absolut inte hemligt. STC3100:
http://www.st.com/stonline/products/lit ... /15269.pdf
Edit: Nej de har ej Chip Select
Re: I2C multiplexning?
Postat: 31 augusti 2010, 14:21:30
av limpan4all
Nu fattar jag inte riktigt?
Det står rätt tydligt att den har ett 48 bitars slumpat ID nummer + CRC och 8 bitar som part ID=10h.
Att det kan vara knepigt att veta vilken krets som är vilken är en helt annan sak, det går ju att lösa med en SW CS- på I/O pinnen.
Men jag kan inte hitta något alls om att den inte skulle ha unika adresser.
Re: I2C multiplexning?
Postat: 31 augusti 2010, 14:26:20
av AndersG
Det står även att deras adress är "Factory programmed" till 70, eller har jag missat ngt?
Re: I2C multiplexning?
Postat: 31 augusti 2010, 14:34:46
av Nerre
Precis, det är skillnad på adress och ID-nummer.
Kretsen verkar ju vara gjord för att användas i batteripackar. Man har bara en pack i taget på en apparat så det är inget problem att alla kretsar adresseras med adress 70. Och ID-numret läser man ut för att identifiera vilken krets som just nu sitter där.
Men eftersom alla kretsar lystrar till adress 70 så har man ingen nytta av ID-numret om man har flera kretsar kopplade till samma I2C-buss.
Re: I2C multiplexning?
Postat: 31 augusti 2010, 14:39:31
av limpan4all
Du/ni har rätt, för kommunikationens skull har man ingen som helst nytta av dev ID.
Men kretsen du har valt är inte tänkt för det du skall använda den till
Så det blir att slänga på en MUX eller byta krets.
Re: I2C multiplexning?
Postat: 31 augusti 2010, 14:41:07
av limpan4all
Man kan väl tämligen säkert anta att det kommer att komma en version tämligen snart när de tre sista bitarna i dev id är ersatt med tre externa pinnar såsom på de flesta andra I2C produkter.