96 (126)

96 (126)




Mikroprocesorowa Ośla łączka



Config Portb = Output : Portb = 127 'portB - wyjcecie; PB.7 = 0 do postaci :

Config Portb = Output : Portb = 255 'wszystko wygaszone


dziesiętne wyświetlacza (Portb.7=l) np. modyfikując linię:

przekonasz się, że denerwująco miga nie tylko segment f, ale i punkt dziesiętny. Jeśli jeszcze się nie domyślasz, pomoże Ci prościut-ki programik z rysunku 119 (C022e.bas). Udowodni on, że przyczyną migotania nie są jakieś niuanse naszego programu. Rzecz w tym, że gdy watchdog spowoduje reset, przez około 20ms końcówki portów są „wiszącymi w powietrzu” wejściami. I właśnie wtedy przewodzące tranzystory T5, T6 powodują zaświecenie segmentów f i DP, połączonych do linii MOSI i CLK kabla programatora i portu komputera. Gdy kabel programujący nie jest podłączony, efekt

ten nie występuje. Tak czy inaczej, nie przeszkadza to w pracy centralki, a nawet może być uznane za zaletę świadczącą o pracy układu. Wspominam o tym zjawisku tylko dlatego, że w przyszłości możesz spotkać się z podobnymi niespodziankami i powinieneś pamiętać, co dzieje się z końcówkami portów podczas resetu. Dokładny opis znajdziesz w Technikaliach.

Config Portb • Output

Portb * 255

Config Satchdog * 512

’reset co ok 0.Ss

Start Vatchdog

Powerdown

End

Rys. 119.


Na szczęście w przytłaczającej większości przypadków kikunastomilisekundowe opóźnienie po resecie nie ma żadnego znaczenia praktycznego.

Zewnętrzny reset. W nielicznych zastosowaniach pożyteczną rolę odegra końcówka zewnętrznego zerowania (nóżka 1 w procesorze *2313), pozwalająca w dowolnej chwili wyzerować procesor i rozpocząć działanie programu od początku (gwałtownie zakończywszy wcześniejszą działalność procesora). Normalnie nóżka 1 pozostaje nieodłą-czona - jak wskazuje wcześniejszy rysunek D, wewnętrzny rezystor podciągający zapewnia obecność na niej stanu wysokiego.

Powinieneś wiedzieć, iż do" wyzerowania procesora wystarczy nawet bardzo krótki ujemny impuls, czyli zwarcie nóżki 1 do masy na dowolny czas, nie krótszy jednak niż 50 nanosekund. Nie znaczy to, że po takim wymuszonym resecie program zaczyna pracować natychmiast - także i w tym wypadku występuje omówione wcześniej opóźnienie o kilkanaście milisekund (Td). Opóźnienie o czas Td wystąpi także, gdy źródłem resetu jest watchdog. Przekonuje o tym rysunek D pokazujący, że licznik binarny jest zerowany przy wymuszeniu pochodzącym z dowolnego z trzech źródeł resetu.

Niektórych może dziwić, po co w ogóle w procesorze 2313 występuje końcówka zerowania zewnętrznego, jeśli wewnętrzne obwody POR zapewniają prawidłowy reset procesora. Nie zapominaj jednak, że końcówka RESET odgrywa niezmiernie ważną rolę, gdy spodziewane są okresowe wahania napięcia zasilania. Zagadnienie to było zasygnalizowane w odcinku dotyczącym pamięci EEPROM i wymaganym warunkom jej zapisu. Jednak problem nadmiernego obniżenia napięcia dotyczy nie tylko zapisu do pamięci EE

PROM: zwróć uwagę na podane w tabeli 2 napięcia progowe Vpot przy włączaniu i wyłączaniu. Wiesz już, że dopiero po wzroście napięcia zasilającego powyżej progowego (1... 1,8V) zaczyna się właściwa procedura inicjalizacji procesora. Jeśli potem podczas pracy programu napięcie zasilania spadnie, ale utrzyma się powyżej 0,8V, kolejny wzrost napięcia nie zapoczątkuje kolejnej procedury resetu POR. Dopiero gdy napięcie zasilania spadnie poniżej 0,4V (0,4...0,8V dla poszczególnych egzemplarzy), masz gwarancję, iż obwody POR zostają przygotowane do nowego cyklu pracy i zapewnią niezawodny reset. Tymczasem producent gwarantuje, że procesor będzie poprawnie pracował przy napięciu zasilania co najmniej 2,7V. Przy niższych napięciach zasilania procesor może nieprawidłowo wykonywać instrukcje, mogą się pojawić błędy w kluczowych rejestrach, w pamięci RAM i, co już wiesz, mogą wystąpić błędy związane z pamięcią EEPROM. Oznacza to, że obniżenie napięcia zasilania może całkowicie uniemożliwić działanie programu. Jeśli zachodzi ryzyko wystąpienia takich okresowych spadków napięcia zasilania, trzeba odpowiednio napisać program (być może z wykorzystaniem watchdoga w jego klasycznej roli), żeby tak wymuszony reset nie spowodował innych błędów, a także dodać zewnętrzny układ kontroli i zerowania, zwany brown-out detector. W literaturze tego typu układy są różnie nazywane (external under-voltage reset Circuit, voltage supervisor, itd.) W każdym razie chodzi o detektor napięcia zasilania, który wymusza reset procesora przez cały czas, gdy napięcie zasilania ma wartość mniejszą od ustalonej granicy. Produkowane są specjalizowane układy scalone takich monitorów napięcia gwarantujących reset. Tylko początkujący sądzą, że ich zadaniem jest jedynie zapewnić reset po włączeniu napięcia zasilania - tymczasem ich ważną rolą jest właśnie zapobieganie błędom związanym ze spadkami napięcia zasilania podczas pracy. Temat układów brown-out detector z dwoma przykładami omówiony był w EdW 10/2003.

