Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška 11 (12) A438NVS, kat. měření, ČVUT - FEL, Praha J. Fischer A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 1
Náplň přednášky Sériová rozhraní rozhraní SPI, IIC sběrnice mikroprocesoru paměti DMA A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 2
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 A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 3 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) A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 4
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) A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 5
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 A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 6
SPI STM32 STM32 SPI 8 nebo 16 bit data možné navázat SPI na DMA ( Direct Memory Access) A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 7
SPI rozhraní implementace v STM32F100 SPI rozhraní NSS slave select slave mod - vstup A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 8
SPI rozhraní - implementace Vysílání MSB typicky první, případně možnost volby LSB první 8 bitů dat (typicky), v často podpora i 16 bitů dat) rychlosti komunikace, frekvence SCK - programovatelná, SCK 1 až 10-ky MHz Možnost programové implementace rozhraní SPI, které nemají rozhraní SPI - 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, A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 9
Využití SPI a sériových rozhraní pro programování up ISP in system programming uložení programu a dat do paměti v aplikaci. Často využito rozhraní SPI (up ATMEL, AVR, Microchip, ) 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, ( JTAG Emulator ) Dvoudičové ladicí rozhraní SWD u ARM Cortec- M3, viz STM32VL Discovery U některých up možnost programování ISP programu BOOT loader - viz dřívější výklad na před. Aktivace vnitřního programu Boot loader na čipu po resetu při. spec. nastavení úrovní na pinech Boot loader aktivně komunikuje s rozhraním ( UART, SPI, CAN, USB,...) a programuje vnitřní paměť Funkce boot - možnost začít práci s up bez specializovaného vybavení (emulátor, vývojový modul,..) pouze s vlastním procesorem STM32F100 Booat loader na UART, STM32F105 Boot UART, USB, CAN A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 10
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ů Varianty EEPROM připojeny na up, ale možnost programování i bezdrátově- RFID technika (výroba STM), není nutnost elektricky připojovat A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 11
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 (volba velikosti R p - výchozí hodnota R P = 2k7 ), připojení více obvodů, master - slave, možnost - multimaster. V DD možné též 3,3 V zavisí na typech obvodu (senzory CMOS napájení zásadně 3,3 V, tedy i na IIC bus sloužící pro konfiguraci senzoru) 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 A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 12
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 speed označení také SM, 400 khz Fast speed, označení někdy také FM (fast mode), 1 MHz Fast mode plus (označení FM+ ) signál SCL nemusí být synchronní, není určen minimální frekvence (možnost asynchronní signál), STM32F100 SM a FM, STM32F051 podporuje SM, FM, FM+ SDA data platná při SCL = 1 SCL změna dat při SCL = 0 data stabilní změna dat data stabilní SDA 0 1 přenos bitů 0 a 1 SCL A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 13
Rozhraní IIC Ultra Fast mode UFm Princip přenosu pro SM, FM, FM+ je shodný, odlišnost v rychlosti a velikosti, budič otevřený kolektor, proud budiče (SM, FM do 3 ma, FM+ 20 až 30 ma) Ultra Fast mode UFm až 3,4 MHz, modifikovaný princip, Pro režim UFm, signály USCL, USDA U značí ultrafast UFm pro rychlý přenos dat z procesoru do periferie, (ne opačně) není možnost potvrzení od periferie Acknowledge budič typu Push Pull obdoba elementárního invertoru CMOS (viz. před. dříve) Možnost prodloužení sběrnice UFm pomocí standardních budičů CMOS logiky (push pull) LED driver ( PCU9955 firma NXP) Otázka velikosti parazitních kapacit, pro vyšší rychlost potřeba pro jejich nabití a vybití větších proudů pro FM+ nižší hodnota odporu pull - up rezistorů řadič I2C bus pro UFm umožňuje kombinaci módů FM+ a UFm ( v FM_ konfigurace, zjišťování stavu periferie, přechod na UFm- pouze jednosměrný přenos dat (analogie rychlý diktát, nejdříve příprava, informace,.., pak rychlý přenos dat, pak zpomalení kontrola, je vše v pořádku?) A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 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 A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 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 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 A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 16
Přenos vícebajtové zprávy po rozhraní IIC Po start S a vyslání adresy obvodu - možný přenos dat pouze jedním směrem, čtení nebo zápis, konec přenosu stop P Kombinovaný přenos - start - zápis, nový start Sr (bez stop) čtení, konecstop. 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 A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 17
Rozhraní IIC Bus, implementace IIC Bus, adresa i 10 bitová ( prefix + 3 horní bity adresy, pak 8 bitů adresy 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, (příklad ADSP BF 533 pro nastavení obrazového senzoru CMOS) 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 (viz přednášky dříve- využití obousměrného výstupu nebo třístavového výstupu jako výstupu s otevřeným kolektorem). Otázka: Popište způsob využití pinu vstupně -výstupní brány (která má ve výstupním režimu pouze PUSH PULL mód) pro komunikaci s rozhraním IIC bus. A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 18
Rozhraní IIC v STM32 Master i Slave mode příjmu dat na DMA A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 19
IIC STM32 STM32 možnost detekce vlastní adresy (7 nebo 10 bitové adresy), až 2 slave adresy podpora rychlosti přenosu s frekvencí SCL 100 khz a 400 khz A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 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í 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 A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 21
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 Příklad - připojení ext. řadiče Ethernet k ARM7 typu LPC2114, viz, aplik. nota firmy NXP A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL 22