Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška 11 (12) A4B38NVS, kat. měření, ČVUT - FEL, Praha J. Fischer A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 1
Náplň přednášky Sériová rozhraní rozhraní SPI funkce, vlastnosti Použití SPI, pro ISP, pojem Boot loader- paměti Flash s SPI rozhraním I2S pro připojení audiokodeku I2C (IIC Bus) A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 2
STM32F100 sériová rozhraní SPI, I2C SPI USART (LIN) I2C Cortex-M3 CPU 24 24 MHz JTAG/SW Debug Nested vect vectit IT Ctrl Ctrl 1 x Systick Timer 1 x DMA 7 Channels CRC 1x6x 16-bit PWM Synchronized AC AC Timer Timer Up Up to to 16 16 Ext. Ext. ITs ITs Up Up to to 80 80 I/Os I/Os 1x 1x SPI SPI 1x 1x USART/LIN Smartcard/IrDa Modem-Ctrl ARM Lite Hi-Speed Bus Matrix / / Arbiter (max (max 24MHz) 24MHz) Bridge ARM Peripheral Bus (max 24MHz) 4kB-8kB SRAM 1x 1x 12-bit ADC 16 16 channels // 850ksps 2x 2x USART/LIN Smartcard // IrDa IrDa Modem Control A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 3 Flash Flash I/F I/F Bridge 16-128kB Flash Memory 20B 20B Backup Regs Clock Control ARM Peripheral Bus (max 24MHz) 1x16-bit timer with 2 IC/OC/PWM 2x16-bit timer each with 1 IC/OC/PWM 2 x 12bit DAC Temp Sensor Power Supply Reg Reg1.8V POR/PDR/PVD XTAL oscillators 32KHz + 3~25MHz Int. Int. RC RC oscillators 40KHz + 8MHz PLL PLL RTC // AWU 2x 2x Watchdog (independent & window) 3 x 16-bit Timer HDMI CEC CEC 2x 2x SPI SPI 2x 2x I2C I2C
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 4 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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 5
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 6
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 7
SPI STM32 STM32 SPI 8 nebo 16 bit data možné navázat SPI na DMA ( Direct Memory Access) A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 8
SPI rozhraní implementace v STM32F100 SPI rozhraní NSS slave select slave mod - vstup A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 9
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 10
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 11
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 12
Rozhraní I2S Rozhraní I2S pro připojení obvodu audio codec (kodér- dekodér) převodník analogo- číslicový a číslicovo- analogový, stereo pro generování zvuku, typické vzorkovací frekvence do 48 khz ( zvukové CD 44,100 khz) Sériový přenos dat signál SD 16, 24 nebo 32 bitů, Hodinový signál CK pro řízení přenosu sériových dat Signál WS- výběr kanálu- pravý. levý kanál MCK - Master clock output navíc- hodinový signál pro audiokodek, (pokud např. audikodek nemá vlastní krystalový oscilátor). u STM32 f MCK = 256 x f S kde f S je vzorkovací frekvence audiosignálu Rozhraní I2S často implementováno v mikrořadičích s jádrem ARM Cortex M3 U některých vyšších variant STM32Fxxx např. ST32F103xCx, nebo STM32F407), funkce rozhraní I2S- jako rozšíření SPI A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 13
Rozhraní I2S průběhy signálu I2S v STM32F103 xc možno volit pořadí, njdříbe LSB nebo MSB, délka přenosu 16,24, 32 bitů,.. polarita hod.signálu CK A4B38NVS, 2014, 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 (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, 2014, 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 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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 16
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 17
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 18
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 19
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 20
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 21
Rozhraní IIC v STM32 Master i Slave mode příjmu dat na DMA A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 22
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 23
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, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha 24