II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i...

140
Mikrokontrolery i mikrosystemy Materialy do wykladu Tom II MIKROSYSTEMY ELEKTRONICZNE dr hab. inż. Zbigniew Czaja Gdańsk 2015

Transcript of II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i...

Page 1: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

Materiały do wykładu

Tom II

MIKROSYSTEMY ELEKTRONICZNE

dr hab. inż. Zbigniew Czaja

Gdańsk 2015

Page 2: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

112

Spis treści Tom I

1. Wprowadzenie ....................................................................................................................4

2. Mikrokontrolery.................................................................................................................6

2.1. Jednostka centralna.......................................................................................................8

2.1.1. Architektury procesorów rdzeniowych mk...........................................................10

2.2. Pamięci .........................................................................................................................15

2.3. Struktury mikrokontrolerów.........................................................................................16

2.4. Elementy składowe procesora rdzeniowego.................................................................20

2.4.1. Oscylator i dystrybucja sygnałów zegarowych ....................................................20

2.4.2. Techniki redukcji mocy i tryby specjalne mk.......................................................25

2.4.3. Reset mk ...............................................................................................................28

2.4.4. Układy nadzorujące - układ watchdog..................................................................31

2.4.5. System przerwań...................................................................................................32

2.5. Porty równoległe mk - warstwa multiplekserów i zacisków we/wy ............................36

2.6. Wewnętrzne urządzenia peryferyjne mk ......................................................................38

2.6.1. Układy licznikowe/czasowe..................................................................................40

2.6.2. Przetworniki analogowo-cyfrowe (A/C) ..............................................................49

2.6.3. Komparatory analogowe.......................................................................................54

2.6.4. Wewnętrzna pamięć EEPROM.............................................................................56

2.6.5. Sterowniki komunikacji szeregowej .....................................................................59

2.6.5.1. Interfejs UART..............................................................................................60

2.6.5.2. Interfejs SPI...................................................................................................68

2.6.5.3. Interfejs 1-Wire .............................................................................................76

2.6.5.4. Interfejs I2C ...................................................................................................79

2.6.5.5. Interfejs CAN................................................................................................83

2.6.5.6. Interfejs USB.................................................................................................85

2.6.6. System zdarzeń .....................................................................................................88

2.7. Typy obudów mk..........................................................................................................91

2.8. Rodziny mk...................................................................................................................92

2.9. Programowanie mk.......................................................................................................95

2.9.1. Programowanie w języku asemblera ....................................................................96

2.9.2. Programowanie w językach wyższego poziomu ..................................................98

2.9.3. Uruchamianie programu mk ...............................................................................101

2.9.4. Sposoby programowania mk z pamiecią FLASH...............................................102

2.9.4.1. Tryb programowania równoległego............................................................102

2.9.4.2. Tryb programowania szeregowego (ISP)....................................................104

Page 3: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

113

Tom II

3. Układy buforów............................................................................................................... 115

3.1. 8-bitowy jednokierunkowy nieodwracający bufor 74HC541 ....................................116

3.2. 8-bitowy dwukierunkowy nieodwracający bufor 74HC245 ......................................117

3.3. 8-bitowy rejestr zatrzaskujący 74HC573 ...................................................................118

4. Układy scalone pamięciowe............................................................................................ 120

4.1. Pamięć asynchroniczna SRAM o dostępie równoległym.......................................... 122

4.2. Pamięć FLASH o dostępie równoległym ...................................................................125

5. Programowalne układy logiczne .................................................................................... 134

5.1. Układy logiczne SPLD na przykładzie układu GAL16V8........................................ 135

5.2. Układy logiczne CPLD...............................................................................................142

5.2.1. Rodzina układów ATF15xx firmy Atmel ...........................................................142

5.2.2. Rodzina Ultra37000 firmy Cypress ....................................................................144

5.2.2. Rodzina XC9500 firmy Xilinx ...........................................................................146

6. Układy peryferyjne z interfejsem szeregowym standardu SPI....................................155

6.1. Szeregowe pamięci z interfejsem SPI ........................................................................158

6.1.1. Szeregowe pamięci EEPROM z interfejsem SPI ...............................................160

6.1.2. Szeregowe pamięci SRAM z interfejsem SPI ....................................................167

6.2. Zewnętrzne przetworniki analogowo-cyfrowe (A/C).................................................171

6.2.1. Zewnętrzny przetwornik A/C pracujący na zasadzie SAR.................................172

6.2.2. Zewnętrzny przetwornik A/C typu signa-delta...................................................175

6.3. Programowalne czujniki temperatury z interfejsem SPI ............................................183

6.4. Kontrolery czujników pojemnościowych...................................................................187

6.5. Zewnętrzne przetworniki cyfrowo- analogowe (C/A)................................................192

6.5.1. Pojedynczy przetwornik C/A..............................................................................194

5.3.2. Wielokanałowy przetwornik C/A .......................................................................197

6.6. Cyfrowe potencjometry sterowane interfejsem SPI ...................................................207

6.7. Programowalne wzmacniacze sterowane interfejsem SPI .........................................214

6.8. Klucze analogowe sterowane interfejsem SPI............................................................217

6.8.1. Układy z kluczami PSPT ....................................................................................217

6.8.2. Układy z matrycami przełączającymi.................................................................220

6.9. Programowalne generatory sterowane interfejsem SPI..............................................222

6.10. Kontrolery interfejsów szeregowych sterowane interfejsem SPI.............................228

Page 4: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

114

6.10.1. Kontrolery sieci Ethernet ..................................................................................229

6.10.2. Kontrolery sieci bezprzewodowych..................................................................237

6.11. Układy MEMS sterowane interfejsem SPI...............................................................243

7. Bibliografia .......................................................................................................................249

7.1. Literatura podstawowa .............................................................................................. 249

7.2. Dokumentacja w postaci plików PDF ....................................................................... 250

Page 5: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

115

3. Układy buforów Można wyróżnić następujące podstawowe zastosowania układów buforuj ących magistralę 8-bitową w systemach z mk:

• Zwiększenie liczby linii sterujących mk przez podłączenie buforów do portu mk. Wówczas można sekwencyjnie ustawiać 8*N linii wyj ściowych (zapamiętywać je na N buforach np. z nieodwracającymi rejestrami zatrzaskowymi 74HC573) lub sekwencyjnie czytać 8*M linii wejściowych (np. z M nieodwracających buforów typu 74HC541).

• Zwiększenie wydajności prądowej linii wyj ściowych. Linie wyjściowe układów scalonych buforów mają zdecydowanie większe wydajności prądowe niż linie mk, zatem nadają się do ich buforowania.

• Możliwość separacji układów połączonych do magistrali za pośrednictwem buforów przez ustawienie wyjść tych buforów w stan wysokiej impedancji.

• Poprawa kształtu zboczy sygnałów na magistrali.

Na rys. 3.1 pokazano fragment mikrosystemu wykorzystującego trzy układy buforów. Wszystkie one są podłączone do portu C mk. Moduł ośmiu przełączników, tzw. „dip switch” typu „piano” jest buforowany za pomocą układu bufora U4 (74HC541). Odczyt stanu przełączników odbywa się przez podanie na linie OE1 i OE2 stanu niskiego.

Rys. 3.1. Fragment schematu ideowego stanowiska laboratoryjnego dla mk ATmega16

Aby zmienić sposób świecenia 8 diod LED, czy wyświetlacza 7-segmentowego należy na porcie C wystawić nową daną, a następnie uruchomić wpis do danego układu (U5 lub U6 typu 74HC573) podając na jego wejście sterujące LE stan niski.

Poniżej pokazano funkcje napisane w języku C sterujące poszczególnymi buforami.

Page 6: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

116

void SetLedBar(uint8_t bajt) PORTC = bajt; // wystawienie zmiennej na port sbi (PORTA,3); cbi (PORTA,3); // zatrza śni ęcie wyj ścia układu U5 return;

Listing 3.1. Wysterowanie linijki 8 diod LED void Set7Segm(uint8_t bajt) PORTC = bajt; sbi (PORTA,4); cbi (PORTA,4); // zatrza śni ęcie wyj ścia układu U6 return;

Listing 3.2. Wysterowanie wyświetlacza 7-segmentowego uint8_t ReadDip(void) uint8_t bajt; cli(); // blokada p rzerwan DDRC = 0x00; // kierunek IO: wejscia cbi (PORTA,2); // uaktywnie nie bufora U4 (od DIP8) bajt = PINC; // próbny od czyt (w celu 1 cyklu opoznienia) bajt = PINC; // odczyt z pinów stanu przeł ączników sbi (PORTA,2); // wylaczeni e ukladu U4 (od DIP8) DDRC = 0xFF; // kierunek IO: wyjscia sei(); // globalne odblokowanie przerwa ń return bajt;

Listing 3.1. Odczyt stanu przełączników DIP8

3.1. 8-bitowy jednokierunkowy nieodwracający bufor 74HC541 Układ 74HC541 jest 8-bitowym jednokierunkowym nieodwracającym buforem linii z

8 trójstanowymi liniami wyj ściowymi. Stan tych linii jest kontrolowany za pomocą wejść OE1 i OE2.

Stan wysoki na linii OEn wprowadza linie trójstanowe w stan wysokiej impedancji. Dzięki tej właściwości układ stosowany jest w systemach magistralowych. Natomiast stan niski uaktywnia bufory, zatem to co jest podawane na wejście układu pojawia się na jego wyjściu.

Sposób sterowania układem przedstawia tabela 3.1. Tabela 3.1. Sterowanie układem 74HC541

gdzie: OE1 i OE2 – aktywują linie wyjściowe (aktywne stanem niskim),

An – linie wejściowe, Yn – trójstanowe linie wyjściowe.

Page 7: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

117

Na rys. 3.2a pokazano wyprowadzenia układu 74HC541, a na rys. 3.2b jego logiczny symbol.

Jego odpowiednikiem z wyjściami odwracającymi jest układ 74HC540.

a) b)

Rys. 3.2. Układ 74HC541: a) wyprowadzenia układu, b) schemat logiczny

3.2. 8-bitowy dwukierunkowy nieodwracający bufor 74HC245 Układ 74HCT245 jest dwukierunkowym 8-bitowym nieodwracającym buforem linii .

Czyli posiada 8 linii, którymi dane mogą być przesyłane w obu kierunkach. Niski poziom na linii OE (output enable input) uaktywnia bufory, czyli to co jest na

wejściu układu to pojawia się na jego wyjściu, natomiast wysoki poziom na tej linii wprowadza wszystkie bufory w stan wysokiej impedancji. Odpowiednikiem układu 74HC245 ale z buforami odwracającymi jest układ 74HCT640.

Linia wejściowa DIR służy do wyboru kierunku przepływu danych, tak jak pokazano w tabeli 3.2.

Tabela 3.2. Sterowanie układem 74HC245

gdzie: An – linia wejściowo/wyjściowa,

Bn – linia wejściowo/wyjściowa, OE – aktywacja bufora wyjściowego, DIR – kontrola kierunku przepływu danych.

Page 8: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

118

a) b)

Rys. 3.3. Układ 74HC245: a) wyprowadzenia układu, b) schemat logiczny

3.3. 8-bitowy rejestr zatrzaskujący 74HC573 Często istnieje potrzeba zastosowania w mse takich prostych układów jak 8-bitowy rejestr

zatrzaskujący. Np. układy te stosuje się w celu „zwiększenia” liczby linii wyjściowych mk lub np. jako układy pamiętające młodszą część adresu przy adresowaniu zewnętrznej pamięci RAM i ROM np. przez mk 8051, itp.

Jednym z takich układów jest 8-bitowy rejestr zatrzaskujący 74HC573. Posiada on następujące właściwości: • trzystanowe nieodwracające wyjścia, co pozwala na stosowanie układu w systemach

magistralowych, • zawiera w sobie 8-bitowy rejestr składający się z przerzutników typu D wyzwalanych

poziomem niskim, • każdemu przerzutnikowi przyporządkowana jest linia wejściowa i wyjściowa, • dla wszystkich przerzutników jest wspólny sygnał wprowadzania danych LE (latch

enable) i sygnał sterowania ich buforami wyjściowymi OE. Gdy na linii LE pojawi się poziom niski, to stan sygnałów na liniach wejściowych układu

(D0 – D7) zostaje zapamiętany w rejestrze. Kiedy sygnał OE jest w stanie wysokim wyjścia układu (Q0 – Q7) są w stanie wysokiej impedancji. Stan niski na linii OE spowoduje wystawienie zawartości rejestru na linie wyjściowe. Linia OE nie wpływa na zawartość rejestrów układu.

Page 9: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

119

a) b)

Rys. 3.4. Układ 74HC573: a) wyprowadzenia układu, b) diagram funkcyjny Jak widać z rys. 3.4 układ składa się z rejestru zatrzaskującego złożonego z ośmiu

przerzutników typu D wyzwalanych poziomem i bloku ośmiu buforów trójstanowych. Rejestry są sterowane wyłącznie sygnałem LE, a bufory sygnałem OE.

Poniżej przedstawiono tabelę 3.3 opisującą sposób sterowania tym układem. Tabela 3.3. Sterowanie układem 74HC573

Rys. 3.5. Schemat logiczny układu 74HC573

Page 10: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

120

4. Układy scalone pamięciowe

W skład mse często mogą wchodzić układy pamięciowe. Szczególnie, gdy użyty mk nie posiada wewnętrznej pamięci danych i programu. Generalnie, ze względu na sposób trzymania danych scalone układy pamięciowe można podzielić na trzy grupy:

• pamięci ulotne, trzymają dane tylko wtedy, gdy są zasilane. Zanik napięcia zasilania powoduje utratę przechowywanych informacji, są to:

• statyczne – SRAM

• pseudostatyczne – PSRAM,

• dynamiczne – DRAM,

• pamięci stałe, zachowane dane nie ulegają skasowaniu po wyłączeniu napięcia zasilania, jednokrotnie programowane:

• programowane przez producenta: ROM, mask-ROM,

• jednokrotnie programowane przez użytkownika: PROM, OTPROM,

• pamięci nieulotne, zachowane dane nie ulegają skasowaniu po wyłączeniu napięcia zasilania, istnieje możliwość ich wielokrotnego programowania przez użytkownika:

• reprogramowane (programowane i kasowane) w systemie docelowym: EEPROM, FLASH , F-RAM,

• pamięci statyczne RAM z podtrzymaniem bateryjnym – NOVRAM,

• pamięci hybrydowe: NVRAM złożone z pamięci SRAM i EEPROM,

• wielokrotnie programowane przez użytkownika: EPROM, UV-PROM.

Pierwsza grupa to pamięci RAM (Random Access Memory). Są one pamięciami, w których dane mogą być zarówno zapisywane, jak z niej odczytywane z czasem praktycznie niezależnym od miejsca pobytu informacji w pamięci.

Pamięć SRAM przechowuje bity informacji w postaci stanów przerzutników bistabilnych. Każda komórka pamięci składa się z około od 4 do 6 tranzystorów. Układy SRAM mogą mieć względnie niski pobór mocy w trybie podtrzymywania zawartości pamięci, natomiast w trybie pracy pobierają dość duży prąd. Zaletą tych pamięci jest prostota sterowania oraz szybkość (pamięci te wykonane z arsenku galu GaAs mają czas dostępu poniżej 1ns). Dzięki prostemu sterowaniu są one najczęściej stosowane w mse.

W pamięci DRAM informacja przechowywana jest w postaci ładunków zgromadzonych w kondensatorach, jakie powstają pomiędzy emiterami tranzystorów MOS i podłożem układu. Dane w tych pamięciach mają tendencje do zanikania i wymagają ciągłego odnawiania. Proces taki nazywa się „odświeżaniem” i wymaga specjalnych układów do wytwarzania sygnałów odświeżających. Zaletą układów DRAM jest niski koszt produkcji, ze względu na niewielką powierzchnię zajmowanej powierzchni krzemu. Każda komórka pamięci DRAM ma tylko jeden tranzystor MOS. Z zalety tej wynika również inna cecha: pamięci DRAM posiadają znacznie większą pojemność od pamięci SRAM (obecnie dostępne są na rynku pamięci SRAM do 512kB). Wadą tych układów jest skomplikowane sterowanie, wynikające z multipleksowania adresów rzędów i kolumn (pamięci te adresuje się jak macierz) oraz wynikającego z tego dłuższego czasu dostępu, który jest dodatkowo zwiększany o czas potrzebny na odświeżanie.

Page 11: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

121

Istnieje cały szereg pamięci nieulotnych (część z nich zestawiono w tabeli 2.1). Poniżej przedstawiono najczęściej spotykane typy tych pamięci (ze względu na technologię wykonania): • Pamięć ROM (Read Only Memory) służy tylko do odczytywania. Informacja w pamięci

ROM jest zapisywana w czasie produkcji w formie maski, na podstawie dostarczonego wzorca. Dla zamawiającego taką pamięć oznacza to wysoki koszt jednostkowy. Dlatego pamięci ROM używa się jedynie w urządzeniach, które są produkowane w długich seriach.

• Pamięć EPROM jest pamięcią programowaną elektrycznie. Użytkownik sam programuje swój wzór informacji, jaką chce zapisać. Gdy układ posiada okienko ze szkła kwarcowego, można taką pamięć kasować i programować ponownie. Jest to duża zaleta w fazie uruchamiania mse. Kasowanie odbywa się na ogół przy pomocy światła ultrafioletowego. Pamięć EPROM umieszczona w obudowie plastikowej, znacznie tańszej od obudowy ceramicznej z okienkiem szklanym, nosi nazwę OTP (One Time Programmable). Komórki pamięci EPROM są tranzystorami MOS z pływającymi bramkami. Są one programowane przez wstrzykiwanie elektronów o wysokiej energii. Komórka taka zawiera „0”, podczas gdy nie zaprogramowane komórki zawierają „1”. Zaprogramowanego w ten sposób tranzystora nie można wprowadzić w stan przewodzenia i usunąć zgromadzonego w nim ładunku. Można tego dokonać jedynie przez kasowanie światłem UV. Promienie UV dostarczają elektronom energii, wystarczającej do ponownego przejścia przez barierę energetyczną w warstwie izolacyjnej dwutlenku krzemu wokół pływającej bramki. Układy EPROM mogą być kasowane i ponownie programowane około 100 razy.

• Pamięci EEPROM są układami, które nie tylko są elektrycznie programowalne, ale również elektrycznie kasowane. Mają ograniczoną liczbę cyklów programowania od około 10000 razy do 1000000 razy. Komórka pamięci EEPROM składa się z tranzystora NMOS (Metal Nitride Oxide Semiconductor). Do każdej komórki można wprowadzić ładunek elektryczny, który przechowywany jest w izolowanej warstwie azotku krzemu, znajdującej się między bramką tranzystora, a podłożem z tlenku krzemu. Ładowanie inicjuje się poprzez tzw. efekt tunelowy. Powstaje on po przyłożeniu wysokiego napięcia (20-40V) do bramki tranzystora. Przez zmianę polaryzacji tego napięcia, układ można programować, bądź też kasować.

• Pamięć błyskowa (FLASH) jest również pamięcią programowaną i kasowaną elektrycznie. Koszt jej produkcji jest niższy niż układu EEPROM. W porównaniu z pamięcią EEPROM cechuje się ona szybszymi czasami programowania i kasowania. Najczęściej pamięć ta składa się z sektorów, na których mogą być wykonywane odpowiednie operacje, posiada własną listę komend automatyzujących programowanie i kasowanie pamięci.

• Pamięć FRAM zbudowana jest z materiału ferroelektrycznego o nazwie PZT (związek ołowiu, cyrkonu i tytanu), którego cechuje możliwość zapamiętania jednego z dwóch kierunków pola elektrycznego. Do zapamiętania informacji wykorzystuje się efekt ferroelektryczny - pod wpływem działania pola elektrycznego następuje trwała zmiana polaryzacji cząstek. Nieobecność pola elektrycznego nie powoduje zmiany polaryzacji. Komórkę pamięci można sobie wyobrazić jako kondensator z materiałem ferroelektrycznym jako dielektrykiem, ładowany na przemian napięciem o przeciwnej polaryzacji. Poprzez zmianę polaryzacji ładunków w takim kondensatorze można zapamiętać dwa stabilne stany odpowiadające stanom logicznym „0” i „1”. Jej zalety to: mały pobór energii, bardzo duża trwałość (co najmniej 10 mld. cykli), bardzo duża szybkość zapisu (rzędu nanosekund), a wady to: duży rozmiar komórki, kłopotliwe odświeżanie, mała kompatybilność z technologią CMOS.

Page 12: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

122

4.1. Pamięć asynchroniczna SRAM o dostępie równoległym Pamięć o dostępie asynchronicznym SRAM zostanie przedstawiona na przykładzie układu

K6R4008C1D firmy Samsung Electronics. Jest to pamięć SRAM o pojemności 512 K x 8 bitów wykonana w technologii CMOS o małym poborze mocy.

Na rys. 4.1 pokazano schemat logiczny i wyprowadzenia układu. Są one zgodne ze standardem przemysłowym dla pamięci o tej pojemności.

a) b)

Rys. 4.1. Pamięć SRAM K6R4008C1D: a) schemat logiczny, b) wyprowadzenia układu

Rys. 4.2. Schemat blokowy układu K6R4008C1D

Page 13: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

123

Na rys. 4.2 pokazano schemat blokowy układu pamięci SRAM. Składa się on z układu kontrolnego, do którego podłączone są sygnały CS, WE i OE za pośrednictwem których steruje się pamięcią, układu we/wy służącego do wymiany danych pomiędzy matrycą pamięci składającej się z 1024 rzędów i 512 x 8 kolumn, a liniami danych I/O1 do I/O8. Wybór komórki (bajtu) do zapisu lub odczytu odbywa się za pomocą układów wyboru wierszy i rzędów, do których podłączone są linie adresowe A0 – A18.

W tabeli 4.1 przedstawiono znaczenie poszczególnych sygnałów. Tabela 4.1. Funkcje sygnałów dla układu K6R4008C1D

Znaczenie linii sterujących pamięcią asynchroniczną SRAM:

• Linia CS służy do uaktywnienia układu. Stan niski na tej linii aktywuje układ do transmisji.

• Linia OE jest wykorzystywana w trakcie czytania danej, niski poziom na tej linii uaktywnia bufory wyjściowe pamięci.

• Niski poziom na linii WE uaktywnia bufory wejściowe i dezaktywuje wyjściowe (niezależnie od stanu na linii OE), czyli służy do wprowadzenia danej do pamięci

• za pośrednictwem dwukierunkowych linii I/O 1 – I/O8, • pod adres wskazany przez linie A0 – A18.

Tabela 4.2. Zastosowanie sygnałów sterujących dla układu K6R4008C1D

Jak widać z tabeli 4.2, aby móc odczytać bajt z pamięci musi być ona aktywna (CS – stan

niski (L) oraz na linii OE ma być stan niski (aktywny), a na linii WE stan wysoki (nieaktywny).

Podobnie jest dla zapisu bajta. W tym przypadku na linii CS – jest stan niski i na linii WE też stan niski (warto aby OE było w stanie wysokim).

Na poniższych rysunkach pokazano dwa przebiegi cyklu odczytu bajtu z pamięci SRAM

oraz dwa zapisu do niej bajta.

Page 14: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

124

Przy odczycie bajta sygnał WE musi być w stanie wysokim. W przeciwnym razie (gdy WE będzie w stanie niskim) będziemy mieli zawsze cykl zapisu.

Rys. 4.3. Przebiegi czasowe cyklu odczytu danych z pamięci (zmiana adresu)

Rys. 4.4. Przebiegi czasowe cyklu odczytu danych z pamięci (sterowanie sygnałem OE)

Rys. 4.5. Przebiegi czasowe cyklu zapisu danych do pamięci (sterowanie sygnałem WE)

Rys. 4.6. Przebiegi czasowe cyklu zapisu danych do pamięci (sterowanie sygnałem CS)

Page 15: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

125

Chwile, w których sygnały CS, OE, czy WE mogą przyjmować dowolny stan (oczywiście „0” lub „1”) zostały zaznaczone jako szare pola między linią reprezentującą stan niski a linią reprezentującą stan wysoki.

4.2. Pamięć FLASH o dostępie równoległym Szczególną zaletą pamięci FLASH (błyskowych) w stosunku do pamięci EEPROM jest

krótki czas kasowania i zapisu. Wynika to między innymi z faktu, iż podczas jednej operacji programowania wykonywane jest zapisywanie lub kasowanie na raz wielu komórek pamięci (zgrupowanych w tzw. sektor). Do programowania i kasowania pamięci błyskowych potrzebne jest podwyższone napięcie około 12 V. Obecnie napięcie to jest wytwarzane przez wbudowaną w strukturę układu pamięci przetwornicę DC/DC. Zatem do programowania i kasowania pamięci FLASH wystarcza pojedyncze napięcie zasilania np.: 5 V, 3 V, 1,8 V.

Ze względu na typ zastosowanej w komórkach pamięci bramki logicznej wyróżnia się dwa rodzaje pamięci FLASH. • NOR - ma długie czasy zapisu i kasowania, ale umożliwia bezpośredni dostęp do każdej

komórki pami ęci. Z tego względu nadaje się do przechowywania danych, które nie wymagają częstej aktualizacji, ale wymagany jest bezpośredni dostęp do każdej komórki, np. kod programu mk.

• NAND – w stosunku do pamięci typu NOR ma krótszy czas zapisu i kasowania, większą gęstość upakowania danych, korzystniejszy stosunek kosztu pamięci do jej pojemności oraz dziesięciokrotnie większą wytrzymałość. Jej główną wadą jest sekwencyjny dostęp do danych, przez co może być stosowana jako pamięć masowa, np. w kartach pamięci, lecz jest bezużyteczną jako pamięć trzymająca kod programu.

Ze względu na architekturę i sposób obsługi transmisji danych można wyróżnić następujące interfejsy pamięci FLASH o dostępie równoległym (zachowano oryginalne nazewnictwo): Conventional, Burst-mode, Page-mode, Simultaneous Read/Write, I NAND.

Pamięci FLASH typu NOR z interfejsem standardowym (conventional) zostaną przedstawione na przykładzie 8-Mbitowej pamięci typu Am29F080B o organizacji 1 M x 8 bitów. Jest to pamięć firmy Spansion należącej do AMD (Advanced Micro Devices) i Fujitsu.

Pamięć ta posiada następujące właściwości:

• pojedyncze zasilanie, 5V +-10% dla czytania, zapisu i operacji kasowania programu, • maksymalny czas dostępu 55ns, • niskie zużycie energii, maksymalnie 25 mA na odczyt i 30 mA na programowanie oraz

czyszczenie, mniej niż 1 µA podczas trybu standby, • elastyczna architektura oparta na sektorach, 16 zunifikowanych sektorów, każdy po

64 kB, wszystkie kombinacje sektorów mogą być kasowane, • możliwość kasowania całego układu, • ochrona grupy sektorów przed zapisem, • wsparcie sprzętowe dla zablokowania i odblokowania programowania i czyszczenia dla

wszystkich kombinacji sektorów, • wbudowany algorytm kasowania automatycznie kasuje cały układ lub wybraną

kombinację sektorów, • wbudowany algorytm programowania automatycznie wpisujący i weryfikujący dane spod

zadanego adresu,

Page 16: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

126

• minimum 1 mln. gwarantowanych cykli programowania i kasowania, czas trzymania danych 20 lat,

• wyprowadzenia pamięci i jej sposób obsługi (polecenia) zgodne ze standardem JEDEC dla pamięci FLASH zasilanych pojedynczym napięciem,

• obsługuje programowe metody sprawdzania stanu pamięci (czy jest w cyklu kasowania, czy w cyklu programowania, itd.),

• obsługuje sprzętowe metody odpytywania stanu pamięci: wyjście RY/BY#, • posiada linię wejściową RESET# pozwalającą na wymuszenie trybu odczytu.

a) b)

Rys. 4.7. Pamięć FLASH Am29F080B: a) schemat logiczny, b) wyprowadzenia układu

Znaczenie linii pamięci FLASH z interfejsem standardowym:

• A0 – An – (n+1)-bitowa magistrala adresowa (dla Am29F080B n = 19), wystawiany jest na niej n-bitowy adres komórki do odczytu lub zapisu,

• DQ0 – DQ7 – 8-bitowa dwukierunkowa magistrala danych służąca do wprowadzania i wyprowadzania danych spod adresów ustawianych na magistrali adresowej,

• CE# – (Chip Enable) wybór (aktywacja) układu poziomem niskim, • WE# – (Write Enable) niski poziom na tej linii powoduje zapis bajta pod wskazany adres

(ale nie zapis bajta do pamięci FLASH – to wymaga uruchomienia procedury programowania),

• OE# – (Output Enable) niski poziom na tej linii powoduje wystawienie na magistrali danych danej spod wskazanego adresu,

• RESET# – sprzętowy reset wprowadzający pamięć w tryb odczytu, aktywny stanem niskim,

• RY/BY# – wyjście służące do sprawdzania czy pamięć zakończyła wewnętrzne algorytmy kasowania/programowania, stan wysoki oznacza gotowość na przyjęcie kolejnych poleceń, stan niski informuje, że pamięć jest zajęta (niegotowa), bo jest w trakcie wykonywania wewnętrznych operacji.

Pamięć Am29F080B produkowana jest w obudowach typu 40-pin TSOP i 44-pin SO.

Zaprojektowano ją z możliwością programowania w systemie ze standardowym 5V zasilaniem. Ponadto może być programowana za pomocą standardowego programatora do pamięci EPROM.

Page 17: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

127

Pamięć posiada wbudowany algorytm programowania (wewnętrzny algorytm, który automatycznie weryfikuje szerokość i czas trwania impulsów programowania). Zawiera ona także wbudowany algorytm kasowania. Podczas kasowania urządzenie automatycznie kontroluje czas i szerokość sygnałów oraz weryfikuje właściwe komórki docelowe.

