Raspberry Pi: Använda 1 ryggsäckar $ I2C LCD för 1602 skärmar & knappar! (6 / 7 steg)
Steg 6: Använda flera kort på en buss
Här är en sak att komma ihåg. Dessa styrelser kan ha olika controller IC revideringar - PCF8574 eller PCF8574A. Jag vet detta eftersom jag har många av dessa adaptrar och de har olika ICs. Vad som ändrats är kanske andra parametrar, adresseringsschema. Hur?
De ICs har 3 adress ingångar, vilket ger oss 2 ^ 3 = 8 möjliga adresser. Du kan se A0, A1, A2 kuddar. De är drog till VCC som standard, vilket gör dem alla 1s. Genom kortslutning, säg, en A2 pad, du är making A2 bit i adressen 0 och därför förändras den I2C adressen. (kortsluter dessa kuddar är så enkelt som att göra en löda bro.) Som kan komma väl till pass om du vill lägga till en skärm och 8 knappar, eller två skärmar, eller... Godtycklig kombination av skärm och knappar - mitt skript kan använda olika adresser, som du kan se, och de gör inte generellt blanda sig sinsemellan, så med hjälp av både skärm och knappar fungerar bra =) men om adresser...
Titta på dina expander, sedan se av tabellen ovan. Om du ser att du har 2ICs eller mer av en revision (antingen med ett suffix eller utan), måste du ändra adresser. Du kan lämna en av ryggsäckarna med pads unbridged (således med HHH adressen) och överbrygga olika kombinationer av kuddar på alla andra. Olika revideringar kommer inte konflikt ändå, så om du har två kort, en med PCF8574 och en annan med PCF8574A, de inte kommer i konflikt oavsett kombinationen. Det här innebär också, vi kan ha upp till 16 ryggsäckar på en buss om vi ansluter 8 brädor som har PCF8574 och 8 som har PCF8574A.
Det finns också vid flera ryggsäckar ett mer problem. Alla dessa nämnder har ombord I2C pullups. Det är bra för en enda MCU-ryggsäck combo som adapter storlek börjar öka, gemensamma värdet av alla dessa pullups börjar minska (elektronik 101 - att sätta motstånd parallellt) men eftersom det minskar, blir det mer och mer svårt för ryggsäckar & MCU att driva den linje låga, vilket kan påverka kommunikationen negativt. Att aviod att, du kan behöva ta bort några av pullups, du kan även lämna bara ett enda par av dem, och som alla Raspberry Pi styrelser har pullups, du i princip kan ta bort alla SDA & SCL pullups från styrelserna. Det är lätt att hitta dem i styrelserna - dessa är motstånden vars ena sidan är kopplad till VCC och andra är kopplad till SDA eller till SCL.
Om du har 2 olika I2C bussar, ändå, du kan enkelt använda en buss per en adapter, eller med upp till 16 kort (inklusive revideringen tricket) på en buss, vilket gör siffrorna enormt stor, behöver du att många =) kom ihåg att ange olika buss nummer, mmkay?