I2C multiplexning?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9126
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

I2C multiplexning?

Inlägg 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.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: I2C multiplexning?

Inlägg 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.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9126
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: I2C multiplexning?

Inlägg 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?
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: I2C multiplexning?

Inlägg 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.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9126
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: I2C multiplexning?

Inlägg av AndersG »

OK. Det är väl bara att testa då. Betydligt enklare att muxa klockan som är envägs :)
limpan4all
Inlägg: 8457
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Re: I2C multiplexning?

Inlägg 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?
Användarvisningsbild
babbage
Inlägg: 655
Blev medlem: 10 november 2004, 11:33:17
Ort: N-tälje

Re: I2C multiplexning?

Inlägg av babbage »

Johanb
Inlägg: 3406
Blev medlem: 26 mars 2006, 22:26:12
Ort: Smedjebacken

Re: I2C multiplexning?

Inlägg av Johanb »

Finns det chip-enable eller liknande på kretsarna?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: I2C multiplexning?

Inlägg 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 ?
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9126
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: I2C multiplexning?

Inlägg av AndersG »

Nej, absolut inte hemligt. STC3100:
http://www.st.com/stonline/products/lit ... /15269.pdf

Edit: Nej de har ej Chip Select
limpan4all
Inlägg: 8457
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Re: I2C multiplexning?

Inlägg 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.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 9126
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: I2C multiplexning?

Inlägg av AndersG »

Det står även att deras adress är "Factory programmed" till 70, eller har jag missat ngt?
Nerre
Inlägg: 27257
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: I2C multiplexning?

Inlägg 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.
limpan4all
Inlägg: 8457
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Re: I2C multiplexning?

Inlägg 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 :wink:
Så det blir att slänga på en MUX eller byta krets.
limpan4all
Inlägg: 8457
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Re: I2C multiplexning?

Inlägg 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.
Skriv svar