Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška A3B38MMP 2012 kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 1
Rozhraní SPI Rozhraní SPI ( Serial Peripheral Interface) - původ firma Motorola SPI není typ bus - sběrnice, ale pouze rozhraní (interface) typu bod - bod master - procesor, generace hod. sig. SCK, slave - podřízená jednotka, výstup ze SLAVE M ISO - třístavový pokud je u slave /ss = H, není aktivní výstup MISO SPI hod. generátor MASTER MISO 8 bit pos. registr 8 bit pos. registr MISO SCK MOSI - Master Output Slave Input MISO - Master Input Slave Output SCK - serial clock SS - slave select MOSI MOSI A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 2 SS +5V SS SCK SLAVE
SPI, komunikace s nastavením fáze CPHA = 0 nastavení polarita a fáze hodin (4 kombinace) MOSI výstup MISO - vstup CPHA = 0 při čtení nevýhoda - slave musí poskytnout data (MSB) na vodiči MISO ihned po /ss (slave select), s první hranou SCK se data vzorkují, s další hranou SCK se vysouvá další bit dat nastavení - clock phase- CPHA = 0 SCK cyklus SCK (CPOL=0) 1 2 3 4 5 6 7 8 SCK (CPOL=1) MOSI (z master) MISO (ze slave) MSB MSB 6 5 4 3 2 1 LSB 6 5 4 3 2 1 LSB SS (do slave) A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 3
SPI, komunikace s nastavením fáze CPHA =1 Slave i master poskytnou první data (MSB) až po první hraně hodin SCK, master i slave čtou MSB s druhou hranou hodin SCK CYKLUS SCK (CPOL=0) nastavení - clock phase- CPHA = 1 1 2 3 4 5 6 7 8 SCK (CPOL=1) MOSI (z master) MSB 6 5 4 3 2 1 LSB MISO (ze slave) MSB 6 5 4 3 2 1 LSB SS (DO SLAVE) Více informací též. popis AT89S8252, AT89C51RC2, ADuC843 ( všechny obsahují rozhraní SPI) A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 4
SPI rozhraní, připojení jednotek slave Připojení více jednotek slave na jeden master, výběr pomocí vstupu /ss, aktivace jednotlivých /ss - programově řízenými výstupy (není součástí rozhraní SPI). Např. u AT89S8252 ovládání pomocí pinů brány P1, P3,.. Vstup /SS slave select u slave, obdoba funkce /CS chip select jako pamětí. Funkce - určení, s kterou jednotkou slave se komunikuje Výběr /SS - progr. ovládanými piny výst. brány (není součástí řešení SPI) MOSI MISO SCK SS Udd MOSI MISO SCK SS slave 1 master port 0 1 2 MOSI MISO SCK SS MOSI MISO SCK SS slave 2 slave 3 A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 5
SPI rozhraní - implementace Rozhraní SPI ve většině moderních jednočipových mikropočítačů rychlosti komunikace, frekvence SCK - programovatelná, 1- ky MHz, u některých up frekvence SCK až 10 - ky MHz Vysílání MSB typicky jako první, (případně možnost volby LSB první) 8 bitů dat ( typicky), v některých up možnost i 16 bitů dat) Možnost programové implementace rozhraní SPI u up, které nemají rozhraní SPI integrováno na čipu - emulace funkce SPI master - programově ovládanými piny brány, při programové implementaci signál SCK nemusí být synchronní ( nemusí mít konstantní periodou). Mikropočítače s rozhraním SPI možnost funkce jako Master i jako Slave využití pro přenos dat mezi mikropočítači Častější využití Mikropoč. S rozhraním SPI funkce jako master, Periferní a další programovatelné obvody- funkce jako slave A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 6
SPI rozhraní - využití Použití SPI - připojení vstupů. výstupů s posuvnými registry ( 595), specializovaných obvodů, pamětí, připojení AD, DA převodníků s SPI, budiče LED, budiče relé, řadiče LCD,. Paměti FLASH typu NOR s rozhraním SPI např. M25P32-4 MByte, jako paměť dat, záznam, černá skříňka, Paměti EEPROM ( 25C256,.) Karty MMC, SD - možnost komunikace s rozhraním SPI, použití karet jako vnější paměti dat, adresace po sektorech 512 byte, Modifikací chování SPI ( CPHA = 1 nebo 0, CPOL = 0 nebo 1) možnost přizpůsobení pro spolupráci s různými posuvnými registry (sériově - paralelní pos. reg. jako výstupy viz. cvičení připojení LED paralelně sériový pos. reg. jako vstupy, např. čtení tlačítek A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 7
Programování paměti FLASH mikroprocesoru pomocí SPI Řada up, možnost naprogramování interní FLASH prostřednictvím SPI ISP - In - System Programming - programování paměti FLASH mikropočítače v obvodu Naprogramování mikropočítače v obvodu: aktuálním kódem - program ve FLASH, kalibrační data, specifická data - jazyková lokalizace přístroje (varianty hlášení a textů), sériové číslo, Data v EEPROM - kalibrační data,... Možnost výrobní diagnostiky - naprogramování diagnostických programů, s ISP uvažovat při návrhu obvodu a desek plošných spojů a konektorů A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 8
Programování paměti FLASH AT89S8252 pomocí SPI Držet reset na Ucc, SPI je v slave módu, - nutný krystal nebo vnější hodinový sig. na vstup XTAL1 ( 3 až 24 M Hz) MOSI ( na P1.5) je vstupem, M ISO (na P1.6) je výstupem, SCK ( na P1.7) je vstupem, Signály MOSI, MISO, SCK v master a slave módu zůstávají na stejných pinech, pouze se mění jejich funkce z hlediska směru toku signálu - změna výstup signálu na vstup signálu Možnost programovat FLASH (code) i EEPROM (xdata) A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 9
Příkazy ISP programování AT89S8252 pomocí SPI Code memory- paměť programu CODE, data memory - paměť EEPROM ISP pomocí SPI - programování nového i již naprogramovaného čipu Pozor na lock bity - u některých up - možnost totálně zamknout procesor pro ISP, řešení - pouze paralelní programování???(plošný spoj)!!! A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 10
ISP pomocí SPI rozhraní v mikropočítačích ISP funkce, In- System Programming programování paměti mikropočítače již zabudovaného v systému, různé způsoby, jeden ze způsobů využitím SPI u up firmy Atmel, v označení písmeno S AT89S8252, AT89S8253, AT89S2051, (SPI rozhraní pro ISP funkci) AT90S8515 - řada AVR možnost ISP, i když není použito S např. - AT89C51RC2, ATmega32 U některých up- možnost programování doplňkové informace - User Signature u AT89S2051-32 Byte pro doplňkové uživatelské informace - označení uživatele, možnost naprogramování výrobního čísla přístroje, informace pro sledování výrobku, Obdoba funkce User Signature i u jiných up A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 11
Programování typu -ISP s využitím funkce BOOT loader U některých up možnost programování ISP využitím UART a prog. BOOT loader ( AT89C51 RC2, ), Aktivaced programu Boot loader na čipu spec. sekvencí, program - boot loader aktivně komunikuje s rozhraním ( UART,..) a programuje vnitřní paměť Aktivace boot mode - u AT89C51RC2,. ADuC843,, signál ALE přes rezistor na GND, reset, uvolnit ALE, spec. program pro PC ( Atmel Flip, ) up řady ARM - STR750, STM32, LPC2105, LPC2148,.. AT91SAM7S64 - interní boot loader, možnost boot pomocí UART, někdy CAN, USB, Funkce boot - možnost začít práci s up bez specializovaného vybavení (emulátor, vývojový modul,..) pouze s vlastním procesorem - viz použití AT89C51RC2 předmětu X38PRM a procesoru STM32 v předmětu X38PMM na kat. měření ČVUT - FEL Další způsoby programování paměti FLASH- sériové rozhraní JTAG rozhraní Signály TDI, TDO, TCK, TMS, funkce ladění - On-chip Debug system JTAG obsahují ATmega 16, 32,..), C8051F020 ( Silabs),všechny procesory s jádrem ARM, STM32,. a většina nových up, alternativy místo JTAG jedno - a dvou - vodičová ladicí rozhraní ( různé firemní varianty) A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 12
SPI rozhraní využití pro boot SPI rozhraní pro boot programu z externí paměti Flash např. signálové procesory ADSP BF 533 Blackfin Procesory Cy7c68013A, TUSB 6250 ( 8051 + high speed USB) není technologicky možná Flash na čipu, pouze SRAM boot programu z externí paměti EEPROM (24C256) s rozhraním IIC bus do interní programové paměti SRAM v mikropočítači A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 13
Připojení řadiče emulovaným rozhraním sběrnice Připojení programovatelných řadičů PPI 8255, 8253,. řadič Ethernet, řadič CAN,.standardně na sběrnici mikropočítače? je možno použít čítače / časovače 8253 s obvodem AT89C2051, který nemá vyvedenu sběrnici? ANO Programová emulace sběrnice pomocí brány P1 a pinů z brány P3, programová emulace funkce signálu /RD, /WR, adresy A1, A0 pomocí pinů brány Jeden cyklus zápisu nebo čtení - potřeba více instrukcí, pozor- změna směru brány- vstupní- výstupní mód Pozn. pozor AT89C2051 na P1.0 a P1.1 přidat pull up rezistory Příklad - připojení ext. řadiče Ethernet k ARM7 typu LPC2114, viz, aplik. nota firmy NXP A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 14
Rozhraní IIC bus Rozhraní - IIC bus, Inter Integrated Circuit Bus, původce, patent, firma Philips ( nyní NXP), označení také I2CBus, původní určení - spotřební elektronika (radio, TV, video, ) Typ sběrnice- otevřený kolektor, připojení více obvodů, master - slave, možnost - multimaster. R P R P VDD +5V SDA SCL SCL 1 výst. DATA 1 výst. SCL 2 výst. DATA 2 výst. SDA sériová data SCL vstup DATA vstup SCLK VST. DATA VST. SCL sériové hodiny A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 15
Rozhraní IIC bus - signály SCL - hodinový signál, generuje master SDA - data, generuje master nebo slave Změna stavu SDA při přenosu dat možná pouze při SCL = L Frekvence SCL - max. 100 khz, standard, 400 KHz fast, signál SCL nemusí být synchronní, není určen minimální frekvence (možnost asynchronní signál) SDA SCL data platná při SCL = 1 změna dat při SCL = 0 data stabilní změna dat data stabilní SDA 0 1 přenos bitů 0 a 1 SCL A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 16
Rozhraní IIC bus- start, stop začátek a konec přenosu zprávy určuje master začátek přenosu - start, SDA spádová hrana při SCL = H konec přenosu - stop, SDA náběžná hrana při SCL = H SDA start stop SCL S P A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 17
Rozhraní IIC bus - potvrzení Příklad - přenos dat ACh z master do slave s adresou 50h adresace slave (7 bitů + příznak čtení/ zápis, ACK - potvrzení od slave, přenos dat 8 bitů, ACK - slave, stop - master obvykle - přenosy více Byte potvrzení - ACK přijímajícím (master, nebo slave) start S SDA zápis R A 6 A 5 A 4 A 3 A 2 A 1 A 0 W 1 0 1 0 0 0 0 0 A C K MSB D 7 D 6 D 5 D 4 D 3 D 2 D 1 LSB D 0 1 0 1 0 1 1 0 0 A C K stop P SCL ACK ze slave adresace data A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 18
Přenos vícebajtové zprávy po rozhraní IIC Po start a vyslání adresy obvodu - možný přenos dat pouze jedním směrem, čtení nebo zápis Kombinovaný přenos - start - zápis, nový start (bez stop) čtení, konec- stop. master zapisuje do slave master S adr. W data data data P slave ACK ACK ACK ACK master čte ze slave NOT master S adr. R ACK ACK ACK P slave ACK data data data A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 19
Rozhraní IIC Bus, implementace Rozhraní IIC bus implementováno v řadě up, i pod jinými názvy, např. TWI (Two Wire Interface) a další- z důvodu patentové ochrany. Možnost programové emulace rozhraní IIC Bus v up, které nemají IIC Bus, využití vstupně výstupních bran - úprava na režim emulace funkce otevřený kolektor - přepínání výstup - stav L, nebo vstup. U AT89S8252 možno využít piny přímo - standardní funkce otevřený kolektor. A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 20
Rozhraní IIC Bus, použití Rozšíření a specifikace komunikace - SMBus - System Management Bus (firmy -Intel, Duracel,.) je nyní v každém PC. Použití IIC Bus, mnoho integrovaných obvodů, obvodově nenáročné, pouze dva vodiče SCL, SDA, Příklad paměť 24C02, snímače teploty, obvody pro dohled v PC, obvody spotřební elektroniky, IO expandery, obvody RTC ( Real Time clock), IIC Busnastavení CMOS obrazových senzorů, viz senzory firem Kodak, Micron - Aptina,.) Další informace: IIC bus, princip funkce, použití http://www.standardics.nxp.com/literature/presentations/i2c/pdf/interface.solutions.pdf SM Bus specifikace http://www.standardics.nxp.com/literature/books/i2c/pdf/smbus.specification.pdf A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 21
Převodníky A/D, D/A Dle folií a výkladu na přednášce a monografie: Vedral, Fischer: Elektronické obvody v měřicí technice Rozhraní RS232, úrovně Sběrnicově kompatibilní převodníky A/D a D/A Převodníky s dvojnásobným bufferováním, použítí ve vícebitových převodnících D/A a ve vícekanálových převodnících D/A. Zarovnání dat doleva, zarovnání dat doprava u převodníku A/D http://measure.feld.cvut.cz/cs/vyuka/predmety/x38mip Informace ke zkoušce http://measure.feld.cvut.cz/vyuka/predmety/x38mip/zkouska A3B38MMP, 2012, J.Fischer, kat. měření, ČVUT - FEL, Praha 22