Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška 14 - X38MIP -2009, kat. měření, ČVUT - FEL, Praha J. Fischer 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 MASTER SLAVE SPI hod. generátor MISO 8 bit pos. registr 8 bit pos. registr MISO MOSI - Master Output Slave Input MISO - Master Input Slave Output SCK - serial clock SS - slave select MOSI MOSI SCK SCK SS +5V SS 2
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) MSB 6 5 4 3 2 1 LSB MISO (ze slave) MSB 6 5 4 3 2 1 LSB SS (do slave) 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) 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 - u slave, obdoba funkce /CS - chip select jako pamětí. Určení, s kterou jednotkou slave se komunikuje 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 5
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ů 6
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) SERIAL CLOCK INPUT SCK/P1.7 7 6 5 4 3 2 1 0 SERIAL D ATA INPUT MOSI/P1.5 MSB LSB SERIAL D ATA OUTPUT MISO/P1.6 MSB LSB 7
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)!!! 8
ISP pomocí SPI rozhraní v mikropočítačích ISP funkce, u up firmy Atmel, v označení písmeno S AT89S8252, AT89S8253, AT89S2051, SPI rozhraní 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 9
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 programu 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 JTAG - dvou vodičové ladicí rozhraní ( různé firemní varianty) 10
SPI rozhraní - implementace SPI rozhraní vysílání MSB typicky první, případně možnost volby LSB první 8 bitů dat ( typicky), v některých up možnost i 16 bitů dat) rychlosti komunikace, frekvence SCK - programovatelná, 1 MHz, u některých up frekvence SCK až 10 - ky MHz 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). 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 s rozhraním SPI např. M25P32-4 MByte, jako paměť dat, záznam, černá skříňka, Karty MMC, SD - možnost komnikace s rozhraním SPI, použití karet jako vnější paměti dat, adresace po sektorech 512 byte, 11
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 12
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 13
Rozhraní IIC bus - signály SCL - hodinový signál, generuje maste 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 data platná při SCL = 1 SCL změna dat při SCL = 0 data stabilní změna dat data stabilní 0 1 přenos bitů 0 a 1 SDA SCL 14
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 15
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 A 6 A 5 A 4 A 3 A 2 A 1 A 0 zápis 1 0 1 0 0 0 0 0 R W A C K MSB LSB stop D 5 D 4 D 3 D 2 P D 7 D 6 D 1 D 0 1 0 1 0 1 1 0 0 A C K SCL ACK ze slave adresace data 16
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 master NOT S adr. R ACK ACK ACK P slave ACK data data data 17
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. 18
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í IICBus, 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 19
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 20