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

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

Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement