Více stejných periferií se stejnou adresou na i2C sběrnici
Moderátor: Moderátoři
- VirtualMan
- Příspěvky: 63
- Registrován: 18 bře 2005, 00:00
- Bydliště: Brno
Více stejných periferií se stejnou adresou na i2C sběrnici
Existuje nějaký způsob jak na jednu i2C sběrnici připojit víc (alespoň dvě) stejných periferií, se stejnou hw adresou, které nemají žádnou další nožku typu ChipSelect a HW adresa se u nich nedá změnit?
Nějaký multiplexer fungující jako vyhýbka, který by mi umožnil i2C sběrnici nějak rozdělit na dvě a vybírat si se kterou chci komunikovat?
Nebo prostě jen nějaká říditelná "odbočka" i2C sběrnice, kterou bych mohl po té i2C sběrnici zapínat/vypínat, podle toho jestli bych chtěl s připojenou komunikací za tou odbočkou komunikovat nebo ne?
Asi neumím hledat, protože bych si myslel, že něco takového určitě existuje, ale nikde to nemůžu najít.
Díky za nakopnutí správným směrem. Odkaz na příklad by moc pomohl.
Vladimír
Ta věc by musela mít vlastní I2C adresu.
Možná by se to vešlo do ATtiny85, když se zabere všech 6 pinů, které nejsou napájecí.
V něčem jako je 4051 (4052, 4053), ale ta není řízená I2C by možná stačilo přepínat jenom SDA, zatímco SCL by byla společná.
Předpokládám, že v angličtině by to bylo "I2C turnout".
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Na přepínání hodin by se dal použít obyčejný demultiplexer, jen musíš zajistit, aby při přepínání nevznikaly falešné pulsy.
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
- VirtualMan
- Příspěvky: 63
- Registrován: 18 bře 2005, 00:00
- Bydliště: Brno
- weed_smoker
- Příspěvky: 2673
- Registrován: 02 pro 2011, 00:00
- Bydliště: Jaroměř
Pokud ty obvody maj jenom pevnou adresu a MCU jen 1 I2C kanál,pak se obvykle druhej I2C vytvoří softwarově na dvou vývodech MCU.Ty rychlejší obvody se připojej na originál I2C a ty pomalejší na ten "softwarovej".
- VirtualMan
- Příspěvky: 63
- Registrován: 18 bře 2005, 00:00
- Bydliště: Brno
Tady jde o tlakoměrná čidla Bosch. Potřebuju měřit a porovnávat dva rozdílné tlaky. a to poměrně rychle a často (výsledky 10-20x za sekundu)
Původní návrh jsem měl s BMP-085, u kterého má vývod 8 funkci XCLR (master clear) a ten se dal použít jako chipselect.
Bohužel jsem se dověděl, že BMP-085 už se nedělá, začíná být nedostatkový a nahrazuje se čidlem BMP-180. Ten ale má vývody jinak a vývod XCLR nemá.
Výrobce sice v datasheetu zmiňuje variantu s funkcí chipselect na vývodu 1, ale pokud jsem to správně pochopil, vyrobí je na přání.
Nejsem si jistý, že jich budu potřebovat vagon, a předpokládám, že deset kusů pro mne vyrábět nebudou, i když je to asi jen věc nahrání jiného firmware.