System nadrzędny (np. mk) może wykrywać zakończenia operacji kasowania lub programowania poprzez czytanie bitów statusu : DQ7 (DATA#Polling) i DQ6 (toggle) lub kontrolę linii RY/BY#. Po zakończeniu cyklu programowania/kasowania pamięć jest gotowa do czytania z niej danych lub oczekuje na następną komendę.

Sektorowa architektura pamięci pozwala na kasowanie, czy ponowne programowanie wybranych sektorów pamięci bez wpływu na pozostałe sektory. Sprzętowa ochrona danych wykrywa spadek poziomu napięcia zasilania poniżej założonego progu i wstrzymuje proces zapisywania danych do pamięci. Pamięć można przełączyć w tryb standby, w celu znacznej redukcji pobieranej mocy.

Rys. 4.8. Schemat blokowy pamięci Am29F080B

Na rys. 4.8 przedstawiono schemat blokowy pamięci Am29F080B. Jak widać, składa się

ona z wielu bloków, z których część służy do obsługi procesu zapisu do pamięci (blok Cell Matrix), są nimi generatory napięć PGM Voltage Generator i Erase Voltage Generator. Pracą całego układu zarządza blok State Control / Command Register. Komórki pamięci są wybierane za pomocą układu dekodera adresu. Sterowanie przepływem danych odbywa się za pośrednictwem dwukierunkowego bufora i rejestru zatrzaskującego oraz bloku Chip Enable / Output Enable Logic.

Rejestr komend (Command Register) składa się z zatrzasków, które przechowują komendy z adresami i danymi potrzebnymi do wykonania komendy. Zawartość rejestru służy jako wejścia dla „wewnętrznej maszyny stanu”. Wyjścia maszyny stanu dyktują funkcje urządzenia. Funkcje te (operacje na magistralach układu) zestawiono w tabeli 4.3.

Page 18: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

128

Tabela 4.3. Operacje na magistralach pamięci Am29F080B

Aby odczytać dane z pamięci system musi zapewnić niski stan na wejściach CE# i OE#.

Linia CE# aktywuje pamięć. Linia OE# steruje buforem wyjściowym. Sygnał na linii WE# powinien być na poziomie VIH. Żadna komenda nie jest wymagana w tym trybie. Jest on trybem domyślnym po włączeniu napięcia zasilania. Zatem mk może podawać na linie adresowe A0 – A19 adresy danych, które chce otrzymać na liniach danych DQ0 – DQ7. Urządzenie pozostaje dostępne do odczytu dopóki nie zmieni się zawartość rejestru komend.

Aby wprowadzić bajt do pamięci (dokładniej: do jej rejestru komend) wchodzący w skład sekwencji komendy (np. programującej czy czyszczącej wybrane sektory pamięci), system musi zapewnić następujące stany na wejściach: WE# i CE# stan niski VIL oraz na wejściu OE# stan wysoki VIH .

Operacja kasowania uruchamiana po wprowadzaniu do pamięci komendy kasowania może skasować jeden sektor, wiele sektorów lub całe urządzenie. Tablica adresów sektorów wskazuje na adres w przestrzeni jaką każdy sektor zajmuje. „Adres sektora” to najstarsze bity adresu potrzebne aby jednoznacznie zidentyfikować sektor (patrz tabela 4.4).

Tabela 4.4. Tablica adresów sektorów pamięci Am29F080B

Podczas operacji czyszczenia lub programowania system może sprawdzić status operacji

przez czytanie bitów statusu DQ7-DQ0 wystawianych na magistrali danych. Po włączeniu zasilania domyślnie ustawiany jest tryb odczytu danych. Tryb ten jest

ustawiany domyślnie także po wykonaniu wbudowanego algorytmu programowania

Page 19: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

129

(Embedded Program Algorithm) lub wbudowanego algorytmu kasowania (Embedded Erase Algorithm). Odczyt jest możliwy bez użycia jakichkolwiek rozkazów.

Pamięć posiada tryb autoselect, który umożliwia identyfikację urządzenia oraz

producenta, a także weryfikację chronionych sektorów. Odbywa się to przez odczyt kodów identyfikacyjnych wystawianych na DQ7-DQ0. Ten tryb jest niezbędny dla urządzeń programujących pamięć, gdyż na podstawie uzyskanych informacji wybierają one właściwy algorytm programujący.

Poprawne sekwencje rozkazowe przedstawia tabela rozkazów (tabela 4.5). Zapis niepoprawnych wartości adresu i danych lub zapis sekwencji w nieodpowiedniej kolejności przestawia pamięć w tryb odczytu danych. Po poprawnym wpisie sekwencji rozkazowej następuje natychmiastowe wykonanie danego rozkazu.

Adres jest "zatrzaskiwany" w momencie pojawienia się opadającego zbocza na linii WE# lub CE#, w zależności od tego, które z tych zdarzeń wystąpi jako ostatnie.

Tabela 4.5. Formaty poleceń sterowania pamięcią Am29F080B

Z tabeli 4.5 widać, iż zgodnie ze standardem JEDEC dla pamięci tego typu każda

sekwencja rozkazowa składa się z: • dwóch cykli odblokowujących:

• w pierwszym cyklu następuje wpis wartości AAh pod adres 555h, • w drugim cyklu wpisywana jest wartość 55 pod adres 2AAh,

• w trzecim cyklu następuje wprowadzenie kodu polecenia do rejestru komend, czyli zapis kodu komendy pod adres 555h, po tym cyklu pamięć znajduje się w trybie zgodnym z wydanym rozkazem,

• czwarty cykl zależny jest od wydanej komendy: • w trybie autoselect następuje odczyt danych identyfikacyjnych,

Page 20: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

130

• w trybie programowania bajt PD ustawiony na magistrali danych będzie wpisany pod adres PA ustawiony na magistrali adresowej,

• w trybie gotowości do kasowania (po wpisie wartości 80h pod adres 555h w trzecim cyklu) cykl ten jest ponownie pierwszym cyklem odblokowującym dla sekwencji rozkazowych kasowania sektora lub całej pamięci.

• cykl piąty jest drugim cyklem odblokowującym dla sekwencji rozkazowych kasowania sektora lub całej pamięci,

• w ostatnim szóstym cyklu wprowadzany jest kod rozkazu kasowania całej pamięci (wartość 10h pod adres 555h) lub kasowania wybranego sektora (wprowadzany kod 30h) o adresie S.A.

Rozkaz autoselect umożliwia uzyskanie dostępu do kodów producenta i pamięci, a także

pozwala na ustalenie, czy dany sektor jest chroniony. Na sekwencję rozkazową składa się rozkaz AUTOSELECT poprzedzony zapisem 2 cykli odblokowujących. Następnie pamięć wchodzi w tryb autoselect i możliwy jest odczyt spod każdego adresu dowolną liczbę razy bez inicjowania kolejnej sekwencji rozkazowej. Cykl odczytu spod adresu XX00h zwraca kod producenta, a spod adresu XX01h kod urządzenia. Cykl odczytu zawierający adres sektora (SA) i adres 02h zwraca 01h jeśli ten sektor jest chroniony, a 00h w przeciwnym wypadku. W celu wyjścia z trybu autoselect do pamięci trzeba przesłać rozkaz RESET.

Rys. 4.9. Algorytm programowania pamięci Am29F080B

Sekwencja programowanie bajta pamięci składa się z 4 cykli szyny (rozkaz program).

Na sekwencję rozkazową składa się rozkaz ustawiający tryb programowania poprzedzony zapisem 2 cykli odblokowujących. Dane i adres są wysyłane w następnej kolejności. Operacja ta inicjuje wykonanie wbudowanego algorytmu programowania. System programujący nie musi dostarczać dodatkowych sygnałów sterujących czy taktujących. Urządzenie samo generuje wewnętrzne impulsy programujące i weryfikuje poprawność zaprogramowania komórki. Kiedy wbudowany algorytm programowania zakończy działanie urządzenie wraca

Page 21: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

131

do trybu odczytu danych i zwalniany jest przerzutnik "zatrzaskujący" adresy. System nadrzędny może ustalić status operacji programowania na podstawie stanu linii DQ6 i DQ7. Wszystkie rozkazy wysyłane do urządzenia podczas wykonywania wbudowanego algorytmu programowania są ignorowane. Programowanie może odbywać się w dowolnej kolejności i może przekraczać granice sektorów. Pełny algorytm programowania pamięci pokazano na rys. 4.9.

Sekwencja kasowania pamięci składa się 6 cykli szyny. W jej skład wchodzi rozkaz

ustawienia (set-up), czyli wejścia pamięci w tryb gotowości do kasowania, poprzedzony zapisem 2 cykli odblokowujących. Po nich następują kolejne 2 cykle odblokowujące zapis i rozkaz kasowania, który uruchamia wbudowany algorytm kasowania. Wszystkie rozkazy wysyłane do urządzenia podczas wykonywania wbudowany algorytm kasowania są ignorowane. Kiedy ten algorytm zakończy działanie urządzenie wraca do trybu odczytu danych i zwalniany jest przerzutnik "zatrzaskujący" adresy.

Rys. 4.10. Algorytm operacji kasowania pamięci Am29F080B

Na sekwencję kasowanie sektora również wchodzi 6 cykli szyny. Pierwszym jest rozkaz

ustawienia (set-up), czyli wejścia pamięci w tryb gotowości do kasowania, poprzedzony zapisem 2 cykli odblokowujących. W następnej kolejności wysyłane są 2 dodatkowe cykle odblokowujące. Potem zapisywane są: adres sektora do kasowania oraz rozkaz kasowania. Po zapisie sekwencji rozkazowej rozpoczyna się 50µs przerwy. W trakcie tej przerwy mogą zostać przesłane dodatkowe rozkazy kasowania sektorów. Załadowanie bufora kasowania sektorów może się odbyć w dowolnej kolejności. Dowolna może być także liczba sektorów przeznaczonych do skasowania. Odstęp czasu między tymi dodatkowymi cyklami, w których przesyłane są informacje o dodatkowych sektorach do skasowania musi być mniejszy niż 50µs. Jakikolwiek rozkaz wysłany podczas 50µs przerwy przestawia urządzenie w tryb odczytu. System musi ponownie wysłać sekwencje rozkazową oraz adresy dodatkowych sektorów i rozkazy. System może nadzorować stan linii DQ3 w celu sprawdzenia, czy minął czas przerwy. Przerwa zaczyna się od narastającego zbocza ostatniego impulsu w sekwencji rozkazowej na linii WE#. Wszystkie rozkazy wysyłane do urządzenia podczas kasowania

Page 22: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

132

sektora są ignorowane. Kiedy wbudowany algorytm kasowania zakończy działanie urządzenie wraca do trybu odczytu danych i zwalniany jest przerzutnik "zatrzaskujący" adresy. System nadrzędny może ustalić status operacji programowania przy wykorzystaniu linii DQ6 i DQ7.

Stan operacji zapisu można sprawdzić wykorzystując linie: DQ3, DQ5, DQ6 i DQ7. i

RY/BY#. Za pomocą pinów DQ7 i DQ6 można sprawdzić, czy operacja programowania lub kasowania została zakończona (tabela 4.6).

Tabela 4.6. Status operacji zapisu

Na poniższych rysunkach pokazano przebiegi czasowe operacji odczytu (rys. 4.11),

operacji zapisu bajta do pamięci (rys. 4.12) oraz operacji kasowania pamięci (rys. 4.13).

Rys. 4.11. Przebieg czasowy operacji odczytu z pamięci Am29F080B

Page 23: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

133

Rys. 4.12. Przebieg czasowy operacji programowania pamięci Am29F080B

Rys. 4.13. Przebieg czasowy operacji kasowania pamięci Am29F080B

Page 24: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

134

5. Programowalne układy logiczne

Termin logiczne układy programowalne PLD (Programmable Logic Devices) odnosi się do każdego cyfrowego układu scalonego, którego właściwości funkcjonalne mogą być zdefiniowane (ustalane) przez końcowego użytkownika , który może zaimplementować w jego strukturze opracowany przez siebie projekt jakiegoś wyspecjalizowanego układu cyfrowego.

Najważniejszą cechą tych układów jest więc ich konfigurowalność przez użytkownika w jego własnym laboratorium.

Współczesne układy programowalne klasyfikuje się najczęściej w trzech grupach, przy czym kryterium klasyfikacji są głównie cechy ich architektury. Najczęściej przyjmuje się, że układy PLD dzieli się na: • SPLD (Simple Programmable Logic Device) – proste układy programowalne, • CPLD (Complex Programmable Logic Devices) – złożone układy programowalne, • FPGA (Field Programmable Gate Array) – programowalne matryce bramkowe.

Do układów SPLD zalicza się układy programowalne o architekturach PLA (Programmable Logic Array), PAL (Programmable Array Logic) i GAL (Generic Array Logic). Są to układy o najskromniejszych możliwościach logicznych, a więc i najtańsze ze wszystkich układów programowalnych. Niemniej jednak ich zasoby logiczne są spore, zawierają bowiem typowo od 4 do 22 makrokomórek logicznych o dwupoziomowej strukturze logicznej i mogą zwykle zastąpić kilka standardowych układów scalonych rodziny 74xx. Każda z komórek jest zwykle w pełni połączona z innymi komórkami w danym układzie scalonym. Do określenia funkcji realizowanych przez makrokomórki (ich skonfigurowania) stosowane są łączniki (klucze), którymi są w większości przypadków przepalane fragmenty ścieżek (łączniki rozwarciowe – dla układów PLA i PAL) lub tranzystory MOS (dla układów GAL).

Układy CPLD są koncepcyjnie podobne do układów SPLD, lecz są bardziej złożone: mają

większe zasoby logiczne i możliwości funkcjonalne. Ich architektura ma strukturę hierarchiczną opartą na makrokomórkach logicznych, których zawierają od kilkudziesięciu do kilkuset. Typowo od czterech do szesnastu makrokomórek jest połączonych w większy blok funkcjonalny . Jedną z ważniejszych cech architektury układów CPLD jest liczba termów przypadających na pojedynczą makrokomórkę oraz możliwość pożyczki termów z sąsiednich makrokomórek. Jeśli układ zawiera wiele bloków funkcjonalnych, są one łączone między sobą za pomocą matrycy połączeniowej kluczy, której zdolność łączeniowa jest ważną cechą układów CPLD. Ta liczba połączeń wewnątrz matrycy określa bowiem, jak łatwo jest „wpasować” jakiś projekt w dany układ programowalny.

Architektura układów FPGA różni się od architektury układów CPLD. Na ogół układy

FPGA zawierają rozmieszczone matrycowo boki logiczne CLB (rys. 4.1). Poszczególne bloki są łączone ze sobą za pośrednictwem linii traktów poł ączeniowych (Routing Channels) oraz programowalnych matryc kluczy połączeniowych umieszczonych w miejscu krzyżowania się traktów poziomych i pionowych. Na obrzeżach matrycy bloków logicznych znajdują się programowalne bloki IOB (wejściowo-wyjściowe). Struktury FPGA zawierają od 64 do dziesiątków tysięcy bloków logicznych o bardzo zróżnicowanej budowie. Bloki logiczne mogą być bardzo złożone, jest ich wówczas mniej w układzie, lub względnie proste i jest ich wówczas więcej. Zazwyczaj złożone bloki logiczne zawierają dwie lub więcej pamięci RAM umożliwiających tworzenie tablic wartości funkcji LUT (Look-up Table) i dwa

Page 25: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

135

lub więcej przerzutników. W większości układów są to tablice czterowejściowe (pamięć RAM o pojemności 16 bitów). W układach o prostszej budowie, bloki logiczne zawierają zwykle dwuwejściowe układy generacji funkcji kombinacyjnych lub multipleksery czterowejściowe i ewentualnie przerzutniki.

Rys. 5.1. Schemat blokowy układu FPGA

Do grupy największych producentów układów programowalnych i narzędzi

komputerowych do ich syntezy należą następujące firmy: Altera (www.altera.com), Lattice (www.latticesemi.com), Xilinx (www.xilinx.com), Cypress (www.cypress.com), Atmel (www.atmel.com) i QuickLogic (www.quicklogic.com).

5.1. Układy logiczne SPLD na przykładzie układu GAL16V8 Obecnie grupa układów SPLD jest już reprezentowana przez układy GAL i ispGAL

(układy GAL programowalne za pośrednictwem interfejsu JTAG), w których wykorzystano architekturę PAL wzbogaconą o konfigurowalne makrokomórki wyjściowe zawierające przerzutniki typu D. Przerzutniki te spełniają rolę wyjściowych elementów pamięciowych umożliwiających budowanie układów synchronicznych.

Układy programowalne GAL zostaną przedstawione na przykładzie standardu przemysłowego GAL16V8. Istnieją również standardy GAL20V10, GAL22V10 i GAL26V12.

Uwaga dotycząca oznaczania układów GAL: • pierwsza liczba po symbolu GAL oznacza łączną liczbę cyfrowych linii sygnałowych, • druga liczba (czyli po symbolu V) określa liczbę linii, które mogą pełnić funkcję wyjść

cyfrowych.

Page 26: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

136

Układy GAL są produkowane przez firmy Lattice Semiconductor, Atmel, (były przez STMicroelectronics, Cypress Semiconductor, National Semiconductor, Texas Instruments).

Układy GAL zostaną przedstawione na przykładzie układu GAL16V8 firmy Lattice. Jest

on wykonany w technologii CMOS i zawiera elektrycznie reprogramowalne komórki pamięci typu E2CMOS. Układ ten charakteryzuje się następującymi cechami: • Wysoko wydajna technologia E2CMOS (3,5ns maksymalny czas propagacji, Fmax=

250MHz, 3ns od wejścia zegara do wyjścia danych). • Rezystory podwieszone na każdej końcówce (active pull-up). • Technologia E2CELL (rekonfigurowalna logika, reprogramowalne komórki, bardzo

szybkie elektrycznie kasowanie (poniżej 100ms), czas podtrzymywania danych 20 lat). • Osiem wyjściowych makrokomórek (programowalna polaryzacja wyjść, emulacja 20-

pinowych układów PAL). • Wstępny zapis (preload) i reset po włączeniu zasilania (power-on reset) wszystkich

rejestrów . • Identyfikacyjny „elektroniczny podpis” zawarty w układzie.

Rys. 5.2. Schemat blokowy układu GAL16V8

Page 27: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

137

Układ GAL16V8 składa się z następujących bloków (rys. 5.2): • z 9 buforów wejściowych, • matrycy połączeń logicznych PROGRAMMABLE AND-ARRAY, • z 8 programowalnych logicznych wyjściowych makrokomórek OLMC (Output Logic

MacroCell), • 8 trójstanowych buforów wyjściowych konfigurowanych przez użytkownika, • układu ochrony danych przed odczytem, • pamięci E2CMOS trzymającej zaprogramowaną konfigurację połączeń logicznych.

Bufory wejściowe układu GAL16V8 są kompatybilne ze standartowymi poziomami TTL.

Bufory te charakteryzują się wysoka impedancją i reprezentują o wiele mniejsze obciążenie dla sterującej logiki niż bipolarne układy TTL.

Wejścia układu maja wbudowane aktywne rezystory podwieszające (Active Pull-Up), więc niepołączone będą w stanie „wysokim” (logiczna „1”). Producent zaleca aby wszystkie nieużywane wejścia układu i trzystanowe piny I/O były podłączone do zasilania układu lub masy. Zwiększa to odporność na zakłócenia i redukuje prąd pobierany przez układ.

Rys. 5.3. Matryca połączeń logicznych w trybie rejestrowym układu GAL16V8

Page 28: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

138

Matryca połączeń logicznych składa się z programowalnej macierzy typu AND array z ustalonymi połączeniami do bramek typu OR. Pole logicznych połączeń jest zorganizowane jako 16 komplementarnych linii wejściowych (z sygnałami i ich negacjami) krzyżujących się z 64 liniami typu „product term”. Na każdym skrzyżowaniu linii znajduje się komórka typu E2PROM, która w zależności od zaprogramowania zwiera lub rozwiera linię poziomą od pionowej. Łącznie w matrycy znajduje się 2048 komórek (rys. 5.3).

Każda komórka powinna zapewnić połączenie pomiędzy linią wejściową (sygnał normalny lub zanegowany) i końcówką wytwarzającą funkcje sygnału. Lina pozioma jest w stanie logicznym true jeżeli wszystkie linie ”podłączane” do niej są w wysokim stanie. 64 linii product term jest zorganizowanych w osiem grup wyjściowych z ośmioma końcówkami (liniami) każda. Grupa jest przyporządkowana do danego układu OLMC . Siedem z ośmiu linii product terms w każdej grupie wyjściowej wchodzi do bramki OR układu OLMC, jedna służy do sterowania buforem trójstanowym.

Dwie linie wejściowe pin 1 (CLK) i pin 11 (OE) mają szczególne znaczenie. Pierwszy z

nich w trybie rejestrowym (rys. 5.3) pełni funkcje sygnału zegarowego podawanego na wszystkie przerzutniki typu D układów OLMC. Sygnał OE w tym trybie steruje wyjściowymi buforami trójstanowymi. W pozostałych trybach pracy (rys. 5.4) te zaciski są normalnymi wejściami.

Rys. 5.4. Konfiguracja linii wejściowych CLK (pin 1) i OE (pin 2) w trybach prostym i

złożonym układu GAL16V8 Konfiguracja komórki OLMC jest ustawiana przez programatory i oprogramowanie

narzędziowe oraz jest całkowicie niewidoczna (przezroczysta) dla użytkownika. Komórkę OLMC można ustawić w trzech trybach: • prostym (simple), • złożonym (complex), • rejestrowym (registered).

O konfiguracji wszystkich makrokomórek OLMC decydują dwa globalne bity SYN i AC0. Bit XOR każdej komórki ustawia polaryzację wyjścia w każdym z trzech trybów, natomiast bit AC1 ustala kierunek (wejście lub wyjście). Dwa globalne i 16 indywidualnych bitów definiuje wszystkie możliwe konfiguracje układu GAL16V8. Kompilatory ustawią te bity automatycznie tak, iż użytkownik nie musi ich samodzielnie ustawiać. Niżej podana jest w tabeli 5.1 lista deklaracji układu GAL dla poszczególnych kompilatorów, za pomocą których

Page 29: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

139

można wybrać tryb pracy układu GAL (typ wyjścia komórki OLMC). W pierwszej kolumnie tabeli zawarto listę dostępnych kompilatorów.

Tabela 5.1. Lista deklaracji trybów pracy układu GAL16V8

Większość kompilatorów ma możliwość automatycznego wyboru trybu pracy układu.

Wybór jest dokonywany na podstawie kodu programu napisanego przez użytkownika. Jeżeli w kodzie zostanie użyty choćby jeden rejestr, to kompilator wybiera tryb rejestrowy. Gdy wyjścia kombinacyjne są kontrolowane przez linie product term to kompilator używa trybu złożonego. Oprogramowanie wybierze tryb prosty jedynie wtedy, gdy wszystkie wyjścia są zadeklarowane jako kombinacyjne bez kontroli sygnałem OE.

Używając kompilatorów do konfiguracji układu należy zwrócić uwagę na następujące

ograniczenia poszczególnych trybów układu GAL16V8:

• W trybie rejestrowym piny 1 i 11 są stale skonfigurowane odpowiednio jako wejście zegarowe CLK i wejście sterujące buforami wyjściowymi OE. Nie mogą być one dedykowanymi wejściami ogólnego przeznaczenia.

• W trybie złożonym piny 1 i 11 stają się dedykowanymi wejściami i używają ścieżek sprzężenia zwrotnego (feedback paths) odpowiednio pinów 19 i 12. Z tego powodu piny 19 i 12 nie mają opcji sprzężenia w tym trybie, są wyłącznie wyjściami.

• W trybie prostym piny 1 i 11 są dedykowanymi wejściami, a wszystkie ścieżki sprzężenia zwrotnego pinów wyjściowych są poprowadzone przez przyległe piny. Z tego powodu dwa wewnętrzne piny (15 i 16) nie mają opcji sprzężenia zwrotnego i są zawsze skonfigurowane jako dedykowane kombinacyjne wyjścia.

W trybie rejestrowym makrokomórki OLMC (rys. 5.5) są skonfigurowane jako

dedykowane wyjścia rejestrowe lub jako funkcje wejściowo-wyjściowe (I/O functions). Wszystkie makrokomórki dzielą wspólny zegar CLK i pin kontroli OE. Każda makrokomórka może być skonfigurowana jako rejestrowa lub wejście albo wyjście kombinacyjne. Dedykowana funkcja wejścia lub wyjścia może być zaimplementowana jako podzestaw funkcji wejściowo-wyjściowej (I/O function).

W trybie złożonym makrokomórki są skonfigurowane tylko jako wyjścia lub jako funkcje

wejściowo-wyjściowe (I/O functions) (rys. 5.6). W tym trybie można uzyskać maksymalnie sześć linii wejściowo-wyjściowych. Dwie zewnętrzne makrokomórki (piny 12 i 19) nie mają możliwości pracy jako wejście (input). Projekty wymagające ośmiu I/O mogą być zaimplementowane w trybie rejestrowym.

Do wszystkich makrokomórek dochodzi siedem linii product term. Ósma linia product term jest używana do sterowania buforem trójstanowym. Piny 1 i 11 są zawsze dostępne jako wejścia danych dla matrycy iloczynu logicznego.

Page 30: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

140

Rys. 5.5. Konfiguracja makrokomórki OLMC dla trybu rejestrowego

Rys. 5.6. Konfiguracja makrokomórki OLMC dla trybu złożonego

W trybie prostym makrokomórki są skonfigurowane jako dedykowane wejścia lub jako

dedykowane, zawsze aktywne, kombinacyjne wyjścia (rys. 5.7). Do makrokomórki OLMC dochodzi osiem linii product term kontrolujących jej logikę. Dodatkowo każde wyjście ma programowalną polaryzację. Piny 1 i 11 są zawsze dostępne jako wejścia danych matrycy

Page 31: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

141

iloczynów logicznych. Dwie środkowe makrokomórki (piny 15 i 16) są zawsze dostępne jako dedykowane wyjścia.

Każdy układ GAL16V8 posiada elektroniczny podpis. Składa się on z 64 bitów zawartych w reprogramowalnej pamięci. Dane tam zawarte opisują producenta układu, typ układu, napięcie zasilania, napięcie programujące i czas trwania impulsów programujących. Czyli dane dla programatora niezbędne do zaprogramowania układu. Zawartość podpisu jest zawsze dostępna dla użytkownika niezależnie od stanu komórki ochrony danych (zawartość elektronicznego podpisu jest wliczana do obliczania sumy kontrolnej. Zmiana elektronicznego podpisu spowoduje zmianę sumy kontrolnej).

W układach GAL16V8 zaimplementowano komórkę ochrony danych (Security Cell), służącą do blokady odczytu zaprogramowanej struktury. Raz zaprogramowana komórka zapobiega odczytowi bitów konfiguracyjnych układu. Może być ona skasowana tylko przez przeprogramowanie całego układu, czyli oryginalna konfiguracja nigdy nie będzie odczytana. Elektroniczny podpis jest zawsze możliwy do odczytania niezależnie od stanu komórki ochrony danych.

Specjalne obwody wewnątrz układu GAL16V8 zapewniają po włączeniu zasilania sygnał reset wszystkim rejestrom. Rejestry ustawiają swoje wyjścia Q w stan niski po określonym czasie (maksymalnie 1µs), wynikiem tego stan pinów wyjść rejestrowych (jeśli są włączone) będzie zawsze „wysoki” po włączeniu zasilania, niezależnie od zaprogramowanej polaryzacji końcówek wyjściowych.

Rys. 5.7. Konfiguracja makrokomórki OLMC dla trybu prostego

Page 32: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

142

5.2. Układy logiczne CPLD Układy logiczne CPLD posiadają struktur ę hierarchiczną. Składają się od jednego do

kilku bloków logicznych (funkcjonalnych), z których każdy składa się z kilku do kilkudziesięciu makrokomórek.

Układy te są produkowane przez wielu producentów. Najwięksi producenci układów CPLD i rodziny układów przez nie produkowanych: • Xilinx rodziny:

• CoolRunner-II, • CoolRunner XPLA3, • XC9500, • XC9500XL, • XC9500XV,

• Lattice Semiconductor rodziny: • MachXO, • ispMACH 4000ZE, • ispMACH 4000V/B/C/Z, • LA-ispMACH 4000V/Z,

• Altera rodziny: • MAX II, • MAX 3000A,

• Atmel rodzina: • ATF15xx,

• Cypress Semiconductor rodzina: • Ultra37000, Poniżej zostaną przedstawione trzy przykładowe rodziny układów CPLD, przy czym

rodzina XC9500 firmy Xilinx zostanie omówiona szczegółowo.

5.2.1. Rodzina układów ATF15xx firmy Atmel Jednym z członków tej rodziny jest układ ATF1500A. Posiada on 32 dwukierunkowe linie

ogólnego przeznaczenia i 4 dedykowane linie wejściowe pełniące funkcje globalnych sygnałów sterujących: zegara, resetu wewnętrznych rejestrów i kontroli buforów wyjściowych (rys. 5.8).

Z każdej z 32 logicznych makrokomórek doprowadzony jest sygnał wynikowy do globalnej magistrali, do której dochodzą również wszystkie sygnały z linii wejściowych. Wszystkie sygnały podawane na globalną magistralę są dostępne dla każdej z 32 makrokomórek.

Ponadto każda z makrokomórek posiada wyjście dołączone do lokalnej (regionalnej) magistrali. Magistrala ta dołączona jest do 16 makrokomórek należących do danego „regionu”.

Dodatkowo makrokomórki są łączone w logiczne kaskady (odpowiednik bloków funkcjonalnych dla innych układów CPLD). W układzie ATF1500A są 4 logiczne kaskady, każda z nich składa się z 8 makrokomórek. Pozwala to na bardziej efektywną realizację złożonych funkcji logicznych.

Układ posiada pamięć FLASH przechowującą konfigurację wewnętrznych połączeń wprowadzoną przez użytkownika w trakcie jego programowania.

Page 33: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

143

Rys. 5.8. Schemat blokowy układu ATF1500A

Makrokomórka układu ATF1500A posiada elastyczną architekturę pozwalającą na

realizację złożonych funkcji logicznych. Składa się z pięciu sekcji (rys. 5.9): • 5 układów produkt term do których dochodzą wszystkie sygnały z globalnej i lokalnej

magistrali oraz z bloku multipleksera (PTMUX) przydzielającego linie wyjściowe bloków product term do bramek logicznych makrokomórki lub do linii sygnałów sterujących.

• Bloku bramek OR i XOR realizującego między innymi sumę logiczną na pięciu sygnałach z wyjść product terms lub korzystając z linii CASIN na 40 sygnałach z wyjść product terms (pożyczka sygnałów od innych makrokomórek z danej kaskady).

• Bloku flip-flop zawierającego przerzutnik mogący pracować jak przerzutnik typu D, T, JK i SR. Jeżeli jest wykorzystywany, makrokomórka pracuje w trybie rejestrowym, jeśli nie to w trybie kombinacyjnym.

• Bloku sterującego buforem wyjściowym pinu zawierający multiplekser (MOE). • Wejściowego bloku zawierającego matrycę iloczynów logicznych, realizującą tzw.

„iloczyn logiczny na drucie”.

Page 34: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

144

Rys. 5.9. Schemat blokowy makrokomórki układu ATF1500A

5.2.2. Rodzina Ultra37000 firmy Cypress

Rys. 5.10. Schemat blokowy układów rodziny Ultra37000

Page 35: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

145

Architektura rodziny układów Ultra37000 bazuje na wielu blokach logicznych połączonych między sobą za pomocą programowalnej matrycy (PIM – Programmable Interconnect Matrix) (rys. 5.10). Rozprowadza ona wszystkie sygnały wyjściowe z bloków logicznych i wszystkich linii wejściowych do każdego z wejść bloków logicznych.

Układ jest programowalny w systemie docelowym z wykorzystaniem interfejsu JTAG.

Rys. 5.11. Schemat blokowy bloku logicznego układów rodziny Ultra37000

Blok logiczny składa się z:

• Matrycy połączeń sygnałów wejściowych (Product Term Array) na którą wchodzi 36 sygnałów z PIM i ich negacji, a wychodzi 87 sygnałów product term (wyników iloczynów logicznych sygnałów wejściowych). Siedem z nich jest używanych jako sygnały sterujące(clocks, set, reset, OE), a 80 jest podawanych do bloku Product Term Allocator (PTA).

• Bloku PTA, który zgodnie z wgranym oprogramowaniem dystrybuuje 80 sygnałów product term do 16 wewnętrznych makrokomórek. Czyli steruje przydziałem tych linii do danej komórki, jak i dzieleniem się tymi liniami między makrokomórkami. Do każdej z 16 makrokomórek może dochodzić do 16 linii product term.

• 16 makrokomórek. Makrokomórka może zawierać komórkę we/wy przez co jest przypisana do danego pina, lub może być komórką wewnętrzną (rys. 5.12)

Wewnętrzna makrokomórka (Buried Macrocell) może pracować w trybie

kombinacyjnym lub rejestrowym (rys. 5.12). W drugim przypadku wykorzystywany jest przerzutnik typu D, T lub SR. Może on być asynchronicznie ustawiany lub kasowany. Z wewnętrznej makrokomórki sygnały wyjściowe podawane są do bloku PIM.

Wejściowo/wyjściowa makrokomórka jest rozbudowana o blok wejściowo-wyjściowy podłączony bezpośrednio do dwukierunkowej linii układu. Linia ta sterowana jest za pomcą sygnałów sterujących wychodzących z Product Term Array danego bloku logicznego.

Page 36: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

146

Rys. 5.12. Schemat blokowy wewnętrznej i wejściowo/wyjściowej makrokomórki układów

rodziny Ultra37000

5.2.3. Rodzina XC9500 firmy Xilinx Układy CPLD rodziny XC9500 firmy Xilinx są programowalne i testowalne w docelowym

mse. Rodzina ta charakteryzuje się następującymi właściwościami: • duża szybkość działania (5ns opóźnienia pomiędzy pinami, fCNT do 125 MHz), • duża gęstość upakowania (od 36 do 288 makrokomórek z 800 do 6,400 użytecznymi

bramkami), • układy programowalne w systemie o napięciu zasilania 5V (możliwość wykonania 10000

cykli programowania/kasowania), • układy składają się z „elastycznych” bloków funkcyjnych (odpowiadających układom

GAL typu 36V18), 90 linii product terms sterujących pojedynczymi lub wszystkimi 18 makrokomórkami wewnątrz bloku funkcyjnego,

• posiadają interfejs standardu IEEE 1149.1 (JTAG), • zapewniają programowalny tryb redukcji mocy dla każdej komórki, • wyjścia układów przewodzą prąd do 24mA, • piny wejściowo-wyjściowe mogą być ustawione na standard 3,3V lub 5V.

W tabeli 5.2 zestawiono układy rodziny XC9500. Jak widać gęstość upakowania używanych bramek logicznych mieści się w przedziale od 800 do ponad 6400, a rejestrów od 36 do 288.

Page 37: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

147

Tabela 5.2. Rodzina układów XC9500

Na potrzeby programowania i testowania układów w systemie rozszerzono listę instrukcji

sterujących interfejsem JTAG . Zatem interfejs ten pozwala nie tylko na testowanie zgodnie ze standardem IEEE 1149.1, ale również i programowanie układów zamontowanych już w systemie.

Rys. 5.13. Architektura układów rodziny XC9500

Możliwość przeprowadzania wielokrotnej liczby cykli programowania/kasowania

zapewnia dużą swobodę w zmienianiu wewnętrznej konfiguracji układów, czy uaktualnianiu zawartych w nich projektów. Dodatkowo zapewniono kontrolę szybkości narastania napięć wyjściowych oraz umożliwiono programowe uziemienie pinów w celu lepszej redukcji szumów. Urządzenia wejścia/wyjścia mogą być konfigurowane dla napięć 3,3V oraz 5V. Wszystkie wyjścia przewodzą prąd do 24mA.

Page 38: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

148

Każdy układ XC9500 jest podsystemem zawierającym (rys. 5.13): • bloki funkcyjne (FB – Function Block) • bloki wejścia/wyjścia (IOB – I/O Block), • matrycę przełączającą (FastCONNECT switch matrix) łączącą powyższe bloki między

sobą .

Każdy blok funkcyjny FB daje możliwość zaprogramowania 36 wejść i 18 wyjść. Matryca przełączająca łączy wszystkie wyjścia bloku FB z wejściami innego bloku FB. Dla każdego bloku FB wyjścia w liczbie od 12 do 18 (w zależności od liczby wyprowadzeń obudowy) skojarzone z sygnałami output enable sterują bezpośrednio blokami IOB. Blok funkcyjny poprzez generację stanów na 18 wyjściach steruje matrycą przełączającą. Wyjścia te wraz z sygnałami output enable sterują blokami IOB.

Rys. 5.14. Blok funkcyjny (FB) układów rodziny XC9500

Blok funkcyjny , jak przedstawiono na rys. 5.14, składa się z:

• Programowalnej matrycy iloczynów logicznych do której dochodzi 36 sygnałów z matrycy przełączającej, a wychodzi 90 sygnałów product term.

• Z bloku Product Term Allocators (PTAs) zarządzającym liniami typu product term. Poszczególny blok PTA określa sposób wykorzystania 5 linii product term w danej makrokomórce.

• 18 niezależnych makrokomórek, z których każda może realizować funkcję kombinacyjną bądź rejestrową dzięki zawartemu w niej przerzutnikowi. Do tego przerzutnika doprowadzony jest sygnał zegara oraz sygnały set/reset.

Do programowalnej matrycy iloczynów logicznych dochodzą 72 sygnały (36 normalnych sygnałów i 36 ich negacji). Sygnały te są przez nią łączone do 90 linii product term dochodzących do 18 makrokomórek. Wewnątrz każdego bloku FB możliwe jest zrealizowanie połączeń (ścieżek) z wyjść makrokomórek do matrycy iloczynów logicznych, bez potrzeby wyprowadzania ich poza dany blok FB. Ścieżki te wykorzystywane są do

Page 39: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

149

tworzenia bardzo szybkich liczników oraz układów stanów, gdzie wszystkie rejestry stanu są wewnątrz tego samego bloku FB.

Każda makrokomórka w bloku FB układu XC9500 może być indywidualnie

skonfigurowana tak, aby realizować funkcje kombinacyjne lub rejestrowe. Rys. 5.15 przedstawia makrokomórkę i towarzysząca jej strukturę logiczną bloku FB.

Rys. 5.15. Makrokomórka bloku FB układów rodziny XC9500

Pięciu linii product terms bezpośrednio wyprowadzonych z matrycy iloczynów logicznych

można użyć jako podstawowych wejść danych (do bramek OR i XOR). Pozwalają one na implementację funkcji kombinacyjnej lub mogą posłużyć jako wejścia sterujące włączając w to sygnały zegara, set/reset i output enable. Blok PTA (Product Term Allocator), zawarty w każdej makrokomórce, służy do wyboru sposobu użycia tych pięciu linii. Rejestr makrokomórki może być skonfigurowany jako przerzutnik D lub T, lub też może być przeznaczony do operacji kombinacyjnych. Każdy rejestr wyposażony jest w dwie asynchroniczne operacje ustawiania (set) i zerowania (reset). Podczas włączania zasilania wszystkie wykorzystywane rejestry są inicjalizowane do stanu zdefiniowanego przez użytkownika (w przypadku braku specyfikacji domyślnie ustawiane jest 0).

Wszystkie globalne sygnały takie jak sygnały zegara, set/reset oraz output enable są dostępne dla każdej makrokomórki. Sygnał zegarowy dochodzący do rejestru makrokomórki może być jednym z trzech globalnych sygnałów zegara lub sygnałem zegara pochodzącym z linii product term, co przedstawiono na rys. 5.16. Dodatkowo istnieje możliwość wyboru aktywnego zbocza sygnału zegarowego. Poprzez wejście GSR możliwe jest ustawienie rejestru użytkownika do zdefiniowanego przez niego stanu.

Page 40: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

150

Rys. 5.16. Sposób wyboru sygnałów zegarowych set/reset w makrokomórce bloku FB

układów rodziny XC9500 Blok PTA makrokomórki steruje wykorzystaniem pięciu bezpośrednich linii product terms

dochodzących do niej. Np. wszystkie pięć linii może być dołączonych do bramki OR, jak pokazano na rys. 5.172.

Rys. 5.17. Wykorzystanie bezpośrednich linii product terms w makrokomórce

Blok PTA może dokonywać zmian wewnątrz FB i przydzielać makrokomórce dodatkowe

linie, oprócz pięciu podstawowych dochodzących już do niej. Każda makrokomórka wymagająca dodatkowej linii product term może skorzystać z niewykorzystanej linii innej makrokomórki wewnątrz bloku FB. Pojedyncza makrokomórka może użyć 15 linii product terms, przy czym należy uwzględnić dodatkowe opóźnienia sygnałów na dodanych liniach, wynikające z wydłużenia się ich drogi wewnątrz bloku FB (rys. 5.18).

Page 41: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

151

Rys. 5.18. Blok PTA z 15 liniami product terms

Elastyczność ta wynika z budowy bloku PTA pokazanej na rys. 5.19.

Rys. 5.19. Schemat logiczny bloku PTA

Matryca przełączająca dostarcza sygnały z bloków IOB i FB do wejść bloków FB (rys.

5.20). Wszystkie wyjścia bloków FB i wejścia/wyjścia bloków IOB są podawane na tę matrycę. Za pomocą matrycy użytkownik wybiera sygnały, które mają dochodzić do danego bloku FB. Dodatkowo realizuje ona iloczyn logiczny na drucie co zwiększa funkcjonalność całego układu.

Page 42: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

152

Rys. 5.20. Schemat logiczny matrycy przełączającej (FastCONNECT Switch Matrix)

Bloki wejścia/wyjścia IOB między innymi buforują sygnały wejściowe i wyjściowe z

układu oraz zapewniają odpowiednie parametry elektryczne zacisków, czyli stanowią interfejs pomiędzy wewnętrzną logiką, a pinami wejścia/wyjścia układu. Każdy blok zawiera bufor wejściowy, sterownik wyjściowy, multiplekser wyboru output enable oraz programowalne uziemienie (rys. 5.21). Bufor wejściowy jest kompatybilny ze standardami 5V CMOS, 5V TTL i poziomami sygnału 3,3V. Bufor wejściowy używa wewnętrznego 5V źródła zasilania (VCCINT) w celu zapewnienia stałych progów wejścia i eliminacji wahań napięcia VCCIO. Sygnał output enable może być generowany w następujący sposób, jako: sygnał product term z makrokomórki, dowolny sygnał zegara globalnego, zawsze „1” lub zawsze „0”. Występują dwa globalne sygnały output enable dla układów do 144 makrokomórek oraz cztery sygnały globalne output enable dla układów z 180 lub większą liczbą makrokomórek.

Każde wyjście umożliwia kontrolę szybkości narastania napięcia wyjściowego. Szybkość narastania sygnału wyjściowego może być programowo spowalniana w celu redukcji szumów. Każdy blok IOB zapewnia programową obsługę pinu uziemienia. Pozwala to na dodatkową konfigurację pinów układów wejścia/wyjścia jako pinów uziemienia. Dzięki temu można znacznie zredukować poziom szumów. Rezystory podciągające (typowa wartość 10kΩ) są dołączone do każdego układu wejścia/wyjścia w celu zabezpieczenia go przed stanem nieokreślonym, w przypadku niewykorzystania tego układu przez projekt użytkownika. Rezystory te są aktywne w trybie programowania oraz kasowania układu, a także w momencie włączania zasilania systemu.

Page 43: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

153

Rys. 5.21. Schemat logiczny bloku IOB wraz z układami sterującymi sygnałami output enable

Rezystory są de aktywowane podczas normalnych operacji. Sterownik wyjściowy jest

zdolny do przewodzenia prądu 24 mA. Wszystkie sterowniki wyjściowe w układzie mogą być skonfigurowane dla poziomu 5 V lub poziomu 3,3 V przez połączenie wyjściowego pinu zasilania (VCCIO) do 5 V lub do źródła zasilania 3,3 V. Rys. 5.22 pokazuje jak układ XC9500 może być zasilany tylko napięciem 5 V lub napięciem 5 V i 3,3 V.

Rys. 5.22. Sposoby zasilania układu rodziny XC9500: a) jedno źródło zasilania 5V,

