MCP2210 je USB-SPI bridge. Zjednodušeně je to zařízení schopné ovládat SPI sběrnici pomocí pokynů z PC. Většina z vás bude mít zkušenosti s USB-UART bridge například od FTDI. A budete se mnou jistě souhlasit,když napíšu že jejich ovládání je snadné. Možná jste se někdy zamysleli nad otázkou proč nejdou stejně jednoduše ovládat i jiné sběrnice než UART. Odpověď je jednoduchá, jiné sběrnice jsou složitější a oproti UARTu vyžadují větší míru konfigurace a krom toho UART (RS232) těží z historické důležitosti. Převodníky USB-UART v bastlířské komunitě dominují natolik, že člověk snadno přehlédne zajímavá řešení. A právě proto jsem se rozhodl vám MCP2210 přiblížit.
MCP2210 umí ovládat SPI pouze v roli "master". Má 9 volných I/O, které mohou sloužit jako CS (Chip Select) a nativně je tak možné ovládat sběrnici až s 9ti slave zařízeními. Datová rychlost se může pohybovat mezi 1.5kb/s - 12Mb/s. Dalšími technickými parametry vás nebudu zatěžovat a raději přejdu k tomu nejdůležitějšímu. Tím je "SPI-Terminal", volně stažitelný program (Microchip), pomocí nějž je možné MCP2210 ovládat.
Asi si dokážete domyslet, že takový systém může být dobrým pomocníkem v laboratoři. Integrovaných obvodů nebo modulů, které komunikují po SPI je hodně (AD a DA převodníky, čidla, digitální potenciometry, displeje atd.). Většinou je člověk potřebuje nějak otestovat. Někdy proto aby se dozvěděl zda zvládnou to co od nich čeká a někdy jen proto aby se s nimi naučil. A v této roli bude MCP2210 výrazný pomocník, který vás zachrání od nepohodlných pokusů pomocí mikrokontroléru. Vzhled terminálu a ukázku přenosu můžete vidět na následujících obrázcích.
Stačí kliknout na "Transfer" a... | ... data jsou venku. |
Zběžná prohlídka terminálu odhalí většinu funkcí. Vlevo dole lze konfigurovat datovou rychlost, mód přenosu (0,1,2 a 3), délku přenosu a různá zpoždění mezi CS a daty. Vlevo nahoře je pak přehled odesílaných a přijímaných dat, která lze zadávat decimálně nebo hexadecimálně. Vpravo je blok ovládání výstupů, které budou v drtivé většině případů sloužit jako Chip Select (CS).
Další otázkou kterou je potřeba vyřešit je hardware. Cena samotných čipů se pohybuje okolo 50kč (TME) a k minimalistické variantě je potřeba už jen krystal a USB konektor. Domácí výroba je jednoduchá (jak dokládá fotografie na konci článku). Komu se nechce modul vyrábět může si koupit hotový za přibližně 450kč (TME). Případně lze sehnat i "Evaluation kit", který obsahuje celou řadu SPI periferií a hodí se například pro výuku SPI rozhraní.
MCP2210 Breakout module pohled shora | MCP2210 Breakout module pohled zdola |
Z pohledu do schematu modulu můžete zjistit, že obsahuje 3.3V stabilizátor a lze jej vybavit jumperem k přepínání provozního napětí (3.3V a 5V). Před osazením jumperu je potřeba přetnout tenký spoj (vyznačený na fotografii níže). Kdo chce ušetřit, může si vyrobit DPS svépomocí a udělat si buď vlastní návrh nebo využít můj (hodně zjednodušený).
Modul osazený jumperem... | ...a dalšími vývody | Samodomo rychlovka pro ověření funkčnosti |
Zatím jedinou vadou na kráse, kterou jsem zaznamenal jsou prodlevy mezi aktivací CS a odesláním dat, případně mezi daty. Ty je možné manuálně ovládat (v krocích po 10us), ale jejich minimální hodnota je přibližně 40us. To může být za určitých okolností drobně omezující. Situaci ilustruje oscilogram níže.
Microchip k MCP2210 poskytuje přirozeně i další software. Klíčové jsou knihovny s nimiž je možné čip ovládat z různých programovacích jazyků. Osobně jsem to nezkoušel, ale měl by mezi nimi být i Python. Těmito prostředky si můžete napsat vlastní terminál nebo v podstatě cokoli vás napadne, ale to už je úplně jiná kapitola.
Home
V1.00 29.10.2017
By Michal Dudka (m.dudka@seznam.cz)