Reset μc i tryb specjalny testowania μc.
Sygnał służy do inicjalizacji pracy μc. Inicjalizacja polega najczęściej na wyzerowaniu licznika rozkazów, ustawienia go na początek wykonywania programu. Urządzenia we-wy i rejestry sterujące są ustawiane w tryb standardowy (spoczynku). Uniwersalne końcówki we-wy są ustawione jako wejścia o wysokiej impedancji, aby minimalnie wpływać na otoczenie μc. W innym przypadku po resecie może być czytany rejestr stanu określający tryb pracy μc, stany (poziomy) sygnałów na niektórych końcówkach, a następnie czytany adres początku programu znajdujący się w obszarze obsługi resetu.
ŹRÓDŁA SYGNAŁU RESET
zewnętrzny sygnał ;
zerowanie programowe przez ustawienie odpowiedniego bitu;
reset po włączeniu zasilania;
zerowanie wywołane przez ”watchdog”.
Np. MB89620
ustawia mod zawarty w ROM w komórce o adresie FFFDh;
pobiera reset vectors z adresu FFFEh i FFFFh;
pobiera instrukcję z adresu zawartego w reset vectors i wykonuje ją;
wykonuje następną instrukcję.
W przypadku resetu po włączeniu zasilania do pinu dołącza się układy zapewniające niski poziom sygnału bezpośrednio po włączeniu zasilania i po określonym czasie ustalający się do poziomu napięcia zasilania, np.:
Czas trwania sygnału zerowania określa się za pomocą RC.
Każdy μc posiada tryb testowy. Służy on do testowania końcówek na etapie produkcyjnym (u producenta μc).
Podczas pracy μc w systemie należy zapewnić taką konfigurację sygnałów aby nigdy nie wszedł w stan testowania (służy on tylko do testowania w fazie produkcji)
Np.: MB8850 series
Jeśli na pin O0 jest podawany sygnał Lo podczas niskiego poziomu na linii wówczas μc przechodzi w stan testowania (porty wyjściowe nie są zainicjalizowane).
Systemy przerwań i praca wielozadaniowa.
μc posiadają często rozbudowane systemy przerwań. Przerwania mogą być maskowane poprzez ustawienie odpowiadających im bitów w masce przerwań. W niektórych μc istnieją mechanizmy ich arbitrażu, ustawiania priorytetów przerwań itp.
Często danemu przerwaniu jest przypisany na stałe adres komórek, w których znajduje się
adres skoku do obsługi danego przerwania.
Możemy wyróżnić następujące źródła przerwań:
przerwania zewnętrzne;
przerwania wywołane stanem RESET;
przerwania od modułów wewnętrznych ( liczniki, przetworniki A/C itd. );
przerwanie programowe
Dla modułów wewnętrznych maskowanie przerwań odbywa się poprzez ustawienie odpowiednich bitów w rejestrach sterujących tych układów.
W układzie kontrolera przerwań możemy maskować te przerwania oraz dla przerwań zewnętrznych ustawiać sposób wyzwalania przerwania w zależności od potrzeb.
Można ustawić układ przyjmowania przerwań na: F15 (29)
zbocze narastające;
zbocze opadające.
W prostych μc maskowanie przerwań odbywa się poprzez ustawienie odpowiednich bitów w rejestrach sterujących μc
Np. μc MB89620 posiada rozbudowany kontroler przerwań, sterowany poprzez ustawianie odpowiednich opcji w 4 rejestrach oraz bogatą tablicę rejestrów przypisanych poszczególnym przerwaniom
Opis operacji wykonywanych podczas zaistnienia przerwania ( MB89620 )
Przerwanie jest generowane przez jakieś źródło przerwań.
Jeżeli przerwanie jest możliwe, przerwanie z wnętrza źródła jest przekazywane do kontrolera przerwań, który sprawdza czy w tym źródle jest ustawiony interrupt_enable bit.
Po sprawdzeniu tego i zaakceptowaniu, kontroler przerwań ustala priorytet ważności przerwań i następnie przesyła poziom przerwania do CPU.
CPU porównuje poziom przerwania z kontrolera przerwania z bitem IL (processor status register).
Jako rezultat kompresji, jeżeli priorytet poziomu przerwania jest wyższy niż. poziom ustawiony w rejestrze, I-flag jest ustawione w tym rejestrze.
Jeżeli I-flag jest możliwa dla przerwania , IL bit jest ustawiony na odpowiedź poziomu. Wykonywana instrukcja jest wstrzymywana, CPU wykonuje obsługę przerwania.
Kiedy źródło przerwania jest skasowane programowo podczas wykonywania obsługi , CPU czeka na kolejne przerwanie.
Warstwa wewnętrznych układów wejścia-wyjścia.
Jest warstwą ch-tyzującą typ danego μc. Ilość urządzeń oraz ich typ decyduje o profilu zastosowań danego układu. Warstwę tę należy postrzegać jako rodzaj biblioteki funkcji sprzętowych dostępnych w danym typie μc. Wszystkie układy są programowalne i charakteryzują się dużym stopniem autonomii w stosunku do procesora rdzeniowego. Zadania przekazane im do wykonania odpowiedni ni rozkazami, wykonywane są samodzielnie, bez zaangażowania czasu procesora. O ich zakończeniu procesor informowany jest wysłaniem przerwania lub ustawieniem odpowiedniego bitu w rejestrze stanu urządzenia.
Produkowane obecnie μc są wyposażone w bardzo różne zestawy rozbudowanych układów wej-wyj, w zależności od przeznaczenia danej rodziny μc :
rejestry wej-wyj; 14) interfejs równoległy;
sterowniki LCD; 15) gen. I odbiornik sygnału DTMF;
układy PLL; 16) dzielniki programowalne;
komparatory analogowe; 17) sterowniki VFD, VFT;
układy przerwań; 18) zegary czasu rzeczywistego;
interfejs szeregowy; 19) przetworniki C/A;
gen. sygnału OSD (z ang. On Screen Display ); 20) porty UART;
sterownik silnika krokowego; 21) liczniki „watchdog”;
liczniki programowalne; 22) dekoder sygnałów IRC;
sterowniki LED; 23) układy PLA;
układy generacji dźwięku;
przetworniki A/C;
liczniki PWM.
Od strony procesora układy wej-wyj programowane są za pośrednictwem magistrali wewnętrznej. Użycie funkcji realizowanej przez układy wej-wyj wymaga w większości przypadków połączenia go ze światem zewnętrznym przy pomocy warstwy multiplekserów i zacisków wej-wyj.
Pomiarowo zorientowane układy wej-wyj.
przetworniki A/C i C/A;
komparatory analogowe;
multipleksery analogowe ( asymetryczne i symetryczne );
liczniki pracujące w trybie PWM;
automatyczne liczniki pracujące w układzie pomiaru czasu, częstotliwości, okresu i fazy.
Porty równoległe.
Każdy μc jest wyposażony w zestaw portów równoległych, które na przemian z urządzeniami wewnętrznymi korzystają z tych samych pinów . Najczęściej port równoległy ( układ wej-wyj ) jest obsługiwany przez dwa lub trzy rejestry, których adresy znajdują się w obszarze pamięci RAM.
Np. MB89620 :
port dwukierunkowy posiada 2 rejestry:
PDRx - rejestr danych, do którego wpisuje i czyta się dane;
DDRx - rejestr kierunku „1” wyjście , „0” wejście danego pinu.;
2) port jednokierunkowy posiada jeden rejestr
PDR6 - rejestr danych do odczytu;
Rejestry sterujące bezpośrednio sterują buforami i multiplekserami, określającymi kierunek przesyłania danych. Np. RIC86C71 posiada dwukierunkowy port RA podzielony na RA0-RA3, RA4 oraz port RB0-RB3, RB4-RB7;
Np. COP8780 posiada:
Porty L,G,C - dwukierunkowe ( rejestry konfiguracyjny i danych );
Porty D - wyjściowy \
Porty I - wejściowy / REJESTR DANYCH
Przetworniki A/C.
Zdecydowana większość przetwornika A/C pracuje w trybie kompensacyjnym ze sprzężeniem zwrotnym. Z reguły dokonują one 8-bitowej konwersji, do rzadkości należą przetworniki 10-bitowe. Przetworniki te konstruowane są jako bloki w pełni autonomiczne, mogące pracować niezależnie od procesora rdzeniowego. Posiadają własne układy sterowania, generatory ( lub niezależne dzielniki ) sygnałów zegarowych, z reguły współpracują z 4-8 kanałowymi multiplekserami i układami S&H.
Ze względu na problemy natury technologicznej wewnętrzne przetworniki A/C nie osiągają zwykle rozdzielczości większej niż 8 bitów. W praktyce parametry przetwornika o ch-tyce przedstawionej na rysunku określają:
długość słowa ( typowo 8 bitów);
czas konwersji ( typowo od kilku do kilkunastu μs );
rozdzielczość ( zwykle 1 LSB ~ 20 mV przy zakresie 5V );
błąd nieliniowości ( ang. Linearity error ) ~ (+/- 1 LSB );
różnicowy błąd nieliniowości ( ang. Differential linearity error ) ~ (+/- 0.9 LSB );
Dane w nawiasach dotyczą przetwornika MB 88636 i są typowe. Stąd wynika, mimo deklarowanego p. 8-bitowego, biorąc pod uwagę wszystkie składniki błędu, jedynie 7 bitów jest wydobywane z wystarczającą dokładnością.
Typowy przetwornik składa się z następujących bloków :
MUX - multiplekser 4-8 wejściowy;
przetwornik C/A, drabinka R-2R zasilana z zewn. Źródła napięcia;
komparator;
układ Sample&Hold przed komparatorem;
układ kontrolno-sterujący;
rejestr danych ADCD - zawierający wynik;
rejestr sterujący ADC;
selektor wyboru częstotliwości sygnału próbkującego.
Np. MB89620. jest to przetwornik 8-bitowy A/C z sukcesywną aproksymacją. Przetwornik uruchamia się programowo. Rezultat jest zawarty w ADCD register. Przetwornik cechuje się:
18μs czasem konwersji ( przy 10 MHz );
zakończeniem detekcji poprzez przerwanie lub programowe ustawienie;
wewnętrzny układ Sample&Hold;
opcję porównania ( komparacji );
start poprzez zewnętrzny sygnał.
Tryb pracy przetwornika, wybór kanału jest ustalany przez rejestry ADC1, 2. Dane wyjściowe są dostępne po zakończeniu procesu przetwarzania w rejestrze ADCD.
Może pracować w dwóch podstawowych trybach.
A/D mode:
a) Start następuje poprzez wpisanie 1-ki do bitu AD, lub dodatnim zboczem;
b) Restart. Konwersja może nastąpić zawsze po przetworzeniu.
c) konwersja jest zakończona po 18μs ( 44 instruction cycles przy 10 MHz ) ustawieniem flagi albo wysłaniem przerwania.
Sense mode
a) Start. Ustawienie trybu. Ustawienie „1” w AD bit lub narastające zbocze sygnału wybranego przez bit ADCK zaczyna konwersję.
b) rezultat - napięcie analogowe wejścia analogowego jest porównywane z napięciem ustawionym przez program. Kiedy warunek ustawiony przez SIFM jest spełniony, ustawiana jest flaga i wysłane przerwanie.
c) koniec. W sense mode , ADI interrupt flag nie jest ustawiana zawsze, jeżeli konwersja jest zakończona. Jednakże CPU może zmienić koniec konwersji jeżeli ADMV bit jest ustawiony na 0.
Dla rozbudowanych przetworników organizacja pracy polega na zaprogramowaniu ( sposobu ) poszczególnych jego funkcji:
wybór kanału multipleksera;
wybór sposobu synchronizacji pracy przetwornika z programem;
wybór trybu pracy : pomiar pojedynczy lub pomiary ciągłe;
wybór częstotliwości przetwarzania cyklu przetwarzania;
wybór trybu przetwarzania : przetwarzanie A/C lub komparatora;
wybór warunku komparacji.
Reasumując, możliwe są następujące możliwe tryby pracy przetwornika:
przetwarzanie pojedyncze na rozkaz procesora;
przetwarzanie ciągłe z max. częstotliwością;
przetwarzanie ciągłe z częstotliwością ustalaną wg. programowalnego dzielnika;
komparacja pojedyncza na rozkaz procesora;
komparacja ciągła z max. częstotliwością ;
komparacja ciągła z ustaloną częstotliwością wg. programowalnego dzielnika
synchronizacja programowania lub przetwarzania.
Niektóre przetworniki wyposażone są w niezależne rejestry danych dla poszczególnych kanałów pomiarowych. Umożliwia to ciągłe śledzenie ( ang. Scanning ) napięć w różnych kanałach.
Układy licznikowe.
μc są wyposażone w uniwersalne i autonomiczne zestawy liczników/dzielników, mogące generować dowolne złożone sekwencje binarne z dokładnością kwarcowego zegara sterującego całym sterownikiem. Układy dystrybucji sygnałów zegarowych pozwalają nawet na programowanie i utrzymanie stałych przesunięć fazowych pomiędzy generowanymi sekwencjami.
Podstawowa zasadą jest wyposażenie układów licznikowych w 1 lub 2 rejestry pomocnicze, układy bramkujące i wstępne dzielniki częstotliwości sygnału zegarowego, które wraz z odpowiednimi układami sterującymi pozwalają na :
automatyczne ładowanie do licznika nowej wartości po przepełnieniu ( tryb „auto reload” );
przechwyt bieżącej wartości licznika na sygnał z zewnątrz ( tryb „capture in” );
automatyczne ładowanie licznika zawartością kolejnych rejestrów pomocniczych ( tryb PWM ).
Dzięki takiej konstrukcji moduły licznikowe mogą służyć do :
generacji impulsów o precyzyjnie programowanej długości;
generacji sygnałów PWM;
generacji sygnałów o określonej częstotliwości;
równoległej generacji złożonych binarnych sekwencji sterujących o precyzyjnie programowanych czasach i fazie;
pomiaru czasu, okresu i fazy;
pomiaru częstotliwości i stosunku częstotliwości.
Możliwości te powodują, że różnorodne moduły liczników należą do najbardziej wszechstronnych i najczęściej spotykanych układów składowych μc.
Zastosowania liczników.
dzielnik częstotliwości;
liczniki zdarzeń;
pomiar czasu;
pomiar częstotliwości;
pomiar fazy;
przetworniki A/C;
przetworniki C/A z sygnałem PWM ( wartość średnia sygnału ) - „integracyjny przetwornik C/A”;
Np.
MB89620 posiada : 8 - bitowy PWM Timer, Pulse-with Count Timer, 16-bit Timer/Counter
Interfejsy szeregowe
Interfejs RS-232 i pochodne.
Przewidziane są one zazwyczaj do zapewnienia łączności μc z komputerem PC lub innym μc.
μc wyposażone są w rozbudowane układy UART posiadające własne generatory sygnałów odniesienia, bufory, dekodery kodów sterujących, mogące pracować w trybie DUPLEX z protokołem potwierdzeń sprzętowych i Xon/Xoff. W praktyce jednak nie spotyka się zewnętrznych mikroukładów wyposażonych w ten system interfejsowy. Nie może więc on być traktowany jako platforma rozszerzenia mikrosystemu, lecz jedynie jako interfejs dedykowany budowie specjalizowanego łącza.
Interfejs I2C
Interfejs I2C mikrokontrolera 80C552 może pracować zarówno w trybie urządzenia nadrzędnego jak i podrzędnego, gwarantując pracę z szybkością transmisji do 100kbod. Do sterowania interfejsem służą następujące rejestry: S1CON - D8h - rejestr sterujący, S1STA - D9h - rejestr stanu, S1DAT - DAh - rejestr danych, S1ADR - DBh - rejestr adresowy.
Rejestr |
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
S1CON |
CR2 |
ENS1 |
STA |
STO |
SI |
AA |
CR1 |
CR0 |
S1STA |
SC4 |
SC3 |
SC2 |
SC1 |
SC0 |
0 |
0 |
0 |
S1ADR |
SA7 |
SA6 |
SA5 |
SA4 |
SA3 |
SA2 |
SA1 |
GC |
S1CON:
ENS1 - bit zezwalający na pracę interfejsu
STA - bit sygnału początku transmisji
STO - bit sygnału końca transmisji
SI - wskaźnik przerwania od interfejsu I2C
AA - bit określający aktywność interfejsu
CR2, CR1, CR0 - bity ustalające częstotliwość sygnału taktującego wysyłanego linią SCL przy pracy interfejsu w trybie urządzenia nadrzędnego
S1STA:
SC4, SC3, SC2, SC1, SC0 - bity kodu stanu interfejsu
Rejestr S1DAT zawiera informację przeznaczoną do przekazania na szynę. Podczas wyprowadzania informacji z tego rejestru, na miejsce poszczególnych bitów jest wpisywany aktualny stan linii. W wyniku tego po przesłaniu zawartości rejestru na jej miejscu pojawia się informacja, która rzeczywiście pojawiła się na szynie.
Po wykonaniu każdej operacji (wysłanie lub odebranie informacji lub sygnałów sterujących) modyfikowana jest zawartość rejestru S1STA. Poniższe tabele zawierają opis poszczególnych stanów
.
Kody stanu w trybie odbioru jako urządzenie nadrzędne
Kod stanu |
Stan interfejsu i szyny |
08h |
Wysłano sygnał START |
10h |
Wysłano powtórny sygnał początku transmisji (START zamiast STOP) |
18h |
Wysłano adres urządzenia i bit nadawania, i odebrano potwierdzenie |
20h |
Wysłano adres urządzenia i bit nadawania, i odebrano brak potwierdzenia |
28h |
Wysłano bajt danych i odebrano potwierdzenie |
30h |
Wysłano bajt danych i nie odebrano potwierdzenia |
38h |
Utrata kontroli nad szyną podczas nadawania |
Tab. 4. Kody stanu w trybie odbioru jako urządzenie podrzędne
Kod stanu |
Stan interfejsu i szyny |
60h |
Odebrano własny adres i bit nadawania, i wysłano potwierdzenie |
68h |
Utrata kontroli nad szyną podczas nadawania adresu i bitu kierunku, Odebrano własny adres i bit zapisu, i wysłano potwierdzenie |
70h |
Odebrano adres wywołania ogólnego i wysłano potwierdzenie |
78h |
Utrata kontroli nad szyną podczas nadawania adresu i bitu kierunku, Odebrano adres wywołania ogólnego i wysłano potwierdzenie |
80h |
Interfejs został zaadresowany, odebrano dane i wysłano potwierdzenie. |
88h |
Interfejs został zaadresowany, odebrano dane i wysłano brak potwierdzenia |
90h |
Interfejs został zaadresowany adresem wywołania ogólnego, Odebrano dane i wysłano potwierdzenie |
98h |
Interfejs został zaadresowany adresem wywołania ogólnego, Odebrano dane i wysłano brak potwierdzenia |
A0h |
Odebrano sygnał STOP, lub powtórny sygnał początku transmisji (START zamiast STOP) podczas pracy jako zaadresowane urządzenie podrzędne |
Tab. 5. Kody stanu w trybie nadawania jako urządzenie podrzędne
Kod stanu |
Stan interfejsu i szyny |
A8h |
Odebrano własny adres i bit odbioru, i wysłano potwierdzenie |
B0h |
Utrata kontroli nad szyną podczas nadawania adresu i bitu kierunku, Odebrano własny adres i bit odbioru, i wysłano potwierdzenie |
B8h |
Wysłano dane i odebrano potwierdzenie |
C0h |
Wysłano dane i odebrano brak potwierdzenia |
C8h |
Wysłano ostatni bajt danych (AA=0) i odebrano potwierdzenie |
Tab. 6. Kody stanu w niejednoznacznych stanach interfejsu
Kod stanu |
Stan interfejsu i szyny |
00H |
Błąd transmisji wskutek niedozwolonego sygnału STOP lub START, Lub wejście interfejsu w stan nieokreślony w wyniku zakłóceń |
F8H |
Brak informacji o stanie interfejsu (nie jest ustawiany wskaźnik przerwania SI) |
Synchroniczny interfejs szeregowy SMI.
Model systemu komunikacyjnego.
Protokół transmisji synchronicznej ( w najprostszej postaci ) wymaga dwóch rejestrów przesuwnych połączonych w licznik pierścieniowy ( wej. jest połązcone z wyj. ). Transmisja jest synchroniczna - jeden z układów dostarcza sygnału zegara, odseparowanego od sygnału danych, zgodnie ze zboczami zegara taktującego. Układ generujący sygnał zegara jest określony jako nadrzędny ( ang. Master), bez względu na to czy dane są przez niego nadawane czy odbierane. Wszystkie pozostałe układy na magistrali są określone jako podrzędne ( ang. Slave). Sygnały danych i zegara są przesyłane oddzielnymi jednokierunkowymi liniami. Sygnał zegara nie jest ciągły, nadawany jest jedynie w czasie trwania transmisji. Umożliwia to odbiór poszczególnych bitów danych bez konieczności testowania bitów startu i stopu, ch-tycznego dla transmisji asynchronicznej.
Przez wprowadzenie dodatkowych przerzutników Q0 na wejściu rejestru przesuwnego oraz inwerterów negujących ich sygnał zegarowy, likwiduje się przekłamania transmisji wynikające ze zmniejszenia wymaganego czasu podtrzymania danych ( ang. Data hold time ), spowodowanego przesunięciami czasowymi. Dzięki temu rozwiązaniu dane są wpisywane do rejestru jednym zboczem zegarowym, a przesuwane drugim. Zwiększa to czas podtrzymania danych odbiornika do:
1/2TCLK - td gdzie TCLK - okres zegara, td - opóźnienie magistrali
8-bitowy interfejs Microwire :
Rejestry : SDR - Rejestr danych, ang. Serial-data register,
SMR - Rejestr sterujący, ang. Serial-mode register.
Układy wyposażone w SMI są wewnętrznie programowane i sterowane przy pomocy rejestrów równoległych. Dane przeznaczone do wysłania są ładowane przed transmisją do rejestru szeregowego z rejestru równoległego. Zawartość rejestrów szeregowych jest wymieniana między urządzeniami podczas transmisji, a następnie dane odebrane są przesyłane z rejestru szeregowego do odpowiedniego rejestru równoległego. Operacje przesłania danych pomiędzy rejestrami równoległymi a szeregowymi rejestrami transmisyjnymi są wywoływane przy pomocy dodatkowych linii sterujących.
Operacje przesyłania pomiędzy tymi rejestrami mogą być wywołane w dwojaki sposób:
poprzez uaktywnienie dodatkowej linii sterującej oznaczonej najczęściej jako „wybór układu” - -
- CS (ang. Chip select ), „pisz”, „czytaj”, „rozkaz” lub podobne;
poprzez ustawienie odpowiedniego bitu w odpowiednim rejestrze sterującym ( dla μc ). Dodatkowo w μc przesłanie z rejestru transmisyjnego do równoległego, po odebraniu danej, odbywa się najczęściej automatycznie. Fakt ten jest sygnalizowany odpowiednią flagą.
Właściwości układu z punktu widzenia interfejsu mogą być opisane przy pomocy 3 funkcji :
Talker - przesyła zawartość rejestru równoległego do szeregowego, przesuwa i wysyła dane z rejestru szeregowego ( wymaga sygnałów „adres/sterowanie”, „wejście danych”, „zegar” );
Listener - wczytuje dane odbierane od rejestru szeregowego, po zebraniu całego słowa przepisuje je do rejestru równoległego ( wymaga sygnałów: „adres/sterowanie”, „wejście danych”, „zegar” );
Repeater - bez względu na tryb transmisji sygnału „adres/sterowanie” dane wejściowe są wpisywane do rejestru szeregowego, przesuwane i wysyłane ( wymaga sygnałów: „wej. danych”,
„wyj. danych” i „zegar” )
Maksymalna konfiguracja zawiera z reguły wszystkie trzy wymienione funkcje, ale w praktyce spotyka się wszystkie możliwe ich kombinacje. μc z reguły maja możliwość generacji sygnału zegarowego, a ich jednostki interfejsowe mogą pracować tak w trybie „master”, jak i „slave”.
Warianty strobowania/przesuwania informacji.
Cechą wyróżniającą różne wersje interfejsów szeregowych jest wzajemna relacja pomiędzy sygnałami danych a sygnałem zegarowym.
Decydują o niej 2 parametry:
polaryzacja sygnału zegarowego ( 0 lub 1 )
faza sygnału zegarowego ( 0 lub 1 )
Polaryzacja sygnału zegarowego jest określona przez wartość logiczną sygnału zegara w stanie spoczynkowym ( poza czasem transmisji )
Cpol = 0 - sygnał zegara w stanie spoczynkowym Lo;
Cpol = 1 - sygnał zegara w stanie spoczynkowym Hi;
Faza sygnału zegarowego definiuje zależność pomiędzy zboczami sygnału zegarowego a momentami próbkowania danych wejściowych; przesuwania zawartości rejestru ( wysłania danych wyjściowych )
Cpha = 0 - pierwsze zbocze sygnału zegarowego próbkuje dane wejściowe, drugie zbocze przesuwa dane w rejestrze ( dane są próbkowane a następnie przesuwane i wysyłane );
Cpha = 1 - pierwsze zbocze sygnału zegarowego przesuwa dane w rejestrze, drugie zbocze próbkuje dane wejściowe ( dane są przesuwane i wysyłane, a następnie próbkowane i wpisywane na wejście rejestru ).
Konfiguracje systemowe interfejsu SMI.
Jest jednym z nielicznych standardów interfejsowych, w którym można tworzyć wszystkie 3 konfiguracje:
systemy gwiazdowe
magistralowe;
pętlowe.
Systemy 1) i 2) mogą być budowane z układów wyposażonych w funkcje Listener i Talker.
Do budowy systemów pętlowych wymagana jest dodatkowo funkcja Repeater. Linie CS służą do adresowania układów lub wysyłania odpowiednich rozkazów. Adresowanie układów jest w większości dokonywane przy pomocy dodatkowych indywidualnych linii. Niektórzy wytwórcy proponują rozwiązania, gdzie ciąg danych wysłanych do układu zawiera adres logiczny w formie bitów identyfikujących ( ukł. rodziny NSP firmy Huges Microelectronics, układy matryc przetworników C/A firm Maxim i Micro Power System ).
Dodatkowo dane przesyłane mogą mieć długość 4-bitową, 8-bitową lub n-bitową ( do sterowania zewn. układami ), wypełnienie około 1/2 .Kolejność przesyłania bitów może być od nr bitu=0 do 7,czyli LSB do MSB lub odwrotnie, czyli MSB do LSB ( μc mają obcje zmiany porządku transmisji ). Szybkość transmisji nie przekracza najczęściej 1 - 2 Mbps. Różne firmy stosują różne warianty Cpol i Cpha . Wytwórcy układów peryferyjnych w większości preferują opcję protokołu Cpol = 0, Cpha =0.
Np. COP98780 posiada standard MICROWIRE z Cpol i Cpha równą zero; rozszerzeniem jest MICROWIRE/PLUS z możliwością wyboru fazy sygnału zegara. Polaryzację ( jej zmianę) można dokonać przez umieszczenie inwertera.
8-bitowy interfejs SMI.
Np. MB89620 posiada dwa 8-bitowe, sprzętowe interfejsy SMI.
Charakteryzuje je niezależność od procesora, możliwość wyboru szybkości transmisji, możliwość pracy z własnym zegarem ( tryb „master” ) lub z zegarem zewnętrznym (tryb „slave” ). Transmisja danych wykonywana jest automatycznie a procesor odbiera jedynie przerwanie sygnalizujące jej zakończenie lub odczytuje flagę zakończenia transmisji w rejestrze sterującym
Realizacja protokołu transmisji przez interfejs SMI.
Często komunikację pomiędzy sterownikiem opartym na μc a komputerem PC można zorganizować w trybie „master-slave”, gdzie układem sterującym jest komputer PC. Bez jakiegokolwiek nakładu sprzętowego układem sterującym jest interfejs SMI możemy realizować software'owo, wykorzystując
port równoległy. Potrzebne są do tego trzy linie wyjściowe i jedna wejściowa portu równoległego komputera.
Medium fizyczne połączenia komputer-sterownik stanowi 4-żyłowy przewód. Oprócz przewodów SO ( Serial Output ), SI ( Serial Input ), SCK ( Serial Clock ) wykorzystuje się dodatkowy przewód CS ( Chip Select ). Sygnał ten stosowany jest do zainicjowania połączenia oraz synchronizacji wstępnej przy komunikacji. Właściwą synchronizację początku przesyłania poszczególnych bajtów danych komunikatu zorganizowano metodą zgłaszania potwierdzeń do gotowości odbioru/nadawania przy wykorzystaniu dwóch linii interfejsowych ( SO, SI ), które na etapie synchronizacji całkowicie zmieniają swoje funkcje.
Opis czynności wykonywanych przez komunikujące się jednostki w poszczególnych fazach transmisji :
Układ „master” zgłasza chęć transmisji przez wygenerowanie opadającego zbocza na linii CS i oczekuje na potwierdzenie przyjęcia zgłoszenia przez układ „slave”, cyklicznie próbkując własna linię SI ( dla „slave” SO ) do momentu wykrycia niskiego poziomu napięcia.
Układ „slave” zgłasza na SO gotowość do transmisji niskim poziomem sygnału. Po zgłoszeniu gotowości cyklicznie sprawdza stan linii SI do momentu potwierdzenia ( niskim poziomem sygnału );
Po otrzymaniu sygnału gotowości układu „slave” do transmisji, układ „master” potwierdza odebranie gotowości niskim poziomem na SO. Niski stan tej linii utrzymywany jest przez czas T1 , nie krótszy niż czas potrzebny na deklarację linii ( czas wykonania 15 instrukcji w kontrolerze ) oraz czas przeprogramowania znaczenia SO μc na wyjściu interfejsu.Po odebraniu potwierdzenia gotowości do transmisji kontroler przeprogramowuje znaczenie pinu SO na wyjściu i przechodzi w stan oczekiwania na zakończenie transmisji.
Transmisji danych. Kontroler oczekuje na koniec transmisji pojedynczego bajtu.
Układ „master” wprowadza niewielkie stałe opóźnienie (t2), w czasie którego „slave” μc przeprogramowuje znaczenie linii SO na wyj. portu i wymusza na nim wysoki poziom sygnału.
Jeśli przetransmitowano ostatni bajt to „master” zmienia stan linii CS na „1”, w przeciwnym wypadku powtarzają się czynności układów 1)-5) za wyjątkiem ponownej generacji CS. Protokół ten umożliwia implementację komend wielobajtowych oraz uniezależnić pewność transmisji od szybkości zastosowanego μk PC.
Sygnał CS jest podłączony do wejścia przerwaniowego. Opadające zbocze jest przyczyną przerwania zewnętrznego w μc, które obsługuje transmisję szeregową. Obydwa algorytmy - na μc i PC muszą być ze sobą zsynchronizowane
Format poszczególnych komend:
readbyte - <bajt1.wej> <bajkt2.wej> <bajt3.wyj>
bajt1 - starszy nibl zawiera kod rozkazu, młodszy nibl zawiera starszą część adresu
bajt2 - młodszy bajt adresu
bajt3 - dana przesyłana do PC
readbyteinc - <bajt1.wej> <bajt2.wyj>
bajt1 - kod rozkazu
bajt2 - dane przesyłane do PC
writebyte - <bajt1.wej> <bajt2.wej> <bajt3.wej>
writebyteinc - <bajt1.wej> <bajt2.wej>
wej - wyj - zpunktu widzenia μc.
Mikromoduły zewnętrzne.
Do komunikacji z układami peryferyjnymi stosuje się współcześnie interfejsy szeregowe standardu SMI. Transmisja równoległa pozwala na osiągniecie większych szybkości, natomiast transmisja szeregowa wymaga mniej linii połączeniowych, mniej dodatkowych układów, charakteryzują ja łagodniejsze wymagania czasowe, układy transmisyjne zajmują mniej miejsca i zacisków we/wy układu scalonego.
Mikroukłady współpracujące z μc programowane szeregowo :
przetworniki A/C;
klucze analogowe;
Timery;
liczniki, dzielniki;
pamięci EEPROM;
dekada C;
dekada R;
sterowniki LCD;
multipleksery analogowe;
półprzewodnikowe DIP-switche;
układy PLL;
sterowniki LED;
Kodery/dekodery
przetwornik C/A
generatory sin/cos
Powyższe układy pozwalają na realizację mikrosystemu pomiarowego, spełniającego praktycznie każde postawione zadanie.
Przykładowo, dla firmy National Semiconductor μc COP800 i HPCTM posiadają μnterfejs MICROWIRE/PLUS z wykorzystaniem którego można budować całe systemy, cechujące się elastycznością, łatwym projektowaniem i niskim kosztem realizacji. Zewnętrzne układy są również produkowane przez tą firmę i dedykowane dla tych rodzin.
Przykładowo firma dostarcza następujące układy:
AID converters and comparators;
Display drivers;
memory devices;
telecom devices;
audio & radio devices.
Formaty danych mikromodułów zewnętrznych.
Bitowe ciągi danych transmitowane interfejsem SMI nie maja ustalonej długości. Ulega ona zmianie, nawet przy transmisjach do tego samego układu scalonego. 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. Wysyłany po transmisji danych sygnał zapisu przepisze do wnętrza układu N bitów znajdujących się w rejestrze odbiorczym. μc może więc zaokrąglić długość wysyłanego słowa do następnej wielokrotności liczby 8.
Przy układach bardziej złożonych niezbędne jest określenie prostej metody pozwalającej na prawidłowe wykrycia początku i końca danych. Może być do tego celu wykorzystany fakt taktowania każdego bitu impulsem zegarowym na linii SK.
Aktualna długość słowa jest w tym przypadku równa ilości impulsów zegarowych. Rozwiązanie to może być kłopotliwe do stosowania w przypadku, gdy μc posiada autonomiczną jednostkę SMI, pozwalającą jedynie na wysyłanie ciągów binarnych będących wielokrotnością bajtu. Rozwiązaniem tego problemu jest wprowadzenie do formatu danych bitu startu. Czyli układ pomija kolejno przychodzące bity dopóki nie pojawi się pierwsza jedynka.
Techniki adresowania i sterowania.
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.
Najczęstszą techniką adresowania, w przypadku układów pojedynczych , jest wydzielenie jednej linii adresującej układ (CS). Pobudzenie tej linii jest jednoznaczne z zaadresowaniem układu do udziału w transmisji.
Gdy układ składa się z wielu niezależnie programowanych bloków, adres jest wówczas przesyłany w postaci kodu wespół z danymi.
Np. matryca ośmiu 14-bitowych przetworników C/A typu MP7610.
Pamięci nieulotne.
Jednym z częściej spotykanych modułów zewnętrznych jest jednostka pamięci nieulotnej EEPROM. Pamięć tego typu pozwala na indywidualna linearyzację charakterystyk czujników, zbieranie danych pomiarowych, parametryzację wbudowanych algorytmów itd.
F31 (65) (66)
Typowym przedstawicielem może być tu rodzina układów 93LCS46/56/66 firmy Microchip.
Pamięć 93LC566 posiada następujące parametry:
pojemność 4 kB;
organizacja 256x16;
zautomatyzowane procedury zapisu i kasowania;
pojedyncze napięcie zasilania, min 2V, max 6V;
ponad 1000 000 gwarantowanych cykli kasowania/zapisu;
czas przechowywania danych > 10 lat;
pobierany prąd:
1mA - typowy prąd podczas pracy;
5μA - prąd spoczynkowy przy 3.0V
Układ jest przykładem modułu inteligentnego. Pamięć sama wykonuje operację kasowania, zapisu i odczytu informacji. Do sterowania pamięcią stałą służy 12 podstawowych rozkazów:
READ - czyta dane zachowane w pamięci, zaczynając od wyspecyfikowanego adresu (10 μs)
EWEN - odblokowanie zapisu ( 6 μs );
ERASE - kasuje dane spod wybranego adresu jeżeli adres jest niechroniony ( 4ms)
ERAL - kasuje wszystkie rejestry do „FF”. ( 8 ms );
WRITE - zapisz do rejestru, jeżeli adres jest niechroniony ( 4 ms);
WRAL - zapisz do wszystkich rejestrów;
EWDS - zablokowanie zapisu ( 6 μs );
PRREAD - czytaj adres zachowany w Protect Register;
PREN - występuje po PRCLEAR, PRWRITE, i PRDS;
PRCLEAR - wykasowanie rejestru protekcji tak, że wszystkie dane są niechronione;
PRWRITE - programuje adres wewnątrz Protect Register. Po tym adresowanie pamięci większej niż lub równej głównemu adresowi w Protect Register jest chroniona przed zapisem.
PRDS - instrukcja, po której adres w Protect Register nie może być zmieniony ( rozkaz można wykonać tylko raz ). F31 (65)
Rozkazy, adresowanie i zapis danych jest wprowadzany do wejścia DI na narastające zbocze zegara (CLK). DO pin jest normalnie trzymany w high-Z stanie, z wyjątkiem operacji czytania z urządzenia lub kiedy jest testowanie ready/busy status podczas operacji programowania. Status ready/busy może być sprawdzany podczas Erase/Write operacji przez odpytywanie pinu DO. DO w niskim stanie wskazuje, że programowanie nie zostało zakończone, natomiast kiedy DO jest w stanie wysokim, urządzenie jest gotowe. DO powróci do high_Z state na opadające zbocze sygnału CS.
Ochrana danych.
Podczas włączenia zasilania wszystkie tryby programowe wykonywanych operacji są zablokowane dopóki Vcc przekroczy poziom napięcia większy niż 1.4V. Podczas wyłączenia „obwód ochrony danych” wykonuje blokadę wszystkich trybów programowych kiedy Vcc spadnie poniżej 1.4V.
Komendy EWEN i EWDS dają dodatkową możliwość ochrony danych podczas wykonywania operacji w normalnym trybie. Po włączeniu zasilania urządzenie wchodzi automatycznie w tryb EWEN. Czyli musi być wykonana instrukcja EWEN zanim zostaną wysłane jakieś instrukcje ERASE lub WRITE i mogą być wykonane.
Opis końcówek.
CHIP SELECT (CS):
Wysoki poziom na końcówce wybierze urządzenie, niski poziom czyni je nieaktywnym i wprowadza w tryb oczekiwania. Jednakże stan w pinie ma dodatkowe zastosowanie. Jeżeli CS jest wprowadzone w niski stan podczas cyklu programowego, urządzenie przejdzie w stan oczekiwania, jak również cykl programowania jest zakończony i kompletny.
CS musi być LOW przez 250ns ( minimum) ( TCSL ) pomiędzy wykonywanymi instrukcjami. Jeżeli CS jest LOW wewnętrzny układ kontrolny jest w stanie RESET.
Serial Clock ( CLK ):
CLK jest używany do synchronizacji pomiędzy nadrzędnym urządzeniem a 93LCS66. Kody, adresy i bity danych są synchronizowane dodatnim ( narastającym ) zboczem sygnału CLK.
CLK może być zatrzymane w którymkolwiek momencie transmisji ( przy wysokim lub niskim poziomie ) i może być kontynuowane w każdej chwili. Daje to możliwość układowi nadrzędnemu
wolność w przygotowaniu kodów, adresów i danych.
CLK nie daje żadnych efektów, jeżeli CS jest LOW ( urządzenie niewybrane ). Jeżeli CS jest high, ale start warunek nie został wybrany, zegar nie daje żadnego efektu zanim urządzenie nie zmieni stanu.
Data In (DI).
DI jest używana do przesyłania bitu STARTU , kodu, adresu i danych synchronizujących z CLK wejściem.
Data Out (DO).
DO jest używana w trybie READ i PREREAD do synchronicznego wysyłania danych z wejściem CLK.
Ten pin również dostarcza READY/BUSY informację statusową podczas ERASE i WRITE cyklach.
Informacja statusowa READY/BUSY jest możliwa do odbioru na pinie DO, jeżeli CS zostało wyprowadzone ze stanu Low do High po minimalnym czasie wyboru chip'u ( TCSL ) i operacje ERASE lub WRITE zostały zainicjalizowane.
Program Enable (PE):
Ten pin powinien być ustawiony w high w trybie programowania lub kiedy Protect Register wykonuje instrukcje programowania.
Protect Register Enable (PRE):
Ten pin powinien być ustawiony w stan high, kiedy są wykonywane wszystkie instrukcje dotyczące Protect Register. Zatem, dla normalnych operacji musi on być w stanie Low.
Układ do sterowania wyświetlaczem ciekłokrystalicznym (LCD).
COP472-3 Liquid Crystal Display Controller
Jest on członkiem peryferyjnym rodziny COPSTM, wyprodukowanym w technologii CMOS. Sterownik COP472-3 steruje wyświetlaczem ciekłokrystalicznym (LCD). Dane są czytane szeregowo i trzymane w wewnętrznych rejestrach zatrzaskujących. Do układu dołącza się oscylator, dzięki czemu układ generuje wszystkie niezbędne sygnały do sterowania wyświetlaczem. Jeden układ może sterować 36 segmentami wybranymi jako 3x12 (41/2 cyfry). Dwa takie układy mogą być użyte razem do wysterowania 72 segmentów (3x24), które mogą wysterować 81/2 cyfry.
Cechy:
kierunek interfejsu do TRIPLEX LCD;
niska konsumpcja mocy (typowo 100μW);
niski koszt;
kompatybilny ze wszystkimi procesorami COP400;
nie potrzebuje odświeżania od procesora;
posiada dołączony oscylator i rejestry typu latch;
możliwość rozszerzania długości wyświetlacza;
programowo kompatybilne z COP470 V.F. Display Driver chip;
wykonuje operacje przy poziomie napięć wyświetlacza;
posiada MICROWIRETM kompatybilne z układami szeregowymi I/O;
układ 20 końcówkowy.
Zakres dopuszczalnych napięć:
- napięcie na CS,DI,SK : −0,3V do +9,5V
- napięcie na pozostałych pinach : −0,3V do +0,3
COP472-3 steruje 36 bitami wyświetlacza zorganizowanymi jako dwanaście segmentów i trzy kropki. Układ żąda dostarczenia do niego 40 bitów informacji :
36 danych i 4 bity rozkazu. Format wyświetlanej informacji jest zależny od wewnętrznych połączeń pomiędzy segmentami w wyświetlaczu LCD. W typowym połączeniu układ steruje 4 cyframi składającymi się z 9 segmentów.
Dwa lub więcej układów może być połączonych kaskadowo do sterowania dodatkowymi segmentami. Teoretycznie nie ma żadnych ograniczeń na liczbę układów, które mogą być użyte do wyświetlania danej sekwencji liczb.
SEGMENT DATA BITS:
Dane są wprowadzane szeregowo, po osiem bitów. Ustawienie każdego segmentu danych posiada właściwy format.
Dana jest przesuwana wewnątrz ośmiobitowego rejestru przesuwnego. Pierwszy bit danych jest dla segmentu H, cyfra 1. Ósmy bit jest dla segmentu A, cyfra1. Pierwszy bajt (ustawienie) jest przesuwany i wpisywany do pierwszego rejestru latch. Drugi bajt jest wpisywany do drugiego rejestru, trzeci do trzeciego i czwarty do czwartego rejestru zatrzaskującego.
CONTROL BITS:
Pięć ustawień z ośmiu bitów danych posiada specjalny segment danych i steruje danymi według odpowiedniego formatu.
Pierwsze cztery bity mają specjalny rodzaj sterowania danymi. Piąty bit nie jest używany. Szósty i siódmy bit programują układ jako pracujący w trybie pojedynczym lub jako master lub slave dla konfiguracji kaskadowej. Pin BPC układu master jest połączony do BPA każdego układu slave. Funkcja bitów 6 i 7 jest przedstawiona w tabeli.
Ósmy bit jest używany do synchronizacji dwóch COP472-3 podczas sterowania przez nie 81/2 cyfrowym wyświetlaczem.
Opis poszczególnych kroków wykonywanych dla sterowania wyświetlaczem 41/2:
ustawić niski stan na linii ;
wprowadzić w ośmiu bitach daną do (jako) cyfrę 1;
wprowadzić ośmiobitową daną do cyfry 2;
wprowadzić ośmiobitową daną do cyfry 3;
wprowadzić ośmiobitową daną do cyfry 4;
wprowadzić osiem bitów danej do specjalnego segmentu i kontroli funkcji pinów
BPC i BPA:
ustawić wysoki stan na linii .
UWAGA: nie powinien być ustawiony w stan high po każdym kroku.
Np.: do wpisania tylko 2 cyfr danych, wykonać kroki 1, 2, 3 i 7.
musi przejść z wysokiego do niskiego stanu przed czytaniem
danych, gdyż wówczas następuje reset wewnętrznego licznika.
F38 (79)
Opis kroków wykonywanych dla sterowania wyświetlaczem 81/2:
ustaw niski poziom dla obu COP472-3;
prześlij w 32 bitach dane do czterech cyfr układu slave;
prześlij w 4 bitach danych specjalnego segmentu : zero i trzy jedynki
To synchronizuje oba układy i BPA jest wejściem oscylatora.
Oba układy są teraz zatrzymane.
ustaw wysoki stan na obu układach;
ustaw niski stan w układzie master;
prześlij w 32 bitach dane do 4 cyfr układu master;
prześlij 4 bity do specjalnego segmentu danych, jedynkę i trzy zera
To ustawia dla układu master pin BPA jako wyjście dla kropki, i BPC jako
wyjście oscylatora. Teraz oba układy startują i zatrzymują się według tego
samego oscylatora.
ustaw w stan high.
Układy są teraz zsynchronizowane i sterują ośmiocyfrowym wyświetlaczem. Aby wprowadzić nową liczbę wystarczy wprowadzić ją oddzielnie do każdego układu, trzymając właściwe bity statusu dla każdego układu ( 0110 lub 0001 ).
12-bitowy przetwornik C/A (DAC 8043) firmy Analog Devices.
Układ jest wysokiej dokładności 12-bitowym CMOS przetwornikiem C/A, umieszczonym w obudowie zawierającej 8 pinów. Sterowanie układu poprzez interfejs szeregowy, podwójnie buforowany czyni go bardzo użytecznym w aplikacjach z μc. Oddzielenie wejścia zegarowego od danych wprowadzanych do przetwornika poprzez linię pozwala na pełną kontrolę wprowadzanych danych i pracę przetwornika.
Układ składa się z:
12-bitowego szeregowego rejestru z wejściem szeregowym i wyjściem równoległym;
12-bitowego DAC rejestru z wej. i wyj. równoległym;
12-bitowego C/A przetwornika;
układu kontrolnego.
Dane są wprowadzane do rejestru szeregowego na narastające zbocze sygnału zegarowego. Jeżeli nowe słowo programujące zostało wprowadzone do rejestru szeregowego, jest ono wczytywane do DAC register poprzez ustawienie niskiego poziomu na . Dane w tym rejestrze są przetwarzane na wartość prądu wyjściowego przez przetwornik C/A
INFORMACJE O INTERFEJSIE
DAC 8043 został zaprojektowany do łatwego sterowania. Diagram czasowy przedstawia sekwencje wprowadzane do układu. Najbardziej znaczący bit (MSB) jest wprowadzany pierwszy. Kiedy rejestr szeregowy jest załadowany, dane są transmitowane do DAC register poprzez ustawienie sygnału chwilowo w stan niski. Maksymalna częstotliwość zegara wynosi 4 MHz.
Cyfrowe wejścia SRI, , CLK są kompatybilne ze standardem TTL. Są zaprojektowane z rezystancją ESD zawartą w układzie wejściowym zapewniającym zwiększone bezpieczeństwo układu. Obwód zabezpieczający składa się z diod i rezystora szeregowego. Taka struktura jest dla wszystkich wejść cyfrowych.
Przetwornik C/A składa się z drabinki rezystorowej R-2R. Rezystorowa drabinka jest wykonana z materiału silikon-chrom, materiału o wysokiej stabilności temperaturowej (+50 ppm/°C) oraz z dwunastu par kluczy NMOS.
Klucze te dołączają nogę drabinki do GND lub IOUT. Całkowity prąd wyjściowy zależy więc od kodu cyfrowego sterującego kluczami. Poważnym problemem jest zmiana rezystancji kluczy względem temperatury. Kolejne klucze mają rezystancje włączenia 10 Ω, kolejny 20 Ω, itd., aby na każdym kluczu było napięcie 5 mV. Z tego powodu dołącza się rezystor RFEEDBACK.
F40 (87)
Układ zastępczy przetwornika C/A składa się z źródła prądowego (DxVREF)/R - ustawianego przez kod danych, źródło ILKG reprezentuje wpływ temperatury na zmiany parametrów elementów. COUT jest pojemnością wyjściową, rezultatem pojemności kanałów N-channel MOS przełączników i zawiera się od 80 do 110 pF i zależy od kodu programującego. RO jest równoważną rezystancją wyjściową, która również zależy od kodu danych. R jest nominalną wartością drabinki R-2R.
ZASTOSOWANIE PRZETWORNIKA
układ unipolarny
Układ musi być użyty z AC lub DC źródłem napięcia referencyjnego. Napięcie wyjściowe obwodu zmienia się w zakresie od 0V do −VREF∗(4095/4096) i zależy od kodu sterującego. Zależność pomiędzy napięciem wyjściowym a kodem jest przedstawiona w tabeli.
Dla likwidacji błędu wzmocnienia wprowadza się rezystor R1. Aby wykalibrować układ należy wpisać same jedynki i ustawić VOUT = −VREF∗(4095/4096)
dla układów LSB= VREF lub VREF(2− n)
układ bipolarny
Jest to przykładowe rozwiązanie układu bipolarnego. Stan bitu MSB decyduje o kierunku napięcia. Rezystory R3, R4 i R5 muszą być wybrane z dokładnością 0,01% i muszą być tego samego typu aby był dopasowany wsp. temp. Błąd pomiędzy R3 i R4 wpływa na offset i błąd skali, a R5 do R6 i R3 błąd dawać będzie rezultat w błędzie skali
VO = −VIN gdzie AX =”1” dla ON, ”0” dla OFF.
Kiedy układ jest włączony w pętli sprzężenia zwrotnego jest następujący wzór:
VO =
Dodatkowo firma Micro Power System wyprodukowała matrycę 8-czternastobitowych przetworników C/A wbudowanych w jeden układ scalony (MP7610)
Wymaga to wprowadzenia listy rozkazów sterujących przetwornikami, pozwalającej na indywidualne programowanie napięć wyjściowych przy jednoczesnym zapewnieniu precyzyjnej synchronizacji tych napięć na zaciskach wyjściowych.
Zapisanie wartości rejestrów danych do rejestrów wyjściowych odbywa się po podaniu niskiego poziomu na zaciskach . Wejście służy do jednoczesnego wyzerowania wszystkich przetworników.
Zewnętrzne przetworniki A/C.
Przy wysokich wymaganiach, odnośnie rozdzielczości i czasu konwersji, często jedynym rozwiązaniem jest zastosowanie przetwornika zewnętrznego. Szeregowo programowalny przetwornik pozwala ponadto na łatwą realizację izolacji galwanicznej pomiędzy częścią cyfrową i analogową. Większość tych przetworników pracuje w trybie kompensacyjnym ze sprzężeniem zwrotnym. Często do generacji wewnętrznych sygnałów sterujących wykorzystuje się sygnał zegarowy transmisji szeregowej rozkazów i danych wyjściowych, co pozwala na płynne sterowanie czasem konwersji przez μc.
I) 12-bitowy przetwornik A/C MAX171 z wewnętrzną optoizolacją.
Posiada on wbudowane układy izolacji optycznej.
Charakteryzuje się następującymi cechami:
rozdzielczość 12 bitów;
czas konwersji 5,8 μs;
błąd nieliniowości ±0,5 LSB;
różnicowy błąd nieliniowości ±1 LSB;
napięcie izolacji 1500 VRMS;
rezystancja izolacji 1010 Ω;
pojemność izolacji 5 pF;
napięcia zasilania części analogowej +5V, −12...−15V.
Maksymalna częstotliwość sygnału zegarowego podawana na wejście CK+/CK− wynosi 2,5 MHz. Przetwornik wymaga podania minimum 14 cykli sygnału zegarowego do wykonania pełnego cyklu konwersji i przesłania danych na zewnątrz.
Są również produkowane 16-bitowe przetworniki typu sigma-delta (Σ-Δ) z interfejsem szeregowym (firma National Semiconductor) AD16071.
Charakteryzuje się on następującymi parametrami:
rozdzielczość 16-bitów;
maksymalna częstotliwość próbkowania 192 KHz;
wewnętrzne źródło napięcia referencji;
wsp. S/N : 85 dB (przy częstotliwości próbkowania 48 KHz);
76 dB (przy częstotliwości próbkowania 192 KHz);
wbudowany filtr grzebieniowy 5 rzędu i filtr F/R;
pojedyncze napięcie zasilania.
8-bitowy przetwornik A/C z interfejsem szeregowym LCT 1096 firmy Linear
Technology.
Pobiera on tylko 80 μA prądu zasilania podczas konwersji. Automatycznie poziom prądu zasilania spada do 3 μA, kiedy układ nie przeprowadza konwersji. Jest on umieszczony w 8-pinowej obudowie i zakres napięć zasilania zawiera się w przedziale od 3V do 9V. Zastosowano tu przetwornik z sukcesywną aproksymacją posiadający układ sample & holds. Układ ten posiada jedno wejście analogowe.
Np.: układ 1098 oferuje programowo wybierane wejście poprzez dwukanałowy multiplekser.Port szeregowy pozwala efektywnie przesyłać dane z układu do μc poprzez trzy linie:
- wybór układu i jego uaktywnienie;
CLK - sygnał zegarowy dla konwersji i danych;
DOUT - sygnał wyjściowych danych.
Charakterystyczne parametry układu:
prąd zasilania 80 μA;
spoczynkowy prąd zasilania 3 μA;
obudowa 8-nóżkowa;
układ Sample & Hold;
czas konwersji 16 μs;
całkowity błąd temperaturowy ±1/2 LSB;
wejście analogowe z własnym napięciem referencyjnym.
Typowe zastosowania:
w systemach bateryjnych;
w układach ze zdalną akwizycją danych;
układy kontroli zasilania bateryjnego;
do pomiaru temperatury;
niezależnych układów akwizycji danych.
Wysoka impedancja układu (wejścia analogowego) pozwala na dołączenie układu do sensorów w wielu aplikacjach, eliminując stosowanie dodatkowych bloków.
Napięcie zasilania (max) : 10V;
Napięcie referencyjne : −0,3V ÷ VCC+0,3V;
częstotliwość zegara : 0,025 ÷ 0,5 MHz.
Interfejs: czas cyklu jest wyznaczany przez sygnał . Sygnał CLK powinien pojawić się dopiero po czasie t, a następnie po nim wyjście DOUT wychodzi ze stanu wysokiej impedancji wysyłając dane.
Konwersja zaczyna się od pierwszego zbocza opadającego i trwa osiem okresów sygnału taktującego.
EMBED Unknown
EMBED Unknown
EMBED Unknown
EMBED MSDraw.Drawing.8
EMBED MSDraw.Drawing.8
EMBED MSDraw.Drawing.8