b)dwa źródła zasilania 5V i 3,3V

Page 44: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

154

Programowanie i testowanie układów rodziny XC9500 jest realizowane za pomocą interfejsu standardu IEEE 1149.1 (JTAG). Interfejs ten posiada następującą listę instrukcji: EXTES, SAMPLE/PRELOAD, BYPASS, USER-CODE, INTEST, IDCODE, HIGHZ. Dodatkowo na potrzeby programowania układów w systemie (ISP) dodano 5 instrukcji: ISPEN, FERASE, FPGM, FVFY, ISPEX. Stanowią one rozszerzenie zestawu instrukcji 1149.1. Zgodnie ze specyfikacją standardu IEEE 1149.1 piny TMS i TCK układu interfejsu JTAG są podwieszone poprzez rezystory pull-up do zasilania.

Układy XC9500 zawierają zaawansowane sposoby ochrony danych, które całkowicie zabezpieczają program przed nieautoryzowanym czytaniem lub pomyłkowym skasowaniem, czy przeprogramowaniem. Użytkownik może ustawić odpowiednie bity w celu ochrony kodu programu zawartego w układzie przed jego przeczytaniem. Skasowanie w całości programu jest jedynym sposobem na wyzerowanie bitów zabezpieczających, tym samym na odblokowanie odczytu z układu.

Wszystkie układy XC9500 oferują możliwość ustawienia trybu niskiego poboru mocy dla każdej makrokomórki z osobna lub dla wszystkich jednocześnie. Zatem ważne dla danej aplikacji części układu mogą pozostać w standardowym trybie poboru mocy, podczas gdy pozostałe mogą zostać zaprogramowane na operacje przy niskim poborze mocy.

W czasie włączania zasilania (power-up time) układy XC9500 są w stanie uśpienia dopóki napięcie zasilające VCCINT nie osiągnie bezpiecznego poziomu (około 3,8 V). Do tego czasu wszystkie piny układu oraz interfejsu JTAG są wyłączone i podwieszone do zasilania za pomocą rezystorów pull-up. Kiedy napięcie zasilania osiągnie bezpieczny poziom wszystkie rejestry użytkownika są inicjalizowane (typowo w czasie 100 µs dla 9536 - 95144, 200 µs dla 95216, 300 µs dla 95288) po czym układ jest gotowy do pracy.

Page 45: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

155

6. Układy peryferyjne z interfejsem szeregowym standardu SPI

W rozdziale tym zostaną omówione wyłącznie układy peryferyjne z interfejsem SPI,

ponieważ coraz więcej układów jest wyposażanych w ten standard, a ponadto jest on znacznie prostszy i łatwiejszy w implementacji niż standard I2C.

Opis interfejsu SPI został przedstawiony w podrozdziale 2.6.5.2 zatem tutaj zostaną omówione tylko jego właściwości wynikające ze współpracy mk z urządzeniami peryferyjnymi.

Do komunikacji pomiędzy mk a układami peryferyjnymi oraz do komunikacji pomiędzy

samymi układami peryferyjnymi w mse stosuje się współcześnie interfejsy szeregowe standardu SPI, jak i standardu I2C. Transmisja równoległa pozwala na osiągniecie większych szybkości, lecz wymaga stosowania magistrali o wielu (przynajmniej 8) liniach.

Natomiast transmisja szeregowa w porównaniu z równoległą posiada następujące zalety: • mniej linii połączeniowych (przeważnie trzy lub dwie), • mniej dodatkowych układów, • charakteryzują ją łagodniejsze wymagania czasowe, • układy transmisyjne zajmują mniej miejsca i zacisków we/wy układu scalonego.

W interfejsie SPI formaty danych układów peryferyjnych nie są określone. Bitowe ciągi danych transmitowane interfejsem SPI: • Nie maja ustalonej długości (jest to zazwyczaj krotność ośmiu bitów). Długość

transmitowanych danych ulega zmianie, nawet przy transmisjach do tego samego układu scalonego.

• Kolejność transmitowanych bitów nie jest określona (najczęściej transmisja zaczyna się od MSB i kończy na LSB).

Stąd ze względu na długość transmitowanych danych stosuje się przeważnie trzy metody

zapisu/odczytu danych do/z zewnętrznych układów peryferyjnych : • W przypadku prostych układów (o jednym typie danych i niezależnym sygnale zapisu

danych) możliwe jest przepełnienie zawartości odbiorczego rejestru szeregowego. Zatem w układzie po przesłaniu do niego dowolnej liczby bitów zostaje zapamiętane tylko N ostatnich bitów w rejestrze odbiorczym (N – długość danych dla danego układu). Wysyłany po transmisji danych sygnał zapisu przepisze do wnętrza układu te N bitów. Właściwość ta pozwala na zaokrąglenie w górę długości wysyłanego słowa do wielokrotności liczby 8, co pozwala na korzystanie z interfejsu SPI mk, który jak wiadomo operuje na danych 8-bitowych. W tym przypadku pierwsze bity są nieistotne, gdyż nie są zapamiętywane. Jest ich 8n – N (gdzie n – wielokrotność 8 bitów, tak aby zawsze 8n > N).

• Przy bardziej złożonych układach wprowadza się do formatu danych bit startu . Czyli układ pomija kolejno przychodzące bity dopóki nie pojawi się pierwsza jedynka będąca bitem startu. Po niej dane są ważne.

• Transmitowane dane są krotnością 8 bitów. Liczba wysyłanych szeregowo bajtów zależy od typu rozkazu.

W interfejsie SPI stosuje się różne techniki adresowania układów peryferyjnych. Przez adresowanie układów peryferyjnych rozumie się włączenie (uaktywnienie) ich do transmisji

Page 46: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

156

danych (przyjmowania lub ich wysłania). Techniki te muszą uwzględnić fakt różnorodnych wymagań wynikających np. z obecności wielu niezależnych układów korzystających z tego samego portu transmisyjnego, konieczności wysyłania rozkazów przed, w trakcie i po transmisji danych.

Dwie najpopularniejsze techniki adresowania układów peryferyjnych:

• Najczęściej spotykana w przypadku układów pojedynczych technika, polegająca na wydzieleniu jednej linii adresującej układ (CS- chip select). Wprowadzenie tej linii w stan aktywny (najczęściej niski) jest jednoznaczne z zaadresowaniem układu do udziału w transmisji.

• Kolejna technika polega na zawarciu adresu w przesyłanym ciągu danych. Gdy układ odbiorczy stwierdzi zgodność adresu, to odbiera dane zawarte po adresie. Np. stosuje się tę technikę w układach składających się z wielu niezależnie programowanych bloków, z których każdy ma swój własny adres.

Obecnie produkuje się coraz szerszą gamę układów peryferyjnych wyposażonych w

interfejsy szeregowe standardu SPI oraz kompatybilne z nim. Wśród nich można wyróżnić układy cyfrowe jak i układy cyfrowo-analogowe (inaczej: mieszane sygnałowo).

Poniżej przedstawiono podział układów peryferyjnych z interfejsem SPI ze względu na ich zastosowanie (zachowano oryginalne angielskie nazewnictwo):

• Memories: • EEPROM (AT25512 – 512 kbit, M95M01 – 1 Mbit, 25AA1024 – 1 Mbit), • FLASH (AT25DF641 – 64 Mbit), • SRAM (23A256 – 256 Kbit), • F-RAM (FM25H20 – 2 Mbit).

• Interfaces: • Ethernet (ENC28J60), • CAN (MCP2510), • USB (MAX3420E – USB peripheral controller, MAX3421E – USB peripheral / host

controller), • Wireless (AT86RF230 – transceiver for IEEE 802.15.4, ZigBee), • I/O expanders (MAX7317, MAX7301, MCP23S17 – 16 bit I/O Expander).

• Analog to Digital Converters: • A/D Converters (AD7920, AD7495, MCP3201, MCP3550-50), • Capacitance to Digital Converters (AD7142 – programmable controller for capacitance

touch sensor), • Temperature to Digital Converters (AD7814 – 10-bit, ADT310 – 16-bit), • Touch-Screen Controllers (AD7879, MAX11800 – for resistive touch-screen panels),

• Digital to Analog Converters: • Audio D/A Converters (AD1934 – 8-channel DAC with PLL and single-ended outputs,

192 kHz, 24 bits), • D/A Converters (AD5060 – 16-bit, 1 voltage output, AD5390 – 14-bit, 16 voltage

outputs, AD5680 – 18-bit, 1 voltage output, DAC1220 – 20-bit, 1 voltage output), • Digital Potentiometers (AD5260 – 256 pos., 1 channel, AD5174 – 1024 pos., digital

rheostat),

• Amplifiers: • Instrumentation Amplifiers (AD8231 – I2C, AD8250 – I2C),

Page 47: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

157

• Gain Programmable Line Drivers (AD8321), • Variable Gain Amplifiers (ADL5592, MCP6S21/2/6/8, MAX9939), • Switches/Multiplexers (MAX395 – 8-channel SPST switch, ADN4604 16 x 16 digital

crosspoint switch, ADG738 – analog CMOS multiplexer).

• MEMS: • Low g Sensor Accelerometers (ADIS16003 – dual axis accelerometer, ADIS19001 -

dual axis accelerometer/inclinometer), • High g Sensor Accelerometers (ADIS16204 – dual axis accelerometer), • Gyroscopes (ADIS16130, ADIS16251 – angular rate sensors), • Internal Measurement Units (ADIS16400 – high precision tri-axis gyroscope,

accelerometer, magnetometer),

• Clock and Timing: • Clock Generation and Distribution (AD9520 – multi-output clock generator, AD9512 –

clock driver, AD9549 – clock generator synchronizer), • Real-Time Clocks (RTC) (MAX6902 – compatible RTC in a TDFN, DS1394 – RTC

with trickle charger, DS1305 – serial alarm RTC), • Mixed Signal Memory Devices (DS28DG02 – 2 Kbits EEPROM with PIO, RTC, reset,

battery monitor and watchdog), • Direct Digital Sintesis (DDS) (AD9833 – programmable waveform generator).

• Power Management: • Micro-Stepping Motor Drivers (AMIS-30521, NCV70521), • Gate drivers (STGAP1S – galvanically isolated single gate driver).

• Measurement systems: • Energy Measurement (MCP3901 – two channel analog front end, ADE7878 –

polyphase multifunction energy metering), • Impedance Analyzers (AD5933 – 12-bit impedance I2C converter network analyzer), • Temperature measurement systems (LTC2983 – multi-sensor high accuracy digital

temperature measurement system), • MEMS pressure sensors (LPS22HB – 260-1260 hPa absolute digital output barometer), • Humidity and temperature sensors (HTS221 – capacitive digital sensor for relative

humidity and temperature).

• LED drivers : • LED Display Drivers (MAX6950 – 5- and 8-digit LED display driver), • Tri-Color LED Drivers (MAX16825, NLSF595DTR2).

• Optoelectronic Devices: • LCD Display Devices (MAX7231 – tripled LCD decoder/driver, SCD558XA – 8

character, 5x5 dot matrix, MAX9697 – programmable gamma reference system for TFT-LCD displays),

• Vacuum-Fluorescent Display Drivers (MAX6852), • Light Sensors (SFH5712 – I2C digital ambient light sensor, S11059 – I2C color sensor). Wszystkie układy peryferyjne z interfejsem SPI składają się z dwóch części (rys. 6.1):

• bloku interfejsu SPI służącego do komunikacji z układem (wysyłanie i odbiór danych, wysyłanie rozkazów i odbiór danych statusowych),

• bloku warstwy aplikacji realizującej zadania zgodne z przeznaczeniem układu.

Page 48: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

158

Blok interfejsu SPI składa się z: • Rejestru szeregowego, do którego w takt sygnału zegarowego CLK są na linii wejście

danych SDI szeregowo bit po bicie wprowadzane dane (najczęściej 8-bitowe – czyli bajty). Dane z układu szeregowo są wystawiane na linii wyjście danych SDO. Transmisja odbywa się, gdy na linii wyboru układu CS jest stan aktywny (najczęściej stan niski).

• Układ kontrolny steruje interfejsem SPI za pośrednictwem linii CS oraz podłączonych do niego cyfrowych sygnałów sterujących, których występowanie (liczba i pełnione funkcje) zależą od zastosowania układu (warstwy aplikacji). Zarządza również komunikacją między rejestrem szeregowym a blokiem aplikacji.

Postać bloku warstwy aplikacji i liczby oraz funkcji dołączonych do niego linii analogowych i cyfrowych zależy od zastosowania układu. Np. dla układów pamięci blok ten składa się z matrycy komórek pamięci i obsługujących ją bloków, dochodzą do niego tylko dwie cyfrowe linie sterujące. Natomiast przetworniki A/C posiadają ustaloną liczbę wejść analogowych, a przetworniki C/A wyjść analogowych.

Rys. 6.1. Schemat ogólny układu peryferyjnego z interfejsem SPI

6.1. Szeregowe pamięci z interfejsem SPI Pamięci nieulotne EEPROM, FLASH i F-RAM z szeregowym wejściem i wyjściem

danych są coraz częściej stosowane w mse ze względu na możliwość programowania ich zawartości w układzie, w którym pracują (in-circuit programming). Przechowują one dane, które po zaniku napięcia zasilania nie mogą ulec skasowaniu. Dane te najczęściej są wykorzystywane do indywidualnej linearyzacji charakterystyk czujników, zbierania danych pomiarowych, parametryzacji wbudowanych algorytmów itd. Ich zaletą, oprócz niskiej ceny i małych rozmiarów obudowy, jest standardowe napięcie zasilania równe zwykle +5 V, +3 V lub 1,8 V. Układy te mają zwykle wbudowaną przetwornicę napięcia (z wyjątkiem F-RAM) i nie wymagają do programowania i kasowania zewnętrznego napięcia programującego. Ponadto posiadają własną automatykę, tzn. odczyt, zapis, kasowanie oraz funkcje związane z ochroną danych są obsługiwane za pomocą odpowiednich rozkazów wprowadzanych do układu i przez niego interpretowanych.

Page 49: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

159

Najważniejszą i główną zaletą szeregowych pamięci SRAM względem ich odpowiedników o dostępie równoległym jest ich mała obudowa składająca się tylko z 8 wyprowadzeń, i to niezależnie od pojemności pamięci.

Spotykane pamięci szeregowe EEPROM mają pojemność do 1 Mbita, FLASH do 64 MBitów, F_RAM do 2 Mbitów, a SRAM do 256 Kbitów. Pamięci są zorganizowane bajtowo (x8), dwubajtowo (x16) i bajtowo lub dwubajtowo (x8 lub x16 – wybór przez użytkownika).

W praktyce pamięci o dostępie szeregowym bazują na następujących interfejsach: SPI, I 2C, 1-Wire, Microwire (standard przemysłowy protoplasta interfejsu SPI).

Do sterowania pamięci z szeregowym dostępem stosuje się powszechnie dwie metody: • sterowanie przy użyciu linii portów we/wy mk (dla pamięci z niestandardowym

protokołem wymiany danych), • sterowanie przez interfejs komunikacji szeregowej (dla pamięci z interfejsem SPI i I2C).

Zaletą drugiej metody jest to, że obsługa tych pamięci przez mk może odbywać się w trybie przerwaniowym. W tym trybie mk może realizować inne zadania, podczas gdy trwa transmisja. Jc jest angażowana tylko przy odczycie lub zapisie danych do rejestru szeregowego interfejsu SPI. Powiadomienie jc o zakończeniu transmisji bajtu odbywa się za pomocą przerwania od interfejsu SPI, który wpierw musi być właściwie skonfigurowany. Kolejną zaletą jest fakt, iż konwersja równoległo-szeregowa (wpis danej przez jc do bufora szeregowego i wysłanie jej szeregowo przez wyjście danych interfejsu) i szeregowo-równoległa (szeregowy odczyt danej z wejścia interfejsu do bufora i odczyt jej przez jc z tego bufora) danych odbywa się sprzętowo, a nie programowo jak ma to miejsce w przypadku stosowania układów z interfejsami niestandardowymi.

Wszystkie pamięci szeregowe (EEPROM, FLASH, F-RAM, SRAM) są umieszczane w standaryzowanej 8-pinowej obudowie pokazanej na rys. 6.2.

Rys. 6.2. Rozmieszczenie wyprowadzeń pamięci szeregowych z interfejsem SPI

Znaczenie linii dla szeregowych pamięci: Vcc – zasilanie pamięci, Vss – masa. CS – wybór układu do transmisji (aktywny poziomem niskim). Gdy CS jest w stanie niskim

można do pamięci wprowadzać rozkazy oraz dane i wyprowadzać dane oraz zawartość rejestru statusu. Pamięć zaczyna wykonywać wprowadzony rozkaz, gdy na CS pojawi się zbocze narastające.

SO – szeregowe wyjście danych służące do wyprowadzania danych oraz zawartości rejestru statusu.

SI – szeregowe wejście danych przeznaczone do wprowadzania rozkazów i danych do pamięci.

SCK – zegar taktujący transmisją szeregową (najczęściej polaryzacja ‘0’ i faza ‘0’). WP – „write protect” – gdy na tej linii jest stan aktywny (stan niski) i jest ustawiony

odpowiedni bit w rejestrze statusu, to nie można modyfikować zawartości rejestru statusu.

Page 50: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

160

HOLD – aktywny stanem niskim. Linia służy do wstrzymania (zamrożenia) transmisji szeregowej w dowolnym momencie i wprowadzenia linii SO w stan wysokiej impedancji.

Rys. 6.3. Schemat blokowy pamięci z interfejsem SPI

Pamięć szeregowa składa się z (rys. 6.3): • bloku interfejsu SPI służącego do komunikacji z otoczeniem, • rejestru statusu służącego do konfiguracji pamięci oraz zawierającego jej stan, • układu kontrolnego pamięci kontrolującego jej pracę i realizującego wbudowane

algorytmy programowania i odczytu danych, • bloków obsługi pamięci składających się z układów obsługujących dostęp do matrycy

pamięci, dla pamięci EEPROM i FLASH z bloków generujących napięcia potrzebne do programowania i kasowania pamięci oraz z układów wykrywających spadek napięcia zasilania,

• matrycy pamięci składającej się z komórek pamięci danego typu (w danej technologii) zorganizowanych w wiersze i kolumny.

6.1.1. Szeregowe pamięci EEPROM z interfejsem SPI

Zasadniczą wadą pamięci EEPROM jest długi czas zapisu informacji, jak i kasowania

układu wynoszący typowo od 2ms do 5ms, a nawet 10ms. Pamięci szeregowe EEPROM i interfejsem SPI zostaną przedstawione na przykładzie

układu 25AA256 firmy Microchip. Jest to 256 Kbitowa pamięć o architekturze bajtowej (32 768 x 8 bitów). Dostęp do pamięci, jak i jej sterowanie odbywa się za pomocą interfejsu SPI, który składa się z linii: sygnał zegara SCK, sygnał danych wejściowych SI oraz sygnał danych wyjściowych SO. Dostęp do urządzenia jest kontrolowany poprzez sygnał wyboru układu CS (Chip Select). Istnieje możliwość wstrzymania komunikacji z pamięcią poprzez sygnał HOLD .

Układ ten ma następujące właściwości: • Niski pobór mocy: prąd podczas zapisu maksymalnie 5 mA, prąd podczas odczytu typowo

6 mA dla zegara transmisji 10 MHz, prąd spoczynkowy typowo 1 µA. • Organizacja pamięci: 32 768 x 8 bity. • 64 bajtowa strona. • Czas cyklu zapisu maksymalnie 5ms. • Wewnętrzne automatyczne cykle kasowania i zapisu. • Ochrona zapisu bloku: ochrona żadnej,1/4,1/2 lub całej tablicy.

Page 51: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

161

• Wbudowana ochrona zapisu: ochrona danych podczas włączania/wyłączania układu, zatrzask umożliwiający zapis, pin ochrony przed zapisem.

• Sekwencyjny odczyt danych. • Wysoka niezawodność: wytrzymałość 1M cykli kasowania/zapisu, czas przechowywania

danych > 200 lat, ochrona wejść cyfrowych przed przepięciami typu ESD. • Obudowa 8-pinowa PDIP oraz SOIC. Tabela. 6.1. Opis wyprowadzeń układu 25AA256 firmy Microchip

Nazwa pinu

Obudowa PDIP

Obudowa SOIC

Funkcja

CS 1 1 Wejście wyboru układu SO 2 2 Wyjście danych szeregowych WP 3 3 Wyprowadzenie do ochrony zapisu Vss 4 4 Uziemienie SI 5 5 Wejście danych szeregowych SCK 6 6 Wejście szeregowe zegara HOLD 7 7 Wyprowadzenie pauzujące transmisję Vcc 8 8 Zasilanie

Rys. 6.4. Schemat blokowy układu 25AA256 firmy Microchip

Na rys. 6.4 pokazano schemat blokowy układu 25AA256. Jak widać składa się on z dwóch

części: pierwszą część stanowi zespół bloków związanych z interfejsem SPI i sterowaniem pamięcią. Są to bloki: we/wy układ sterujący (I/O Control Logic), rejestr statusu, układ sterujący pamięcią (Memory Control Logic), generator wysokiego napięcia (HV Generator), układ kontroli amplitudy przy odczycie/zapisie (Sense Amp. R/W Control). Druga część to pamięć "właściwa". Składa się ona z dekodera wierszy (X Dec) i dekodera kolumn (Y Dec), rejestru zatrzaskowego stron (Page Latches) i matrycy komórek EEPROM (EEPROM Array).

Page 52: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

162

Zastosowania i funkcje pinów układu są następujące: • Linia CS służy do uaktywnienia pamięci przez układ nadrzędny z nią współpracujący (np.

mk). Uaktywnienie pamięci dokonuje się poprzez wystawienie na wejście CS niskiego poziomu sygnału. Wysoki poziom na tej linii dezaktywuje układ. Podczas inicjacji bądź trwania cyklu programowania wysoki stan sygnału CS nie powoduje przerwania procesu zapisu/odczytu. Zostaje on dokończony, po czym następuje dezaktywacja układu pamięci i przejście w stan czuwania. W tym trybie pracy wyjście SO przechodzi w stan wysokiej impedancji umożliwiając innym układom korzystanie z magistrali SPI. Zmiana stanu na wejściu CS z niskiego na wysoki po zakończonej sekwencji wprowadzania rozkazów do pamięci inicjuje wewnętrzny cykl zapisu.

• Wyj ście SO jest używane w celu wysyłania danych z układu pamięci 25C080. Podczas cyklu odczytu dane są wystawiane na to wyjście na opadające zbocze sygnału zegarowego.

• Wejście WP wraz z bitem WPEN rejestru statusu służą do blokady zapisu rejestru statusu pamięci. Ochronę tę uzyskuje się, gdy na linii WP wystawiony jest niski poziom, zaś bitowi WPEN przypisana jest jedynka. W przypadku gdy bit WPEN jest ustawiony, to pojawienie się niskiego poziomu na linii WP podczas sekwencji zapisu rejestru statusu spowoduje przerwanie tej operacji. Jeżeli zaś wewnętrzny cykl zapisu został rozpoczęty wszelkie zmiany na linii WP nie wpływają na kontynuację wykonywania operacji zapisu. Gdy bit WPEN jest wyzerowany funkcja linii WP jest nieaktywna. Ustawienie bitu WPEN odblokowuje funkcję wyprowadzenia WP.

• Wejście SI jest używane do szeregowego wprowadzania instrukcji, adresów oraz danych z urządzenia nadrzędnego do pamięci. Dane na SI zatrzaskiwane są na narastające zbocze sygnału zegarowego.

• Sygnał wejściowy SCK służy do synchronizacji komunikacji pomiędzy urządzeniem nadrzędnym, a pamięcią. Narastające zbocze zegara zatrzaskuje (próbkuje) dane wprowadzane na wejściu SI, zaś opadające wystawia dane na wyjściu SO.

• Wejście HOLD służy do wstrzymania transmisji do pamięci, bez konieczności powtarzania całego cyklu transmisyjnego od nowa. W celu wstrzymania transmisji na pinie HOLD powinien być stan niski w momencie, gdy sygnał zegara SCK jest również w stanie niskim. W innym przypadku zawieszenie transmisji zostanie wykonane przy kolejnym przejściu sygnału SCK z poziomu wysokiego do niskiego. Istotne jest, aby układ pamięci pozostawał aktywny podczas wstrzymywania transmisji. Gdy transmisja zostaje zawieszona linie SI, SCK oraz SO przechodzą w stan wysokiej impedancji. Wymuszenie na linii HOLD wysokiego poziomu podczas niskiego poziomu sygnału zegara powoduje wznowienie transmisji.

Układ 25AA256 zawiera 8 bitowy rejestr instrukcji. Aby układ był aktywny i przyjmował

rozkazy/dane na linii CS musi panować stan niski, zaś na linii HOLD stan wysoki. Aby można było dokonywać operacji zapisu do tablicy pamięci na linii WP powinien być stan wysoki.

Tabela 6.2 zawiera listę i formaty instrukcji dostępnych dla układu 25AA256. We

wszystkich instrukcjach, adresach czy danych pierwszy jest przesyłany najbardziej znaczący bit MSB, a jako ostatni bit LSB. Wszelkie instrukcje, adresy, czy dane przesyłane są do pamięci paczkami 8-bitowymi, co pozwala na bezpośrednie stosowanie w tym celu interfejsu SPI mk.

Page 53: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

163

Tablela 6.2. Zestaw instrukcji sterujących układem 25AA256 Nazwa

instrukcji Format instrukcji Opis

READ 0000 0011 Odczyt danych z tablicy pamięci od wybranego adresu WRITE 0000 0010 Zapis danych do tablicy pamięci od wybranego adresu WRDI 0000 0100 Zerowanie zatrzasku zezwolenia zapisu (niedostępne

operacje zapisu ) WREN 0000 0110 Ustawienie zatrzasku zezwolenia zapisu (dostępne

operacje zapisu) RDSR 0000 0101 Odczyt rejestru statusu WRSR 0000 0001 Zapis rejestru statusu

Dane są próbkowane na pierwsze narastające zbocze sygnału zegara SCK po wymuszeniu

na linii CS niskiego poziomu. W przypadku, gdy sygnał zegara na magistrali SPI jest współdzielony przez inne urządzenia peryferyjne, użytkownik może wprowadzić pamięć 25AA256 w stan wstrzymania ‘HOLD’ poprzez wymuszenie niskiego stanu na linii HOLD. Po zmianie poziomu sygnału na tej linii z niskiego na wysoki następuje kontynuacja wstrzymanej transmisji.

Poniżej zestawiono opis rozkazów zawartych w tabeli 6.2: • Sekwencja odczytu READ rozpoczyna się od wyboru pamięci poprzez wymuszenie na

linii CS stanu niskiego. Następnie wysyłana jest 8-bitowa instrukcja odczytu oraz 16-bitowy adres, gdzie najbardziej znaczący bit adresu nie jest brane pod uwagę. Po prawidłowej transmisji instrukcji i adresu, dane umieszczone pod wybranym adresem są wystawiane szeregowo na wyjściu SO. Po każdorazowym wysłaniu bajta danych wewnętrzny wskaźnik adresu jest automatycznie inkrementowany, aby wskazywać na kolejną daną w pamięci. Kiedy osiągnie adres 7FFFH następuje zmiana jego wskazania na adres 0000H. Operacja transmisji sekwencji odczytu jest kończona na narastającym zboczem sygnału CS.

Rys. 6.5. Przebieg czasowy rozkazu READ

• Przed jakąkolwiek próbą zapisu danych do układu rozkazem WRITE , zatrzask

zezwolenia zapisu musi być ustawiony poprzez wykonanie instrukcji WREN. Sekwencja zapisu tej instrukcji sprowadza się do wybrania układu niskim poziomem sygnału CS oraz wysłania kodu WREN do układu. Po transmisji 8 bitów tej instrukcji, poziom sygnału na linii CS musi zostać ustawiony z powrotem w stan wysoki, co w rezultacie powoduje ustawienie zatrzasku zezwolenia zapisu. Próba rozpoczęcia transmisji zaraz po wysłaniu instrukcji WREN, bez zmiany stanu sygnału na linii CS pomiędzy tymi operacjami, nie

Page 54: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

164

powiedzie się ze względu na niewłaściwe ustawienia zatrzasku zezwolenia zapisu. W momencie prawidłowego ustawienia tego zatrzasku, użytkownik może rozpocząć operację zapisu danych do układu wcześniej wymusiwszy na pinie CS stan niski. Sekwencja zapisu sprowadza się do wysłania instrukcji zapisu WRITE, 16-bitowego adresu z jednym najbardziej znaczącym bitem nie branym pod uwagę oraz danej przeznaczonej do zapisu pod przesłany adres. Przed wymaganym cyklem zapisu do pamięci może być wysłanych 64 bajtów danych. Jedynym ograniczeniem w tym przypadku jest to, iż wszystkie bajty muszą mieścić się w obszarze jednej strony pamięci. Adres strony zaczyna się od XXXX XXXX XX00 0000 i kończy na XXXX XXXX XX11 1111. W przypadku kiedy wewnętrzny licznik adresu osiągnie wartość graniczną, wskazuje on z powrotem na pierwszy adres strony i następuje nadpisywanie danych na już wcześniej zachowane. Aby zakończyć sekwencję zapisu danych do tablicy pamięci sygnał na wyprowadzeniu CS powinien zostać ustawiony w stan wysoki tuż po otrzymaniu ostatniego najmniej znaczącego bitu n-bajtowej danej. W przypadku gdy sygnał CS zostanie wcześniej ustawiony w stan wysoki operacja zapisu nie zostanie skompletowana. Podczas trwania sekwencji zapisu rejestr statusu może być odczytywany w celu sprawdzenia bitów WPEN, WIP, WEL, BP1 oraz BP0. Podczas trwania cyklu zapisu nie jest możliwy odczyt tablicy lokacji pamięci. Po zakończeniu tego cyklu zatrzask zezwolenia zapisu jest zerowany.

Rys. 6.6. Przebieg czasowy rozkazu WRITE dla zapisu pojedynczego bajta

Rys. 6.7. Przebieg czasowy rozkazu WRITE dla zapisu wielu bajtów

Page 55: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

165

• Instrukcja WREN (Write Enable) zezwala na zapis do pamięci. Jej przebieg czasowy pokazano na rys. 6.8.

Rys. 6.8. Przebieg czasowy rozkazu WREN

• Instrukcja WRDI (Write Disable) blokuje zapis do pamięci. Przebiegi czasowe tej

instrukcji przedstawiono na rys. 6.9.

Rys. 6.9. Przebieg czasowy rozkazu WRDI

