Stap 6: Het gebruik van meerdere adapters op één bus
Hier is één ding om te onthouden. Deze platen kunnen andere controller IC revisies - PCF8574 of PCF8574A hebben. Ik weet dit omdat ik heb veel van deze adapters en ze verschillende ICs hebben. Wat veranderd is, onder misschien andere parameters, het adresseringsschema. Hoe?
Deze ICs hebben 3 adres ingangen, waardoor ons 2 ^ 3 = 8 mogelijke adressen. Hier ziet u de A0, A1, A2 pads. Ze bent trok aan VCC standaard, waardoor ze alle 1s. Door kortsluiting, zeggen, een A2-pad, je bent maken A2 bits in het adres een 0 en daarom zijn de I2C-adres wijzigen. (kortsluiting deze pads is zo eenvoudig als het maken van een brug van soldeer.) Dat zou komen in zeer handig als u wilt toevoegen van één scherm en 8 knoppen of twee schermen, of... Willekeurige combinatie van scherm en knoppen - mijn scripts zijn kundig voor toepassing van verschillende adressen, zoals u kunt zien, en ze doen niet in het algemeen interfereren onderling, dus met behulp van knoppen en een scherm werkt geweldig =) maar over adressen...
Uw expander kijken, dan zien de tabel gekoppeld hierboven. Vervolgens, als u ziet u 2ICs of meer een herziening (met een achtervoegsel of zonder), moet u adressen veranderen. U kunt een van de rugzakken met pads dit (dus de HHH-adres gebruikt) laten en overbruggen van verschillende combinaties van de stootkussens op alle anderen. Verschillende herzieningen zal niet echter in strijd zijn zodat hebt u twee adapters, een met PCF8574 en een met PCF8574A, ze zal niet in strijd zijn ongeacht de combinatie. Ook, betekent dit ding dat kunnen we maximaal 16 rugzakken op een bus als we verbinding 8 boards hebben PCF8574 en 8 hebben PCF8574A.
Ook, in het geval van meerdere rugzakken is er nog een probleem. Van die platen al aan boord I2C pullups. Dat is goed voor een enkele MCU-rugzak combo maar als de grootte van de adapter begint te verhogen, de gemeenschappelijke waarde van alle die pullups begint te dalen (elektronica 101 - weerstanden parallel zetten) en als het vermindert, wordt het meer en meer moeilijk voor rugzakken & MCU naar station de lijn laag, die de mededeling negatief kan beïnvloeden. Aviod dat u wilt verwijderen een aantal van de pullups, kunt u zelfs laten slechts een paar van hen, en, aangezien de Raspberry Pi boards alle pullups, kunt u in principe alle de SDA & SCL pullups verwijderen uit de planken. Het is gemakkelijk om ze te vinden op de planken - dit zijn de weerstanden waarvan één zijde is gekoppeld aan de VCC en andere SDA of SCL is verbonden.
Hebt u 2 verschillende I2C bussen, niettemin, u kunt gewoon gebruik maken van één bus per één adapter, of zelfs tot 16 adapters (inclusief de herziening truc) op een bus, waardoor de nummers enorm groot is, moet u dat veel =) Vergeet niet om andere bus nummers, mmkay opgeven?