$NORAMCLEAR

Trzeba pamiętać, że reset powoduję nie tylko rozpoczęcie pracy programu i bezwarunkowe wyzerowanie rejestrów, ale standardowo po resecie następuje procedura zerowania pamięci RAM. Jeśli to byłoby niewskazane lub niedopuszczalne, w BA-SCOM-ie można zabronić kompilatorowi dodawania do programu procedury wstępnego zerowania RAM-u. Osiąga się to, umieszczając na początku programu dyrektywę przeznaczoną dla kompilatora, dlatego poprzedzoną znakiem dolara:

$ NORAMC LEAR

Tu mam dla Ciebie zadanie. Dość dużo uwagi poświęciliśmy dotychczas sposobom zmniejszania objętości programu. Teraz możesz samodzielnie sprawdzić, czy obecność dyrektywy $NORAMC-LEAR zmniejsza objętość programu? Czy w „zwykłych” programach dyrektywa ta pozwoli zaoszczędzić kilka bajtów kodu? Sprawdź to!

I jeszcze jedna pokrewna uwaga: dyrektywa $noramclear zapewnia zachowanie zawartości pamięci RAM, czyli zmiennych. Nie obejmuje ona jednak tej części pamięci, która pełni rolę rejestrów I/O. Nie można więc w żaden sposób nakazać procesorowi pozostawienia portów I/O w czasie resetu w ich wcześniej ustawionych stanach -jak już wiesz, na te kilkanaście milisekund procedury resetu końcówki I/O zawsze stają się „pływającymi wejściami”, co wynika z wyzerowania rejestrów DDRx i PORTx.

H

W

n

i

Z >—<

W

>

r

>


H

w

o

X

z

71

>

r

NN


H

W

n

i

z

NH

71

r

>


REKLAMA


BflSCOM flVR SP€Clfll CDITION


Przygotowana specjalnie na polski rynek wersja znanego kompilatora języka BASIC dla mikrokontrolerów AVR

• za jego pomocą można pisać programy dla wszystkich mikrokontrolerów AT90S, ATmega8/8L, ATmega8515/8515L, a także wszystkich pozostałych ATmega • program wynikowy do 8 kB • instalacja możliwa wyłącznie na polskiej wersji Windows •

Kod handlowy: BASCOM AVRt; Cena:

Ponadto wesje pełne bez ograniczeń w nowych, niższych certach: BASCOM AVK BASCOM SI; Cena:

Detaliczna sprzedaż wysyłkowa. Zamówienia przyjmuje Dział Handlowy AVT, 01-939 Warszawa, ul. Burleska 9. tel./fax: (22) K6i 0-i 82. (22) 835 66 88, e-mail: handiowyQavt.com.pl


Elektronika dla Wszystkich


Grudzień 2003


39



Wyszukiwarka

Podobne podstrony:
43680 Image37 (6) Mikroprocesorowa Ośla łączka Ml 191 ZmiennaTypuInteger = Funkcyjka (JakasZaiByte,
89 (141) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 programowe zerowanie liczni
90 (145) Mikroprocesorowa Ośla łączka R14 R13
91 (142) Mikroprocesorowa Ośla łączka Ml Reset Watchdog I to sq wszystkie kluczowe informacje, umożl
92 (141) Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączka If Flaga * 1 Then gdy llaga usta
93 (135) Mikroprocesorowa Ośla łączka segmentów a tych dwóch wyświetlaczy. Podczas odmierzania czasu
95 (133) Mikroprocesorowa Ośla łączka 95 wu na działanie poprzedniej wersji centralki? Po przeprowad
97 (117) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 Ćwiczenie 23Wyświetlacz
98 (115) Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączka •C023a Wyświetlacz LCD Cla Do Cl
99 (115) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 ’C023e Wszystkie typy zmi
Image33 (6) Mikroprocesorowa Ośla łączka Ml 187 SHIFTOUT Pdane , Pzegar Zmienna ,
edw6 str39 Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączkaĆwiczenie 17 Oszczędny zegar -
edw6 str40 Mikroprocesorowa Ośla łączka Ml zostanie wykonana tylko raz). Natomiast przy reakcji na
edw6 str45 Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączka ■CQ17a prosty
edw6 str46 Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 riii«uixe

więcej podobnych podstron