• Instrukcja RDSR odczytu rejestru statusu (Read Status Register) zapewnia dostęp do

rejestru statusu. Rejestr ten można odczytać w każdej chwili, nawet podczas cyklu zapisu.

Rys. 6.10. Przebieg czasowy rozkazu RDSR

• Instrukcja WRSR zapisu rejestru statusu (Write Status Register) pozwala

użytkownikowi na wybór jednego z czterech poziomów ochrony tablicy pamięci

Page 56: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

166

EEPROM. Odbywa się to poprzez zapis bitów BP0 i BP1 w rejestrze statusu. Tablica pamięci podzielona jest na cztery segmenty. Użytkownik ma możliwość ochrony zapisu żadnego, jednego, dwóch lub wszystkich segmentów tablicy.

Rys. 6.11. Przebieg czasowy rozkazu WRSR

Format rejestru statusu jest następujący:

7 6 5 4 3 2 1 0 WPEN X X X BP1 BP0 WEL WIP

gdzie: Bit WIP (Write-in-Process – zapis w trakcie) wskazuje czy układ pamięci jest w trakcie

operacji zapisu, czy nie. WIP =1 – pamięć w trakcie operacji zapisu, zaś WIP =0 – żadna operacja zapisu nie jest przeprowadzana. Bit WIP jest bitem przeznaczonym tylko do odczytu.

Bit WEL (Write Enable Latch – zatrzask zezwolenia zapisu) wskazuje na status zatrzasku zezwolenia zapisu. WEL =1 – zezwolenie zapisu do tablicy, WEL =0 – zakaz zapisu do tablicy. Stan tego bitu może być zawsze zmieniony poprzez polecenia WREN lub WRDI. Bit WEL jest bitem przeznaczonym tylko do odczytu.

Bity BP0 i BP1 (Block Protection – ochrona bloku) informują, który blok obecnie jest chroniony przed zapisem (patrz tabela 6.3). Stan tych bitów jest nieulotny i może być zmieniany przez użytkownika poprzez wykonanie instrukcji WRSR.

Bit WPEN (Write Protect Enable – zezwolenie ochrony zapisu) jest nieulotnym bitem dostępnym jako bit zezwalający dla wejścia WP.

Tabela 6.3. Znaczenie bitów BP0 i BP1

BP1 BP0 Adresy Tablicy Chronione przed Zapisem 0 0 brak 0 1 wyższa ćwiartka (6000H-7FFFH) 1 0 wyższa połówka (4000H-7FFFH) 1 1 wszystkie (0000H-7FFFH)

Wejście WP (Write Protect – ochrona zapisu) i bit rejestru statusu WPEN służą do

sprzętowej ochrony pamięci przed zapisem. Ochrona ta jest aktywna jeśli wyprowadzenie WP jest w stanie niskim zaś bit WPEN =1. Dotyczy ona ochrony nieulotnych bitów rejestru statusu.

Układy pamięci 25AA256 zawierają zatrzask zezwolenia zapisu. Zatrzask musi być ustawiony przed tym, jak dowolna operacja zapisu zostanie „wewnętrznie” zakończona.

Page 57: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

167

Instrukcja WREN ustawia ten zatrzask, natomiast instrukcja WRDI go zeruje. Poniżej została przedstawiona lista warunków, pod którymi nastąpi wyzerowanie zatrzasku: • włączenie zasilania, • wykonanie instrukcji WRDI zakończone sukcesem, • wykonanie instrukcji WRSR zakończone sukcesem, • wykonanie instrukcji WRITE zakończone sukcesem. Czyli przed każdym zapisem danych do pamięci należy ustawić ten zatrzask instrukcją WREN.

Zastosowano następujące środki ochrony tablicy pamięci EEPROM przed przypadkowymi

wpisami: • zatrzask zezwolenia zapisu jest zerowany natychmiast po włączeniu zasilania, • w celu ustawienia zatrzasku zezwolenia zapisu wymagana jest odpowiednia instrukcja, • zatrzask zezwolenia zapisu jest zerowany zaraz po zakończonym cyklu zapisu bajtu,

strony lub statusu rejestru, • sygnał na linii CS musi być ustawiony w stan wysoki po odpowiedniej liczbie cykli

zegara w celu rozpoczęcia wewnętrznego cyklu zapisu, • próba dostępu do tablicy podczas wewnętrznego cyklu zapisu jest odrzucana, zaś

programowanie jest nadal kontynuowane. W tabeli 6.4 zestawiono stan ochrony bloków pamięci i rejestru statusu w zależności od

bitów WPEN i WEL oraz stanu na linii WP. Tablica 6.4. Macierz Funkcjonalności Ochrony Zapisu

WPEN WP WEL Bloki Chronione Bloki Niechronione Rejestr Statusu x x 0 chroniony chroniony chroniony 0 x 1 chroniony zapisywalne zapisywalny 1 low 1 chroniony zapisywalne chroniony x high 1 chroniony zapisywalne zapisywalny

Układ pamięci 25AA256 po włączeniu zasilania przyjmuje następujący stan:

• układ jest w trybie czuwania, mały pobór mocy CS=1, • zatrzask zezwolenia zapisu jest wyzerowany, • wyjście SO jest w stanie wysokiej impedancji, • przejście ze stanu wysokiego do niskiego na linii CS powoduje wejście układu w stan

aktywny.

6.1.2. Szeregowe pamięci SRAM z interfejsem SPI

Najważniejszą zaletą szeregowych pamięci SRAM jest to, iż niezależnie od ich pojemności jak i organizacji umieszczone są w 8-mio pinowej obudowie.

Pamięci szeregowe SRAM z interfejsem SPI zostaną przedstawione na przykładzie układu 23A256 firmy Microchip. Jest to 256 Kbitowa pamięć o architekturze bajtowej (32 768 x 8 bitów). Dostęp do pamięci, jak i jej sterowanie odbywa się za pomocą interfejsu SPI (linie: SCK, SI, SO) oraz linii CS, HOLD (nie ma linii WP). Funkcje tych linii są identyczne jak dla szeregowej pamięci EEPROM.

Układ 23A256 posiada następujące właściwości: • Maksymalna częstotliwość zegara transmisji 20 MHz. • Prąd podczas odczytu typowo 3 mA dla zegara transmisji 1 MHz, prąd spoczynkowy

typowo 4 µA.

Page 58: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

168

• Organizacja pamięci: 32 768 x 8 bity. • 32-bajtowa strona. • Tryby pracy:

• odczyt i zapis pojedynczego bajta, • operacje na 32-bajtowej stronie, • tryb sekwencyjnego odczytu/zapisu.

• Obudowa 8-pinowa PDIP oraz SOIC.

Pamięć 23A256 posiada trzy tryby pracy, których wybór jest dokonywany przez ustawienie 7-go i 6-go bita w rejestrze statusu: Operacje bajtowe – w tym trybie operacje są ograniczone do jednego bajta. Po 8-bitowej komendzie i 16-bitowym adresie transmitowany do/z pamięci jest jeden bajt. Operacje na stronie – pamięć 23AA256 ma 1024 strony 32-bajtowe. W tym trybie operacje odczytu i zapisu są ograniczone do zaadresowanej strony (w ramach danej strony adres poszczególnych bajtów jest automatycznie inkrementowany). Jeżeli podczas odczytu lub zapisu danych osiągnie się adres graniczny strony, to wewnętrzny licznik adresu ustawia się na początek tej strony. Operacje sekwencyjne – pozwalają na zapisanie i odczyt za jednym razem całej pamięci począwszy od zadanego adresu. W tym przypadku wewnętrzny licznik adresu jest automatycznie inkrementowany, granice kolejnych stron są ignorowane. Dopiero po osiągnięciu adresu końca pamięci wewnętrzny licznik adresu przekręca się na wartość 0x0000.

Tabela 6.3 zawiera listę i formaty instrukcji dostępnych dla układu 23A256. We wszystkich instrukcjach, adresach czy danych pierwszy jest przesyłany najbardziej znaczący bit MSB, a jako ostatni bit LSB. Wszelkie instrukcje, adresy, czy dane przesyłane są do pamięci paczkami 8-bitowymi.

Tablela 6.3. Zestaw instrukcji sterujących układem 23A256

Nazwa instrukcji

Format instrukcji Opis

READ 0000 0011 Odczyt danych z tablicy pamięci od wybranego adresu WRITE 0000 0010 Zapis danych do tablicy pamięci od wybranego adresu RDSR 0000 0101 Odczyt rejestru statusu WRSR 0000 0001 Zapis rejestru statusu

Format (przebiegi czasowe) i znaczenie rozkazów READ i WRITE (dla trybu bajtowego) oraz RDSR i WRSR są identyczne jak dla szeregowej pamięci EEPROM. Poniżej zostaną przedstawione przebiegi czasowe rozkazów READ i WRITE dla trybów stronicowego (rys. 6.12 i rys. 6.13) i sekwencyjnego (rys. 6.14 i rys. 6.15).

Page 59: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

169

Rys. 6.12. Przebiegi czasowe rozkazu READ w trybie stronicowym

Rys. 6.13. Przebiegi czasowe rozkazu WRITE w trybie stronicowym

Page 60: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

170

Rys. 6.14. Przebiegi czasowe rozkazu READ w trybie sekwencyjnym

Rys. 6.15. Przebiegi czasowe rozkazu WRITE w trybie sekwencyjnym

Page 61: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

171

Format rejestru statusu jest następujący: 7 6 5 4 3 2 1 0 MODE1 MODE0 0 0 0 0 0 HOLD

gdzie: HOLD – służy do uaktywnienia (ustawienie ‘0’) lub dezaktywowania (ustawienie ‘1’)

funkcji linii HOLD. Czyli, gdy bit HOLD jest ustawiony ‘1’ linia HOLD jest nieaktywna.

Tabela 6.4. Znaczenie bitów MODE1 i MODE0

MODE1 MODE0 Tryb pracy pami ęci SRAM 0 0 tryb bajtowy (defaultowo) 0 1 tryb stronicowy 1 0 tryb sekwencyjny 1 1 zarezerwowane Bity od 5 do 1 są zarezerwowane i powinny być zawsze ustawione na ‘0’.

6.2. Zewnętrzne przetworniki analogowo-cyfrowe (A/C)

Jak wspomniano w podrozdziale 2.3.2 przetworniki umieszczone w strukturze mk nie

posiadają rozdzielczości większej niż 10-bitowej oraz charakteryzują się stosunkowo dużym błędem całkowitym. Stąd, gdy zależy nam na dokładnych pomiarach napięcia musimy korzystać ze znacznie lepszych zewnętrznych przetworników A/C, które z reguły wyposażone są w interfejs SPI. Przetworniki te mają rozdzielczość od 8 bitów, aż do 24 bitów (typowe rozdzielczości to: 8, 10, 12, 14, 16, 18, 24 bity). Przy czym przetworniki do rozdzielczości 16-bitowej korzystają z metody SAR, a powyżej tej rozdzielczości z metody sigma-delta (Σ - ∆).

Rys. 6.16. Uogólniony schemat blokowy N-bitowych K-kanałowych przetworników A/C

wyposażonych w interfejs SPI

Page 62: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

172

Przetworniki A/C z interfejsem SPI składają się z następujących części: • Części cyfrowej składającej się z:

• Bloku interfejsu SPI zapewniającego komunikację między przetwornikiem A/C a otoczeniem. Dołączone są do niego linie: szeregowe wejście danych SDI (w prostych przetwornikach niewymagających konfiguracji nie występuje) dla danych konfigu-racyjnych np. wybór kanału, źródła napięcia referencyjnego, itp., szeregowego wyjścia danych SDO służącego do wyprowadzania wyniku konwersji, zegara taktującego transmisję szeregową SCLK i wejścia wyboru układu CS uaktywniającego układ do udziału w transmisji, i dla przetworników SAR uruchamiającego przetwarzanie analogowo-cyfrowe w takt sygnału zegarowego na linii SCLK.

• Układu kontrolnego sterującego wyborem źródła napięcia referencyjnego, kanału przetwarzania oraz zwłaszcza dla przetworników Σ - ∆ ustawianiem parametrów konwersji A/C.

• Części analogowej, w której skład wchodzą: • Dla przetworników wielokanałowych multiplekser analogowy służący do wyboru

kanału, z którego będzie pobierane napięcie do przetwarzania A/C. • Układ próbkuj ąco-pamiętający (S&H) zapamiętujący stan napięcia mierzonego i

utrzymujący niezmienną jego wartość przez cały czas konwersji A/C. • Blok przetwarzania A/C – właściwy blok dokonujący konwersji napięcia

mierzonego na kod cyfrowy bazując na metodzie SAR lub metodzie Σ - ∆. • Układ napięcia referencyjnego dostarczający za pośrednictwem bufora napięcia

referencyjnego dla bloku przetwarzania A/C. Napięcie referencyjne może pochodzić z zewnątrz – wówczas podawane jest na pin REFin lub może być wytwarzane przez wewnętrzne źródło referencyjne (typowo 2,5 V).

Zewnętrzne przetworniki A/C sterowane interfejsem SPI zostaną przedstawione na przykładach układów firmy Analog Devices: • AD7475 i AD7495 – 12-bitowe przetworniki A/C pracujące na zasadzie SAR, • AD7791 – 24-bitowy przetwornik Σ - ∆.

6.2.1. Przetworniki A/C pracujące na zasadzie SAR AD7475 i AD7495 są szybkimi (1 MSPS – miliona próbek na sekundę), o niskim poborze

mocy (10,5 mW dla 1 MSPS i zasilania 5 V, pobór prądu w trybie uśpienia: 1 µA), pojedynczymi 12-bitowymi przetwornikami analogowo-cyfrowymi z pojedynczym zasilaniem, operującym w zakresie napięć zasilania od 2,7V do 5,25V.

a) b)

Rys. 6.17. Schemat blokowy układów firmy Analog Devices przedstawicieli

przetworników pracuj ących na zasadzie SAR: a) AD7475, b) AD7495

Page 63: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

173

Układy zawierają w sobie jeden śledząco-podtrzymujący wzmacniacz, jeden przetwornik analogowo-cyfrowy działający na zasadzie SAR i jedno szeregowe wyjście przez które są wysyłane dane wyjściowe (rys. 6.17). Każde urządzenie znajduje się w 8-nóżkowej obudowie typu SOIC/MSOP (rys. 6.18). Szeregowe impulsy zegara wejściowego SCLK pobierają dane z urządzenia oraz zapewniają źródło impulsów zegarowych potrzebnych do konwersji dla przetwornika A/C. Konwersja rozpoczyna się, gdy na linii CS pojawi się stan niski. Opadający impuls na tej linii powoduje zapamiętanie wartości napięcia na lini VIN w bloku T/H.

Układ AD7495 (rys. 6.17b) posiada własne wewnętrzne napięcie odniesienia 2,5V, które może w razie potrzeby służyć jako napięciowe źródło odniesienia dla innych układów. Natomiast układ AD7475 (rys. 6.17a) korzysta z zewnętrznego napięcia odniesienia dołączanego do pina REF IN.

a) b)

Rys. 6.18. Rozmieszczenie pinów układów: a) AD7475, b) AD7495

Układy AD7475 i AD7495 mają możliwość zmniejszenia poboru mocy poprzez

wprowadzenie ich w stan uśpienia, co pozwala na znaczną oszczędność energii pomiędzy konwersjami. W trakcie konwersji przy zasilaniu 3 V i przepustowości 1MSPS, układy pobierają maksymalnie 2 mA. Przy zasilaniu 5V i przepustowości 1MSPS, pobór prądu wynosi do 2,6 mA.

Tabela 6.5.Opis funkcji pinów układów AD7475 i AD7495

Numer pinu Symbol Funkcja

1 (AD7475) REF IN Wejście napięcia referencyjnego. Zakres dołączanych napięć referencyjnych musi mieścić się w zakresie 2,5 V ±1%. Do pina musi być dołączony kondensator o pojemności wynoszącej przynajmniej 1 µF

1 (AD7495) REF OUT Wyjście napięcia referencyjnego. Między tym pinem a masą musi być dołączony kondensator o pojemności wynoszącej minimum 100 nF. Aby korzystać z tego napięcia musi być ono buforowane.

2 VIN Wejście analogowe. Zakres napięć wejściowych musi się mieścić od 0 V do napięcia na REF IN.

3 GND Masa analogowa. Odniesienie dla napięć wejściowych i referencyjnych.

4 SCLK Wejście zegara dla transmisji szeregowej i dla procesu konwersji A/C.

5 SDATA Wyjście danych interfejsu szeregowego. Dane konwersji A/C są szeregowo wystawiane na tym wyjściu na opadające zbocze sygnału SCLK. Składają się z czterech wiodących zer po których następuje 12 bitów wyniku konwersji począwszy od MSB.

6 VDRIVE Wejście logiki zasilania. Wartość napięcia na nim determinuje napięcie pracy interfejsu SPI.

7 CS Wejście wyboru układu, aktywne poziomem niskim. Pełni dwie funkcje: inicjalizuje konwersję oraz steruje transmisją szeregową.

8 VDD Wejście zasilania układu. Zakres napięć od 2,7 V do 5,25 V.

Page 64: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

174

Przetwornik układów AD7475 i AD7495 składa się z układu kontroli logiki, SAR i pojemnościowego przetwornika cyfrowo-analogowego C/A, które są używane do dodawania i odejmowania stałych wielkości ładunków z próbkującego kondensatora, aby sprowadzić układ porównujący z powrotem do stanu równowagi. Rys. 6.19a pokazuje przetwornik analogowo-cyfrowy podczas fazy akwizycji (pobierania danych). SW2 jest zwarty i SW1 jest w pozycji A, układ porównujący jest utrzymywany w stanie równowagi, a próbkujący kondensator pobiera sygnał na VA1.

a) b)

Rys. 6.19. Fazy pracy przetwornika A/C w układach AD7475 i AD7495:

a) faza akwizycji danych, b) faza konwersji

Gdy przetwornik analogowo-cyfrowy rozpoczyna konwersję (patrz rys. 6.19b), SW2 otwiera się, a SW1 przestawi się w pozycję B powodując, że komparator będzie niezrównoważony. Układ kontroli logiki i pojemnościowy przetwornik cyfrowo-analogowy są wykorzystywane do dodania lub odjęcia stałych wielkości ładunku z próbkującego kondensatora w celu sprowadzenia komparatora z powrotem do stanu równowagi. Gdy komparator jest ponownie zrównoważony, konwersja kończy się. Układ kontroli logiki generuje kod wyjściowy.

Układy AD7475 i AD7495 są sterowane za pomocą interfejsu SPI. Sygnał zegara tego interfejsu dostarcza sygnał zegarowy potrzebny do konwersji, jak i steruje odbiorem danych z układu. Na rys. 6.20 pokazano przebiegi czasowe dla tego interfejsu.

Rys. 6.20. Przebiegi czasowe interfejsu SPI dla układów AD7475 i AD7495

Sygnał CS inicjuje transfer danych i konwersję. Opadające zbocze tego sygnału

rozpoczyna konwersję, która wymaga 16 impulsów zegarowych SCLK. Linia danych SDATA wychodzi ze stanu wysokiej impedancji. Najpierw pojawiają się na nich wiodące cztery zera, po których występuje 12 bitów danych zawierających wynik konwersji od najstarszego bitu DB11 do najmłodszego DB0.

Należy pamiętać, że wraz z przesyłaniem danych trwa konwersja napięcia wejściowego na wartość cyfrową zgodnie z prędkością sygnału zegarowego SCLK. Zatem zmieniając częstotliwość sygnału SCLK sterujemy prędkością konwersji. Dane są wysyłane z wyjścia danych na opadające zbocze sygnału zegarowego. Po 16 impulsach zegarowych proces konwersji i transferu danych jest kompletny i może zostać zakończony poprzez wprowadzenie linii CS w stan wysoki. Linie danych ponownie znajdują się w stanie wysokiej impedancji.

Na rys. 6.21 i rys. 6.22 pokazano typowe aplikacje układów AD7475 i AD7495 podłączonych przez interfejs SPI do mikrokontrolera.

Page 65: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

175

Rys. 6.21. Typowa aplikacja układu AD7475

Rys. 6.22. Typowa aplikacja układu AD7495

6.2.2. Przetworniki A/C typu sigma-delta Układ AD7791 jest 24-bitowym przetwornikiem typu sigma-delta (Σ - ∆) przeznaczonym

do pomiaru napięć przebiegów wolnozmiennych (rys. 6.23). Wyposażony jest dodatkowo w wejście różnicowe, które może być buforowane lub nie buforowane.

Rys. 6.23. Schemat blokowy układu AD7791 przedstawiciela przetworników Σ - ∆

Page 66: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

176

Układ posiada następujące parametry: • zasilanie: 2,5 V do 5,25 V, • pobór prądu: 75 µA max, w trybie obniżonego poboru mocy: 1 µA max, • poziom szumów RMS: 1,1 µV przy częstotliwości odświeżania 9,5 Hz, • nieliniowość przetwarzania: 3,5 ppm, • tłumienie jednocześnie sygnałów o 50 Hz i 60 Hz, • posiada wewnętrzny oscylator, • posiada bufor wejściowy typu rail-to-rail, • jest wyposażony w kanał monitorowania napięcia zasilania VDD, • jest umieszczony w 10-pinowej obudowie MSOP.

Układ jest taktowany własnym wewnętrznym zegarem. Stąd nie ma potrzeby dołączania do układu zewnętrznego źródła sygnału zegarowego. Szybkość konwersji jest ustalana programowo i może zmieniać się w zakresie od 9,5 Hz do 120 Hz, przy zapewnieniu poziomu szumów RMS 1,1 µV. Częstotliwość zegara wewnętrznego może być podzielona przez 2, 4 lub 8, w celu redukcji poboru prądu.

Rys. 6.24. Wyprowadzenia układu AD7791

Tabela 6.6. Opis wyprowadzeń układu AD7791 Nr pina

Mnemonik Funkcja

1 SCLK Szeregowe wejście zegara dla danych transmitowanych z przetwornika A/C lub do przetwornika. SCLK posiada wejście Schmitta, co sprawia, że układ można stosować do aplikacji z optoizolacją. Zegar ten może być ciągły dla całej serii danych.

2 CS Wejście Chip Select. Stanem aktywnym jest stan niski. Wejście to jest używane do wyboru przetwornika A/C w systemach z więcej niż jednym urządzeniem na magistrali szeregowej.

3 AIN(+) Wejście analogowe. AIN(+) jest wejściem dodatniego sygnału pełnego różnicowego wejścia analogowego.

4 AIN(-) Wejście analogowe. AIN(-) jest wejściem ujemnego sygnału pełnego różnicowego wejścia analogowego.

5 REFIN(+) Dodatnie wejście referencyjne. REFIN(+) może przyjmować dowolną wartość pomiędzy napięciem VDD i masą GND + 0,1V. Nominalne napięcie referencyjne (REFIN(+) - REFIN(-)) wynosi 2,5 V, ale układ funkcjonuje z napięciem referencyjnym na poziomie od 0,1 V do VDD.

6 REFIN(-) Ujemne wejście referencyjne. Na tym wejściu może być poziom napięcia pomiędzy GND i VDD – 0,1 V.

7 GND Masa 8 VDD Napięcie zasilania, od 2,5 V do 5,25 V. 9 DOUT/ RDY Serial Data Output/Data Ready Output. Wyjście to pełni dwie funkcje. Jest

szeregowym wyjściem danych służącym do odczytu rejestru przesuwnego przetwornika A/C. Rejestr ten pozwala na odczyt rejestrów konfiguracyjnych i wyniku konwersji. Dodatkowo wyjście to wskazuje na zakończenie konwersji (stan niski). Jeśli dane nie zostaną odczytane po konwersji, to na tym pinie pojawia się stan wysoki, dopóki nie zajdzie kolejna konwersja.

Opadające zbocze sygnału DOUT/RDY może być wykorzystane jako sygnał przerwania dla procesora, wskazując na fakt, że ważne dane są do odczytania. Dane te

Page 67: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

177

są czytane szeregowo z linii DOUT\RDY. Opadające zbocze sygnału zegarowego wystawia daną, narastające zbocze próbkuje.

Koniec konwersji może być wskazany przez bit RDY w rejestrze statusowym.

Kiedy CS jest w stanie wysokim, pin DOUT/RDY jest w stanie wysokiej impedancji.

10 DIN Wejście szeregowe do wejściowego rejestru przesuwnego przetwornika A/C. Dane wprowadzone do tego rejestru są przesyłane do rejestrów kontrolnych przetwornika A/C.

Sterowanie i konfiguracja przetwornika A/C odbywa się za pomocą wewnętrznych

rejestrów. Są to rejestry: • rejestr komunikacyjny , • rejestr statusu, • rejestr trybu pracy , • rejestr filtra , • 24-bitowy rejestr danych.

Rejestr komunikacyjny

Rejestr komunikacyjny jest 8-bitowym rejestrem tylko do zapisu. Każda komunikacja z układem musi rozpocząć się od zapisu do niego. Dane zapisane do rejestru określają, czy następna operacja będzie operacją zapisu, czy odczytu oraz do którego rejestru się ona odnosi. Po wykonaniu operacji (zapisu lub odczytu) na wybranym rejestrze interfejs wraca do trybu, w którym układ oczekuje na zapis do rejestru komunikacyjnego. Jest to domyślny stan interfejsu po włączeniu zasilania lub resecie.

W tabeli 6.7 przedstawiono znaczenie poszczególnych bitów rejestru komunikacyjnego. Bity CR0 do CR7 wskazują lokalizację bitów. CR7 jest pierwszym bitem strumienia danych. Liczba w nawiasie określa domyślną wartość bitu po resecie. CR7 CR6 CR5 CR4 CR3 CR2 CR1 CR0 WEN(0) 0(0) RS1(0) RS0(0) R/W (0) CREAD(0) CH1(0) CH0(0)

Tabela 6.7. Oznaczenia bitów rejestru komunikacyjnego Lokalizacja bitu Nazwa bitu Opis CR7 CR6 CR5-CR4 CR3 CR2

WEN 0 RS1-RS0

R/W CREAD

Write Enable Bit. Kiedy „0” zostanie wpisane na tę pozycję to, pozostałe siedem bitów zostanie załadowanych do rejestru. Ten bit musi być ustawiony na 0 dla poprawnej pracy układu Register Address Bits. Te bity służą do określenia, który z rejestrów przetwornika będzie wybrany do operacji zapisu / odczytu za pomocą interfejsu szeregowego (tabela 6.8). 0 oznacza, że następną operacją będzie zapis do określonego rejestru. 1 na tej pozycji oznacza, że następna operacją będzie odczytem z określonego rejestru. Continuous Read of the Data Register. Gdy bit ten jest ustawiony na 1 (oraz wybrany jest rejestr danych), szeregowy interfejs jest tak skonfigurowany, że rejestr danych może być ciągle odczytywany. Zawartość rejestru jest umieszczana automatycznie na wyjściu DOUT w takt sygnału zegarowego SCLK. W tym przypadku rejestr komunikacyjny nie musi być ustawiony na tryb odczytu. Aby umożliwi ć tryb ciągłego odczytu danych, należy do rejestru komunikacyjnego wpisać instrukcję 001111XX. Natomiast, aby wyjść z tego trybu należy wpisać 001110XX w momencie, gdy RDY jest w stanie niskim. Podczas trybu ciągłego odczytywania, przetwornik

Page 68: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

178

CR1-CR0

CH1-CH0

