====== Sběrnice SPI ve stavebnici MLAB ====== [[https://cs.wikipedia.org/wiki/Serial_Peripheral_Interface|SPI]] je vedle [[cs:i2c|I²C]] dalším velmi používaným rozhraním. Jeho výhodou je jednoduchá obsluha, vysoké přenosové rychlosti a full-duplexní obousměrný přenos. ===== Obsluha rozhraní v Python ===== Pro použití SPI z Python programu existuje [[https://pypi.python.org/pypi/spidev|hotová knihovna]]. V Linuxu ji lze nainstalovat z příkazového řádku. sudo apt-get install python-pip sudo pip install spidev [[http://tightdev.net/SpiDev_Doc.pdf|Dokumentace ke knihovně.]] ===== Možnosti připojení zařízení na SPI ===== ==== Nativní SPI rozhraní ==== Značná část komerčně dostupných mikrokontrolerů má SPI rozhraní jako jednu z periferií. ==== Rozhraní vytvořené konverzí ==== SPI interface lze vytvořit i konverzí z jiných standardních sběrnic. === Z I²C === Pokud není podstatná datová rychlost přenosu, tak lze SPI rozhraní vytvořit z I²C sběrnice například modulem [[cs:i2cspi|I2CSPI01A]]. Ten umožňuje připojit i více SPI slave zařízení. === Z USB === V případě že je důležitá datová rychlost přenosu, tak je vhodnější použít sběrnici s vyšší šířkou přenosového pásma. Takový požadavek splňuje například sběrnice USB. Pro vytvoření SPI rozhraní pak existují specifické integrované obvody, které se liší především SW podporou. * [[https://www.microchip.com/wwwproducts/en/MCP2210|MCP2210]] [[https://github.com/daniel-santos/mcp2210-linux|out-of-tree driver]] * [[https://www.ftdichip.com/Products/ICs/FT4222H.html|FT4222H]] - HID driver? * [[http://www.silabs.com/products/interface/usbtouart/Pages/usb-to-spi-bridge.aspx|CP2130]] * [[cs:xvc_ft220x|FTDI FT220]] možný kandidát při napsání HID driveru. Problematika připojení těchto čipů do operačního systému je poměrně [[https://christian.amsuess.com/idea-incubator/ftdi-kernel-support/|komplikovaná]]. Nicméně jako nejlepší řešení [[https://archive.fosdem.org/2018/schedule/event/rapid_spi_over_usb/attachments/audio/2461/export/events/attachments/rapid_spi_over_usb/audio/2461/USB_SPI_FOSDEM_2018.pdf|je pravděpodobně]] použití MCP2210 na novém MLAB modulu. ===== Související stránky ===== * [[cs:hbstep|Budič krokových motorů]] * [[cs:i2cspi|]]