Hantera gemensamma pinnar för I2C och SPI

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Shimonu
Inlägg: 346
Blev medlem: 21 oktober 2015, 22:44:33

Hantera gemensamma pinnar för I2C och SPI

Inlägg 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?
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg 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.
Shimonu
Inlägg: 346
Blev medlem: 21 oktober 2015, 22:44:33

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg av Shimonu »

Vet inte varför jag var så inställd på att det vore konstigt :humm: , 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 :D
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47223
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg 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.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg av lillahuset »

Jag kanske feltolkade när jag trodde att det skulle vara antingen eller. Förmodligen.
Shimonu
Inlägg: 346
Blev medlem: 21 oktober 2015, 22:44:33

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg 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?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47223
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg av TomasL »

En mjukvarubaserad SPI med rätt SPI-mode, ja.
Arduinos egna libbar och/eller HW stöd, Nej.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg 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. :D
Shimonu
Inlägg: 346
Blev medlem: 21 oktober 2015, 22:44:33

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg 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å.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47223
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg 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
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg av lillahuset »

Vad är det för fel med att bitbanga? Det kan vara riktigt vackert. :D
Användarvisningsbild
tecno
Inlägg: 27271
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg 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.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg av lillahuset »

Folk gör så mycket konstigt...
Shimonu
Inlägg: 346
Blev medlem: 21 oktober 2015, 22:44:33

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg 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.
thomasloven
Inlägg: 96
Blev medlem: 2 februari 2011, 13:16:32
Kontakt:

Re: Hantera gemensamma pinnar för I2C och SPI

Inlägg av thomasloven »

Bitbanga spi är väldigt praktiskt om man vill läsa ett SD-kort med en z80, t.ex...
Skriv svar