monitoruje wejście DIN, tak więc może on odebrać instrukcję kończącą ten tryb. Linia DIN powinna być utrzymana w stanie niskim podczas ciągłego odczytywania danych do momentu wpisania do urządzenia określonej instrukcji. Bity te są używane do wybory kanału wejścia analogowego (tabela 6.9). Może być wybrany kanał różnicowy ((AIN(+)/ANI(-)) lub sygnały wewnętrzne (AIN(-)/AIN(-)). Może być także wybrane napięcie zasilania. W tym przypadku napięcie zasilania jest podzielone przez 5 i doprowadzone przetwornika. Przetwornika korzysta z wewnętrznego źródła referencyjnego 1,17V ±5%. Każda zmiana w kanale resetuje filtr i konwersja jest rozpoczynana od nowa.

Tabela 6.8. Wybór rejestrów układu AD7791

RS1 RS0 Rejestr Rozmiar rejestru 0 0 0 1 1

0 0 1 0 1

Rejestr komunikacyjny podczas trybu zapisu Rejestr statusu podczas odczytu Rejestr trybu pracy Rejestr filtra Rejestr danych

8 bitów 8 bitów 8 bitów 8 bitów 24 bity

Tabela 6.9. Wybór kanału przetwarzania

CH1 CH0 Kanał 0 0 1 1

0 1 0 1

AIN(+)-AIN(-) Zarezerwowany AIN(-)-AIN(-) Monitorowanie VDD

Rejestr statusu (RS1, RS0 = 0, 0; wartość po resecie = 0X8C)

Rejestr statusu jest 8-bitowym rejestrem tylko do odczytu. Dostęp do tego rejestru wymaga od użytkownika zapisania do rejestru komunikacyjnego informacji o tym, że następną operacją będzie odczyt, a bity RS1 i RS0 są wyzerowane. Tabela 6.10 zawiera opis bitów w rejestrze statusu. SR0 do SR7 wskazują na położenie w rejestrze określonego bitu, przy czym SR7 jest pierwszym bitem strumienia danych. SR7 SR6 SR5 SR4 SR3 SR2 SR1 SR0 RDY (1) ERR(0) 0(0) 0(0) 1(1) WL(1) CH1(0) CH0(0)

Tabela 6.10. Opis bitów rejestru statusu

Położenie bitu Nazwa bitu Opis SR7 RDY Bit gotowości przetwornika. Wyzerowany, gdy dana jest wpisana do

rejestru danych przetwornika A/C. Bit ten jest automatycznie ustawiany na 1 po odczytaniu zawartości tego rejestru. Bit ten jest także ustawiany na 1, gdy urządzenie weszło w stan obniżonego poboru mocy. Koniec konwersji

jest również wskazywany przez stan na końcówce DOUT/RDY. Ten pin może być alternatywnym sposobem monitorowania procesu konwersji danych.

SR6 ERR ADR Error Bit. Bit ten jest ustawiany w tym samym czasie co bit RDY. 1 oznacza, że wynik wpisany do rejestru danych składa się z samych zer (rezultat poniżej zakresu) lub z samych jedynek (przekroczenie zakresu). Źródła błędów zawierają przekroczenie zakresu lub za mało bitów.

Page 69: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

179

Zerowany przez operację zapisu aby rozpocząć konwersję. SR5 0 Bit ten jest automatycznie zerowany SR4 0 Bit ten jest automatycznie zerowany S3 1 Bit ten jest automatycznie ustawiany SR2 1 Bit ten jest automatycznie ustawiany, jeżeli urządzeniem jest AD7791.

Może on być wykorzystany w celu odróżnienia AD7791 od AD7790, gdzie bit ten jest wyzerowany

SR1-SR0 CH1-CH0 Bity wskazują, który kanał jest wykorzystywany przetwornik.

Rejestr trybu pracy (RS1, RS0 = 0, 1, wartość po resecie = 0x02)

Jest 8-bitowym rejestrem z możliwością zapisu i odczytu danych. Służy do konfiguracji przetwornika A/C . Można wybrać tryb bipolarny lub unipolarny, uaktywnienie lub wyłączenie bufora, czy wprowadzić urządzenie w stan obniżonego poboru mocy. W tabeli 6.11 MR0 do MR7 wskazują lokalizacje bitów. MR7 jest pierwszym bitem w strumieniu danych. Każdy zapis do rejestru resetuje modulator i filtr oraz ustawia bit RDY. MR7 MR6 MR5 MR4 MR3 MR2 MR1 MR0 MD1(0) MD0(0) 0(0) 0(0) BO(0) U/ B (0) BUF(1) 0(0)

Tabela 6.11. Opis bitów rejestru trybu pracy Położenie bitu Nazwa bitu Opis

MR7-MR6 MD1-MD0 Mode Select Bits. Bity te wybierają tryb ciągły, pojedynczy lub gotowości (standby mode). W ciągłym trybie konwersji, przetwornik stale dokonuje konwersji i wyniki zapisuje do rejestru danych. Kiedy

konwersja zostaje zakończona, RDY przechodzi w stan niski. Użytkownik może odczytywać dane poprzez wprowadzenie urządzenia w ciągły tryb odczytywania, dzięki któremu przetwarzane dane są automatycznie wystawiane na linii DOUT, kiedy zostaną podane impulsy na SCLK. Alternatywnie, użytkownik może zlecić przetwornikowi wyprowadzenie konwersji poprzez zapisanie do rejestru komunikacyjnego. Po włączeniu zasilania pierwsza konwersja jest możliwa po upływie 2/fADC, kolejne są możliwe z częstotliwością fADC. W pojedynczym trybie konwersji, kiedy nie będzie wykonywane przetwarzanie, przetwornik jest wprowadzony w tryb obniżonego poboru mocy (power-down). Kiedy więc wybierzemy ten typ konwersji, przetwornik A/C dokonuje pojedynczego przetwarzania (oczywiście w trybie power-on), co ma miejsce po okresie 2/fADC. Wynik zostaje

umieszczony w rejestrze danych, RDY przechodzi w stan niski i przetwornik ponownie wraca do trybu obniżonego poboru mocy. Dane

pozostają w tym rejestrze oraz RDY pozostaje aktywne (niski poziom) do momentu, gdy dane nie zostaną odczytane lub nie odbędzie się kolejne przetwarzanie.

MR5-MR4 0 Bit ten musi być programowo ustawiony na 0 MR3 BO Burnout Current Enable Bit. Kiedy bit ten jest ustawiony na 1 do linii

sygnałowej podłączone jest źródło prądowe 100 nA (pod warunkiem, że bufor jest włączony). Gdy BO = 0 źródło prądowe jest wyłączone.

MR2 U/ B Unipolar/Bipolar Bit. Ustawienie bitu na 1 ustala kodowanie unipolarne, Czyli wynik zawarty jest w zakresie od 0x000000 do 0xFFFFFF. Gdy bit jest wyzerowany to mamy kodowanie bipolarne. W tym przypadku minimalna wartość ujemna wynosi 0x000000, zeru przypisana jest wartość 0x800000, natomiast wartość maksymalna wynosi 0xFFFFFF.

Page 70: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

180

MR1 BUF Ustawia przetwornik w trybie buforowanym lub niebuforowanym. Kiedy bit ten jest wyzerowany urządzenie działa w trybie niebuforowanym, zmniejszając swój pobór mocy. Jeżeli natomiast bit ma wartość 1, operacje są buforowane, co pozwala na dodanie impedancji na wejście przetwornika.

Tabela 6.12. Obsługiwane tryby pracy

MD1 MD0 Tryb 0 0 1 1

0 1 0 1

Ciągły tryb konwersji (domyślny) Zarezerwowane Pojedynczy tryb konwersji Tryb obnizonego poboru prądu (wstrzymania)

Rejestr filtra (RS1, RS0 = 1, 0 wartość po resecie = 0X04)

8-bitowy rejestr z możliwością zapisu oraz odczytu danych. Jest on używany do ustalania prędkości przetwarzania. Tabela 6.13 zawiera opis bitów, przy czym FR7 jest pierwszym bitem w strumieniu danych. FR7 FR6 FR5 FR4 FR3 FR2 FR1 FR0 0(0) 0(0) CDIV1(0) CDIV0(0) 0(0) FS2(1) FS1(1) FS0(0)

Tabela 6.13. Opis bitów rejestru filtra Położenie bitu Nazwa bitu Opis FR7-FR6 FR5-FR4 FR3 FR2-FR0

0 CLKDIV1- CDIV0 0 FS2-FS0

Bity te muszą być ustawione na 0 Bity te służą do wprowadzania układu w tryb obniżonego poboru mocy. W trybie niskiego poboru mocy szybkość przetwarzania jest częstotliwości zegara: 00 tryb normalny, 01 zegar podzielony przez 2, 10 zegar podzielony przez 4, 11 zegar podzielony przez 8. Musi być ustawiony na 0 Bity te ustawiają szybkość przetwarzania (uaktualniania wyniku). Szybkość ta wpływa na tłumienie częstotliwości 50 Hz i 60 Hz oraz na poziom szumów. Tabela 6.14 pokazuje dopuszczalne szybkości przetwarzania podczas normalnego trybu pracy. W trybie obniżonego poboru prądu, szybkość ta jest skalowana według częstotliwości zegara. Na przykład, jeżeli wewnętrzny zegar jest podzielony przez współczynnik 2, stosowna szybkość będzie także podzielona przez 2.

Tabela 6.14. Szybkości uaktualniania wyniku

FS2 FS1 FS0 fADC(Hz) F3DB(Hz) RMS Noise(µ V)

Tłumienie

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

120 100 33,3 20 16,6 16,7 13,3 9,5

28 24 8 4,7 4 4 3,2 2,3

40 25 3,36 1,6 1,5 1,5 1,2 1,1

25dB 60Hz 25dB 50Hz 80dB 60H 65dB 50Hz/60Hz (domyślne) 80dB 50Hz 67dB 50Hz/60Hz

Page 71: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

181

Rejestr danych (RS1,RS0 = 1, 1; wartość po resecie = 0X000000)

Zawiera wynik konwersji (dane). Jest to rejestr tylko do odczytu. Po zakończeniu odczytu z tego rejestru ustawiany jest bit/pin RDY. Opis układu

Układ ma jedno wejście różnicowe, które może być buforowane lub nie. Buforowanie kanału wejściowego oznacza, że układ ma możliwość umieszczania impedancji na analogowym wejściu, co pozwala na umieszczenie na tym wejściu filtra RC. AD7791 wymaga zewnętrznego napięcia referencyjnego o wartości nominalnej 2,5V. Na rys. 6.25 pokazano podstawową aplikację układu.

Rys. 6.25. Podstawowe podłączenie układu AD7791

Dla trybu unipolarnego wynik jest określony zależnością: Code = 2N * (AIN/VREF ),

natomiast dla trybu bipolarnego przyjmuje postać: Code = 2N-1 * (AIN/VREF +1), gdzie AIN jest analogowym napięciem wejściowym, a N=24.

Jak wcześniej wspomniano, programowanie AD7791 polega na ustawianiu bitów w odpowiednich rejestrach. Dane są zapisywane do tych rejestrów przez szeregowy interfejs SPI. Dostęp do odczytywanych danych również odbywa się za pomocą tego interfejsu. Cała komunikacja z urządzeniem musi rozpocząć się wpisaniem instrukcji do rejestru komunikacyjnego. Urządzenie oczekuje na zapis do tego rejestru po włączeniu zasilania lub po resecie. Dane wpisane do rejestru określają, czy następną wykonywaną operacją ma być zapis czy odczyt oraz wskazuje do którego rejestru będziemy zapisywać lub z którego rejestru odczytywać dane. Możliwość zapisania danych do jakiegoś rejestru rozpoczyna się zapisem instrukcji do rejestru komunikacyjnego, po czym następuje wskazanie rejestru docelowego. Odczyt danej (z wyjątkiem sytuacji, kiedy wybrany jest tryb ciągłego odczytywania) rozpoczyna się zapisem do rejestru komunikacyjnego instrukcji po czym następuje wybór rejestru, z którego będziemy odczytywać.

Interfejs szeregowy resetuje się ustawiając 1 na wejściu DIN na co najmniej 32 cykle zegarowe. Po resecie układ czeka na wpis do rejestru komunikacyjnego, wszystkie rejestry przyjmują wartości początkowe.

Page 72: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

182

W trybie pojedynczego przetwarzania AD7791 jest wyłączany pomiędzy konwersjami. Kiedy rozpoczęta jest pierwsza konwersja, poprzez ustawienie MD1 na 1 i MD0 na 0 w rejestrze trybów pracy, przetwornik zostaje włączony, następuje pojedyncza konwersja po czym urządzenie zostaje wyłączone. Przetwarzanie takie wymaga pewnego okresu czasu, 2xtADC. DOUT/RDY przechodzi w stan niski, wskazując zakończenie przetwarzania. Kiedy

dana zostanie odczytana z rejestru, DOUT/RDY przechodzi w stan wysoki. Jeżeli CS jest na poziomie niskim, DOUT/RDY będzie pozostawało w stanie wysokim, dopóki inna konwersja nie zostanie zainicjalizowana i zakończona. Rejestr danych może być odczytywany wiele razy, jeżeli jest to wymagane, nawet gdy DOUT/RDY jest w stanie wysokim.

Rys. 6.26. Przebiegi dla trybu pojedynczej konwersji

Domyślnym trybem pracy jest tryb ciągłego przetwarzania. AD7791 będzie stale

przetwarzał dane, a pin RDY przechodzi w stan niski za każdym razem, gdy nastąpi koniec

konwersji. Gdy CS jest w stanie niskim, DOUT/RDY również przechodzi w stan niski przy zakończeniu konwersji. Aby odczytać wyniki, użytkownik może zapisać do rejestru komunikacyjnego komendę, wskazującą że następną operacją ma być odczyt z rejestru danych. DOUT/RDY powraca w stan wysoki, gdy przetworzone dane zostaną odczytane z rejestru. Użytkownik może odczytywać te dane wiele razy. Należy jednak zadbać o to, żeby nie odczytywać w momencie, gdy realizowana jest konwersja, ponieważ dane zostaną utracone.

Rys. 6.27. Przebiegi dla ciągłego trybu przetwarzania

Układ AD7791 może być wprowadzony w tryb ciągłego odczytywania. Dzięki temu nie

trzeba za każdym razem przy odczycie wyniku zapisywać danych do rejestru komunikacyjnego. W tryb ten wchodzi się przez wpisanie instrukcji 001111XX do rejestru komunikacyjnego. Wówczas po zakończeniu konwersji wystarczy odczytać z linii DOUT/RDY 24-bitowe słowo wyniku.

Page 73: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

183

Kiedy DOUT/RDY przechodzi w stan niski, wskazując jednocześnie koniec konwersji, należy podać odpowiednią liczbę impulsów zegarowych na wejście SCKL w celu odczytu wyniku. W tym trybie, dane mogą być odczytane tylko raz. Użytkownik musi zadbać o to, aby wyjściowe słowo zostało odczytane zanim zostanie ukończona następna konwersja. Jeżeli użytkownik nie odczyta wyniku konwersji przed zakończeniem następnej lub nie będzie odpowiedniego sygnału zegarowego podanego na przetwornik, aby odczytać dane, szeregowy rejestr wyjściowy jest resetowany przez zakończenie następnej konwersji, która powoduje umieszczenie nowych danych w rejestrze wyjściowym.

Rys. 6.28. Przebiegi dla ciągłego trybu odczytu

Wyjście z ciągłego trybu odczytu polega na wpisaniu do rejestru komunikacyjnego

instrukcji 001110XX podczas, gdy RDY jest w stanie niskim. Podczas wspomnianego trybu pracy, przetwornik monitoruje zachowanie się linii DIN. Zatem na tej linii należy zapewnić poziom niski, aby nie wyjść z tego trybu. Poziom wysoki trwający 32 cykle zegara SCLK resetuje układ.

6.3. Programowalne czujniki temperatury z interfejsem SPI Programowalne czujniki temperatury zostaną przedstawione na przykładzie układu

AD7814 firmy Analog Devices. Układ AD7814 mierzy i konwertuje temperaturę na 10-bitowartość cyfrową. Na rys. 6.29

pokazano schemat blokowy układu.

Układ AD7814 zawarty jest w 6-nożkowej obudowie typu SOT-23 (rys. 6.30a) lub w 8-nożkowej obudowie typu MSOP (rys. 6.30b).

Układ cyfrowego czujnika temperatury z interfejsem SPI zawiera: • czujnik temperatury zamieniający daną wartość temperatury na napięcie, • 10-bitowy przetwornik A/C umożliwiający pomiar temperatury (w rzeczywistości

pomiar napięcia na czujniku temperatury) z rozdzielczością 0,25°C oraz źródło referencyjne.

• rejestr z wynikiem zmierzonej temperatury (z 10-bitowym kodem odpowiadającym danej wartości temperatury),

• szeregowy interfejs zgodny ze standardami SPI, QSPI i Microwire.

Page 74: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

184

Rys. 6.29. Schemat blokowy układu AD7814 przedstawiciela cyfrowych czujników

temperatury z interfejsem SPI Główne cechy układu. • AD7814 jest jednoukładowym termometrem cyfrowym umożliwiającym dokładny pomiar

temperatury otoczenia w zakresie od -55°C do +125°C z błędem nie przekraczającym +/-2°C.

• Napięcie zasilania od 2,65V do 2,9V. • 6-nożkowa obudowa typu SOT-23 (rys. 6.30a) lub w 8-nożkowa obudowa typu MSOP

(rys. 6.30b) • Posiada tryb standby umożliwiający ograniczenie poboru prądu do 1 µA.

a) b)

Rys. 6.30. Wyprowadzenia układu AD7314: a) dla obudowy SOT-23, b) dla obudowy MSOP Tabela 6.15. Opis funkcji linii układu AD7814 dla obudowy SOT-23 Nr pinu Nazwa pinu Opis

1 GND Masa układu dla części cyfrowej i analogowej. 2 DIN Wejście danych szeregowych dla danych do rejestru kontrolnego. Dane

są wprowadzane do rejestru kontrolnego na narastające zbocze sygnału zegarowego SCLK.

3 VDD Dodatnia linia zasilania, 2,7 V do 5,5 V. 4 SCLK Wejście zegara interfejsu szeregowego. Zegar wykorzystywany jest do

wyprowadzania danych z rejestru zawierającego wartość zmierzonej temperatury oraz do zapisywania danych do rejestru kontrolnego.

Page 75: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

185

5 CS

Wejście wyboru układu. Urządzenie jest wybrane, gdy jest podany na nie stan niski. Wejście SCLK jest wyłączone, gdy podany jest stan wysoki na tym pinie.

6 DOUT Wyjście danych szeregowych zawierających zmierzoną temperaturę. Na opadające zbocza sygnału zegarowego SCLK wystawiane są bity rejestru z wartością temperatury.

Przetwornik A/C jest typu SAR. Zegar niezbędny do konwersji sygnału analogowego na

cyfrowy generowany jest przez wewnętrzny oscylator. W normalnym trybie pracy konwersja odbywa się automatycznie, co 350 µs zgodnie z cyklem wewnętrznego zegara. Czas przetwarzania wynosi 25 µs, po nim układ przechodzi w stan uśpienia. W każdej chwili dostępny jest wynik ostatniego pomiaru, który znajduje się w rejestrze szeregowym.

Układ może przejść w stan uśpienia przez odpowiedni wpis do rejestru kontrolnego. Wówczas wewnętrzny zegar zostaje wyłączony i nie następuje konwersja, dane z ostatniego pomiaru nadal dostępne są w rejestrze danych.

W trybie automatycznym, wewnętrzny zegar jest restartowany po każdej operacji zapisu lub czytania z układu. Po wyprowadzeniu układu ze stanu uśpienia wewnętrzny zegar zostaje zresetowany a aktualny wynik konwersji dostępny jest po około 25 µs.

Rejestr danych pomiarowych jest tylko do odczytu. Zapisany jest w nim wynik ostatniej konwersji w 10-bitowym formacie (tabela 6.16). Pokazany w tabeli zakres w praktyce ograniczony jest do zakresu pomiarowego termometru (-55°C do +125°C).

Tabela 6.16. Format danych temperatury

Interfejs szeregowy składa się z czterech linii: CS, SCLK, DIN i DOUT, jednak możliwa jest komunikacja z wykorzystaniem trzech linii – DIN połączone z masą. Wówczas możliwy jest tylko odczyt z układu za pomocą DOUT. DIN jest wykorzystywana do przełączania układu między trybami automatycznym i uśpienia. Linia CS jest używana do wyboru układu

Page 76: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

186

spośród kilku podłączonych do magistrali szeregowej. Należy się upewnić, że po włączeniu zasilania przed pierwszą operacją zapisu/odczytu linia CS jest w stanie wysokim. Linia zegara jest aktywna tylko, gdy CS jest w stanie niskim. Do poprawniej synchronizacji danych wymagane jest, aby linia CS była w stanie wysokim, gdy nie korzystamy z portu. Układ pracuje w trybie slave i wymaga zewnętrznego zegara na linii SCLK do synchronizacji danych.

Rys. 6.31. Przebiegi interfejsu SPI układu AD7814 Zgodnie z właściwościami interfejsu SPI, odczytywanie danych z rejestru wyniku

temperatury, pozwala na równoległe zapisywanie danych do rejestru konfiguracji. Dana wejściowa nie jest wprowadzona do rejestru konfiguracji dopóki nie pojawi się szesnaste narastające zbocze zegara. Dane na linii DIN są zatrzaskiwane przy narastającym zboczu zegara, natomiast wystawiane na linie DOUT przy opadającym zboczu SCLK. Odczytywane jest dziesięć bitów poprzedzonych zerem, przy czym odczyt trwa 16 cykli zegara.

W przypadku operacji zapisu do rejestru kontrolnego tylko trzeci bit w strumieniu danych jest istotny. Gdy jest „1” to zostaje włączony tryb uśpienia. Dla prawidłowego odbioru pozostałe bity powinny mieć wartość „0”.

Interfejs szeregowy jest zgodny z większością mikrokontrolerów i procesorów. Standardowe podłączenie jest przedstawione na rys. 6.32.

Rys. 6.32. Podłączeni układu AD7814 do mikrokontrolera

Page 77: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

187

6.4. Kontrolery czujników pojemnościowych

Grupa tych układów zostanie przedstawiona na przykładzie układu AD7147 firmy Analog Devices będącego kontrolerem jednoelektrodowych (tzw. uziemionych) czujników pojemnościowych.

Układ AD7147 jest zaprojektowany do pracy z czujnikami pojemnościowymi realizującymi takie funkcje jak przyciski, paski przewijania i kółka. Czujniki te mogą być zrealizowane na jednej warstwie płytki drukowanej, dzięki czemu mogą znaleźć zastosowania w cienkich urządzeniach.

Np. wybrane zastosowania układu: w telefonach komórkowych, odtwarzaczach muzyki i multimediów, smartphonach, telewizji, urządzeniach audio-video, pilotach zdalnego sterowania, konsolach do gier, aparatach cyfrowych, itp.

Układ AD7147 jest konwerterem pojemności na wartość cyfrową (capacitance-to-digital converter – CDC) z wbudowaną kalibracją zmian pojemności wynikającej ze zmian środowiska. Układ posiada 13 wejść (kanałów) podłączonych za pomocą matrycy przełączającej do 16-bitowego konwertera sigma-delta (Σ-∆) pracującego z częstotliwością 250 kHz. Konwerter CDC służy do wykrycia zmiany pojemności poszczególnych zewnętrznych czujników pojemnościowych oraz zarejestrowania na którym czujniku (czujnikach) ta zmiana nastąpiła. Sterowanie i konfiguracja konwertera CDC jest realizowana za pomocą wpisów do jego rejestrów konfiguracyjnych.

Rys. 6.32. Schemat blokowy układu AD7147 kontrolera czujników pojemnościowych

Page 78: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

188

Układ AD7147 ma: • wbudowany układ logiczny, którego celem jest kompensacja zmian pojemności

czujników wynikająca ze zmian zachodzących w otoczeniu. Sekwencja kalibrująca jest wykonywana automatycznie i w stałych odstępach czasu, dopóki czujniki nie zostaną dotknięte. Dzięki temu następuje eliminacja wykrywania „fałszywych dotknięć” zewnętrznych czujników, czyli zmian wartości pojemności spowodowanych zmianami środowiska (np. zmianami wilgotności).

• szeregowy interfejs kompatybilny z SPI, a układ AD7147-1 szeregowy interfejs kompatybilny z I2C. Oba układy posiadają wyjście generujące przerwanie, jak również wyjście ogólnego przeznaczenia GPIO. Pin VDRIVE służy do ustawienia napięcia pracy interfejsu szeregowego niezależnie od napięcia zasilania układu.

• może pracować w trybie pełnego poboru mocy lub niskiego poboru mocy z automatycznym wybudzeniem. Tryb automatycznego wybudzenia jest szczególnie użyteczny dla urządzeń przenośnych, w których istotny jest mały pobór energii.

• jest dostępny w obudowie 24-pinowej, 4 mm x 4 mm LFCSP i działa w zakresie napięcia zasilania od 2.6 V do 3.6 V. Prąd pobierany w czasie działania w trybie niskiego poboru mocy wynosi zwykle 26 µA przy dołączeniu do niego 13 czujników.

• mierzy zmiany pojemności dla czujników jedno-elektrodowych. Elektroda czujnika znajdująca się na płytce PCB reprezentuje jedną okładkę wirtualnego kondensatora. Drugą okładką kondensatora jest np. palec użytkownika, który jest uziemiony w stosunku do wejścia czujnika.

• najpierw wysyła sygnał pobudzenia w celu naładowania okładki kondensatora. Kiedy użytkownik zbliża palec do sensora tworzy się wirtualny kondensator, w którym użytkownik traktowany jest jako druga okładka (rys. 6.34).

Rys. 6.33. Wyprowadzenia układu AD7147

Cechy układu AD7147: • Programowalny konwerter pojemnościowo-cyfrowy (CDC):

• Rozdzielczość rzędu femtofaradów, • 13 wejść dla czujników pojemnościowych, • Szybkość uaktualniania 9ms, dla wszystkich 13 wejść czujnikowych, • Brak konieczności stosowania zewnętrznych komponentów RC,

• Wbudowany układ logiczny automatycznej kalibracji: • Automatyczna kompensacja zmian środowiskowych, • Automatyczne: próg adaptacyjny i poziomy czułości.

• Wbudowana pamięć RAM przechowująca dane kalibracyjne. • Oddzielny poziom napięcia pracy VDRIVE dla interfejsu szeregowego.

Page 79: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

189

• Posiada wyjście przerwań i wejście/wyjście ogólnego zastosowania (GPIO). • Obudowa 24-pinowa, 4 mm x 4 mm LFCSP. • Napięcie zasilania od 2.6 V do 3.6 V. • Mały prąd podczas pracy: tryb pełnego poboru mocy: 1 mA, tryb niskiego poboru mocy:

21.5 µA. Tabela 6.16. Opis pinów układu AD7147

Rys. 6.34. Idea metody działania czujników pojemnościowych

Page 80: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

190

Na rys. 6.35 pokazano zasadę działania (pomiaru zmiany pojemności) czujnika pojemnościowego. Podczas konwersji na linii CINx generowany jest przebieg prostokątny. Modulator podłączony do tej linii w sposób ciągły próbkuje ładunek gromadzony na kondensatorze do niej podłączonym. Sygnał z wyjścia modulatora jest przetwarzany przez filtr cyfrowy, w wyniku czego otrzymuje się wyniki zapisywane do rejestrów CDC_RESULT_Sx dla każdej z fazy konwersji, począwszy od adresu 0x00B do adresu 0x016.

Rys. 6.35. Przebiegi czasowe aktywacji czujnika pojemnościowego (zawartość rejestru

CDC_RESULT_Sx)

Kiedy użytkownik zbliża palec do czujnika, całkowita pojemność związana z tym czujnikiem zmienia się i jest mierzona przez układ AD7147. Jeżeli zmiana pojemności jest większa od ustawionego progu, wtedy układ AD7147 interpretuje to jako aktywację czujnika (jego dotknięcie).

Czujnik traktowany jest jako aktywny tylko wtedy, gdy wartość w CDC_RESULT_Sx jest większa niż wartość STAGEx_HIGH_THRESHOLD lub mniejsza niż STAGEx_LOW_THRESHOLD. Aktywacja czujnika jest sygnalizowana generacją przerwania, czyli pojawieniem się aktywnego sygnału na wyjściowej linii przerwania INT.

Na rys. 6.35 przedstawiono dwa przebiegi aktywacji czujników. Aktywacja A czujnika następuje, gdy jest on podłączony do dodatniego wejścia konwertera. W tym przypadku, gdy użytkownik aktywuje czujnik, następuje wzrost w kodzie CDC i wartość rejestru CDC_RESULT_Sx przekracza wartość STAGEx_HIGH_THRESHOLD. Aktywacja B czujnika następuje, gdy sensor jest podłączony do ujemnego wejścia konwertera. W tym przypadku, gdy użytkownik aktywuje sensor, następuje zmniejszenie w kodzie CDC i wartość CDC_RESULT_Sx staje się mniejsza od wartości Szczegóły dotyczące działania układu AD7147 znajdują się w jego dokumentacji technicznej. AD7147 posiada 4-żyłowy interfejs SPI składający się z linii: wejście danych szeregowych SDI, wyjście danych szeregowych SDO, zegar transmisji szeregowej SCLK i wybór układu CS stanem niskim. Dana transmitowana do układu składa się z dwóch części: (rys. 6.36) • 16-bitowej komendy (rys. 6.37) zawierającej bit zapisu lub odczytu 16-bitowej danej

do/z rejestru następującej po tej komendzie, adres rejestru do którego będzie dokonywany wpis lub odczyt 16-bitowej danej,

Page 81: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

191

• 16-bitowej danej (lub ciągu 16-bitowych danych) wprowadzanej lub wyprowadzanej do/z wybranego rejestru (począwszy od zaadresowanego rejestru). W przypadku wysyłania do układu ciągów 16-bitowych danych następuje automatyczna inkrementacja wskaźnika adresu aż do osiągnięcia maksymalnej wartości.

Rys. 6.36. Przebiegi czasowe interfejsu SPI układu AD7147

MSB LSB 15 14 13 12 11 10 9:0 1 1 1 0 0 R/W Register address

Rys. 6.37. Format 16-bitowej komendy dla układu AD7147 Gdzie: Bity [15:11] słowa rozkazowego muszą być ustawiona na 11100 by poprawnie rozpocząć

transakcję na magistrali. Bit 10 jest bitem odczytu/zapisu; 1 ustawia odczyt natomiast 0 – zapis. Bity [9:0] zawierają adres rejestru docelowego. Gdy odczyt lub zapis następuje z większej

liczby rejestrów, adres ten wskazuje na adres pierwszego rejestru, do którego ma być dokonany wpis lub z którego ma nastąpić odczyt.

Przestrzeń adresowa AD7147 podzielona jest na trzy bloki rejestrów (rys. 6.38): • W bloku 1 znajdują się rejestry sterujące (setup control), rejestry kontrolujące konwersje

CDC (konwerter pojemności na cyfrowe) (calibration and setup)), rejestry zezwolenia na przerwania (interrupt enable), rejestry statusu przerwań (interrupt status), 16 bitowe rejestry danych – konwersji CDC (CDC 16-bit conversion data), rejestry ID urządzenia (device id register) oraz rejestry (proximity status register).

• Blok 2 zawiera rejestry konfiguracji używane do konfigurowania pojedynczych wejść CINx dla każdego etapu konwersji CDC.

• Rejestry z 3-go bloku zawierają wyniki każdego etapu konwersji. Rejestry te są automatycznie aktualizowane na końcu każdego etapu konwersji. Mimo, że rejestry te są używane głownie przez wewnętrzne urządzenia układu AD7147, w razie konieczności mogą być odczytane przez zewnętrzny układ sterujący.

(Opis rejestrów układu AD7147 znajduje się w jego dokumentacji technicznej.)

Page 82: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

192

Rys. 6.38. Mapa pamięci układu AD7147

Rys. 6.39. Przykładowa aplikacja układu AD7147

6.5. Zewnętrzne przetworniki cyfrowo- analogowe (C/A) Obecnie producenci oferują bardzo szeroką gamę przetworników C/A z interfejsem SPI.

Dokonują one konwersji wprowadzonego do nich kodu cyfrowego na wartość napięcia wyjściowego. Najczęściej konwersja odbywa się z wykorzystaniem drabinki R-2R. Spotykane rozdzielczości przetworników C/A to 8, 10, 12, 14 i 16 bitów.

Page 83: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

193

Rys. 6.40. Ogólny schemat przetwornika cyfrowo-analogowego (C/A) Każdy przetwornik C/A sterowany interfejsem szeregowym składa się z części:

• cyfrowej zawierającej: • blok interfejsu SPI służący do wprowadzania danych konfiguracyjnych i danych do

przetworzenia na wartość analogową. Dane te są wprowadzane na wejściu DIN w takt sygnału zegarowego SCLK , gdy na linii wyboru układu CS jest stan aktywny (najczęściej stan niski) adresujący układ do transmisji. Zazwyczaj aktualizacja napięcia na wyjściu Vout zachodzi, gdy CS przechodzi w stan nieaktywny (np. zbocze narastające). Istnieją również przetworniki C/A posiadające dodatkową linię wejściową LD służącą do załadowania wprowadzonej danej z rejestru szeregowego interfejsu SPI do rejestru DAC.

• układ kontrolny sterujący kanałem przetwarzania kod-napięcie. Układ ten ma możliwość wprowadzenie przetwornika w tryb obniżonego poboru mocy lub zmiany parametrów bufora wyjściowego (np. wzmocnienia, impedancji wyjściowej).

• analogowej, w której skład może wchodzić wiele kanałów przetwarzania kod-napięcie (np. 1, 2, 4, 8, 16 kanałów).

Pojedynczy kanał przetwarzania kod-napięcie składa się z:

• Rejestru DAC, który zawiera N-bitową (gdzie: N – rozdzielczość przetwornika C/A) daną przetwarzaną na wartość napięcia. Kod ten bezpośrednio steruje kluczami drabinki R-2R.

• Drabinki R-2R będącej siecią rezystorów o wartości R i 2R (rys. 6.41). Zawarte w niej klucze sterowane poszczególnymi bitami słowa zawartego w rejestrze DAC dołączają nogę drabinki do masy analogowej lub wyjścia (wejścia bufora). Drabinka podłączona jest do napięcia referencyjnego podawanego na wejście Vref . Całkowity prąd wyjściowy zależy więc od kodu cyfrowego sterującego kluczami, czyli drabinka konwertuje kod cyfrowy na wartość prądu.

• Bufor wyj ściowy konwertuje prąd wypływający z drabinki R-2R na odpowiadającą mu wartość napięcia oraz zapewnia odpowiednią wydajność i impedancję wyjściową.

Page 84: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

194

Rys. 6.41. Schemat ideowy drabinki R-2R, gdzie przyjęto R = 10 kΩ

Przetworniki C/A zostaną przedstawione na przykładzie układów firmy Analog Devices:

• jednokanałowego 16-bitowego przetwornika AD5060, • 16-kanałowego 14-bitowego przetwornika AD5392.

6.5.1. Pojedynczy przetwornik C/A Układ AD5060 jest 16-bitowym przetwornikiem C/A wykonanym w technologii CMOS,

umieszczonym w 8-nóżkowej obudowie typu SOT-23. Operuje on na pojedynczym napięciu zasilania od 2,7 V do 5,5 V. Częstotliwość zegara interfejsu szeregowego wynosi do 30 MHz. Napięcie referencyjne jest pobierane z zewnętrznego pina Vref. Posiada trzy tryby redukcji poboru mocy ustawiane przez użytkownika. Można uzyskać redukcje poboru prądu typowo do 330 nA przy 5 V napięciu zasilania.

Rys. 6.42. Schemat blokowy przetwornika C/A AD5060

Page 85: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

195

Układ AD5060 składa się z (rys. 6.42): • wejściowego układu kontrolnego obsługującego interfejs SPI i zawierającego 24-bitowy

szeregowy rejestr danych wejściowych (pierwszy bajt zawiera dane konfiguracyjne, dwa pozostałe 16-bitową daną do konwersji C/A),

• układu kontrolnego sterującego redukcją pobieranej mocy, • rejestru DAC zawierającego 16-bitową daną do konwersji, • układu resetu po włączeniu zasilania zerującego rejestr DAC (po włączeniu zasilania na

wyjściu Vout zapewnione jest 0 V), • układu DAC (drabinki R-2R) zasilanej buforowanym napięciem referencyjnym z linii

Vref, • bufora wyj ściowego oraz zestawu kluczy dołączających do jego wyjścia wybrane

rezystory obciążające w celu zapewnienia odpowiedniej impedancji wyjściowej.

Pracą układu steruje interfejs szeregowy SPI. Składa się on z trzech linii wejściowych szeregowe wejście danych DIN, wybór układu do transmisji SYNC, zegar szeregowy SCLK. Wejścia te są kompatybilne ze standardem TTL. Obwody wejściowe tych linii posiadają rezystancję ESD, co zapewnia zwiększone bezpieczeństwo układu. Obwód zabezpieczający składa się z diod i rezystora szeregowego.

Rys. 6.43. Wyprowadzenia układu AD5060

Tabela 6.18. Opis funkcji linii układu AD5060 Nr pinu Nazwa pinu Opis

1 DIN

Wejście danych szeregowych dla danych do 24-bitowego rejestru szeregowego. Dane są wprowadzane do rejestru kontrolnego na opadające zbocze sygnału zegarowego SCLK. Masa układu dla części cyfrowej i analogowej.

2 VDD Dodatnia linia zasilania, 2,7 V do 5,5 V. 3 VREF Wejście napięcia referencyjnego 4 VOUT Wyjście analogowe napięcia z przetwornika C/A 5 AGND Masa analogowa – odniesienie dla układów analogowych 6 DACGND Masa cyfrowa dla części cyfrowej przetwornika C/A 7 SYNC Wejście wyboru układu. Urządzenie jest wybrane, gdy jest podany na

nie stan niski. 8 SCLK Wejście zegara interfejsu szeregowego. Zegar wykorzystywany jest do

wyprowadzania danych do 24-bitowego rejestru szeregowego.

Page 86: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

196

Rys. 6.44. Przebiegi czasowe interfejsu szeregowego układu AD5060

24-bitowe dane od najbardziej znaczącego bitu (MSB) do najmniej znaczącego (LSB)

poprzez linię DIN są wprowadzane do rejestru szeregowego na opadające zbocze sygnału zegarowego na linii SCLK (rys. 6.44). Na ostatnie 24 zbocze opadające wprowadzany jest 24, czyli ostatni, bit do szeregowego rejestru, co powoduje wykonanie zaprogramowanej funkcji (zmiana trybu pracy) i wystawienie nowej wartości napięcia na wyjściu Vout. Maksymalna częstotliwość zegara wynosi 30 MHz.

Rys. 6.45. Format danych wprowadzanych do rejestru szeregowego układu AD5060

Słowo programujące układ AD5060 składa się z (rys. 6.45):

• sześciu pierwszych zer, • dwóch bitów konfiguracyjnych PD1 i PD0 (bity numer 17 i 16) służące do wyboru trybu

pracy układu, • szesnastu bitów D15 – D0 danej wprowadzanej do rejestru DAC i przetwarzanej na

wartość napięcia wystawianego na wyjściu VOUT. Zatem, aby zaprogramować przetwornik C/A nową wartością trzeba przesłać do niego 3

bajty danych, czyli mikrokontroler musi wykonać trzy operacje wpisu danej do interfejsu SPI (wpis do rejestru danych interfejsu SPI uruchamia transmisję – wysłanie i odbiór bajta).

W trybach obniżonego poboru mocy wyjście bufora wyjściowego jest odłączane od wyjścia VOUT. W zależności od wartości bitów PD1 i PD0 (tabela 6.19) wyjście VOUT jest podłączone przez rezystor 100 kΩ lub 1 kΩ do masy, albo wyjście to jest w stanie wysokiej impedancji. Tabela 6.19. Tryby pracy układu AD5060

Page 87: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

197

Na rys. 6.46 pokazano zastosowanie układu AD5060 do budowy przetwornika bipolarnego. Zakres napięć wyjściowych mieści się w zakresie od –5 V do +5 V. Do uzyskania takiego zakresu napięć na wyjściu przetwornika C/A zastosowano wzmacniacz operacyjny.

Rys. 6.46. Aplikacja AD5060 w układzie przetwornika bipolarnego

Wzór na napięcie wyjściowe VO dla dowolnego kodu D (w zakresie od 0 do 65 536) dane

jest wzorem:

×−

×=1

2

1

21

65536 R

RV

R

RRDVV DDDDo .

Dla VREF = 5 V, R1 = R2 = 10 kΩ wzór ten upraszcza się do postaci:

V565536

10 −

×= DVo .

Czyli dla kodu 0x0000 na wyjściu VO układu uzyskujemy napięcie -5 V, a dla kodu 0xFFFF napięcie +5 V. 6.5.2. Wielokanałowy przetwornik C/A

Przykładem tej klasy układów jest 16-kanałowy 14-bitowy przetwornik C/A AD5390. Należy on do grupy trzech układów AD5390, AD5391 (16-kanałowy 12-bitowy przetwornik C/A) i AD5392 (8-kanałowy 14-bitowy przetwornik C/A) wyposażonych w wyjście napięciowe. Każdy kanał posiada wbudowany wzmacniacz (rail-to-rail). Wszystkie urządzenia zawierają wewnętrzne źródło odniesienia 1,25/2,5V, 10pp/oC.

Układy te są dostępne w obudowach: 64-nóżkowej LFCSP (9mm x 9mm) i 52-nóżkowej LQFP (10mm x 10mm). Posiadają interfejs SPI i I2C.

Układy AD5390/91/92 zawierają 3-przewodowy interfejs szeregowy o maksymalnej częstotliwości zegara 30MHz zgodny z interfejsami SPI, QSPI, MICROWIRE i interfejs I2C o częstotliwości pracy 400kHz.

Każdy wewnętrzny przetwornik C/A (kanał) posiada własny rejestr wejściowy, co pozwala na niezależną zmianę napięcia na wyjściu każdego przetwornika lub na jednoczesną zmianę napięcia na wyjściu wszystkich przetworników za pomocą sygnału na wejściu /LDAC. Każdy kanał posiada programowalne wzmocnienie i rejestr regulujący offset, co pozwala na pełną kalibrację któregokolwiek kanału.

Zużycie energii wynosi typowo 0,3mA na kanał.

