MCP23017, vagy PCF8574?

Amíg a másik topikban eldől, hogyan lesz 5V-ból 4V, felvetek egy újabb feszültségkeltőnek ígérkező problémát. :)

Egy 8 csatornás relé vezérléséhez nem szeretném elpazarolni a Wemos D1 Mini összes kimenetét, ezért arra gondoltam, I/O expandert alkalmazok.

Az MCP23017 16 bites (bármit is jelentsen ebben az esetben), tud megszakítást kezelni, ha jól értelmeztam az adatlapját, ára kb. $1,5
A PCF8574 8 bites, semmi sallang nincs rajta ezen kívül. Ára: $0,5

Mindkettő 8 I/O portot ad I²C-n keresztül.
Miért *használják egy 8 csatornás relé kapcsolgatásához (csak kimenet, megszakítás nem kell) az MCP23017-et?

Találtam modult ebay-en.
Kérdés: jó nekem a PCF8754?

*Youtube-os videókban MCP23017-et láttam több helyen erre a célra.

Hozzászólások

MCP23017 azért 16 bites, mert 16 ki/bemeneti lába van. Programozható mindkét bank minden (8-8db) lába egy maszk segítségével, hogy input vagy output legyen.
Ha csak 8db kimenet kell neked, akkor a PCF8574 pont jó lesz.
Mouser.com-on az árak:
PCF 1db ára 1,03EUR, MCP 1db ára 1,19EUR
PCF 1k ára 0,5EUR, MCP 1k ára 0,85EUR

Már többször előkerült a téma, hogy az ilyen boardokat jól el kell szigetelni a vezérlő egységtől (Raspberry, Arduino stb.).
Az i2c és az spi interfészek, leginkább egy boardon/dobozon belüli vezérlésekre alkalmasak. Ha mégis kell a nagyobb távolság, zavarvédettség vagy galvanikus leválasztás akkor az i2c -re több ipari megoldás létezik, viszont ezek eléggé drágák.
Az i2c címzése a kommunikációba van beágyazva, az spi külön vezetékezést igényel - vagy áthajthatod x periférián keresztül a biteket. Az spi alapvetően gyorsabb lehet mint az i2c, de ez akkor játszik ha mondjuk 40MHz órát akarsz (mondhatni 40Mbit/sec).
Megint előhozakodnék az RS232 -vel. Egy relés vezérlésnél nem kell nagy sebesség, viszont a megfelelő leválasztás annál inkább. Én talán úgy csinálnám, hogy mondjuk a Arduino NANO -t építenék rá a relés egységre és annak a soros portját használnám, mondjuk két olcsó optocsatolóval. Innentől fogva azzal vezérled amivel akarod - PC vagy SBC, esetleg egy másik Arduino.

* Én egy indián vagyok. Minden indián hazudik.

Nono, fiam, kőből talán nem lehet hidat építeni? :) Akarom mondani, szinkron soros átvitel is megvalóstható optocsatolóval akár, csak a túlsó oldalon kell valami Schmitt-trigger, hogy az élek meredekségét helyrehozza. Persze viszonylag lassan kellene hajtani, de ennek semmi akadálya.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Erre a feladatra még egy 74HC595 is megteszi. Igaz, ezt inkább SPI-re lehetne kötni. Az I2C-s megoldás valóban szebb, ha van a közelben I2C master controller.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Igaz, de az I2C csak két vezeték, a 74HC595-höz kell clk, data, latch, ami már rögtön 3. Az meg sok, ha a cél az, hogy több lábat csináljunk, ha már annyi eszünk nem volt, hogy megfelelő lábszámú kontrollerrel essünk neki a projectnek. ;) Meg aztán az I2C busz, így akkor sem több láb, ha több cuccot lógatnak rá. Ettől függetlenül én is azt csinálnám, amit mondasz, ha nem lenne hardware I2C támogatásom.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE