Rozhraní mikrořadiče, SPI, IIC bus,.. A438NVS, kat. měření, ČVUT - FEL, Praha J. Fischer 1
Náplň přednášky Druhá část. přednášky 12 Sériové rozhraní SPI, Sériové rozhraní IIC A4B38NVS, 2011, kat. měření, J.Fischer, Č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 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 3
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) 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) 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 6
SPI STM32 STM32 SPI 8 nebo 16 bit data možné navázat SPI na DMA ( Direct Memory Access) A4B38NVS, 2011, kat. měření, J.Fischer, ČVUT - FEL 7
SPI rozhraní implementace v STM32F100 SPI rozhraní NSS slave select slave mod - vstup 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, 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 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 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, 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 12
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 13
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 14
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 15
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 16
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. 17
Rozhraní IIC v STM32 Master i Slave mode příjmu dat na DMA A4B38NVS, 2011, kat. měření, J.Fischer, ČVUT - FEL 18
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 EEPROM s komunikací přes RFID, možnost konfigurovat data bez elektrického připojení M24LR64-R 64 Kbit EEPROM with password protection & dual interface: 19
EEPROM s IIC Bus a RFID M24LR64-R 64 Kbit EEPROM with password protection & dual interface EEPROM s komunikací přes RFID, možnost zapisovat data přes RFID (bezdrátové) připojení, konfigurovat data bez elektrického připojení možnost nahrát konfigurační data, kódy, výrobní číslo, 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.nxp.com/documents/other/39340011.pdf THE I 2C-BUS SPECIFICATION http://www.nxp.com/documents/application_note/an10216.pdf AN10216-01 I2C MANUAL http://www.standardics.nxp.com/literature/presentations/i2c/pdf/interface.solutions.pdf http://www.standardics.nxp.com/literature/books/i2c/pdf/smbus.specification.pdf SM Bus specifikace 21