Page 88: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

198

Rys. 6.47. Schemat blokowy układu AD5390

Rys. 6.48. Wyprowadzenia układu AD5390 w obudowie LQFP

Page 89: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

199

Tabela 6.20. Opis wyprowadzeń układu AD5390 Nazwa pinu Funkcja

VOUTX SIGNAL_GND(1 &2) DAC-GND (1 &2) AGND (1 &2) AVDD (1 &2) DGND DVDD REF-GND REFOUT/REFIN MON_OUT MON_IN /SYNC/AD0 DCEN/AD1 SDO /BUSY /LDAC

Buforowane wyjścia analogowe dla kanału X. Każde analogowe wyjście jest zaopatrzone we wzmacniacz rail-to-rail o wzmocnieniu 2. Każde wyjście jest zdolne do wysterowania obciążenia 5k Ω podłączonego do masy. Typowa impedancja wyjściowa to 0.5Ω. Punkty odniesienia uziemienia analogowego dla każdej grupy 8 kanałów. Powinny być połączone do masy analogowej AGND jak najbliżej układu. Każda grupa 8 kanałów zawiera piny DAC_GND. Jest to punkt odniesienia dla wewnętrznego 14-bitowego przetwornika. Piny te powinny być połączone do masy analogowej AGND. Analogowy punkt odniesienia. Każda grupa 8 kanałów posiada pin AGND. Wszystkie piny AGND powinny być połączone zewnętrznie do masy analogowej. Analogowe zasilanie. Każda grupa 8 kanałów posiada oddzielny pin AVDD. Piny te powinny być odsprzężone ceramicznymi kondensatorami o pojemności 0,1µF i tantalowymi o pojemności 10µF. Zakres napięć zasilających 5V ±10 % Masa cyfrowa. Logiczne zasilanie. Gwarantowany zakres napięć 2,7V-5,5V. Zalecane jest by pin ten był odsprzęgnięty ceramicznym kondensatorem 0,1µF oraz kondensatorem tantalowym o 10µF podłączonymi do macy cyfrowej DGND. Punkt odniesienia masy dla wewnętrznych napięć odniesienia. Połączony do AGND. AD539X zawierają wspólny pin REFOUT/REFIN. Kiedy wewnętrzne źródło odniesienia jest wybrane pin ten jest wyjściem napięcia odniesienia. Do tego pinu można podłączyć zewnętrzne źródło odniesienia, pod warunkiem, że zablokujemy wewnętrzne źródło odniesienia za pomocą rejestru kontrolnego. Domyślnie pin ten jest wejściem napięcia referencyjnego. Wyjście analogowe. Kiedy funkcja monitorowania jest włączona pin ten pełni funkcję wyjścia multipleksera 16 do 1. Multiplekser pozwala na podłączenie dowolnego kanału wyjściowego do pinu MON_OUT. Impedancja wyjścia MON_OUT wynosi 500 Ω, stąd pin jest przeznaczony do sterowania układów o wysokiej mpedancji wejściowej np. przetworników A/C typu SAR. Wejście monitorujące. AD539X zawiera dwa wejścia monitorujące w celu monitorowania sygnałów zewnętrznych. Wejściowy sygnał synchronizacji ramek dla interfejsu szeregowego. Kiedy jest stan niski, wewnętrzny licznik jest odblokowany by móc zliczać wymaganą liczbę cykli zegarowych, przed tym jak rejestr adresowy zostanie uaktualniony. W trybie I2C pin ten zachowuje się jak pin sprzętowego adresu i jest używany wspólnie z AD1 do określenia adresu urządzenia na magistrali I2C. Pin kontrolny interfejsu. Interfejs szeregowy: Stan wysoki wybiera tryb transmisji pierścieniowej interfejsu SPI. Interfes I2C: adres sprzętowy używany wspólnie z AD0 do ustalenia adresu urządzenia na magistrali I2C. Wyjście magistrali szeregowej. Trójstanowe wyjście typu CMOS. SDO może być używane by połączyć w łańcuch kilka urządzeń. Dane są wyprowadzane z SDO na narastające zbocze sygnału SCLK, a są ważne na opadające zbocze zegara SCLK. Wyjście cyfrowe typu CMOS. /BUSY przechodzi w stan niski podczas wewnętrznych obliczeń. Wskazuje, że układ jest niegotowy na przyjęcie kolejnych danych z interfejsu szeregowego. Załaduj DAC, wejście logiczne (aktywne poziomem niskim). Jeśli /LDAC jest w stanie niskim, gdy /BUSY nie jest aktywne (stan wysoki) zawartość rejestrów wejściowych przetworników jest przepisywana do ich rejestrów z jednoczesnym uaktualnieniem poszczególnych wyjść przetworników. Jak /LDAC jest w stanie niskim i /BUSY jest w stanie niskim (aktywne) zdarzenia na linii /LDAC są zapamiętywane i rejestry przetworników są aktualizowane dopiero wtedy, kiedy /BUSY przejdzie w stan wysoki. Asynchroniczne wejście zerujące. Podczas trwania niskiego poziomu na /CLR wszystkie impulsy na linii /LDAC są ignorowane. Niski poziom na tej linii powoduje załadowanie wszystkich kanałów danymi z rejestru kodu /CLR. Sygnał

Page 90: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

200

/CLR /RESET PD SPI/ /I2C SCLK/SCL DIN/SDA

/BUSY jest w stanie niskim przez 12µs dopóki wszystkie kanały nie zostaną załadowane wartościami z tego rejestru. Wejście asynchronicznego resetu cyfrowego (aktywny na opadające zbocze). Funkcja tego pinu jest równoważna funkcji Powej-on-generator. W trakcie resetu rejestry x1, m, c i x2 przyjmują wartości domyślne. Sekwencja ta trwa typowo 300µs. Opadające zbocze na linii /RESET inicjalizuje proces resetu, wtedy sygnał /BUSY przechodzi w stan niski do końca trwania tego procesu. Power down. Używany do wprowadzenia urządzenia w tryb niskiego poboru mocy, w którym ukłąd pobiera mniej niż 5µA. W trybie tym wszystkie wewnętrzne obwody analogowe są wprowadzane w tryb niskiego poboru mocy, wyjście analogowe jest ustawiane w stanie wysokiej impedancji lub może wysterować obciążenie 100kΩ połączone do uziemienia, zależnie od sposobu skonfigurowania trybu power down. Interfejs szeregowy pozostaje aktywny w tym trybie. Wybór interfejsu. Stan niski na tym pinie wybiera interfejs I2C, a stan wysoki interfejs SPI. Wejście zegarowe interfejsu. W interfejsie SPI pin ten zachowuje się jak wejście zegarowe. Maksymalna częstotliwość sygnału zegarowego wynosi 50MHz. Dla interfejsu I2C pin jest zegarem SCL. Szybkość transferu danych w trybie I2C wynosi 100kHz i 400kHz. Wejście interfejsu. Jeśli SPI/ /I2C=1 to ten pin jest szeregowym wejściem danych. Dane są ważne na opadające zbocze sygnału SCLK. Jeśli SPI/ /I2C=0 to pin jest wejściem/wyjściem danych typu otwarty dren interfejsu I2C.

Pojedynczy kanał (przetwornik C/A) składa się z 14-nogowej drabinki rezystancyjnej (14-bit DAC) sterowanej rejestrem przetwornika (DAC register), za którą umieszczony jest bufor wyjściowy o wzmocnieniu 2 (rys. 6.49).

Rys. 6.49. Schemat blokowy pojedynczego kanału (przetwornika C/A)

Page 91: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

201

Każdy kanał C/A zawiera rejestr kontroli offsetu (c Reg.) i rejestr kontroli wzmocnienia (m Reg.), umożliwiając niezależną programową regulację offsetu i wzmocnienia danego kanału. Pozwala to na korekcję błędu przetwarzania przetwornika.

Zatem kod x2 podawany bezpośrednio na drabinkę wyraża się zależnością:

)2(2

)1(12 1−−++⋅= n

n cmx

x

Gdzie: x1 –14-bitowe słowo zapisywane do wejściowego rejestru (x1 Input Reg.), m – 14-bitowy współczynnik wzmocnienia (wartość domyślna 3FFEh dla AD5390). Najmniej

znaczący bit w współczynniku wzmocnienia zawsze musi być równy zero, n – rozdzielczość przetwornika C/A (n=14 bitów), c –14-bitowy współczynnik offsetu (wartość domyślna 2000h). Stąd napięcie wyjściowe określone jest wzorem:

nREFOUTx

VV2

22 ⋅⋅=

Gdzie: VREF – napięcie referencyjne (2,5V). Sterowanie układem AD5390

Sterowanie układem odbywa się za pomocą jednego z interfejsów szeregowych. Tutaj

zostanie przedstawiony tylko interfejs SPI. W celu zredukowania pobieranej mocy i zakłóceń generowanych przez układ, interfejs SPI

jest włączony (uaktywniony) w trakcie operacji zapisu do układu. Interfejs jest aktywowany opadającym zboczem na wejściu /SYNC.

W trybie podstawowym interfejs SPI składa się minimum z 3 linii (/SYNC, DIN, SCLK), natomiast w trybie pierścieniowym minimum z 4 linii (dochodzi linia SDO). Do wyboru jednego z tych trybów wykorzystywane jest wejście DCEN.

Do wejściowego rejestru szeregowego wprowadzane są szeregowo słowa 24-bitowe, o formacie pokazanym na rys. 6.50.

Rys. 6.50. Format słowa wprowadzanego do szeregowego rejestru wejściowego układu AD5390

Znaczenie bitów słowa sterującego jest następujące:

/A / B – jeśli tryb przełączania jest włączony, to bit ten wybiera do którego rejestru A czy B dane mają być wpisane. Gdy ten tryb jest wyłączony, bit ten musi być ustawiony na 0 aby wskazywać rejestr A.

R / /W – bit kontrolny odczytu lub zapisu. A3 – A0 – adres kanału (przetwornika C/A) do którego rejestrów dane będą wprowadzane. REG1 i REG0 – wybór wewnętrznych rejestrów danego kanału (Tabela 6.21). DB13-DB0 – 14-bitowa dana wejściowa.

Page 92: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

202

Rys. 6.51. Przebiegi czasowe interfejsu SPI dla trybu pierścieniowego

Rys. 6.52. Przebiegi czasowe interfejsu SPI dla trybu podstawowego

Page 93: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

203

W celu odczytania zawartości danego wewnętrznego rejestru układu należy wprowadzić układ w tryb odczytu wpisując do niego 24-bitowe słowo, w którym: bit R / /W = 1, bity A3 – A0 wybierają kanał, a bity REG1 i REG0 rejestr w tym kanale, natomiast bity DB13 – DB0 są nieistotne (np. 404XXXh dla odczytu rejestru M z kanału 0). Następnie w celu odczytu (zgodnie z zasadą działania interfejsu SPI) musimy wysłać warunek NOP (000000h). Podczas wprowadzania NOP na wejściu DIN, na linii SDO wystawiane jest przez układ 24-bitowe słowo składające się z wcześniej wprowadzonych informacji (bity A3 –A0 i REG1,REG0) i z zawartości wybranego rejestru (rys. 6.53).

Rys. 6.53. Operacja odczytu wewnętrznego układu

Układ AD5390 zawiera 14-bitową wewnętrzną szynę danych. Dane z zewnątrz są

ładowane szeregowo do wejściowego rejestru szeregowego układu, skąd na podstawie bitów REG1 i REG0 są przesyłane do odpowiednich rejestrów wewnętrznych (tabela 6.21). Tabela 6.21. Wybór rejestrów wewnętrznych układu za pomocą bitów REG1 i REG2

W tabelach 6.22 do 6.24 przedstawiono format danych wprowadzanych do poszczególnych rejestrów. Tabela 6.22. Format danych dla wejściowego rejestru danych (x1)

Page 94: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

204

Tabela 6.23. Format danych dla rejestru offsetu (c)

Tabela 6.24. Format danych dla rejestru wzmocnienia (m)

Jeśli bity REG1 i REG0 = 0, to następuje wybór rejestrów sterujących (SFR). W tym przypadku poszczególne rejestry SFR wybierane są za pomocą bitów A3 do A0 jak pokazano w tabeli 6.24.

Tabela 6.25. Funkcje rejestrów sterujących SFR

NOP – wykorzystywane w trybie odczytu danych z wewnętrznych rejestrów. Write CLR Code – bity DB13- DB0 – zawierają daną wprowadzaną do rejestru CLR, która

jest wprowadzana do rejestrów x1 poszczególnych kanałów , gdy na linii /CLR pojawi się stan niski lub gdy zostanie wykonana komenda Soft CLR.

Soft CLR – polecenie odpowiada funkcjonalnie podaniu na linię /CLR stanu niskiego. Wykonanie komendy (załadowanie wszystkich kanałów wartością z rejestru CLR) trwa 16*400ns.

Soft Power Down – wprowadzenie układu w tryb obniżonego poboru mocy. W tyn trybie nie można pisać do wewnętrznych rejestrów.

Soft Power UP – wyjście z trybu obniżonego poboru mocy.

Page 95: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

205

Soft Reset – programowa implementacja resetu układu. Reset układu wprowadza rejestry w stan początkowy: rej. M – pełna skala, rej. C – zero, rej. x1 – zero, zatem na wszystkich wyjściach analogowych napięcie wynosi 0V. Typowo reset trwa 150µs.

Monitor Channel – DB13 – DB0 – zawierają adres kanału monitorowanego. Monitorowany kanał za pomocą multipleksera jest podłączany do wyjścia MON_OUT, do którego może być podłączony np. przetwornic A/C. Aby wybrać kanał do monitoringu należy najpierw włączyć tę opcję w rejestrze kontrolnym (Control Register). W tabeli 6.26 podano adresowanie kanału podłączanego do wyjścia MON_OUT.

Tabela 6.26. Wybór kanałów do monitorowania na wyjściu MON_OUT

Na rys. 6.54 pokazano zawartość rejestru kontrolnego (Control Register). Jest to 14-bitowy

rejestr, do którego wprowadzane są dane DB13 – DB0.

Rys. 6.54. Zawartość rejestru Control Register

Znaczenie poszczególnych bitów rejestru jest następujące: CR13 – Power Down Status. Bit używany do konfiguracji bufora wyjściowego w trybie

obniżonego poboru mocy: 1 – wyjście wzmacniacza jest w stanie wysokiej impedancji, 0 – do wyjścia wzmacniacza dołączone jest obciążenie 100kΩ do masy (defaultowo).

CR12 – REF Select. Wybór wartości napięcia wewnętrznego źródła napięcia odniesienia: 1 – 2,5V, 0 –1,25V.

CR11 – Current Boost Control. Służy do zwiększenia prądu w celu poprawy współczynnika slew rate bufora wyjściowego:

1 – włączenie powoduje poprawę wsp. slew rate, ale zwiększa się pobór mocy przez bufor (wzmacniacz) wyjściowy. 0 – redukcja poboru mocy przez wzmacniacz wyjściowy.

CR10 – Internal/External Reference. Wybór pomiędzy wewnętrznym a zewnętrznym źródłem referencyjnym:

Page 96: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

206

1 – wewnętrzne źródło referencyjne o wartości zależnej od bita CR12, 0 – zewnętrzne źródło referencyjne(defaultowo).

CR9 – Channel Monitor Enable. 1 – włączenie monitorowania. Do wyjścia MONT_OUT dołączone jest wyjście jednego z kanałów przetwornika (Tabela 5.27), 0 – wyłączenie monitorowania (defaultowo). Pin MONT-OUT jest w stanie wysokiej impedancji.

CR8 – Thermal Monitor Function . Umożliwia kontrolę temperatury układu scalonego. Jeśli przekroczy ona 130C to następuje wyłączenie buforów (wzmacniaczy) wyjściowych. Spadek temperatury poniżej 130C ponownie włącza bufory.

1 – włączenie monitorowania temperatury układu scalonego, 0 – wyłączenie tej funkcji.

CR7 do CR4 – brak funkcji. CR3 do CR2 – Toggle Function Enable. Ta funkcja pozwala na przełączanie wyjścia

pomiędzy dwoma kodami załadowanymi do rejestrów A i B każdego kanału. Bity te są używane do ustawienia każdej grupy 8 kanałów w tryb przełączania. Logiczna „1” ustawia w tryb przełączania każdą z grup: grupa 0 (kanały 0-7) – bit CR2, grupa 1 (kanały 8-15) – bit CR3. Logiczne „0” wyłącza ten tryb. W tym trybie sygnał /LDAC jest używany do przełączania pomiędzy rejestrami A i B.

CR1 do CR0– brak funkcji. Aplikacje układu AD5390

Na rys. 6.55. pokazano sposób podłączenia układu AD5390 do mk rodziny PIC16. Interfejs SPI mk pracuje w trybie master z polaryzacją zegara równą 0. W tym przykładzie pinowi RA1 została przydzielona funkcja sterowania linią SYNC. Interfejs SPI wysyła wyłącznie dane 8-bitowe, stąd w celu wysłania pełnego słowa sterującego (24 bity) należy wykonać trzy operacje zapisu (lub odczytu, jak czytamy daną z układu) przez mk do układu AD5390.

Rys. 6.55. Sposób podłączenia układu AD5390 do mk rodziny PIC16

Page 97: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

207

Na rys. 6.56 pokazano przykład wykorzystania układu AD5390 do aplikacji sterującej określonymi procesami. Często tego typu aplikacje wymagają napięciowych źródłem sterowanych o zakresach: 0 – 5V, +/– 5V, 0 – 10V, +/– 10V oraz sterowanego źródła prądowego.

Rys. 6.56. Przykładowa aplikacja układu AD5390

6.6. Cyfrowe potencjometry sterowane interfejsem SPI Obecnie na rynku oferowana jest coraz większa gama potencjometrów jak i rezystorów,

których wartość rezystancji można zmieniać programowo (np. układy firm Analog Devices lub Linear Technology). Grupę takich układów nazwano cyfrowymi potencjometrami. Najczęściej nastawę (wartość rezystancji jaką ma przyjąć potencjometr) wprowadza się do takiego układu za pośrednictwem interfejsu SPI.

Jednym z przedstawicieli potencjometrów cyfrowych jest układ AD5260 firmy Analog Devices. Posiada on następujące cechy: • 256 nastaw, • jeden kanał, • zamiennik potencjometrów mechanicznych 20kΩ, 50kΩ, 200kΩ, • niski współczynnik temperaturowy zmian rezystancji 35ppm/C, • cztero-liniowe wejście kompatybilne ze standardem SPI, • pojedyncze zasilanie od 5 V do 15 V lub podwójne zasilanie +/-5.5 V.

Page 98: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

208

Rys. 6.57. Schemat blokowy układu AD5260 firmy Analog Devices przedstawiciela

potencjometrów cyfrowych sterowanych interfejsem SPI

Układ AD5260 (rys. 6.57) posiada • Jeden kanał z 256-pozycyjnym, cyfrowo sterowanym rezystorem regulowanym (VR –

variable resistor). Kanał ten można traktować jako oddzielny opornik z ruchomym kontaktem. Opór między suwakiem (linia W) i punktami przytwierdzonego opornika (linie A i B) zmienia się liniowo w zależności do kodu cyfrowego (rys. 6.49).

• Wartość rezystancji jest ustalana przez kod cyfrowy załadowany do rejestru RDAC. Kod ten wprowadzany jest najpierw do 8-bitowego wejściowego rejestru szeregowego wejściem SDI na narastające zbocze sygnału CLK , po czym po skompletowaniu ośmiu bitów przesyłany do rej. RDAC.

Nominalna rezystancja pomiędzy pinami A i B (RAB) wynosi 20kΩ, 50kΩ, lub 200kΩ, a nominalny współczynnik temperaturowy 35ppm/C. W odróżnieniu od większości cyfrowych potencjometrów dostępnych na rynku, mogą one pracować z napięciami do 15V lub przy napięciach ±5V, uwzględniając właściwy zapas napięć zasilających.

Rys. 6.58. Wartości rezystancji RWA i RWB w zależności od kodu sterującego

Page 99: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

209

Niski poziom na linii PR powoduje wpisanie do rejestru RDAC (inaczej: VR latch) wartości 80H (128), co powoduje ustawienie suwaka na „środku” potencjometru.

Tabela 6.27. Opis funkcji pinów układu AD5260

Numer pinu

Symbol pinu Opis pinu

1 A Końcówka A 2 W Suwak 3 B Końcówka B 4 VDD Dodatni potencjał zasilania , zakres 5V lub 15V. (Suma |VDD| + |VSS| <= 15V) 5 SHDN Aktywny stanem niskim. Rozwarcie końcówki A. 6 CLK Wejście zegarowe aktywne zboczem narastającym. 7 SDI Wejście szeregowe interfejsu SPI 8 CS Wybór układu, aktywny stanem niskim. Kiedy stan na linii CS jest wysoki, dane

mogą być ładowane do rejestru RDAC. 9 PR Aktywny stanem niskim. Ustawia rezystor na połowę jego wartości, poprzez

wpisanie do rej. RDAC wartości 80H. 10 GND Masa 11 VSS Ujemny potencjał zasilania, zakres napięć od 0V do 5V. 12 VL Zasilanie „logiki” układu. 13 NC Nie podłączone 14 SDO Wyjście szeregowe typu otwarty dren, Wymaga zewnętrznego rezystora pull-up.

Rys. 6.59. Wyprowadzenia układu AD5260

Po włączeniu zasilania potencjometr przyjmuje wartość środkową, co minimalizuje

możliwość wystąpienia usterki. Wartość środkowa skali może być ustawiona w dowolnym momencie przez podanie niskiego poziomu na linii PR. Aktywny sygnał na linii wyłączającej SHDN powoduje, zminimalizowanie poboru mocy oraz rozwarcie końcówki A (końcówki W i B są nadal zwarte).

Kod nastawy potencjometru jest wprowadzany poprzez interfejs SPI składający się z linii: SDI, SDO, CS i CLK. 8-bitowe słowo ładowane jest do rejestru szeregowego od najstarszego bitu MSB (format tego słowa pokazano w tabeli 6.28). Kiedy linia CS jest w stanie niskim, dane pojawiające się na wejściu SDI są ładowane do rejestru szeregowego przy każdym narastającym zboczu sygnału zegara na linii CLK . Dane z tego rejestru są przesyłane do wewnętrznego rejestru RDAC, kiedy poziom na linii CS powraca do stanu wysokiego (rys. 6.60). Podczas wyłączania (niski sygnał na linii SHDN) wyjście SDO jest w stanie wysokiej impedancji.

Page 100: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

210

Tabela 6.28. Format słowa sterującego dla układu AD5260

Rys.6.60. Przebiegi czasowe na interfejsie SPI dla układu AD5260

Szeregowe wyjście danych SDO jest typu otwarty dren (rys. 6.61). Wyjście to wymaga

rezystora pull-up, aby móc przesyłać daną do następnego układu (musi być podłączone do jego wejścia SDI). Czyli służy ono do wyprowadzania danych, uprzednio wprowadzonych do układu przez wejście SDI (z opóźnieniem ośmiu impulsów zegarowych). Stąd z punktu widzenia funkcji interfejsowych, interfejs tego układu realizuje dwie funkcje: funkcje odbiornika (listener) i funkcje pośrednika (repeater).

Rys. 6.61. Schemat wyjścia SDO układu AD5260

Taki mechanizm pozwala na łączenie wielu potencjometrów cyfrowych w szereg, przy czym linie CLK i CS tych układów są równolegle podłączone do mk. Napięcie, do którego podłączony jest rezystor pull-up może być wyższe, niż napięcie zasilania układu. Wskazane jest, aby zwiększać okres zegara, w przypadku podłączenia ”łańcucha” takich potencjometrów, gdyż przesłanie danej pomiędzy kolejnymi układami wprowadza opóźnienie. Sygnał CS powinien być utrzymywany w stanie niskim do czasu, gdy do każdego układu zostanie przesłane 8 bitów. Np. w przypadku podłączenia dwóch potencjometrów, po 16 bitach można ustawić stan wysoki na linii CS (rys. 6.62).

Page 101: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

211

Rys. 6.62. Podłączenie dwóch układów AD5260 do mk

Blok RDAC zawiera łańcuch rezystorów o tej samej wartości, odpowiednio podłączany do

zacisku W przez macierz przełączników analogowych, które zachowują się jak suwak w tradycyjnym potencjometrze. W danej chwili, w zależności od kodu sterującego, włączony jest tylko jeden klucz. Sterowanie kluczami jest realizowane przez rejestr RDAC i układ dekodujący wartość cyfrową na numer klucza do włączenia. Układ AD5260 daje możliwość ustawienia 256 poziomów wartości rezystancji, a co za tym idzie dokładność nastawienia rezystancji wynosi 0.4 %. Rys. 6.63 przedstawia równoważną strukturę połączeń pomiędzy trzema końcówkami potencjometru. Ponieważ przełączniki analogowe nie są idealne w stanie, gdy suwak znajduje się w skrajnych położeniach, wartość rezystancji pomiędzy suwakiem a końcówkami wynosi minimalnie 60 Ω.

Rys. 6.63. Uproszczona architektura bloku RDAC

Page 102: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

212

Zakres zmian rezystancji miedzy końcówkami A i B, a suwakiem (końcówka W) opisane są poniższymi wzorami i tabelami.

Dla końcówki B wzór na rezystancje jest następujący:

wABWB RRD

DR +×=256

)( , gdzie: D – kod cyfrowy, RW – rezystancja klucza (około 60 Ω).

Na podstawie tej zależności utworzono tabelę 6.29.

Tabela 6.29. Wartości rezystancji RWB w zależności od kodu D dla RAB=20 kΩ Kod

cyfrowy D Rezystancja RWB

(Ω) Stan wyjścia

256 19982 Pełna skala (RAB – 1 LSB + RW) 128 10060 Środek skali 1 138 1 LSB 0 60 minimum skali (rezystancja połączenia suwaka)

Natomiast dla końcówki A zależność na rezystancje przyjmuje postać:

wABWA RRD

DR +×−=256

256)( .

Również na podstawie tej zależności utworzono tabelę (tabela 6.30).

Tabela 6.30. Wartości rezystancji RWA w zależności od kodu D dla RAB=20 kΩ Kod

cyfrowy D Rezystancja RWB

(Ω) Stan wyjścia

256 60 Pełna skala 128 10060 Środek skali 1 19982 1 LSB 0 20060 Minimum skali

Poniżej przedstawiono kilka przykładowych aplikacji potencjometru cyfrowego: • Korzystając z układu AD5260 można zbudować w prosty sposób programowalny

dzielnik napięcia, przykładowo podłączając końcówkę A do +5 V, a końcówkę B do 0 V. Zatem na suwaku można uzyskać napięcie w zakresie od 0 V do 5 V. Napięcie na końcówce suwaka W VW(D) jest określone wzorem:

BABW VVD

DV +×=256

)( .

• Układ AD5260 można użyć do kontroli wzmocnienia wzmacniaczy, w sposób pokazany na rys. 6.64.

Rys. 6.64. Typowy nieodwracający wzmacniacz operacyjny

Page 103: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

213

Wzmocnienie A(D) takiego układu można wyrazić zależnością:

11256)(

R

R

R

RDDA WAB += .

Warto zauważyć, że w przypadku podłączenia potencjometru tak jak na rysunku 6.64 mamy do czynienia z dwiema pasożytniczymi pojemnościami. Wynikają one ze struktury potencjometru. Powoduje to wprowadzenie bieguna, który wpływa na zmianę charakterystyki częstotliwościowej. Wprowadza to przy pewnym zakresie częstotliwości dodatkowe tłumienie –20dB/dek. Dodatkowo może wystąpić wygarbienie rezonansowe charakterystyki, które w pewnym przypadku może spowodować generację drgań periodycznych, czyli układ stanie się niestabilny z powodu braku zapasu fazy. Zatem najlepiej by było gdyby R1*C1=R2*C2. Jest to bardzo trudne do osiągnięcia, gdyż wartości pojemności C1 i C2 zmieniają się w funkcji zmiany rezystancji R2. W przypadkach krytycznych, wartość pojemności C2 powinna być wyznaczana empirycznie (zmienia się ona w zakresie od pojedynczych pF do dziesiątek pF).

• Układ programowalnego napięcia odniesienia przedstawiono na rysunku 6.65. Dzięki zastosowaniu bufora wyjściowego możliwe jest podłączenie do niego większego obciążenia.

Rys. 6.65. Programowalne źródło napięcia odniesienia

• Na rys. 6.66 przedstawiono przykładowy 8-bitowy bipolarny przetwornik cyfrowo-

analogowy oparty na układzie AD5260. Przetwornik ten oferuje taką sama rozdzielczość jak 8-bitowe scalone przetworniki C/A, lecz w zakresie małych kodów nie zapewnia należytej dokładności. Wynika to z faktu, iż dla małych wartości nastawionej rezystancji dominującym czynnikiem staje się rezystancja suwaka nie mniejsza niż 60Ω. Napięcie na wyjściu przetwornika Vo określa się wzorem:

refo VD

V ×

−= 1256

2.

Rys. 6.66. 8-bitowy bipolarny przetwornik C/A

Page 104: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

214

6.7. Programowalne wzmacniacze sterowane interfejsem SPI Programowalne wzmacniacze (Programmable Gain Amplifiers – PGA) sterowane

interfejsem SPI zostaną zilustrowane na przykładzie rodziny wzmacniaczy MCP6S21/2/6/8 firmy Microchip (gdzie ostatnia cyfra symbolu układu oznacza liczbę multipleksowanych kanałów wejściowych).

W układach PGA za pomocą interfejsu SPI: • reguluje się skokowo wzmocnienie - dla układu MCP6S21 w zakresie od +1 V/V do

+32 V/V (+1, +2, +4, +5, +8, +10, +16, +32), • steruje się wejściowym multiplekserem analogowym służącym do wyboru jednego z K

kanałów (np. K = 2, 4, 6, 8) dołączanych do nieodwracającego wejścia wewnętrznego wzmacniacza,

• wprowadza się układ w tryb obni żonego poboru mocy. Typowe aplikacje układów PGA: wzmacniacze w torach przetworników A/C, analogowe

aplikacje wymagające multipleksowania sygnałów analogowych, akwizycja danych, w urządzeniach przemysłowych, testujących i medycznych.

Rys. 6.67. Schemat blokowy układu MCP6S218 firmy Microchip przedstawiciela

wzmacniaczy o programowalnym wzmocnieniu Znaczenie pinów układu MCP6S218:

Linie analogowe: VOUT – analogowe wyjście. Wartość napięcia na nim zależy od ustawionego wzmocnienia,

wybranego kanału, napięcia na linii VREF. CH0 – CH7 – analogowe wejścia połączone do źródła sygnału. Wewnętrzny multiplekser

wybiera, które z nich jest wzmacniane i podawane na wyjście PGA. VREF – zewnętrzne napięcie referencyjne przesuwające poziom napięcia wyjściowego. Jego

wartość musi się mieścić w zakresie napięć zasilających. VSS i VDD – ujemne i dodatnie napięcia zasilania. Napięcie na VDD musi być w zakresie od

2,5 V do 5,5 V, VSS typowo dołącza się do masy.

Page 105: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

215

Linie cyfrowe: CS – wejście wybór układu do transmisji, aktywne poziomem niskim. SI – szeregowe wejście 16-bitowych danych (dane te składają się z bajta instrukcji i bajta

danych do wybranego rejestru konfiguracyjnego). SCK – zegar transmisji szeregowej (tryby pracy 0,0 i 1,1). SO – szeregowe wyjście danych typu push-pull przeznaczone do tworzenia połączeń

pierścieniowych układów. Układ MCP6S218 składa się z: części cyfrowej reprezentowanej przez układ logiki SPI i układ resetu po włączeniu zasilania POR, który wprowadza układ w stan obniżonego poboru mocy (wzmacniacz jest odłączony od wyjścia VOUT, dołączona jest tylko drabinka rezystancyjna dająca obciążenie około 5 kΩ). części analogowej złożonej z: • 8-kanałowego multipleksera analogowego dołączającego wybrany kanał wejściowy do

wejścia wzmacniacza, • wzmacniacza, którego wzmocnienie jest ustawiane za pomocą kluczy Gain Swithces

sterujących drabink ą rezystancyjną RLAD. Funkcje analogowe układu PGA są programowane za pomocą wpisu 16-bitowej danej do

układu za pośrednictwem interfejsu SPI. Interfejs SPI może pracować w dwóch trybach: 0,0 i 1,1. Pierwszy bajt jest instrukcj ą, drugi 8-bitowym argumentem tej instrukcji.

Narastające zbocze na linii CS następujące po 16 impulsie zegarowym, czyli po wprowadzeniu dwóch bajtów do układu, powoduje wykonanie przez układ wprowadzonej instrukcji.

Rys. 6.68. Przebiegi czasowe interfejsu SPI układu MCP6S218

Argumenty instrukcji są wysyłane do dwóch z trzech rejestrów:

Rejestr komend – do niego wprowadzany jest pierwszy bajt. Zawiera on 3 bity komendy oraz jednobitowy adres jednego z dwóch pozostałych rejestrów, do którego będzie wprowadzany drugi bajt.

Rejestr wzmocnienia – za pomocą 3 bitów ustawia się w nim wzmocnienie układu PGA od +1 V/V do +32 V/V.

Rejestr kanału – służy do wyboru kanału wejściowego dołączanego do wewnętrznego wzmacniacza. Adres kanału wybierany jest za pomocą 3 bitów.

Page 106: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

216

Rys. 6.69. Opis rejestru komend

Rys. 6.70. Opis rejestru wzmocnienia

Rys. 6.71. Opis rejestru wyboru kanału

Page 107: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

217

6.8. Klucze analogowe sterowane interfejsem SPI Obecnie coraz więcej producentów oferuje zestawy kluczy analogowych typu CMOS

sterowanych interfejsami szeregowymi typu SPI lub I2C. Układy kluczy analogowych można podzielić na dwie grupy: • zestawy pojedynczych dwukierunkowych kluczy analogowych, • zestawy matryc przełączających.

Pierwsza grupa zostanie omówiona na przykładzie układu ADG714 posiadającego 8

kluczy CMOS typu SPST, natomiast druga na przykładzie układu ADG738 zawierającego jedną matrycę przełączającą.

6.8.1. Układy z kluczami PSPT

Przedstawicielem tej klasy układów jest ADG714 firmy Analog Devices. Składa się on z 8

kluczy CMOS typu PSPT (single-pole, single-throw) sterowanych interfejsem SPI. Odpowiednikiem tego układu z interfejsem I2C jest układ ADG715.

Rys. 6.72. Schemat blokowy układu ADG714 przedstawiciela układów z pojedynczymi

dwukierunkowymi kluczami analogowymi Układ ADG714 zawiera 8 kluczy wykonanych w technologii CMOS PSPT (single-pole,

single-throw) sterowanych interfejsem SPI. Rezystancja włączenia wynosi 2,5Ω i zmienia się o około 0,6Ω w zależności od przenoszonych sygnałów. Każdy klucz przewodzi w obu kierunkach sygnały, których wartości nie przekraczają napięcia zasilana układu. Dane sterujące kluczami są 8-bitowe, każdy z bitów odpowiada jednemu kanałowi.

Układ może być zasilany napięciem pojedynczym o zakresie 2,7V – 5,5V lub podwójnie

napięciami ±2,5V. Jest umieszczony w 24-nóżkowej obudowie TSSOP.

Page 108: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

218

Układ ADG714 posiada trójprzewodowy szeregowy interfejs zgodny ze standardami SPI, QSPI i MICROWIRE, jak i również z większością standardów DSP. Wyjście DOUT może być użyte do łączenia układów w pierścień.

Po włączeniu napięcia zasilania, wszystkie klucze są rozwarte, a bity szeregowego rejestru przesuwnego wyzerowane.

Rys. 6.73. Wyprowadzenia układu ADG714

Tabela 6.30. Opis funkcji wyprowadzeń układu ADG714 Nr pinu Mnemonik Opis

1 2 3 4 5,7,9,11,14, 16,18,20 6,8,10,12,13, 15,17,19 21 22 23 24

SCLK VDD DIN GND Sx Dx VSS DOUT /RESET /SYNC

Szeregowe wejście zegarowe. Dane są wprowadzane do wejściowego rejestru przesuwnego na opadające zbocze sygnału zegarowego. Maksymalna częstotliwość sygnału zegarowego wynosi 30MHz. Dodatnie zasilające napięcie analogowe. Szeregowe wejście danych. Dane są wprowadzane do 8-bitowego rejestru przesuwnego na opadające zbocze sygnału zegara. Masa. Źródło. Może być wejściem lub wyjściem. Dren. Może być wejściem lub wyjściem. Ujemne zasilające napięcie analogowe. Przy pojedynczym napięciu zasilania powinno być podłączone do masy GND. Szeregowe wyjście danych. Dane są wyprowadzane z wejścia rejestru przesuwnego na narastające zbocze sygnału SCLK. Linia DOUT jest wyjściem typu otwarty dren, które powinno być podciągnięte do napięcia zasilania poprzez rezystory podciągające. Wejście aktywne stanem niskim. Zeruje wejściowy rejestr i rozwiera wszystkie przełączniki – stan OFF (rozwarcie). Wejście aktywne stanem niskim. Sygnał synchronizujący dla danych wejściowych. Kiedy /SYNC przechodzi w stan niski, uaktywnia wejściowy rejestr przesuwny. Dane są przesyłane na opadające zbocze następnych taktów zegarowych. Przejście sygnału /SYNC ze stanu niskiego do wysokiego uaktualnia stan kluczy.

Każdy bit 8-bitowego słowa odpowiada jednemu kluczowi w układzie. Logiczna jedynka

na poszczególnej pozycji włącza (ON) klucz, alogiczne zero go wyłącza (OFF). Ponieważ każdy klucz jest sterowany niezależnie poprzez indywidualny bit, daje to możliwość dowolnego włączania lub wyłączania kluczy.

Page 109: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

219

Rys. 6.74. Zawartość rejestru przesuwnego

Po włączeni zasilania urządzenia, wszystkie przełączniki są w stanie wyłączenia (OFF), a

wewnętrzny rejestr przesuwny jest wypełniony zerami. Dane są wpisywane do 8-bitowego rejestru przesuwnego przez wejście DIN. Do rejestru

przesuwnego może być zapisana dowolna liczba bitów, przy czy rejestr przechowuje wyłącznie 8 ostatnich bitów.

Kiedy /SYNC przechodzi w stan niski, wejściowy rejestr przesuwny jest aktywny (rys. 6.75). Dane z linii DIN są wpisywane do rejestru na opadające zbocze sygnału zegara SCLK. Dane pojawiające się na wyjściu DOUT na narastające zbocze sygnału SCLK są opóźnione o 8 bitów. Kiedy każdy z ośmiu bitów zostanie zapisany do rejestru, linie /SYNC ustawia się ponownie w stan wysoki. Następuje wówczas uaktualniane pozycji kluczy i blokada rejestru wejściowego.

Rys. 6.75. Przebieg interfejsu SPI dla układu ADG714

Wiele urządzeń ADG714 może być połączone w sposób pierścieniowy wykorzystując w

tym celu wyjścia DOUT (rys. 6.76). Linia /SYNC jest wspólna dla wszystkich urządzeń. Kiedy na linii /SYNC pojawia się stan niski, wszystkie wejścia rejestrów przesuwnych są aktywne, dane taktowane tym samym sygnałem zegarowym są zapisywane przez pin DIN i z opóźnieniem 8 bitów wystawiane na liniach DOUT. Zapis do układów kończy się, gdy na linii /SYNC zostaje wystawiony stan wysoki. Wówczas klucze wszystkich układów są równocześnie uaktualnione.

Rys. 6.76. Pierścieniowe połączenie układów ADG714

Page 110: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

220

6.8.2. Układy z matrycami przełączającymi Układ ADG738 jest 8-kanałową matrycą kluczy analogowych wykonanych w technologii

CMOS (Układ ADG739 posiada dwie matryce czterokanałowe). Rezystancja włączenia klucza wynosi 2,5Ω i zmienia się o 0,75Ω w zależności od przepływającego przez niego prądu.

Układ posiada 3-liniowy interfejs zgodny ze standardami SPI, QSPI, MICROWIRE i

innymi standardami używanymi w procesorach DSP. Wyjście DOUT umożliwia łączenie kilku układów w szereg lub pierścieniowo.

Po włączeniu zasilania rejestr konfiguracji zawiera same zera, co powoduje, iż wszystkie klucze są rozwarte. Każdy klucz, gdy jest włączony przewodzi w dwóch kierunkach, umożliwia to stosowanie układu jako multipleksera, jaki i demultipleksera. Pojedynczy bit w rejestrze konfiguracji steruje tylko jednym kluczem, dzięki czemu możliwe jest włączenie dowolnej kombinacji kluczy. Zakres sygnału wejściowego wyznaczony jest przez napięcie zasilania, które mieści się w zakresie od 2,7V do 5,5V.

Układ AGD738 ( i ADG739) dostępny jest w 16-nóżkowej obudowie TSSOP (rys. 6.77b).

a) b)

