Sida 1 av 2
Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 10:12:58
av Shimonu
Jag har blivit sugen på att försöka göra minimala projekt med liten AVR och någon sensor+transceiver. Jag hittade AVRtiny. Jag skulle vilja använda både I2C och SPI men de delar pinnar och I2C kräver ju pull-up-motstånd vilket SPI inte ska ha. Däremot kan man köra både pull-up och pull-down på SPI samtidigt.
Min tanke var att styra på ett pull-down motstånd på pinnarna när jag vill köra SPI. Jag testade lite med att försöka använda en switching transistor för att koppla på men det funkade inte som jag trodde, det kanske beror på transistorns förstärkning. Jag testade mest för jag hade det hemma. Men det bör väl annars fungera med en analog mux? Finns det andra alternativ?
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 10:21:27
av lillahuset
Pull-up borde inte vara något problem för SPI. Om de inte är för små förståss men då funkar ju inte I2C heller.
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 11:34:10
av Shimonu
Vet inte varför jag var så inställd på att det vore konstigt

, det är väl rimligt att SCK kommer dras låg ett bra tag innan en överföring startas? Det är väl det enda jag kan tänka mig skulle gå fel annars. Hur som testar jag väl det ikväll.
Tackar

Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 12:09:17
av TomasL
Det enda är väl att det kan hända konstigheter om man blandar SPI och I2C på samma linor.
Lite ledtrådar
http://www.i2cchip.com/mix_spi_i2c.html
http://www.microchip.com/forums/m287294.aspx
Notera hur START resp STOP ser ut på I2C, så du inte av misstag kör ut detta när du kör SPI.
Förmodligen kan du inte använda hårdvarustödet, då du inte kan kontrollera vad det gör.
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 12:23:14
av lillahuset
Jag kanske feltolkade när jag trodde att det skulle vara antingen eller. Förmodligen.
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 13:49:11
av Shimonu
Har ingen erfarenhet av att köra SPI på en AVR. Har man sådan kontroll att man kan undvika att göra I2C-START eller STOP?
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 13:54:19
av TomasL
En mjukvarubaserad SPI med rätt SPI-mode, ja.
Arduinos egna libbar och/eller HW stöd, Nej.
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 14:18:19
av lillahuset
Härligt! Jag älskar att bitbanga I2C.
Första gången för att jag inte för mitt liv kunde få I2C att fungera i en gammal PIC. Förmodligen bara jag som inte fattade dokumentationen.
Andra gången med en AVR. Samma där, jag fattade nog inte dokumentationen.
Tredje gången med en STM32F103. Där läste jag errata och kom fram till att I2C var så buggigt att det skulle vara enklare att bitbanga. Plättlätt.
Jag har inget minne av att jag någonsin kört I2C med hårdvarustöd. Men det har jag nog.

Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 14:31:48
av Shimonu
TomasL skrev:En mjukvarubaserad SPI med rätt SPI-mode, ja.
Arduinos egna libbar och/eller HW stöd, Nej.
Pratar du om att bitbanga SPI?
Har aldrig förstått hur man orkar med att bitbanga, känns så himla fult tycker jag. Det känns som man borde vara fel ute om man har ett projekt där man själv måste bitbanga saker. Antingen köper jag själv en CPLD eller FPGA som hanterar det eller en större enhet då som gör jobbet "rätt".
Men jag tror jag har den information jag behöver då.
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 14:51:56
av TomasL
Om du skall köra både spi och i2c på samma pinnar, måste du nog bitbanga spi för att få tillräcklig kontroll på den
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 15:03:43
av lillahuset
Vad är det för fel med att bitbanga? Det kan vara riktigt vackert.

Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 15:04:46
av tecno
Om du skall köra både spi och i2c på samma pinnar
Varför vill man så överhuvudtaget? Låter som mother of all fuckups i mina öron.
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 15:15:46
av lillahuset
Folk gör så mycket konstigt...
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 15:28:44
av Shimonu
Leker med HDC1008 och nRF24L01+ som bara har i2c respektive spi och skulle vilja trycka in de i ett litet paket om möjligt. Just HDC1008 är ett smidigt paket med temp- och fukt-mätning. Alternativt får jag köra BMP280 istället som har temp och lufttryck samt stöder spi, inte lika kul dock då lufttryck inte är lika spännande att se i hemmet.
Re: Hantera gemensamma pinnar för I2C och SPI
Postat: 30 november 2015, 15:30:15
av thomasloven
Bitbanga spi är väldigt praktiskt om man vill läsa ett SD-kort med en z80, t.ex...