Sida 1 av 1

MCP23S17 SPI-adressering

Postat: 23 augusti 2017, 20:37:46
av permal
Hej,

Hoppas någon kan förklara följande för mig:

Specen för MCP23S17 säger så här (§3.3.2):
The slave address contains four fixed bits and three user-defined hardware address bits (if enabled via IOCON.HAEN) (pins A2, A1 and A0)
Tabell 3-4 specificerar att hela ICON-registret har värde 0 efter uppstart och reset, vilket lämnar alla dessa enheter på samma adress.

Så innan man har aktiverat ICON.HAEN måste man skilja dem åt på annat sätt, vilket man måste göra med Chip Select/Slave Select. Men om man ändå måste välja enhet på linan med CS vid all kommunikation, varför specificerar SPI protokollet att en enhet ska ha en adress? Vad är det jag missförstått kring hur SPI-bussen fungerar?

Re: MCP23S17 SPI-adressering

Postat: 23 augusti 2017, 21:03:34
av Klas-Kenny
En CS, och sätt biten i fråga på alla enheter samtidigt genom att skriva till den generella adressen. Sen kommer du åt dem individuellt. :)

Re: MCP23S17 SPI-adressering

Postat: 23 augusti 2017, 21:22:31
av permal
Klas-Kenny skrev:En CS, och sätt biten i fråga på alla enheter samtidigt genom att skriva till den generella adressen. Sen kommer du åt dem individuellt. :)
Åhå.

Så det du säger är att man man kan i princip ha fler enheter än vad adressen tillåter genom att gruppera flera enheter på olika CS?

Re: MCP23S17 SPI-adressering

Postat: 23 augusti 2017, 22:08:53
av Klas-Kenny
Det sa jag väl inte. :D

Men ja, det kan du absolut om du vill ha mer än de åtta.
Just det är ju "standard" tillvägagångssätt på SPI, det är därför CS-signalen finns till. Den där adresseringen är bara ytterligare ett, icke-standard, sätt att utöka ytterligare utan att behöva en massa olika CS ifrån mastern.

Re: MCP23S17 SPI-adressering

Postat: 23 augusti 2017, 22:13:46
av permal
Ah, jag har blandat ihop SPI med I2C. SPI har ingen adress i sitt protokoll, det är en enhetsspecifik implementation.

Tack för bra svar.