Přednáška 14 X38MIP -2009, kat. měření, ČVUT - FEL, Praha J. Fischer
Rozhraní mikrořadiče, SPI, IIC bus,..
X38MIP - 2009, kat. měření, ČVUT - FEL
1
SCK
MOSI - Master Output Slave Input MISO - Master Input Slave Output SCK - serial clock SS - slave select
SPI hod. generátor
8 bit pos. registr
MASTER
SS
SS
MOSI
MISO
+5V
MOSI
MISO
SCK
8 bit pos. registr
SLAVE
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
Rozhraní SPI
X38MIP - 2009, kat. měření, ČVUT - FEL
2
SS (do slave)
MISO (ze slave)
MOSI (z master)
SCK (CPOL=1)
SCK (CPOL=0)
SCK cyklus
MSB
MSB
1
6
6
2
5
5
3
4
4
4
3
3
5
2
2
nastavení - clock phase- CPHA = 0 6
1
1
7
LSB
LSB
8
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
SPI, komunikace s nastavením fáze CPHA = 0
X38MIP - 2009, kat. měření, ČVUT - FEL
3
SS (DO SLAVE)
MISO (ze slave)
MOSI (z master)
SCK (CPOL=1)
SCK (CPOL=0)
SCK CYKLUS
MSB
MSB
1
6
6
2
5
5
3
4
4
4
3
3
5
2
2
6
1
1
7
nastavení - clock phase- CPHA = 1
LSB
LSB
8
Slave i master poskytnou první data (MSB) až po první hraně hodin SCK, master i slave čtou MSB s druhou hranou hodin
SPI, komunikace s nastavením fáze CPHA =1
X38MIP - 2009, kat. měření, ČVUT - FEL
4
port
master 0 1 2
MOSI MISO SCK SS Udd
MOSI MISO SCK SS
SS
MOSI MISO SCK
SS
MOSI MISO SCK
slave 3
slave 2
slave 1
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
SPI rozhraní, připojení jednotek slave
X38MIP - 2009, kat. měření, ČVUT - FEL
5
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ů
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,…
Ř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
Programování paměti FLASH mikroprocesoru pomocí SPI
X38MIP - 2009, kat. měření, ČVUT - FEL
6
MISO/P1.6
SERIAL D ATA OUTPUT
MOSI/P1.5
SERIAL D ATA INPUT
SCK/P1.7
SERIAL CLOCK INPUT
MSB
MSB
7 6
5
4 3
2 1
LSB
LSB
0
Držet reset na Ucc, SPI je v slave módu, - nutný krystal nebo vnější hodinový sig. na vstup XTAL1 ( 3 až 24 M Hz) MOSI ( na P1.5) je vstupem, M ISO (na P1.6) je výstupem, SCK ( na P1.7) je vstupem, Signály MOSI, MISO, SCK v master a slave módu zůstávají na stejných pinech, pouze se mění jejich funkce z hlediska směru toku signálu - změna výstup signálu na vstup signálu Možnost programovat FLASH (code) i EEPROM (xdata)
Programování paměti FLASH AT89S8252 pomocí SPI
X38MIP - 2009, kat. měření, ČVUT - FEL
7
Pozor na lock bity - u některých uP - možnost totálně zamknout procesor pro ISP, řešení - pouze paralelní programování ???(plošný spoj) !!!
Code memory- paměť programu CODE, data memory - paměť EEPROM ISP pomocí SPI - programování nového i již naprogramovaného čipu
Příkazy ISP programování AT89S8252 pomocí SPI
X38MIP - 2009, kat. měření, ČVUT - FEL
8
u některých uP- možnost programování doplňkové informace User Signature u AT89S2051 - 32 Byte pro doplňkové uživatelské informace označení uživatele, možnost naprogramování výrobního čísla přístroje, informace pro sledování výrobku,… Obdoba funkce „User Signature“ i u jiných uP
ISP funkce, u uP firmy Atmel, v označení písmeno S AT89S8252, AT89S8253, AT89S2051, SPI rozhraní AT90S8515 - řada AVR možnost ISP , i když není použito S např. - AT89C51RC2,… ATmega32
ISP pomocí SPI rozhraní v mikropočítačích
X38MIP - 2009, kat. měření, ČVUT - FEL
9
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, alternativy JTAG - dvou vodičové ladicí rozhraní ( různé firemní varianty)
U některých uP možnost programování ISP využitím UART a programu BOOT loader ( AT89C51 RC2,…), Aktivaced programu „Boot loader“ na čipu spec. sekvencí, program - boot loader aktivně komunikuje s rozhraním ( UART,..) a programuje vnitřní paměť Aktivace boot mode - u AT89C51RC2,. ADuC843,…, signál ALE přes rezistor na GND, reset, uvolnit ALE, spec. program pro PC ( Atmel Flip,…) uP řady ARM - STR750, STM32, LPC2105, LPC2148,.. AT91SAM7S64 - interní boot loader, možnost boot pomocí UART, někdy CAN, USB,… Funkce boot - možnost začít práci s uP bez specializovaného vybavení (emulátor, vývojový modul,..) pouze s vlastním procesorem - viz použití AT89C51RC2 předmětu X38PRM a procesoru STM32 v předmětu X38PMM na kat. měření ČVUT - FEL
Programování typu -ISP s využitím funkce BOOT loader
10
X38MIP - 2009, kat. měření, ČVUT - FEL
SPI rozhraní vysílání MSB typicky první, případně možnost volby LSB první 8 bitů dat ( typicky), v některých uP možnost i 16 bitů dat) rychlosti komunikace, frekvence SCK - programovatelná, 1 MHz, u některých uP frekvence SCK až 10 - ky MHz Možnost programové implementace rozhraní SPI u uP, které nemají rozhraní SPI integrováno na čipu - 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,
SPI rozhraní - implementace
11
X38MIP - 2009, kat. měření, ČVUT - FEL
Příklad - připojení ext. řadiče Ethernet k ARM7 typu LPC2114, viz, aplik. nota firmy NXP
Pozn. pozor AT89C2051 na P1.0 a P1.1 přidat pull up rezistory
pozor- změna směru brány- vstupní- výstupní mód
Jeden cyklus zápisu nebo čtení - potřeba více instrukcí,
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
? je možno použít čítače / časovače 8253 s obvodem AT89C2051, který nemá vyvedenu sběrnici? ANO
Připojení programovatelných řadičů PPI 8255, 8253,. řadič Ethernet, řadič CAN,….standardně na sběrnici mikropočítače
Připojení řadiče emulovaným rozhraním sběrnice
12
X38MIP - 2009, kat. měření, ČVUT - FEL
SCL vstup
SCL1 výst.
DATA vstup
DATA1 výst.
RP
SCLK VST.
SCL2 výst.
RP
DATA VST.
DATA2 výst.
SCL sériové hodiny
SDA sériová data
SCL
SDA
VDD +5V
Typ sběrnice- otevřený kolektor, připojení více obvodů, master - slave, možnost - multimaster.
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,…)
Rozhraní IIC bus
13
X38MIP - 2009, kat. měření, ČVUT - FEL
SCL
SDA
SCL
SDA
0
data stabilní
změna dat 1
data stabilní
přenos bitů 0 a 1
změna dat při SCL = 0
data platná při SCL = 1
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)
Změna stavu SDA při přenosu dat možná pouze při SCL = L
SCL - hodinový signál, generuje maste SDA - data, generuje master nebo slave
Rozhraní IIC bus - signály
14
X38MIP - 2009, kat. měření, ČVUT - FEL
SCL
SDA
S
start
P
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
Rozhraní IIC bus- start, stop
15
X38MIP - 2009, kat. měření, ČVUT - FEL
1
0
adresace
0 1 0 0
0
A6 A5 A4 A3 A2 A1 A0
ACK ze slave
SCL
SDA
start S R A W C K 0
zápis
LSB
data
A stop D7 D6 D5 D4 D3 D2 D1 D0 C P K 1 0 1 0 1 1 0 0
MSB
potvrzení - ACK přijímajícím ( master, nebo slave)
přenos dat 8 bitů, ACK - slave, stop - master obvykle - přenosy více Byte
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,
Rozhraní IIC bus - potvrzení
16
X38MIP - 2009, kat. měření, ČVUT - FEL
S
adr.
slave
master
S
master čte ze slave
slave
master
master zapisuje do slave
adr.
W
R
ACK
ACK
ACK data
data
ACK
data
data
ACK
ACK
data
data
ACK
NOT ACK
P
P
Kombinovaný přenos - start - zápis, nový start (bez stop) čtení, konec- stop.
Po start a vyslání adresy obvodu - možný přenos dat pouze jedním směrem, čtení nebo zápis
Přenos vícebajtové zprávy po rozhraní IIC
17
X38MIP - 2009, kat. měření, ČVUT - FEL
U AT89S8252 možno využít piny přímo - standardní funkce otevřený kolektor.
Možnost programové emulace rozhraní IIC Bus v uP, které nemají IIC Bus, 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.
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.
Rozhraní IIC Bus, implementace
18
X38MIP - 2009, kat. měření, ČVUT - FEL
http://www.standardics.nxp.com/literature/books/i2c/pdf/smbus.specification.pdf
SM Bus specifikace
http://www.standardics.nxp.com/literature/presentations/i2c/pdf/interface.solutions.pdf
IIC bus, princip funkce, použití
Další informace:
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, ….)
Použití IICBus, mnoho integrovaných obvodů , obvodově nenáročné, pouze dva vodiče SCL, SDA,
Rozšíření a specifikace komunikace - SMBus - System Management Bus (firmy -Intel, Duracel,….) je nyní v každém PC.
Rozhraní IIC Bus, použití
19
X38MIP - 2009, kat. měření, ČVUT - FEL
http://measure.feld.cvut.cz/vyuka/predmety/x38mip/zkouska
Informace ke zkoušce
http://measure.feld.cvut.cz/cs/vyuka/predmety/x38mip
Zarovnání dat doleva, zarovnání dat doprava u převodníku A/D
Převodníky s dvojnásobným bufferováním, použítí ve vícebitových převodnících D/A a ve vícekanálových převodnících D/A.
Sběrnicově kompatibilní převodníky A/D a D/A
Rozhraní RS232, úrovně
Dle folií a výkladu na přednášce a monografie: Vedral, Fischer: Elektronické obvody v měřicí technice
Převodníky A/D, D/A
20
X38MIP - 2009, kat. měření, ČVUT - FEL