Rys. 6.77. a) schemat blokowy układu ADG738 przedstawiciela układów z matrycami

przełączającymi, b) wyprowadzenia układu ADG738

Page 111: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

221

Tabela 6.31. Opis funkcji wyprowadzeń układu ADG738 Nr pinu Nazwa Funkcja

1 SCLK Wejście zegara. Dane są wpisywane do rejestru szeregowego przy opadającym zboczu zegara. Maksymalna częstotliwość zegara wynosi 30MHz.

2 /RESET Wejście resetu aktywne niskim poziomem. Zeruje rejestr konfiguracji kluczy i rozwiera klucze.

3 DIN Szeregowe wejście danych. Dane są wprowadzane do 8-bitowego rejestru szeregowego przy opadającym zboczu sygnału zegara.

4, 5, 6, 7 Sxx Źródło. Może być wejściem lub wyjściem. 8 Dx Dren. Może być wejściem lub wyjściem. 9, 10, 11, 12

Sxx Źródło. Może być wejściem lub wyjściem.

13 VDD Wejście napięcia zasilania. Układ może pracować przy zasilaniu od 2,7V do 5,5V. 14 GND Masa zasilania. 15 DOUT Wyjście danych. Pozwala na łączenie w szereg kilku układów. Dane są wystawiane

przy narastającym zboczu zegara SCLK. Wyjście jest typu otwarty dren, stąd należy stosować rezystor podciągający do zasilania.

16 /SYNC Aktywne niskim stanem wejście synchronizacji danych wejściowych. Gdy zmienia stan na niski uaktywnia wejście rejestru szeregowego konfiguracji kluczy. Dane są zatrzaskiwane opadającym zboczem zegara SCLK. Pojawienie się stanu wysokiego na linii /SYNC powoduje blokadę zapisu i uaktualnienie konfiguracji kluczy.

Każdy bit w 8-bitowym rejestrze sterującym układu odpowiada za załączenie-wyłączenie

jednego klucza. Logiczna „1” włącza klucz, „0” wyłącza. Takie sterowanie pozwala na dowolną konfigurację kluczy. Właściwość ta umożliwia zastosowanie układu nie tylko jako multiplekser, ale również jako demultiplekser. Gdy używamy układ jako multiplekser to należy zwrócić uwagę na możliwość bezpośredniego połączenia ze sobą sygnałów z kilku kanałów. Nowa wartość słowa konfiguracji zapisana do rejestru sterującego jest porównywana z wcześniejszą w celu wyeliminowania niepotrzebnego przełączania kluczy, których konfiguracja nie ulega zmianie.

Po włączeniu zasilania wszystkie klucze znajdują się w stanie wyłączenia, a słowo sterujące w rejestrze konfiguracji ma wartość zero.

Rys. 6.78. Słowo sterujące kluczami układu ADG738

Układ ADG738 posiada 3-liniowy interfejs szeregowy zgodny ze standardami SPI, QSPI,

MICROWIRE. Dane wpisywane są do rejestru konfiguracji, przy niskim stanie linii /SYNC, linią DIN na każde opadające zbocze zegara SCLK. Możliwe jest wpisanie dowolnej liczby bitów, jednak w rejestrze zapamiętane jest osiem ostatnich. Dane z poprzedniego zapisu do rejestru pojawiają się na linii DOUT przy każdym narastającym zboczu zegara SCLK. Na zakończenie na linii /SYNC zmienia stan na wysoki kończąc transmisję, wówczas aktualizowane są klucze zgodnie z zawartością rejestru konfiguracji, a zapis do rejestru jest niemożliwy (rys. 6.79).

Page 112: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

222

Rys. 6.79. Przebiegi interfejsu SPI dla układu ADG738 6.9. Programowalne generatory sterowane interfejsem SPI

Przykładami układów DDS (Direct Digital Sintesis) są generatory przebiegów

analogowych. Jednym z programowalnych generatorów tego typu jest układ AD9833 firmy Analog

Devices. Jest on programowalnym generatorem fali sinusoidalnej, trójkątnej oraz prostokątnej. Do generacji przebiegów układ nie wymaga zewnętrznych elementów.

Częstotliwość i faza przebiegu wyjściowego generowanego przez układ AD9833 są ustawiane programowo. Służą do tego 28-bitowe rejestry. Stąd dla sygnału zegarowego taktującego układ AD9833 (wejście MCLK) o częstotliwości 25 MHz osiąga się rozdzielczość 0,1 Hz, dla zakresu od 0 do 12,5 MHz. Np. dla częstotliwości zegara wynoszącej 1 MHz rozdzielczość wynosi 0,004 Hz.

Rys. 6.80. Schemat blokowy układu AD9833

Page 113: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

223

Sterowanie i programowanie układu odbywa się za pomocą interfejsu szeregowego SPI. Maksymalna częstotliwość sygnału zegarowego taktującego transmisję danych wynosi 40 MHz.

Układ może być zasilany napięciami w zakresie od 2,3 V to 5,5 V. Pobór mocy wynosi 20 mW przy 3 V. Posiada funkcję zmniejszonego poboru mocy (SLEEP). Funkcja ta daje możliwość wyłączenia nieużywanych sekcji, co pozwala na zredukowanie poboru prądu przez układ, np. można wyłączyć przetwornik C/A, gdy na wyjściu VOUT generowany jest przebieg prostokątny.

AD9833 jest dostępny w 10-nóżkowej obudowie typu MSOP (rys. 6.81).

Rys. 6.81. Wyprowadzenia układu AD9833 Tabela 6.32. Funkcje linii układu AD9833

Nazwa pinu Opis VDD CAP/2.5V DGND AGND

Dodatnie napięcie zasilania dla sekcji analogowej i cyfrowej układu. Wewnętrzny stabilizator 2,5V jest również zasilany z napięcia VDD. Napięcie zasilania może przyjmować wartości od 2,3V do 5,5V. Pomiędzy VDD a GND należy włączyć kondensatory odprzęgające o pojemności 100nF i 10µF. Część cyfrowa jest zasilana napięciem 2,5V generowanym przez wewnętrzny stabilizator (gdy VDD > 2,7V). Stabilizator wymaga kondensatora odprzęgającego o pojemności 100nF połączonego pomiędzy CAP/2.5V a DGND. Gdy VDD ≤ 2,7V to linia CAP/2.5V powinna być podpięta bezpośrednio do VDD. Masa cyfrowa Masa analogowa

COMP VOUT

Wejście napięcia odniesienia dla przetwornika C/A. Pozwala na dołączenie zewnętrznego źródła referencyjnego. Napięcie wyjściowe. Wyjście analogowe i cyfrowe układu. Zewnętrzny rezystor obciążający nie jest wymagany, gdyż w układ został wbudowany rezystor 200Ω.

MCLK SDATA SCLK FSYNC

Cyfrowe wejście zegarowe. Częstotliwości sygnałów wyjściowych są zdeterminowane wartością częstotliwości tego sygnału i zawartością rejestrów sterujących. Szeregowe wejście danych. Linia służy do szeregowego wprowadzania 16-bitowych słów. Szeregowe wejście zegarowe. W układzie AD9833 dane są zliczane przy opadającym zboczu sygnału zegarowego. Active Low Control Input. Służy do synchronizacji ramki danych wejściowych. Gdy na linii FSYNC jest poziom niski, to do układu można wprowadzać nowe dane.

Page 114: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

224

Teoria generowania przebiegu sinusoidalnego

Przebieg sinusoidalny można opisać zależnością: a(t) = sin(ωt). Najlepszym sposobem generowania takiego przebiegu jest metoda aproksymacji przebiegiem schodkowym (piecewise construction).

Zmiana kąta fazowego przebiegu sinusoidalnego jest liniowa względem czasu, a współczynnik kątowy zależy od częstotliwości sygnału ω=2πf (rys. 6.72). Stąd faza przebiegu sinusoidalnego ∆Phase jest liniowa względem okresu zegara podstawowego ∆t taktującego układ (podawanego na wejściu MCLK): ∆Phase = ω∆t.

Zatem wyznaczając ω mamy: ω = ∆Phase/∆t = 2πf

Podstawiając zamiast okresu odniesienia zegara taktującego jego częstotliwość (1/fMCLK = ∆t), częstotliwość przebiegu sinusoidalnego f wyraża się wzorem:

f = ∆Phase × (fMCLK / 2π)

Rys. 6.82. Przebieg sinusoidalny

Na podstawie tej zależności układ AD9833 generuje przebieg sinusoidalny na wyjściu

VOUT (metoda DDS – direct digital sintesis). Metoda DDS jest realizowana przez trzy bloki: • oscylator sterowany programowo plus modulator fazy (NCO), • pamięć SIN ROM, • przetwornik C/A.

Oscylator sterowany programowo plus modulator fazy (NCO)

Blok ten składa się z dwóch rejestrów wyboru częstotliwości FREQ0 i FREQ1, 28-bitowego akumulatora fazy, dwóch rejestrów z offsetem fazy PHASE0 i PHASE1 i układu dodającego offset fazy.

Dla sygnału sinusoidalnego ciągłego faza zawiera się wyłącznie w przedziale od 0 do 2π, a jej zmiana w czasie ma charakter okresowy (rys. 6.72). Cyfrowa implementacja przebiegu jest analogiczna. Faza jest określona za pomocą 28-bitowego słowa zawartego w akumulatorze. Czyli kątowi 2π odpowiada liczba 228. Zatem zakres fazy mieści się w przedziale 0 < ∆Phase <228 – 1. Stąd można podać zmodyfikowaną zależność na częstotliwość f przebiegu sinusoidalnego:

f = ∆Phase × (fMCLK / 228), gdzie: 0 < ∆Phase <228 – 1.

Page 115: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

225

Wejście akumulatora fazy może być podłączone do jednego z dwóch rejestrów FREQ0 lub FREQ1. Ustawia się to za pomocą bita FSELECT w rejestrze kontrolnym. Blok NCO generuje nieprzerwanie sygnał fazy, zatem unika się nieciągłości sygnału wyjściowego podczas przełączania pomiędzy tymi rejestrami (dwoma częstotliwościami). Używając 12-bitowych rejestrów fazy można dodawać offset, co pozwala na jej modulację z rozdzielczością 2π/4096, ponieważ zawartość tych rejestrów jest dodawana do najstarszych bitów bloku NCO.

Blok pamięci SIN ROM

W tym bloku następuje konwersja fazy na wartości sinusoidalne korzystając z tablicy przeglądowej (look-up table) zawartej w pamięci SIN ROM. Czyli wartościami fazy adresuje się pamięć SIN ROM, w której są zapisane wartości amplitudy. Zatem konwersja polega na przypisaniu danej wartości fazy (będącej adresem) odpowiadającej jej wartości amplitudy (zawartości komórki o tym adresie).

Chociaż blok NCO zawiera 28-bitowy akumulator, dane adresujące są obcinane do 12 najstarszych bitów. Pamięć SIN ROM składa się ze słów 10-bitowych. Włącza się ją za pomocą bita MODE w rejestrze sterującym.

Przetwornik C/A Układ AD8933 zawiera 10-bitowy przetwornik C/A będący źródłem prądowym o wysokiej

impedancji. Przetwornik otrzymuje słowo cyfrowe z pamięci SIM ROM i konwertuje je na odpowiadające mu napięcie analogowe.

Zewnętrzny rezystor obciążający do masy nie jest wymagany, gdyż układ zawiera już w sobie rezystor 200Ω. Przetwornik generuje napięcie wyjściowe typowo 0,6 V p-p.

Regulator Napięcie zasilania na wejściu VDD może zawierać się w zakresie od 2,3V do 5,5V. Część

cyfrowa układu pracuje przy napięciu 2,5V dostarczanym przez wewnętrzny regulator (stabilizator). Kiedy napięcie zasilające jest poniżej 2,7V, piny CAP i VDD powinny być połączone razem, aby ominąć wewnętrzny regulator.

Interfejs szeregowy Układ AD9833 posiada interfejs szeregowy kompatybilny ze standardami SPI, QSPI i

Microwire. Dane do układu są ładowane w postaci 16-bitowych słów, zgodnie z taktem zegara na

wejściu SCLK.

Rys. 6.83. Przebieg interfejsu SPI

Page 116: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

226

Wejście FSYNC służy do synchronizacji odbieranych ramek. Dane do układu mogą być transmitowane wyłącznie, gdy na linii FSYNC jest stan niski. Na opadające zbocze sygnału zegarowego SCLK dane na linii SDATA są wprowadzane do rejestru szeregowego. Po wprowadzeniu do układu 16-bitów należy linię FSYNC ustawić w stan wysoki, pod warunkiem, że na linii SCLK jest stan wysoki.

Rejestr kontrolny i rejestry częstotliwości są 14-bitowe, natomiast rejestry fazy 12-bitowe. Stąd za pomocą dwóch najstarszych bitów D15 i D14 wprowadzanego 16-bitowego słowa wybiera się rejestr, do którego będą wprowadzane pozostałe bity. W przypadku rejestrów fazy dodatkowo o ich wyborze decyduje bit D13 (tabela 6.32).

Tabela 6.33. Wybór rejestrów za pomocą bitów D15 i D14 D15 D14 Nazwa rejestru 0 0 rejestr kontrolny 0 1 FREQ0 1 0 FREQ1 1 1 D13 = 0 – PHASE0

D13 = 1 – PHASE1 (bit D12 nieistotny) Rejestr kontrolny

Rys. 6.84. Funkcje bitów rejestru kontrolnego Układ AD8933 posiada 16-bitowy rejestr kontrolny. Wszystkie bity kontrolne, z

wyjątkiem bita MODE, są próbkowane przez opadające zbocze wewnętrznego sygnału MCLK.

Aby wskazać, iż wprowadzane dane dotyczą rejestru kontrolnego bity D15 i D14 muszą

być ustawione na 0.

Page 117: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

227

Tabela 6.34. Znaczenie bitów rejestru kontrolnego układu AD9833 Bit Nazwa Funkcja

D13 B28 Dwie operacje zapisu są wymagane do kompletnego załadowania każdego z rejestrów częstotliwości. B28 = 1 pozwala na skompletowanie 28-bitowego słowa za pomocą dwóch następujących po sobie wpisów. Pierwszy wpis zawiera 14 młodszych bitów, drugi 14 starszych. Pierwsze dwa bity każdego 16-bitowego słowa definiują rejestr częstotliwości, do którego są wpisywane, zatem muszą być zawsze takie same dla tych wpisów. Kiedy B28 = 0, 28-bitowy rejestr częstotliwości pracuje jako dwa 14-bitowe rejestry, jeden zawierający 14 starszych bitów, a drugi 14 młodszych. Zatem każdy z tych rejestrów może być modyfikowany niezależnie. Wybór jednego z 14-bitowych rejestrów składowych danego rejestru częstotliwości wybiera się za pomocą bita HLB.

D12 HLB Jeśli B28 = 0 to bit HLB służy do wyboru jednego z 14-bitowego rejestru składowego rejestru częstotliwości: HLB = 1 zapis do rejestru zawierającego 14 starszych bitów rejestru częstotliwości, HLB = 0 zapis do rejestru zawierającego 14 młodszych bitów rejestru częstotliwości.

D11 FSELECT Wybiera, który z rejestrów częstotliwości FREQ0 lub FREQ1 jest używany przez akumulator fazy.

D10 PSELECT Wybiera, który z rejestrów fazy PHASE0 lub PHASE1 jest dodawany do danych wyjściowych z akumulatora fazy.

D8 RESET RESET = 1 ustawia wewnętrzne rejestry na 0. RESET = 0 dezaktywacja funkcji resetu.

D7 SLEEP1 Kiedy SLEEP1 = 1 to wewnętrzny zegar MCLK jest wyłączony, układ NCO nie pracuje, a na wyjściu przetwornika C/A jest wartość napięcia odpowiadająca ostatnio wprowadzonej do niego wartości z SIN ROM.

D6 SLEEP12 SLEEP12 = 1 wyłącza przetwornik C/A. Dla SLEEP12 = 0 przetwornik C/A jest aktywny.

D5 OPBITEN Ten bit wraz z bitem D1 (MODE) steruje pinem VOUT. OPBITEN = 1 odłącza wyjście przetwornika C/A od pinu VOUT. Wówczas na wyjście VOUT podawany jest sygnał zegarowy o amplitudzie zależnej od bita DIV2. Gdy OPGITEN = 0 to do wyjścia VOUT podłączone jest wyjście przetwornika C/A. Wówczas bit MODE określa czy na wyjściu przetwornika jest przebieg sinusoidalny, czy trójkątny.

D3 DIV2 Jeżeli OPBITEN = 1 to: DIV2 = 1 to na wyjście VOUT podawana z przetwornika C/A jest wartość napięcia odpowiadająca maksymalnej wartości zakresowe MSB. DIV2 = 0 to na wyjściu VOUT jest napięcie odpowiadające MSB/2.

D1 MODE Jeżeli OPBITEN = 0 to (w przeciwnym przypadku MODE musi być 0): Kiedy MODE = 1 to pamięć SIN ROM jest ominięta, co w rezultacie daje przebieg trójkątny na wyjściu VOUT. Kiedy MODE = 0 to pamięć SIN ROM jest używana do konwersji informacji o fazie na wartość amplitudy, co daje przebieg sinusoidalny na wyjściu VOUT.

Ostatecznie częstotliwość sygnału wyjściowego można zapisać za pomocą zależności:

f = (fMCLK / 228) × FREQREG

gdzie: FREQREG jest wartością wpisaną do wybranego rejestru częstotliwości.

Natomiast przesunięcie fazowe sygnału wyraża się wzorem:

(2π / 4098) × PHASEREG

gdzie: PHASEREG to wartość wpisana do wybranego rejestru offsetu fazy.

Dla OPGITEN = 0 i MODE = 1 układ AD9833 generuje przebieg trójkątny (rys. 6.85).

Page 118: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

228

Rys. 6.85. Przebieg trójkątny generowany przez układ AD9833

6.10. Kontrolery interfejsów szeregowych sterowane interfejsem SPI

Zewnętrzne kontrolery interfejsów szeregowych np. takich jak USB, CAN, Ethernet czy

radiowych układów nadawczo-odbiorczych na 2,4 GHz stosuje się wówczas gdy: • Wybrany przez nas mk ich nie posiada. • Nie chcemy używać mk w nie wyposażonych, ponieważ mk te są zazwyczaj bardzo

rozbudowane, co za tym idzie i droższe (mają większą moc obliczeniową aby obsługiwać wbudowane interfejsy i przy okazji są wyposażone w wiele urządzeń peryferyjnych często zbędnych dla naszej aplikacji).

• Zastosowanie zewnętrznych kontrolerów interfejsów szeregowych pozwala na „ rozproszenie mocy obliczeniowej” w systemie, tzn. mk wykonuje swoje zadania przewidziane programem, a wymiana danych z kontrolerem interfejsu szeregowego odbywa się poprzez interfejs SPI. Kontroler ten często realizuje prawie cały stos obsługi danego protokołu (np. stosy protokołów CAN, USB czy warstwę fizyczną Ethernet protokołów TCP/IP) odciążając w ten sposób jednostkę centralną mk.

• Często producenci kontrolerów szeregowych dostarczają gotowe sterowniki dla systemów operacyjnych (np. sterowniki urządzeń USB dla Windows XP, Windows 7, Linux) współpracujące z ich kontrolerami.

Przykłady kontrolerów interfejsów szeregowych; • do obsługi sieci Ethernet – układ ENC28J60 firmy Microchip, • interfejs CAN – układ MCP2510 firmy Microchip, • interfejs USB – układy MAX3420E, MAX3421E firmy Maxim, • kontroler sieci bezprzewodowej na 2,4 GHz zaprojektowany dla sieci standardów IEEE

802.15.4, ZigBee – układ AT86RF230 firmy Atmel.

Rys. 6.86. Schemat blokowy kontrolerów interfejsów szeregowych sterowanych

interfejsem SPI

Page 119: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

229

Na rys. 6.86 pokazano ogólny schemat kontrolera interfejsu szeregowego. Składa się on z następujących bloków: • Blok interfejsu SPI – obsługuje on interfejs SPI służący do komunikacji między mk a

kontrolerem. Za jego pomocą transmitowane są dane do buforów wejściowo-wyjściowych, skąd transmitowane są przez kontroler interfejsu szeregowego dalej za pomocą linii interfejsu szeregowego do miejsca przeznaczenia. Ponadto zawiera on rejestry kontrolne i statusowe służące do konfiguracji i sterowania układem kontrolera. Rejestry te znajdują się pod odpowiednimi adresami obszaru adresowania układu. Zatem adresy rejestrów jak i dane do nich wpisywane są częścią rozkazów wprowadzanych interfejsem SPI do układu.

• Bufory danych wejściowych i wyjściowych – są niezbędne, gdy interfejs odbiera i wysyła dane blokami (np. ramka ethernetowa, ramka CAN).

• Kontroler interfejsu szeregowego – właściwy blok sterujący danym interfejsem szeregowym. Kontroluje on dwukierunkowym przepływem danych, dokonuje ich analizy zgodnie ze zdefiniowanym stosem protokołów (np. oblicza i sprawdza sumę kontrolną pakietu danych), steruje układem nadawczo odbiorczym.

• Układ nadawczo-odbiorczy – odbiera i wysyła dane, konwertuje je na odpowiednie sygnały elektryczne zgodnie ze specyfikacją danego protokołu.

Znaczenie linii układu interfejsu szeregowego: • SI – szeregowe wejście danych interfejsu SPI dla danych wysyłanych i danych

konfiguracyjnych, • SO – szeregowe wyjście danych interfejsu SPI służące do odbioru danych z interfejsu

szeregowego i odczytu danych statusu układu, • SCK – zegar taktujący transmisję szeregową interfejsu SPI, • CS – wejście wyboru układu uaktywniające interfejs SPI do udziału w transmisji, • RST – wejście resetu układu – aktywny stan na tej linii wprowadza kontroler w stan

początkowy, • INT – linia przerwania zewnętrznego informująca o tym, iż kontroler żąda od mk obsługi, • LINIE INTERFEJSU SZEREGOWEGO – linie służące do transmisji danych. Ich

liczba i funkcje zależne są od typu danego interfejsu szeregowego. 6.10.1. Kontrolery sieci Ethernet

Kontroler sieci Ethernet ENC28J60 firmy Microchip jest gotowym interfejsem między mikrosystemem elektronicznym zwanym mikroserwerem TCP/IP, a siecią komputerową bazującą na standardzie Ethernet. Komunikacja i sterowanie kontrolera odbywa się przez interfejs SPI.

W modelu warstwowym TCP/IP kontroler ENC28J60 obsługuje najniższą warstwę fizyczną. Podczas wysyłania przez niego pakietów danych automatycznie generuje preambułę, oblicza i sprawdza sumę kontrolną ramki ethernetowej oraz opcjonalne dodaje do niej pole uzupełnienia zerami (PAD). Cechy kontrolera ENC28J60: • Kompatybilny ze standardem IEEE 802.3. • Zintegrowany interfejs MAC i obsługa warstwy sprzętowej. • Pojedynczy port 10Base-T z automatyczną korekcją i detekcją polaryzacji. • Obsługa trybów half-duplex i full-duplex konfigurowalna sprzętowo.

Page 120: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

230

• Programowalna obsługa retransmisji w przypadku kolizji. • Programowalne dołączanie uzupełnienia i sumy kontrolnej ramek. • Programowalne filtrowanie niechcianych pakietów. • 8 kB konfigurowalnej pamięci odczytu/wysyłania pakietów. • Sprzętowe wsparcie obsługi bufora odbioru FIFO. • 8-bitowa szyna dostępu do pamięci bufora . • Wewnętrzny kanał DMA. • Interfejs SPI o prędkości zegara do 25MHz. • Sześć źródeł przerwań i jedno wyjście przerwania. • Wyjście zegarowe z programowalnym dzielnikiem. • Napięcie zasilania 3,1-3,6 V (nominalnie 3.3 V) , wejścia z tolerancją 5V. • 28-pinowe obudowy SPDIP, SSOP, SOIC lub QFN.

Rys. 6.87. Schemat blokowy układu ENC28J60

Układ ENC28J60 składa się z 4 głównych części:

1. Podukładu komunikacji z układem nadrzędnym – interfejs SPI (1), Odpowiedzialny jest on za umożliwienie wymiany danych pomiędzy kontrolerem i mk. Komunikacja odbywa się przez interfejs szeregowy SPI. Ponadto kontroler poprzez ten podukład umożliwia generowanie przerwania. Dostępnych jest 6 źródeł przerwań związanych z następującymi zdarzeniami: błąd podczas odbioru, błąd podczas nadawania, nadanie pakietu, w buforze odbiorczym jest co najmniej jeden nie odczytany pakiet, zmiana stanu łącza, zakończenie operacji DMA.

2. Podukładu zasilania i generacji sygnału zegarowego (2), składającego się z rozbudowanego systemu resetu oraz systemu generacji i dystrybucji sygnału zegarowego, do którego dołącza się oscylotor kwarcowy 25 MHz.

3. Podukładu bufora odbiorczo-nadawczego wraz z podukładem kontroli pakietów (3) 4. Podukładu dostępu do sieci (4) składającego się z kontrolera MAC, który za

pośrednictwem interfejsu MII steruje urządzeniem nadawczo-odbiorczym (PHY device).

Page 121: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

231

Rys. 6.88. Schemat blokowy mikroserwera TCP/IP bazującego na kontrolerze ENC28J60

sterowanym interfejsem SPI Funkcje bloków mikroserwera TCP/IP (rys. 6.88): • Mk (MCU) steruje kontrolerem Ethernet za pomocą interfejsu SPI.. Linią danych

wyjściowych SDO przesyła się słowa sterujące, dane do wysłania najczęściej w postaci gotowego datagramu IP, a za pomocą linii danych wejściowych SDI odczytuje się odebrany datagram IP i dane statusowe. Mk programowo obsługuje stos TCP/IP, czyli realizuje najczęściej protokoły: Ethernet (składanie i analiza ramki ethernetowej), IP, ARP, TCP, UDP oraz protokoły warstwy aplikacji takie jak serwer HTTP, klient POP3, klient SMTP, itd.

• Kontroler Ethernet w pełni sprzętowo realizuje obsługę sieci Ethernet. Uzupełnia ramki ethernetowe o preambułe i sumę kontrolną, koduje/dekoduje dane kodem Manchester, zapewnia odpowiednie poziomy sygnałów dla standardu 10BASE-T.

• Transformator separujący ma za zadanie galwanicznie odizolować mikroserwer od sieci Ethernet oraz, o ile jest to wymagane, uformować przebieg trapezoidalny z prostokątnego podawanego na różnicowym wyjściu TPIN, TPOUT.

• Do gniazda RJ-45 wpinamy kabel standardu 10BaseT łączący mikroserwer z siecią Internet.

Rys. 6.89. Schemat ideowy mikroserwera TCP/IP bazującego na kontrolerze ENC28J60

Page 122: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

232

Pamięć dostępna w układzie ENC28J60 jest pamięcią typu SRAM. Została ona podzielona na trzy grupy (rys. 6.90): • Rejestry sterujące. • Bufor ethernetowy (bufor nadawczo-odbiorczy). • Rejestry warstwy fizycznej PHY.

Rys. 6.90. Organizacja pamięci układu ENC28J60

Obszar rejestrów sterujących składa się z komórek pamięci (rejestrów) służących do zadawania parametrów, sterowania oraz diagnostyki układu ENC28J60. Wszystkie rejestry są dostępne do bezpośredniego zapisu i odczytu przy pomocy interfejsu SPI. Obszar ten jest podzielony na cztery banki (rys. 6.91). Są one wybierane najmłodszymi bitami rejestru ECON1 (występującego w każdym z banków). Każdy z banków zawiera 32 rejestry (nie wszystkie rejestry są wykorzystane – wszelkie próby zapisu zostaną zignorowane, a odczyt zwróci wartość 0x00).

Bufor ethernetowy służy do przechowywania ramek wysyłanych i odbieranych z sieci.

Dostęp do przechowywanych danych uzyskuje się przy pomocy konkretnych poleceń interfejsu SPI. Podział tego obszaru na bufor nadawczy i odbiorczy jest konfigurowalny przez użytkownika zależnie od wymagań konkretnej aplikacji. Dostęp do pamięci bufora ethernetowego jest możliwy przy pomocy komend interfejsu SPI: „Write buffer memory” i „Read buffer memory”. Bufor ten składa się (rys. 6.92): • Bufor odbiorczy stanowi bufor FIFO. Jego rozmiar i położenie w pamięci jest

zdefiniowane przez pary rejestrów ERXSTH:ERXSTL oraz ERXNDH:ERXNDL mieszczących się w obszarze rejestrów sterujących i stanowiących wskaźniki początku i końca bufora odbiorczego. Jeśli podczas zapisu wskaźnik osiągnie pozycję ERXND, wówczas następny bajt zostanie zapisany na pozycji ERXST. Ten sam mechanizm

