Sériová rozhraní SPI, I2S, IIC a jejich použití

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 MHz
16-128kB
Flash Memory
Power Supply
Reg 1.8V
XTAL oscillators
32KHz + 3~25MHz
Int. RC oscillators
40KHz + 8MHz
1x USART/LIN
Smartcard/IrDa
A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha
ARM Peripheral Bus
(max
24MHz
)
1x16-bit timer with 2
IC/OC/PWM
2x16-bit timer each with 1 IC/OC/PWM
1x 12-bit ADC
16 channels /
2x USART/LIN
Smartcard / IrDa
3
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
8 bit pos. registr
MISO
MISO
MOSI
MOSI
SPI hod.
generátor
SCK
MOSI - Master Output Slave Input
MISO - Master Input Slave Output
SCK - serial clock
SS - slave select
A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha
SS
+5V
SS
SCK
SLAVE
8 bit pos. registr
4
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
SCK cyklus
SCK (CPOL=0) nastavení - clock phase- CPHA = 0
1 2 3 4 5 6
SCK (CPOL=1)
MOSI
(z master)
MISO
(ze slave)
MSB
MSB
6
6
5
5
4
4
3
3
2
2
1
1
7
LSB
LSB
8
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)
SCK (CPOL=1)
MOSI
(z master)
MISO
(ze slave)
SS (DO SLAVE)
1 nastavení - clock phase- CPHA = 1
2 3 4 5 6 7
MSB 6
MSB 6
5
5
4
4
3
3
2
2
1
1
8
LSB
LSB
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 master port
0
1
2
MOSI
MISO
SCK
SS
MOSI
MISO
SCK
SS
MOSI
MISO
SCK
SS slave 1 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 f
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
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řipojení více obvodů, master - slave, možnost - multimaster.
P
= 2k7 ),
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)
SCL
1 výst.
DATA
1 výst.
R
P
SCL vstup
DATA vstup
A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha
R
P
VDD +5V
SDA
SCL
SCL
2 výst.
SCLK
VST.
DATA
2 výst.
DATA
VST.
SDA sériová data
SCL sériové hodiny
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
SCL data stabilní změna dat
0
SDA
SCL
A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha data stabilní
1 data platná při SCL = 1 změna dat při SCL = 0 přenos bitů 0 a 1
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
SCL
S
A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL, Praha stop
P
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
A
1
6
A
0
5
A
4
A
3
1 0
A
2
0
A
1
0
A zápis
0
0
R
W
0
A
C
K
MSB
D
7
D
6
D
5
D
4
D
3
D
2
1 0 1 0 1 1
D
1
LSB
D
0
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 master S adr.
R slave ACK data
ACK data
ACK data
NOT
ACK
P
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
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Related manuals
advertisement