Page 123: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

233

obowiązuje przy odczycie danych z bufora przy pomocy interfejsu SPI. Gwarantuje to poprawne działanie bufora kołowego. Rejestry ERXWRPTH:ERXWRPTL określają miejsce w pamięci do którego zostają zapisane pakiety – wskaźnik posiada atrybut tylko do odczytu i jest automatycznie aktualizowany przez kontroler. Jego podstawowe zastosowanie to sprawdzenie, ile miejsca pozostało w buforze odbiorczym. Para rejestrów ERXRDPTH:ERXRDPTL wskazuje górną granicę pamięci, do której kontroler nie może zapisywać przychodzących pakietów. Fizycznie jest to obszar, do którego zostały zapisane dane, ale nie zostały odczytane przez układ nadrzędny. Jeżeli układ nadrzędny nie nadąża z obsługą przychodzących pakietów, wówczas ma on dostęp tylko do danych zapisanych w poprzednim cyklu zapisu – nowo przychodzące pakiety nie nadpisują poprzednich, ale są ignorowane.

Rys. 6.91. Mapa rejestrów kontrolnych układu ENC28J60

• Bufor nadawczy składa się z części pamięci, która nie została przydzielona do bufora

odbiorczego. Granice bufora wyznaczają pary rejestrów ETXSTH:ETXSTL oraz ETXNDH:ETXNDL. Odpowiedzialność za wpisanie do nich takich wartości, aby obszary pamięci nie nakładały się na siebie spada na jednostkę nadrzędną (kontroler tego nie sprawdza).

Page 124: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

234

Rys. 6.92. Organizacja bufora nadawczo-odbiorczego układu ENC28J60

Rejestry warstwy fizycznej PHY pozwalają na konfigurację i diagnostykę modułu

nadawczo-odbiorczego (PHY). Dostęp do tego obszaru pamięci jest możliwy za pośrednictwem interfejsu MIIM (Media Independent Interface Menagement) stanowiącego część kontrolera MAC.

Interfejs SPI układu ENC28J60 pracujące w trybie 0,0. Oznacza to, że dane są

próbkowane na narastającym zboczu zegarowym, a wystawiane zboczem opadającym. Polecenia przesyłane interfejsem SPI – każde polecenie składa się z kodu operacji,

argumentu i opcjonalnie danych po nich następujących. Długość danych wysyłanych/odbieranych zależy od rodzaju polecenia (tabela 6.35)

Page 125: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

235

Tabela 6.35. Lista instrukcji przesyłanych interfejsem SPI dla układu ENC28J60

Read Control Register – polecenie umożliwia odczyt dowolnego rejestru sterującego z grup ETH, MAC i MII (oraz pośrednio grupy PHY). Polecenie rozpoczyna się od ustawienia stanu niskiego na pinie CS, następnie wysyłany jest kod operacji i adres określonego rejestru na linii SI, a potem następuje próbkowanie danych wystawianych na linii SO i na końcu przywrócenie stanu wysokiego na linii CS. W przypadku rejestrów sterujących (grupa ETH), ich zawartość jest wystawiana na linii SO począwszy od bita MSB do LSB, a w przypadku pozostałych najpierw wysyłany jest nieistotny bajt (dummy byte), a dopiero potem bajt z danymi ważnymi. Różnicę między tymi sekwencjami pokazują rys. 6.93 (odczyt z rejestrów ETH) oraz rys. 6.94 (odczyt z rejestrów MAC i MII).

Rys. 6.93. Sekwencja instrukcji odczytu rejestrów kontrolnych (grupa rejestrów ETH)

Page 126: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

236

Rys. 6.94. Sekwencja instrukcji odczytu rejestrów kontrolnych (grupy rejestrów MAC i MII)

Write Control Register – pozwala na zapis do rejestrów grup ETH, MAC i MII (oraz pośrednio grupy PHY). Operacja przebiega w taki sam sposób jak operacja odczytu, z tą różnicą, że dane są wysyłane przez jednostkę nadrzędną na linii SI. Linia SO znajduje się w stanie wysokiej impedancji przez cały czas trwania cyklu.

Rys. 6.95. Sekwencja instrukcji zapisu do rejestrów kontrolnych

Polecenie System Reset pozwala na programowe zresetowanie wszystkich rejestrów układu ENC28J60, czyli wprowadzenie układu w stan początkowy. Instrukcja składa się z 8 jedynek. Pole danych nie jest wymagane.

Rys. 6.96. Sekwencja instrukcji resetu systemowego

Page 127: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

237

Obsługa układu ENC28J60 w mikroserwerze TCP/IP składa się z: • Inicjalizacji układu składającej się z pięciu etapów:

• inicjalizacja bufora odbioru, • inicjalizacja bufora transmisji, • inicjalizacja układu MAC, • ustawienie filtrów odbioru, • inicjalizacja warstwy fizycznej.

• Wysyłania pakietów do sieci. • Odbierania pakietów z sieci. 6.10.2. Kontrolery sieci bezprzewodowych

W wielu przypadkach komunikacja między elektronicznymi systemami wbudowanymi (np. czujnikami bezprzewodowymi, urządzeniami komunikacyjnymi, itd.) realizowana jest drogą bezprzewodową, czyli głównie radiową (rzadko za pomocą podczerwieni – standard IRDA). Zatem systemy te muszą być wyposażone w moduły (kontrolery) transmisji bezprzewodowej. Moduły te opracowane są między innymi dla sieci bezprzewodowych następujących standardów: • ZigBee (standard IEEE 802.15.4), • Bluetooth (standard IEEE 802.15.1), • Wi-Fi (standard IEEE 802.11 ), • GPRS/GSM, 1XRTT/CDMA, UTMS, • WiMAX (standard IEEE 802.16).

W ramach wykładu zostanie omówiony kontroler ZigBee, gdyż podstawowym zastosowaniem protokołu ZigBee są aplikacje wymagające małego zużycia energii i charakteryzujące się małą szybkością transmisji danych – czyli czujniki, urządzenia sterujące, itp. często sterowane mk. Ponadto technologia ZigBee aspiruje do pozycji światowego standardu obsługującego sieci typu czujnik – system sterowania, czyli standardu bezprzewodowych sieci sensorowych. Główne cechy standardu ZigBee: • wykorzystywanie pasm 868/915 MHz i 2.4 GHz, • automatyczna rekonfiguracja sieci (self-healing), • praca w różnych topologiach: mesh (siatka), gwiazda, drzewo, • bardzo mały pobór mocy (kilka lat na jednej baterii), • globalna implementacja, • możliwość obsługi dużej liczby urządzeń.

Produkcją radiowych układów nadawczo-odbiorczych (transceiverów) zgodnych ze standardem ZigBee (IEEE 802.15.4) zajmuje się wiele firm. Wśród nich są: Texas Instruments, Microchip, Atmel, Freescale, Ember, Renesas. Każda nich ma w swojej ofercie jeden bądź kilka układów obsługujących ten standard (tabela 6.36). Oprócz nazwy producenta i oznaczenia układu znajdują się w tabeli 6.36 podstawowe parametry takie jak częstotliwość, czułość odbiornika, napięcie zasilania i pobór prądu.

Page 128: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

238

Tabela 6.36. Zestawienie radiowych układów nadawczo-odbiorczych zgodnych ze standardem ZigBee

Pobór prądu [mA] Producent Oznaczenie układu

Częstotliwość [GHz]

Czułość [dBm]

Napięcie zasilania [V] Nadawanie Obiór

CC2420 2,4 - 94 2.1 – 3.6 17.4 18.8 Texas Instruments CC2520 2,4 - 98 1.8 – 3.8 25.8 @ 0dBm 18.5

Microchip MRF24J40 2,4 - 95 2.4 – 3.6 23 19

AT89RF212 0,7/0,8/0,9 - 110 1.8 – 3.6 18 19 Atmel

AT89RF230 2,4 - 101 1.8 – 3.6 16.5 15.5

MC13193 2,4 - 92 2 – 3.4 37 30 Freescale

MC13213 2,4 - 92 2 – 3.4 37 30

Ember EM250 2,4 -99 2.1 – 3.6 28 24

Renesas ZMD44102 0,9 -98 2,4 31 27

Wymienieni producenci mają w swoich ofertach wyłącznie transceivery (Texas

Instruments, Microchip, Atmel, Renesas), wyłącznie procesory z wbudowanymi transceiverami tzw. SoC (System on Chip) i SiP (System in Package) (Ember), bądź zarówno jedne jak i drugie (Freescale, Atmel).

Poniżej zostanie omówiony kontroler sieci bezprzewodowej na 2,4 GHz zaprojektowany dla sieci standardów IEEE 802.15.4, ZigBee – układ AT86RF230 firmy Atmel.

Właściwości układu AT89RF230: • pobór prądu w trybie nadawania wynosi 16,5 mA (dla maksymalnej mocy nadawania), w

trybie odbioru układ potrzebuje 15,5 mA, a w stanie uśpienia – 20 nA, • stosunkowo duża tolerancja napięcia zasilania od 1.8 do 3,6 V, • układ komunikuje się z jednostką nadrzędną przez interfejs SPI, • transceiver posiada jedną linię przerwań i jedno wyjście zegarowe, • zakres częstotliwości sygnału radiowego 2400-24835 MHz, • praca na 16 kanałach, • moc nadajnika radiowego od -17 do 3 dBm, • czułość odbiornika radiowego -101 dBm, • szybkość przesyłania danych drogą bezprzewodową 250 kb/s.

Układ może sam przeliczać sumę kontrolną ramki odbieranych i wysyłanych danych, oblicza poziom energii sygnału odbieranego. Ponadto sam zajmuje się realizowaniem algorytmu CSMA/CA. Automatycznie retransmituje ramki i wysyła potwierdzenia. Do uruchomienia układu potrzebnych jest niewiele dodatkowych elementów takich jak: antena, rezonator kwarcowy i kilka rezystorów i kondensatorów. Na rys. 6.97 pokazano schemat blokowy systemu sterowanego mk zbudowanego na układzie AT86RF230.

Rys. 6.97. Bezprzewodowy system elektroniczny bazujący na

kontrolerze ZigBee AT86RF230

Page 129: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

239

Rys. 6.98. Schemat blokowy układu AT89RF230

Na rys. 6.98 widać wyraźnie podział układu na część analogową i cyfrową. Na część

analogową składają się odbiornik i nadajnik. Przy czym łączą się one w wyprowadzeniach anteny. Oznacza to, że piny RFP i RFN są wykorzystywane zarówno przy nadawaniu jak i przy odbiorze, co eliminuje potrzebę stosowania zewnętrznego przełącznika. Sygnał odbierany (różnicowy) jest modulowany metodą OQPSK (Offset Quadrature Phase Modulation). Jest to odmiana modulacji fazy w której transmitowany sygnał nie posiada modulowanej amplitudy. Eliminuje to przesunięcie fazy o 1800. Odebrany przez antenę sygnał najpierw przechodzi przez niskoszumowy wzmacniacz LNA (Low Noise Amplifier). Następnie wzmocniony przechodzi przez filtr PPF (Poly-Phase Filter), który tworzy sygnał zespolony. Taki sygnał jest przesuwany w dół na osi częstotliwości do częstotliwości pośredniej. Sygnał o nowej częstotliwości jest filtrowany przez SSBF (Single Side Band Filter). Następnie musi zostać wzmocniony do poziomu wystarczającego do przetwarzania analogowo-cyfrowego. W tym momencie jest analizowany przez regulator wzmocnienia AGC (Automatic Gain Control). Za przetwornikiem jest modyfikowany, już w części cyfrowej, przez RX BBP (Base Band Procesor). W przypadku nadawania, sygnał modulujący jest generowany przez TX BBP. Następnie modulator generuje metodą OQPSK sygnał zgodny z normą IEEE 802.15.4, który jest wzmacniany przez PA (Power Amplifier) i dostarczany do anteny. Na część cyfrową składają się wcześniej wspomniane podukłady BBP, logika sterująca, rejestry, pamięci, bufor dla ramki i podukład SPI.

Page 130: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

240

Rys. 6.99. Aplikacja układu AT89RF230

Rys. 6.100. Połączenie układu AT89RF230 z mk

Na rys. 6.100 przedstawiony jest schemat połączenia układu AT89RF230 z mk za

pośrednictwem interfejsu SPI. Oprócz standardowych linii związanych z interfejsem SPI wymagane są jeszcze 4 linie. Poza linią przerwania IRQ i linią zegara CLKM będącymi wyjściami z transceivera, są jeszcze linia resetu RST i linia SLP_TR mogąca pełnić takie funkcje jak wprowadzanie i wyprowadzanie ze stanu uśpienia, uruchamianie nadawania, kontrola zegara CKM (w zależności od stanu w jakim znajduje się układ).

Page 131: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

241

Interfejs SPI pracuje w trybie bajtowym, co znaczy że jednorazowo generowanych jest 8 taktów zegara SCLK i przesyłane są, w obie strony jednocześnie, paczki 8-bitowe. O rozpoczęciu transmisji decyduje układ master, czyli mk. On generuje sygnał zegarowy SCLK. Start transmisji musi być poprzedzony ustawieniem w stan niski linii SEL. Po zakończeniu transmisji sygnał SEL wraca do stanu wysokiego. Rys. 6.101 przedstawia przykładowe przebiegi podczas wymiany danych interfejsem SPI.

Rys. 6.101. Format komend przesyłąnych interfejsem SPI dla układu AT89RF230

Jak wynika z rys. 6.101, we wszystkich bajtach, najstarszy bit przesyłany jest jako

pierwszy. Dostęp do rejestrów AT89RF230 wymaga przesłania dwóch bajtów, a w przypadku bufora dla ramki lub pamięci SRAM co najmniej 2. O tym czy chcemy zapisać/odczytać rejestr, bufor czy SRAM decyduje pierwszy, wysłany w trakcie transmisji, bajt zwany komendą. W tabeli 6.37 zawarto opis komend układu AT89RF230. Tabela 6.37. Format komend przesyłanych interfejsem SPI układu AT89RF230.

W komendach Register Access Mode dla dostępu do rejestrów zawarty jest od razu adres rejestru, a więc drugi przesyłany bajt jest aktualną wartością rejestru w przypadku odczytu Read Access (rys. 6.102b) lub przyszłą wartością dla zapisu Write Access (rys. 6.102a) do tego rejestru.

a) b)

Rys. 6.102. Struktury komend interfejsu SPI dla tryby Register Access Mode:

a) komenda Write Access, b) komenda Read Access W przypadku komendy dostępu do bufora Frame Buffer Access Mode, odczytywana Read Access (rys. 6.104) lub zapisywana Write Access (rys. 6.103) jest ramka. Dlatego drugi transmitowany bajt (PHR – PHY Header) jest długością ramki, a kolejne bajty (PSDUx – PHY Service Data Unit) stanowią zawartość ramki (dane). Opcjonalnie, w przypadku odbioru, po danych może zostać przesłany bajt LQI (Link Quality Inication) mówiący o jakości odebranego pakietu. Długość ramki nie może przekraczać 127 bajtów.

Page 132: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

242

Rys. 6.103. Struktura komendy Frame Buffer Write Access

Rys. 6.104. Struktura komendy Frame Buffer Read Access

Grupa komend SRAM Access Mode (rys. 6.105 i 6.106) pozwala na dostęp do pamięci SRAM. Korzystanie z takiej możliwości ma sens wtedy kiedy istotne są tylko niektóre bajty z bufora. Przykładem może być sytuacja w której potrzebna jest zmiana tylko pewnych pól (np. numer sekwencyjny, adres) przed transmisją zapisanej już wcześniej ramki w buforze lub konieczna jest znajomość tylko niektórych pól (np. LQI) w odebranej ramce. Stosując takie rozwiązanie nie obciąża się interfejsu przez niepotrzebny odczyt całej ramki. Dla tej metody, drugi bajt jest początkowym adresem, a kolejne bajty stanowią dane. Dostęp do SRAM ma negatywne strony. Po pierwsze niemożliwy jest odczyt pola długości ramki. Nie jest też możliwe wysłanie odebranej ramki bez użycia komendy odczytu ramki. Ponadto pewne błędy danych nie będą sygnalizowane przerwaniem w tym trybie dostępu.

Rys. 6.103. Struktura komendy SRAM Write Access

Rys. 6.104. Struktura komendy SRAM Read Access

Układ AT89RF230 rozróżnia sześć źródeł przerwań. Każde z przerwań można włączyć lub wyłączyć w rejestrze maskującym IRQ_MASK. Ponadto wszystkie przerwania posiadają odpowiadające im flagi w rejestrze statusu przerwań, który powinien zostać odczytany kiedy pojawi się sygnał przerwania na linii IRQ. Rejestr statusu przerwań nie jest kasowany automatycznie. Kasuje się go przez odczyt. Producent przewidział dwa tryby pracy układu AT89RF230: • tryb podstawowy - wykorzystywany dla aplikacji zgodnych z IEEE 802.15.4, • tryb rozszerzony – zapewnia zgodność układu AT89RF230 z normą IEEE 802.15.4 –

2003, czyli między innymi dodano automatyczne filtrowanie adresów, automatyczne wysyłanie potwierdzenia oraz obsługę algorytmu CSMA-CA wraz z retransmisją pakietów. Szczegóły związane z zasadą działania i obsługi układu AT89RF230 zawarte są w jego

dokumentacji technicznej.

Page 133: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

243

6.11. Układy MEMS sterowane interfejsem SPI

Rys. 6.107. Schemat blokowy układów MEMS sterowanych interfejsem SPI

Na rys. 6.107 pokazano ogólny schemat układu MEMS. Składa się on z następujących

bloków: • Blok interfejsu SPI – obsługuje on interfejs SPI służący do komunikacji między mk a

układem MEMS. Za jego pomocą transmitowane są dane do rejestrów konfiguracyjnych, a czytane dane z rejestrów statusu i rejestrów danych, zawierających np. wartości kątów nachylenia, czy wartości przyśpieszenia. Ponadto zawiera on rejestry kontrolne i statusowe służące do konfiguracji i sterowania układem kontrolera, jak i rejestry danych zawierające przetworzone na postać cyfrową wyniki zmierzonych wielkości fizycznych. Rejestry te znajdują się pod odpowiednimi adresami obszaru adresowania układu. Zatem adresy rejestrów jak i dane do nich wpisywane są częścią rozkazów wprowadzanych interfejsem SPI do układu.

• Czujnik mechatroniczny – właściwy blok układu MEMS przetwarzający daną wielkość fizyczną, do jakiej pomiaru jest ten układ przeznaczony, na wielkość elektryczną (najczęściej napięcie).

• Blok kondycjonowania i przetwarzania sygnałów – przetwarza on sygnał elektryczny (np. wzmacnia, jak to jest konieczne – konwertuje na napięcie, filtruje) do postaci mierzalnej przez zawarty w nim przetwornik A/C, po czym konwertuje go na wartość cyfrową.

• Blok kalibracji i cyfrowej obróbki danych – ze względu na nieliniowe zależności między wielkością fizyczną a przetworzonym na postać cyfrową sygnałem elektrycznym układ ten np. dokonuje kalibracji i przeskalowania wartości cyfrowej uzyskanej z poprzedniego bloku tak, aby reprezentowała ona rzeczywistą wielkość fizyczną.

• Blok realizujący dodatkowe funkcje cyfrowe – odbiera i wysyła dane, konwertuje je na odpowiednie sygnały elektryczne zgodnie ze specyfikacją danego protokołu.

Znaczenie linii układu interfejsu szeregowego: • SI – szeregowe wejście danych interfejsu SPI dla danych konfiguracyjnych, • SO – szeregowe wyjście danych interfejsu SPI służące do odbioru danych i odczytu

danych statusu układu,

Page 134: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

244

• SCK – zegar taktujący transmisję szeregową interfejsu SPI. • CS – wejście wyboru układu uaktywniające interfejs SPI do udziału w transmisji, • LINIE CYFROWE – linie cyfrowe realizujące dodatkowe funkcje np. wyjście

przerwania, wejście resetu, sygnały alarmowe, itp. Ich liczba i funkcje zależne są od specyfiki danego układu.

Poniżej omówiono układ ADIS16201 firmy Analog Devices przeznaczony do pomiaru

kąta nachylenia i przyśpieszenia w dwóch kierunkach. Właściwości układu ADIS16201:

• dwuosiowy systemem do pomiaru przyspieszenia i nachylenia, • posiada 12-bitowy cyfrowy czujnik nachylenia oraz 14-bitowy czujnik przyśpieszenia, • mierzy przyspieszenie w zakresie +/- 1,7 g (g – przyśpieszenie ziemskie), • mierzy nachylenie w zakresie +/- 900, • posiada 12-bitowy czujnik temperatury, • zawiera w sobie 12-bitowy przetwornik A/C oraz 12-bitowy przetwornik C/A, • pojedyncze napięcie zasilania od 3,0 V do 3,6 V, • wytrzymały na przeciążenia do 3500 g.

Rys. 6.108. Schemat blokowy czujnika przyśpieszenia i nachylenia ADIS16201

Komunikacja urządzeń zewnętrznych z układem ADIS16201 odbywa się za pomocą

interfejsu SPI. Aby cały system oparty na tym czujniku i układzie komunikującym się z nim działał poprawnie, należy skonfigurować urządzenie zewnętrzne w odpowiedni sposób. Polaryzacja zegara musi być ustawiona na jeden, natomiast faza na zero. Dane są przesuwane na opadającym zboczu, a czytane na narastającym zboczu zegara SCLK. Należy również przestrzegać zależności czasowych między sygnałami CS, SCLK, DIN oraz DOUT.

Page 135: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

245

Rys. 6.109. Wyprowadzenia układu ADIS16201

Tabela 6.38. Funkcje pinów układu ADIS16201 Nr wyp. Oznaczenie Typ Opis

1 SCLK Wejście Zegar interfejsu szeregowego. Zapewnia sygnał zegarowy dla odczytu danych z układu oraz zapisu do jego rejestrów kontrolnych.

2 DOUT Wyjście Wyjście danych. Sygnały na tym pinie reprezentują dane odczytywane z rejestrów układu i są taktowane opadającym zboczem SCLK.

3 DIN Wejście Wejście danych. Dane zapisywane do rejestrów kontrolnych są taktowane narastającym zboczem SCLK.

4 CS Wejście „Chip Select”. Aktywny stanem niskim umożliwia komunikację z układem przez interfejs szeregowy.

5, 6 DIO0, DIO1 Wejście / Wyjście

Wielofunkcyjne cyfrowe piny wejścia/wyjścia.

7, 11 NC - Brak połączenia.

8, 10 AUX COM Wejście Pomocnicza masa. Dla właściwego funkcjonowania powinna być podłączona do wspólnej masy.

9 RST Wejście Reset, aktywny stanem niskim. Resetuje wewnętrzny krokontroler do znanego stanu.

12 AUX DAC Wyjście Pomocnicze analogowe wyjście napięciowe DAC. 13 VDD Wejście Napięcie zasilania +3,3 V 14 AUX ADC Wejście Pomocnicze analogowe wejście napięciowe ADC. 15 VREF Wyjście Wyjście napięcia referencyjnego. 16 COM Wejście Masa.

Każda komenda odczytu z układu ADIS16201 wymaga dwóch pełnych 16-bitowych cykli

pracy interfejsu SPI. W trakcie pierwszego cyklu transmitowany jest adres rejestru, w trakcie drugiego odczytywane są dane.

Page 136: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

246

Rys. 6.110. Sekwencja odczytu zawartości rejestru z układu ADIS16201

DIN W/R 0 A5 A4 A3 A2 A1 A0 X X X X X X X X DOUT ND EA D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Starszy bajt Młodszy bajt

Rys. 6.111. Format bitowy rejestrów wyjściowych

Rejestr danych wyjściowych podzielony jest na trzy części: bit gotowości nowych danych

(ND), wskaźnik alarmu (EA) oraz bity danych (D0 do D13). Bit ND służy do określenia, czy zawartość danego rejestru zmieniła się od ostatniej komendy jego odczytu. Logiczna jedynka w bicie ND oznacza, że są dostępne dane, które jeszcze nie zostały odczytane. Podczas odczytu rejestru wartość bitu ND jest ustawiana na logiczne zero. Wskaźnik alarmu zapewnia użytkownikowi prostą metodę pasywnego monitorowania statusu oraz warunków alarmu, co daje możliwość uproszczenia systemu pod względem dodatkowego przetwarzania danych.

Tabela 6.39. Rejestry danych wyjściowych

Nazwa Funkcja Adres Rozdzielczość

(bity) Format danych

Współczynnik skali (na LSB)

SUPPLY_OUT Dane zasilania 0x03, 0x02 12 Binarny 1,22 mV

XACCL_OUT Dane Przyspieszenia w osi X

0x05, 0x04 14 Uzupełnień do dwóch

0,4625 mg

YACCL_OUT Dane przyspieszenia w osi Y

0x07, 0x06 14 Uzupełnień do dwóch

0,4625 mg

AUX_ADC

Dane z dodatkowego wejścia analogowego

0x09, 0x08 12 Binarny 0,61 mV

TEMP_OUT Dane czujnika temperatury

0x0B, 0x0A 12 Binarny −0,47°C

XINCL_OUT Dane inklinacji w osi X

0x0D, 0x0C 12 Uzupełnień do dwóch

0,1°

YINCL_OUT Dane inklinacji w osi Y

0x0F, 0x0E 12 Uzupełnień do dwóch

0,1°

Układ ADIS16201 posiada wiele funkcji kontrolowanych poprzez zapis komend do odpowiednich rejestrów kontrolnych za pośrednictwem interfejsu SPI.

Page 137: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

247

Np. możemy: • ustawić szybkość próbkowania dla siedmiu mierzonych przez układ wielkości (napięcie

zasilania, przyspieszenie w osi X oraz Y, wartość napięcia zmierzona z przetwornika ADC, temperatura i nachylenie w osi X i Y),

• konfigurować alarm, • kontrolować wbudowany 12-bitowy przetwornika C/A, • obsługiwać dwie linie I/O ogólnego przeznaczenia, • wprowadzać układ w tryb uśpienia, aktywować autotest układu.

Komendy zapisu operują na pojedynczym cyklu wyboru układu i przesłaniu 16 bitów danych (rys. 6.112).

Rys. 6.112. Sekwencja zapisu do rejestru układu ADIS16201

Rys. 6.113. Format bitowy rejestrów konfiguracyjnych

Część rejestrów konfiguracyjnych układu ADIS16201 to rejestry nieulotne wykonane w

technologii Flash. Dlatego użytkownik po wpisaniu do nich nowych wartości, dokładniej – wprowadzeniu danych do lokalizacji przypisanym tym rejestrom, musi wydać polecenie uaktualnienia pamięci Flash (używając rejestru komend), aby wartości te zostały zapamiętane na stałe.

W Tabeli 6.40 zestawiono rejestry konfiguracyjne układu ADIS16201. Kolumna trzecia zawiera informację o tym, czy dany rejestr jest umieszczony w pamięci Flash. Tabela 6.40. Rejestry konfiguracyjne układu ADIS16201

Nazwa rejestru Typ Nieulotny Adres Bajty Funkcja

0x00 do 0x01 2 Zarezerwowany

SUPPLY_OUT R 0x02 2 Wyjście danych o zasilaniu układu

XACCL_OUT R 0x04 2 Wyjście danych o przyspieszeniu wzdłuż osi X

YACCL_OUT R 0x06 2 Wyjście danych o przyspieszeniu wzdłuż osi Y

AUX_ADC R 0x08 2 Pomocnicze dane dla ADC

TEMP_OUT R 0x0A 2 Wyjście pomiaru temperatury

DIN W/R 0 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 Starszy bajt Młodszy bajt

Page 138: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

248

XINCL_OUT R 0x0C 2 Wyjście danych nachylania do osi X

YINCL_OUT R 0x0E 2 Wyjście danych nachylania do osi Y

XACCL_ OFF R/W 0x10 2 Współczynnik offsetu przyspieszenia wzdłuż osi X

YACCL_ OFF R/W 0x12 2 Współczynnik offsetu przyspieszenia wzdłuż osi Y

XACCL_ SCALE R/W X 0x14 2 Współczynnik skalowania przyspieszenia wzdłuż osi X

YACCL_ SCALE R/W X 0x16 2 Współczynnik skalowania przyspieszenia wzdłuż osi Y

XINCL_OFF R/W X 0x18 2 Współczynnik offsetu nachylania do osi X

YINCL_ OFF R/W X 0x1A 2 Współczynnik offsetu nachylania do osi Y

XINCL_SCALE R/W X 0x1C 2 Współczynnik skalowania nachylenia do osi X

YINCL_ SCALE R/W X 0x1E 2 Współczynnik skalowania nachylenia do osi Y

ALM_MAG1 R/W X 0x20 2 Próg amplitudy dla Alarmu 1

Nazwa rejestru Typ Nieulotny Adres Bajty Funkcja

ALM_MAG2 R/W X 0x22 2 Próg amplitudy dla Alarmu 2

ALM_SMPL1 R/W X 0x24 2 Okres próbkowania dla Alarmu 1

ALM_SMPL2 R/W X 0x26 2 Okres próbkowania dla Alarmu 2

ALM_CTRL R/W X 0x28 2 Rejestr kontrolny źródeł alarmu

X 0x2A do 0x2F 2 Zarezerwowany

AUX_DAC R/W X 0x30 2 Pomocnicze dane dla DAC

GPIO_CTRL R/W 0x32 2 Pomocniczy rejestr kontrolny cyfrowego I/O

MSC_CTRL R/W 0x34 2 Rejestr kontrolny składany

SMPL_PRD R/W 0x36 2 Kontrola okresu próbkowania dla ADC

YACCL_ OFF R/W 0x12 2 Współczynnik offsetu przyspieszenia wzdłuż osi Y

Nazwa rejestru Typ Nieulotny Adres Bajty Funkcja

AVG_CNT R/W 0x38 2 Liczba próbek dla filtru z ruchomą średnią (Moving Average Filter)

PWR_MDE R/W 0x3A 2 Licznik używany do determinowania długości przebywania w stanie spoczynku (power-down mode)

STATUS R X 0x3C 2 Systemowy rejestr STATUS

COMMAND W X 0x3E 2 Systemowy rejestr COMMAND

Szczegółowy opis układu ADIS16201 znajduje się w jego dokumentacji technicznej.

Page 139: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

249

7. Bibliografia 7.1. Literatura podstawowa 1. Tlaga W.: „Procesory w systemach pomiarowych”, Mat. konf. Szkoła-Konferencja

Metrologia Wspomagana Komputerowo, Tom 1, Zegrze k/Warszawy, 24-28 maj 1993, s. 129-164.

2. Daca W.: „Mikrokontrolery od układów 8-bitowych do 32-bitowych”, Wyd. NIKOM, Warszawa, kwiecień 2000.

3. Pełka R.: „Mikrokontrolery, architektura, programowanie, zastosowania”, Wyd. WKŁ, Warszawa 1999.

4. Pasierbiński J., Zbysiński P.: „Układy programowalne w praktyce”, Wyd. WKŁ, Warszawa 2002.

5. Krysiak A.: „Mikrokontrolery rodziny AVR, AT 90S1200”, Wyd. Studio Wydawniczo-Typograficzne „Typoscript”, Wrocław 1999.

6. Gałka P., Gałka P.: „Podstawy programowania mikrokontrolera 8051”, Wyd. NIKOM, Warszawa, wrzesień 1995.

7. Jabłoński T: „Mikrokontrolery PIC16F8x w praktyce”, Wyd. BTC, Warszawa 2002.

8. Rydzewski A.: „Mikrokomputery jednoukładowe rodziny MCS-51”, Wyd. Naukowo-Techniczne, Warszawa 1992.

9. Pietraszek S.: „Mikroprocesory jednoukładowe PIC”, Wyd. Helion, Gliwice 2002.

10. Starecki T.: „Mikrokontrolery 80C51 w praktyce”, Wyd. BTC, Warszawa 2002.

11. Doliński J.: „Mikrokontrolery AVR w praktyce”, Wyd. BTC, Warszawa 2003.

12. Hadam P.: „Projektowanie systemów mikroprocesorowych”, Wyd. BTC, Warszawa 2004.

13. Bogusz J.: „Lokalne interfejsy szeregowe w systemach cyfrowych”, Wyd. BTC, Warszawa 2004.

14. Jabłoński T.: „Graficzne wyświetlacze LCD w przykładach”, Wyd. BTC, Legionowo 2008.

15. Jabłoński T.: „Karty SD/MMC w systemach mikroprocesorowych”, Wyd. BTC, Legionowo 2009.

16. Bryndza L.: „LPC2000 - Mikrokontrolery z rdzeniem ARM7”, Wyd. BTC, Legionowo 2007.

17. Michalski J. A.: „Mikroklocki. Mikroprocesory dla początkujących”, Wyd. BTC, Warszawa 2007.

18. Brzoza-Woch R.: „Mikrokontrolery AT91SAM7 w przykładach”, Wyd. BTC, Legionowo 2009.

19. Doliński j.: „Mikrokontrolery AVR - niezbędnik programisty”, Wyd. BTC, Legionowo 2009.

20. Baranowski R.: „Mikrokontrolery AVR ATmega w praktyce”, Wyd. BTC, Warszawa 2005.

Page 140: II MIKROSYSTEMY ELEKTRONICZNE - pg.gda.plzbczaja/pdf/wykl_mkm_cz2.pdf · Mikrokontrolery i mikrosystemy 115 3. Układy buforów Mo żna wyró żni ć nast ępuj ące podstawowe zastosowania

Mikrokontrolery i mikrosystemy

250

21. Baranowski R.: „Mikrokontrolery AVR ATtiny w praktyce”, Wyd. BTC, Warszawa 2006.

22. Stawski E.: „Mikrokontrolery LPC2000 w przykładach”, Wyd. BTC, Legionowo 2009.

23. Hajduk Z.: „Mikrokontrolery w systemach zdalnego sterowania”, Wyd. BTC, Warszawa 2005.

24. Bogusz J.: „Programowanie mikrokontrolerów 8051 w języku C wpraktyce”, Wyd. BTC, Warszawa 2005.

25. Jabłoński T., Pławsiuk K.: „Programowanie mikrokontrolerów PIC w języku C”, Wyd. BTC, Warszawa 2005.

26. Baranowski R.: „Wyświetlacze graficzne i alfanumeryczne w systemach mikroprocesorowych”, Wyd. BTC, Legionowo 2008.

7.2. Dokumentacja w postaci plików PDF Wszystkie dokumenty w formacie PDF znajdują się na stronach producentów układów:

1. Atmel Corporation: www.almel.com

2. Analog Devices Inc.: www.analog.com

3. Microchip Technology Inc.: www.microchip.com

4. NXP Semiconductor: www.nxp.com

5. Samsung Electronics: www.samsung.com

6. Spansion Inc.: www.spansion.com

7. Cypress Semiconductor: www.cypress.com

8. Xilinx Inc.: www.xilinx.com

9. Lattice Semiconductor Corp. www.latticesemi.com