7/2003 ● lipiec ● 15 zł 50 gr (w tym 7% VAT) 7/2003•lipiecELEKTRONIKAPRAKTYCZNA•Miêdzynarodowymagazynelektronikówkonstruktorów www.ep.com.pl NA CD: KA...
NA CD: KATALOG MITSUMI, PROTEL DXP Z SP2, AVR-STUDIO+, SPICE LT
Miêdzynarodowy magazyn elektroników konstruktorów
7/2003
●
lipiec
●
15 zł 50 gr
(w tym 7% VAT)
7/2003 • lipiec
▲ Częstościomierz analogowy Nieco sentymentalny miniprojekt, który może spełniać pożyteczną rolę w domo− wej pracowni początkującego elektroni− ka. Str. 71.
▲
Tester samochodo− wych sond lambda
Coś dla miłośników samo− chodowych “wnętrzności” − cyfrowy tester jednego z ekologicznie najważniej− szych elementów współ− czesnych samochodów − sond lambda. Str. 21.
▲
Zabezpieczenie linii telefonicznej
Pr89AT − programator mikrokontrolerów ‘51 z pamięcią Flash
Kolejny wariant detektora pirackich podłą− czeń do linii telefonicznej. Str. 72.
▲
▲
Na str. 26 przedstawiamy opis budowy równoległego programatora mikrokontrolerów ‘51 z pamięcią Flash.
Radiowy system zdalnego sterowania Pierwszą część opisu budowy dwukierunkowej aparatury do zdalnego sterowania pracującej w nielicencjonowanym pasmie ISM przedstawiamy na str. 29.
▲
Programowanie telefonów komórkowych Nokia
Pierwszą część artykułu o programo− waniu telefonów firmy Nokia przed− stawiamy na str. 68.
Phantom − dekoder surround
▲
Drugą, ostatnią już, część opisu tego interesują− cego urządzenia przedstawiamy na str. 45.
Akwizycja danych przez Internet Tajniki budowy i działania przykładowe− go systemu pomiarowego, przystosowa− nego do transmisji zgromadzonych danych przez Internet przedstawiamy na str. 41.
„Klocki” RS485 ▲ Drugą część cyklu − opisy kart: przekaźnikowej i optotriakowej − przedstawiamy na str. 35.
▲
▲
Programowalny sterownik zegarowy O tym, jak efektywnym narzę− dziem jest Bascom mogą przekonać się Czytelnicy projektu przedsta− wionego na str. 87.
6
Elektronika Praktyczna 7/2003
Nr 7 (127) lipiec 2003
Projekty Wzmacniacz semi−surround do komputera PC, część 1 .... 14 Tester samochodowych sond lambda ................................. 21 Pr89AT − programator mikrokontrolerów '51 z pamięcią Flash ....................................................................... 26 Radiowy system zdalnego sterowania z kanałem zwrotnym, część 1 ................................................. 29 „Klocki” RS485, część 2 ............................................................ 35
▲ LabView 7 Możliwości najnowszej wersji LabView przedstawiamy w arty− kule na str. 126.
Akwizycja danych przez Ethernet − zdalny moduł pomiarowy, część 2 ................................................................. 41 PHANTOM − dekoder surround, część 2 ................................ 45
Miniprojekty Częstościomierz analogowy ................................................... 71 Zabezpieczenie linii telefonicznej .......................................... 72
Notatnik Praktyka Płytki drukowane w domu, część 2 ....................................... 51
Programy Autorouter Specctra, część 6 ................................................. 58 Protel DXP − przełom na rynku narzędzi EDA dla elektroników, część 5 ........................................................ 65 Nowości w pakiecie LabView 7, część 1 ............................ 126
▲ Płytki drukowane w domu Drugą część artykułu poświęci− liśmy przybliżeniu technologii “żelazkowej”, która zasłużenie robi karierę także wśród profes− jonalistów, którym zależy na błyskawicznym wykonaniu wysokiej jakości płytek prototy− powych. Str. 51.
Sprzęt MTS−51 − zestaw do nauki mikrokontrolera '51 ..................... 61
Kurs Programowanie telefonów komórkowych, część 1 ........... 68 Obsługa timerów w mikrokontrolerach AVR, część 1 ......... 77 Sterowanie graficznych wyświetlaczy z telefonów komórkowych firmy Nokia, część 3 ....................................... 80 Podstawy projektowania systemów mikroprocesorowych, część 5 ................................................ 83
Automatyka
MTS−51 − zestaw do nauki mikrokontrolera ‘51 Nauka przez ćwiczenia − wyraź− nie takie przesłanie towarzyszyło twórcom zestawu prezentowa− nego w artykule na str. 61.
Enkodery i czujniki do detekcji drogi firmy Baumer ........... 123
Z kraju i ze świata ........................................................ 111
▲
Biblioteka EP ................................................................. 119 Kramik+Rynek ................................................................ 91 Listy ................................................................................... 97 Ekspresowy Informator Elektroniczny ..................... 107 Wykaz reklamodawców ............................................ 110
Elektronika Praktyczna 7/2003
7
Wzmacniacz P R O J E semi−surround K T Y do komputera PC
Wzmacniacz semi−surround do komputera PC, część 1 AVT−516
Wszyscy lubimy uszlachetniaÊ nasze komputery, zw³aszcza øe spÍdzamy przy nich bardzo duøo czasu. Powodzenie wczeúniejszych wersji wzmacniaczy do PC zachÍci³o nas do opracowania unowoczeúnionej, znacznie bardziej efektownej wersji takiego urz¹dzenia, o†moøliwoúciach adekwatnych do wspÛ³czesnych wymagaÒ uøytkownikÛw. Rekomendacje: projekt polecamy wszystkim uøytkownikom PC, a†zw³aszcza tym, ktÛrzy dbaj¹ o†jego multimedialne walory uøytkowe. Prezentowany wzmacniacz moøe byÊ takøe doskona³ym elementem nowoczesnej stylizacji komputera z†uøyciem lamp fluorescencyjnych i†podúwietlanych wentylatorÛw.
14
Komputery od pocz¹tku swojego istnienia, oprÛcz powaønych zastosowaÒ w†instytutach badawczych lub w†armii, s³uøy³y rÛwnieø do zabawy. Prawdopodobnie znudzeni lub znuøeni programiúci dla odprÍøenia zaczÍli tworzyÊ pocz¹tkowo prymitywne, a†z†czasem coraz doskonalsze gry. Pewnie do dzisiaj bawi³yby w¹skie grono informatycznych guru, gdyby nie zawrotny postÍp†mikroelektroniki i†powstanie w†latach 70. ubieg³ego stulecia tak zwanych komputerÛw domowych. Entuzjaúci tych wspania³ych maszyn, w†wolnych chwilach od programowania w†Basicu, rÛwnieø zabawiali siÍ grami wyrobu w³asnego lub powstaj¹cych juø wtedy ma³ych firm paraj¹cych siÍ rozrywk¹ komputerow¹. Kto dzisiaj pamiÍta te wszystkie ìtrÛjwymiaroweî i†ìwielokoloroweî wspania³oúci ³adowane z†magnetofonu MK232 do komputera Spectrum 48k (extended!). Rosn¹ce zapotrzebowanie na tego typu wyroby spowodowa³o, øe spraw¹ zajÍli siÍ specjaliúci od wielkich pieniÍdzy,
marketingu, reklamy i†z†zabawek komputerowych zapaleÒcÛw powsta³ potÍøny rynek domowej informatycznej rozrywki. Dzisiaj nie ulega w¹tpliwoúci, øe komputer PC sta³ siÍ domowym centrum rozrywki. OprÛcz coraz doskonalszych gier, moøliwe jest ogl¹danie telewizji, odtwarzanie filmÛw w†doskona³ej jakoúci zapewnianej przez DVD, odtwarzanie plikÛw audio MP3, odtwarzanie klasycznych p³yt CD. S¹ to tylko niektÛre bardziej znane moøliwoúci multimedialne komputera. Pod³¹czenie do Internetu znacznie poszerzy³o jego ìrozrywkoweî moøliwoúci. Øeby cyfrowe urz¹dzenie mog³o nas bawiÊ w†naszym analogowym úwiecie, musi byÊ wyposaøone w†analogowe peryferia. OdCechy i funkcje wzmacniacza: ✦ 4-kana³owy wzmacniacz mocy, ✦ moc wyjciowa 12 W/2 Ω/THD=10%, ✦ regulacja wzmocnienia, balansu i barwy tonu (basy i tony wysokie), ✦ wbudowany przetwornik C/A dla DC/DVD (interfejs SPDIF), ✦ kontrola temperatury wewn¹trz komputera.
Elektronika Praktyczna 7/2003
Wzmacniacz semi−surround do komputera PC twarzanie obrazu dobrej jakoúci nie jest problemem, bo kaødy komputer jest teraz wyposaøany w††monitory o†duøej rozdzielczoúci i†sporej czÍstotliwoúci odúwieøania. Sygna³ wizyjny wytwarzany przez niektÛre karty graficzne moøna teø pod³¹czyÊ do dowolnego telewizora. Z†düwiÍkiem nie jest juø tak dobrze. Co prawda standardowe karty düwiÍkowe s¹ juø od dawna montowane seryjnie do PC-tÛw, ale czÍsto düwiÍk jest odtwarzany przez parÍ tanich g³oúniczkÛw. Ca³y czar wyrafinowanego cyfrowego düwiÍku pryska. Oczywiúcie moøna siÍ pod³¹czyÊ do domowego zestawu hi-fi, ale nie zawsze jest to moøliwe, a†najczÍúciej jest bardzo k³opotliwe. Najlepszym, najbardziej funkcjonalnym rozwi¹zaniem by³oby wyposaøenie komputera we w³asny, stosunkowo dobrej jakoúci wzmacniacz mocy. Prezentowana tutaj konstrukcja wzmacniacza jest tak pomyúlana, by moøna j¹ by³o umieúciÊ w†obudowie PC-ta w†miejscu przeznaczonym na dodatkowy twardy dysk lub napÍd CD i†jest w†pewnym sensie nastÍpc¹ kitu AVT-491. Ma czterokana³owy wzmacniacz, a†wiÍc umoøliwia odtwarzanie düwiÍku przestrzennego. Poza tym, wzmacniacz zosta³ wyposaøony w†cyfrowe wejúcie pozwalaj¹ce na odtwarzanie p³yt CD z†lepsz¹ jakoúci¹, niø to mog¹ zapewniÊ tory audio wiÍkszoúci popularnych napÍdÛw CD. Sterowanie wszystkimi funkcjami odbywa siÍ za pomoc¹ impulsatora, a†komunikaty s¹ wyúwietlane na bardzo czytelnym wyúwietlaczu VFD. Zamiast tego wyúwietlacza moøna zamiennie stosowaÊ ìzwyk³yî wyúwietlacz LCD o†organizacji 1x16 znakÛw.
Opis uk³adu Schemat wzmacniacza pokazano na rys. 1. W†torze audio zastosowano stereofoniczny procesor audio BH3857 firmy Rohm (uk³ady U1 i†U2). Schemat blokowy tego uk³adu pokazano na rys. 2. Moøna go wykorzystaÊ do regulacji wzmocnienia, tonÛw niskich (bass) i†tonÛw wysokich (treble), ma takøe wbudowane dwa niezaleøne uk³ady poszerzania bazy stereofonicznej (surround). Istnieje teø moøliwoúÊ sterowania czterema dwustanowymi wyjúcia-
Elektronika Praktyczna 7/2003
mi typu open collector. Wyjúcia te mog¹ na przyk³ad sterowaÊ prze³¹cznikiem wejúÊ lub uk³adami sygnalizacji stanu pracy wzmacniacza. Analogowe sygna³y audio s¹ pod³¹czane przez z³¹cza typu cinch na cztery wejúcia oznaczone IN1...IN4. Pierwsza para sygna³Ûw ze z³¹cz IN1 i†IN2 jest podawana przez kondensatory C15, C16 na wejúcia In1 i†In2 procesora audio U1. Na te same wejúcia U1 mog¹ przychodziÊ sygna³y z†wyjúcia przetwornika C/A (uk³ad U4). WybÛr ürÛd³a sygna³u jest dokonywany przez styki przekaünika PRZ1. Druga para sygna³Ûw ze z³¹cz IN3, IN4 jest podawana przez kondensatory C40 i†C41 na wejúcia In1 i†In2 drugiego procesora audio - uk³adu U2. Sygna³y z†wejúÊ In1 i†In2 s¹ podawane na wejúciowe wzmacniacze. Wzmocnienie takiego wzmacniacza moøna regulowaʆprzez dobÛr rezystancji: dla wejúcia In1 rezystor R5, a†dla wejúcia In2 rezystor R4 (procesor U1). Dla procesora U2 s¹ to rezystory: R10 (wejúcie In1) i†R9 (wejúcie In2). Wzmocnienie moøna obliczyÊ z†zaleønoúci: G=(R+20k)/R. Moøna w†ten sposÛb dobraÊ wzmocnienie ca³ego toru do poziomu sygna³u wejúciowego. Trzeba przy tym pamiÍtaÊ, øe zbyt duøe wzmocnienie spowoduje przesterowanie wejúÊ uk³adÛw surround lub regulatorÛw barwy düwiÍku i†powstanie zniekszta³ceÒ. W†modelowym wzmacniaczu rezystory R4, R5, R9, R10 maj¹ wartoúÊ 47 kΩ. W†pierwszym procesorze U1 kondensatory C1 i†C2 (tor1) oraz C6 i†C7 (tor2) s¹ elementami zewnÍtrznymi aktywnego filtru regulacji tonÛw niskich (basÛw). Kondensatory C3 (tor1) i C8 (tor2) s¹ pod³¹czone do uk³adu regulacji tonÛw wysokich. W†uk³adzie surround1 pracuj¹ elementy: C4, C9, C10, C11, C5, R1 i†R2. Sygna³ wyjúciowy z†toru 1†podawany jest na wejúcie wzmacniacza mocy przez kondensator C17, a†z†toru 2 przez kondensator C18. Niewykorzystywane wejúcia regulacji wzmocnienia, tonÛw niskich i†tonÛw wysokich s¹ zablokowane kondensatorami: C20...C22. Konfiguracja w³¹czenia drugiego procesora U2 jest dok³adn¹ kopi¹ aplikacji uk³adu U1.
Uk³ad BH3857 jest zasilany napiÍciem +8 V w†stosunku do masy analogowej A_GND. Dla wszystkich analogowych sygna³Ûw audio odniesieniem jest rÛwnieø masa analogowa A_GND. Cyfrowy interfejs steruj¹cy ma swoj¹ odrÍbn¹ masÍ cyfrow¹ D_GND. Obie te masy nie s¹ w†uk³adzie ze sob¹ po³¹czone. Takie rozwi¹zanie jest stosowane, øeby zak³Ûcenia z†toru cyfrowego nie przedostawa³y siÍ do toru analogowego poprzez wspÛln¹ masÍ. Mikrokontroler U6 steruje wszystkimi ustawieniami procesora audio przez szeregowy interfejs cyfrowy (trzy linie: danych DATA, zegarowa CK i†zapisu LATCH). Moøna rÛwnieø zamiennie regulowaÊ wzmocnienie i†barwÍ tonÛw napiÍciem sta³ym przy³oøonym na specjalnie do tego przeznaczone wyprowadzenia VC, TC i†BC. Format danych przesy³anych przez interfejs szeregowy pokazano na rys. 3. W†trakcie pojedynczej transmisji przesy³ane s¹ 32 bity (pierwszy najmniej znacz¹cy). Prawid³owe dane musz¹ siÍ pojawiÊ na linii DATA, kiedy na linii zegarowej CK jest poziom niski. Narastaj¹ce zbocze na linii CK wpisuje dan¹ do bufora wejúciowego uk³adu BH3857. Po przes³aniu wszystkich 32 bitÛw, narastaj¹ce zbocze na linii LATCH wpisuje odebrane dane z†bufora wejúciowego do uk³adÛw steruj¹cych procesora. Znaczenie poszczegÛlnych bitÛw†opisano w†tab. 1. Wzmocnienie (a w³aúciwie t³umienie) sygna³u moøna regulowaÊ w†256 krokach (rozdzielczoúÊ 8†bitÛw). W†opisywanym tutaj wzmacniaczu ca³y zakres regulacji zosta³ podzielony na 54 przedzia³y i†regulacja odbywa si͆w†54 krokach od -84 dB do 0†dB. Barwa tonu moøe byÊ regulowana w†32 krokach (6 Tab. 1. Funkcje bitów słowa sterującego układu BH3857 Bity danych Funkcja D0...D7 D8...D12 D13...D17 D18, D19 D20...D23 D24...D31
bitÛw). Tutaj zakres regulacji zosta³ podzielony na 17 przedzia³Ûw (od -15 dB do +15 dB). Bity D18 i†D19 s³uø¹ do w³¹czania odpowiednio efektu surround1 i†surround2. Efekt jest w³¹czony, gdy bit jest zerem. Wartoúci bitÛw D20...D23 s¹ przepisywane na wyjúcia cyfrowe PORT1...PORT4. Do koÒcowych bitÛw D24...D31 (chip select and parity) s³owa danych trzeba wpisaÊ 11101010 binarnie. Z†wyjúÊ procesorÛw U1 i†U2 sygna³ analogowy podawany jest na wejúcia wzmacniacza mocy TDA8562Q - uk³ad U3. Jest to scalony czterokana³owy wzmacniacz klasy B. Kaødy z†kana³Ûw moøe dostarczyÊ mocy 12 W†przy obci¹øeniu 2†Ω i†zniekszta³ceniach THD na poziomie 10%. Z†praktycznego punktu widzenia TDA8562Q ma kilka istotnych zalet. Po pierwsze, wymaga bardzo niewielu elementÛw zewnÍtrznych i†zadowala siÍ pojedynczym napiÍciem zasilaj¹cym o†wartoúci ok. 14 V (6...18 V). Uk³ad ma wbudowane zabezpieczenia przeciwzwarciowe (zwarcie wyjúÊ do masy i†do plusa zasilania). Po wykryciu takiego zwarcia pobierana jest stosunkowo niewielka moc. Jeøeli
wymienimy jeszcze zabezpieczenie przed odwrotnym pod³¹czeniem zasilania, udarami elektrostatycznymi i†przed przegrzaniem uk³adu, to wydaje siÍ, øe zniszczenie tego elementu jest doúÊ trudne. Stan zwarcia, przesterowania lub przegrzania jest sygnalizowany na specjalnym wyjúciu diagnostycznym. Uk³ad TDA8562Q moøna wprowadziÊ w†stan oczekiwania ze znacz¹co obniøonym poborem mocy (stand-by) lub w†stan wyciszenia (mute). We wzmacniaczu uk³ad koÒcÛwki mocy pracuje w†typowej aplikacji podanej przez producenta. Sygna³y z†procesorÛw audio U1 i†U2 s¹ podawane na wejúcia wzmacniacza przez kondensatory: C15, C16 i†C40, C41 (separacja sk³adowej sta³ej). Wyjúciowy sygna³ przez kondensatory C48...C51 do³¹czony jest do ³¹czÛwek OUT1...OUT4. Do tych ³¹czÛwek pod³¹czane s¹ g³oúniki. Wejúcie MODE jest sterowane przez obwÛd z elementÛw: T3, R24...R26 i†C76, wymuszaj¹cy na krÛtki czas stan MUTE po w³¹czeniu zasilania wzmacniacza. W†ten sposÛb s¹ eliminowane ewentualne stuki w†g³oúnikach mog¹ce siÍ pojawiʆpo w³¹czeniu zasilania.
Rys. 3. Przebiegi czasowe przy przesyłaniu danych do układu BH3857
Elektronika Praktyczna 7/2003
Cyfrowy sygna³ audio z†napÍdu CD-ROM jest pod³¹czany do wejúcia D_IN (rys. 1). Przez kondensator C59 jest on podawany na wejúcie uk³adu odbiornika CS8412 (U5). Tam jest wzmacniany i†dekodowany w†taki sposÛb, øe na wyjúciu U5 otrzymywane s¹ trzy sygna³y: SCK, SDATA i†FSYNC. Lini¹ SDATA przesy³ane s¹ ramki zawieraj¹ce kolejne prÛbki sygna³u audio dla kana³u lewego i†prawego. Lini¹ SCK przesy³any jest sygna³ zegarowy okreúlaj¹cy prÍdkoúÊ transferu danych przesy³anych lini¹ SDATA. W†strumieniu danych s¹ kolejno przesy³ane zakodowane prÛbki dla kana³u lewego i†prawego. O†tym, ktÛrego kana³u dane s¹ w†danej chwili przesy³ane, decyduje poziom na linii FSYNC. Dane przesy³ane liniami SDATA, SCK i†FSYNC musz¹ byÊ przetworzone na sygna³ analogowy przez przetwornik C/A. TÍ rolÍ spe³nia uk³ad PCM710U. Jest to kompletny scalony przetwornik C/A o moøliwoúciach dekodowania sygna³u†cyfrowego w†kilku formatach. Tryb pracy PCM1710U moøe byÊ wybierany za pomoc¹ szeregowego interfejsu steruj¹cego - linie: MC (CLK), ML (STROBE) i†MD (DATA) - lub poprzez ustawienie odpowiednich stanÛw na wejúciach steruj¹cych DM1, DM2 i†DSD (interfejs rÛwnoleg³y). Podanie na wejúcie MODE poziomu wysokiego wymusza tryb pracy interfejsu szeregowego. Poziom niski na MODE to tryb rÛwnoleg³y. W†naszym rozwi¹zaniu zosta³ wykorzystany interfejs rÛwnoleg³y, w†ktÛrym dane wejúciowe mog¹ mieÊ standardowy 16-bitowy format. Wymusza to zaprogramowanie uk³adu CS8412 tak, by jego dane wyjúciowe mia³y taki w³aúnie format (wejúcia M0, M2 i†M3 poziom wysoki, a†wejúcie M1 poziom niski). Sygna³y analogowe z†wyjúÊ VOUTL i†VOUTR przetwornika s¹ filtrowane w†uk³adzie filtru dolnoprzepustowego elementy: R16, C57 i†R15, C54 i†przez styki przekaünika PRZ1 mog¹ byÊ podawane na wejúcie procesora U1. Prac¹ wzmacniacza steruje sterownik zbudowany w†oparciu o†mikrokontroler PIC16F76 - uk³ad U6. Do linii portu PORTA do³¹czony jest wyúwietlacz VFD lub
17
Wzmacniacz semi−surround do komputera PC Tab. 2. Podłączenie magistral układów U1 i U2 do wyprowadzeń mikrokontrolera Linia interfejsu
Linia portu
DATA CK LATCH
RB2 RB0 RB1
DATA CK LATCH
RC6 RC5 RC7
Uk³ad U1
Uk³ad U2
opcjonalnie LCD. Potencjometr P1 s³uøy do ustawiania kontrastu wyúwietlacza LCD. Rezystor R22 jest pod³¹czony do wejúcia zerowania mikrokontrolera, a†rezystor R21 wymusza poziom wysoki na wyprowadzeniu RA4 (open collector). Rodzaj obs³ugiwanego wyúwietlacza wybierany jest zwork¹ ZW pod³¹czon¹ do wyprowadzenia RB7. Zwarcie tej zworki i†wymuszenie poziomu niskiego na RB7 powoduje, øe program steruj¹cy obs³uguje wyúwietlacz LCD. Jeøeli ZW nie jest zwarta, to na RB7 jest poziom wysoki i†obs³ugiwany jest wyúwietlacz VFD. Wyprowadzenie RC3 jest do³¹czone do linii SCL, a†wyprowadzenie RC4 do linii SDA interfejsu I2C. Rezystory R13 i†R14 realizuj¹ wymagane przez standard I2C podci¹ganie linii SCL i†SDA do plusa zasilania. Pod³¹czenie linii magistral steruj¹cych uk³adami U1 i†U2 pokazano w†tab. 2. Do linii RB3 i†RB4 (skonfigurowanych jako wejúciowe) pod³¹czone s¹ styki zwierane podczas obrotu impulsatora, a†do linii RB5 styk zwierany po naciúniÍciu oúki impulsatora. Wszystkie linie portu PORTB (skonfigurowane jako wejúciowe) maj¹ w³¹czone podci¹ganie do plusa zasilania przez wewnÍtrzne rezystory mikrokontrolera. Wyprowadzenie RC0 steruje prze³¹cznikiem wejúcia uk³adu U1 zbudowanym z†tranzystora T2 i†przekaünika PRZ1. Ustawienie
poziomu wysokiego na RC0 powoduje wejúcie w†nasycenie T2 i†zadzia³anie przekaünika PRZ1. Rezystor R12 ogranicza pr¹d bazy. TrÛjkolorowa dioda LED wykorzystywana jest do sygnalizacji trybu pracy wzmacniacza. W†trybie CD-ROM dioda úwieci na niebiesko - wyprowadzenie RC1 jest na wysokim poziomie napiÍcia, a†RB5 na niskim. W†trybie Quadro dioda úwieci na zielono: RC1 jest na poziomie niskim, a†RB7 na wysokim. Uk³ad U7 jest szeregow¹ pamiÍci¹ EEPROM zapisywana i†odczytywan¹ przez magistralÍ I2C. W†tej pamiÍci s¹ zapisywane wszystkie ustawienia sterownika wzmacniacza. Uk³ad zasilania podzielono na dwie czÍúci. Wzmacniacz mocy U3 jest zasilany niestabilizowanym ürÛd³em napiÍcia zbudowanym z†elementÛw M1, C63, C64, C65 i†C77. NapiÍcie przemienne do tego uk³adu pod³¹czane jest do zaciskÛw z³¹cza 12 VAC. Wszystkie pozosta³e uk³ady zasilane s¹ napiÍciem z†oddzielnego transformatora (lub oddzielnego uzwojenia). NapiÍcie to podawane jest na z³¹cze 10 VAC. Stabilizator U10 dostarcza napiÍcia +8V do zasilania procesorÛw U1 i†U2. Uk³ad U8 dostarcza napiÍcia +5V do czÍúci cyfrowej: sterownika, wyúwietlacza i†obwodÛw cyfrowych uk³adÛw U4 i†U5. Wyprowadzenie VD+ uk³adu U5 jest zasilane przez dodatkowy filtr z³oøony z†elementÛw: C60...C62 i†rezystora R20. CzÍúÊ analogowa uk³adÛw U4 i†U5 zasilana jest ze stabilizatora U9. Uk³ad zasilania ma rozdzielone masy: analogow¹ i†cyfrow¹. Masy te ³¹cz¹ siÍ w†jednym punkcie w†okolicy kondensatorÛw C64 i†C65. Jak wiadomo, wzmacniacz moøe byÊ wyposaøony w†dwa typy wyúwietlacza: VFD lub LCD. Alfanumeryczny wyúwietlacz LCD jest ogÛlnie znany i†by³ wielokrotnie opisywany, dlatego nie bÍdzie-
Rys. 4. Przebiegi czasowe na magistrali w czasie przesyłania danych do wyświetlacza VFD
Wzmacniacz semi−surround do komputera PC my siÍ nim zajmowaÊ. Wyúwietlacze alfanumeryczne VFD (Vaccum Fluorescent Dispaly) charakteryzuj¹ siÍ duøym kontrastem i†duø¹ jasnoúci¹ úwiecenia. We wzmacniaczu zosta³ zastosowany wyúwietlacz CU165ECPB o†organizacji 1x16 znakÛw. Jest to kompletny modu³ zasilany napiÍciem +5 V†i†wyposaøony w†sterownik. Wszystkie napiÍcia potrzebne do prawid³owej pracy lampy fluorescencyjnej s¹ wytwarzane przez specjaln¹ przetwornicÍ umieszczon¹ na p³ytce modu³u. Wbudowany w†modu³ sterownik pozwala na sterowanie wyúwietlaczem za pomoc¹ prostego trÛjprzewodowego interfejsu szeregowego. Linia SDATA jest lini¹ danych, SCK to linia zegarowa. Po ustawieniu poziomu niskiego na linii !CS moøna przesy³aÊ dane do wyúwietlacza. Przebiegi czasowe wystÍpuj¹ce na magistrali w†czasie przesy³ania danych pokazano na rys. 4. Sygna³y na liniach SDATA, SCK i†!CS maj¹ poziomy TTL.
Elektronika Praktyczna 7/2003
Sterownik wzmacniacza, oprÛcz funkcji sterowania parametrami toru audio, ma do wykonania jeszcze jedn¹ funkcjÍ. Wbudowany w†obudowÍ komputera uk³ad z†mikrokontrolerem moøe mierzyÊ temperatur͆we wnÍtrzu obudowy lub temperaturÍ procesora. Do tego pomiaru wykorzystany zosta³ uk³ad TCN75 firmy Microchip. Jest to scalony czujnik temperatury z†magistral¹ I 2C (slave). P³ytka z†tym uk³adem jest pod³¹czana do sterownika przez z³¹cze magistrali I2C. Z†TCN75 moøna odczytywaÊ temperaturÍ z†rozdzielczoúci¹ 0,5oC†z†zakresu -55...+125oC. OprÛcz tego uk³ad moøna zaprogramowaÊ do pracy w†dwu trybach: komparatora temperatury i†zg³aszania przerwania. Jeøeli TCN75 jest zaprogramowany do pracy w†trybie komparatora temperatury, to na wyprowadzeniu INT/CMPTR wystÍpuje stan aktywny po osi¹gniÍciu temperatury Tset i†pozostaje taki, aø
temperatura spadnie poniøej temperatury Thyst. W†trybie zg³aszania przerwania na wyprowadzeniu INT/CMPTR wyst¹pi stan aktywny po przekroczeniu temperatury Tset i†pozostaje na nim, nawet jeøeli temperatura spadnie poniøej Thyst. Wyjúcie INT/CMPTR staje siÍ nieaktywne po odczytaniu dowolnego rejestru uk³adu TCN75 przez magistralÍ I2C. Stan aktywny (poziom wysoki lub niski) jest programowany w†rejestrze konfiguracji CONFIG. Uk³ad termometru TCN75 moøe zostaÊ wykorzystany jeszcze w†jednym rÛwnie poøytecznym celu, ale o†tym w†kolejnej czÍúci artyku³u. Tomasz Jab³oñski, AVT [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiec03.htm oraz na p³ycie CD-EP7/2003B w katalogu PCB.
19
Tester samochodowych P R O sond J E lambda K T Y
Tester samochodowych sond lambda Elektroniczny analizator składu mieszanki AVT−520
Przyrz¹d opisany w†artykule s³uøy do oceny sprawnoúci sondy lambda oraz analizy sk³adu mieszanki paliwowo-powietrznej zasilaj¹cej silnik samochodowy. DziÍki zastosowaniu mikrokontrolera moøna by³o w†prostym uk³adzie zaimplementowaÊ oprÛcz miernika aktualnej wartoúci napiÍcia sondy, takøe uúrednianie tej wartoúci w†czasie, w†celu bardziej wiarygodnej oceny sk³adu mieszanki. Rekomendacje: projekt polecamy wszystkim uøytkownikom samochodÛw, ktÛrzy lubi¹ samodzielnie wykonywaÊ prace serwisowe, oraz tym poúrÛd CzytelnikÛw, ktÛrych interesuj¹ nowinki z zakresu techniki samochodowej.
Elektronika Praktyczna 7/2003
Na pocz¹tek o†sondach lambda Czytelnikom, ktÛrzy nie znaj¹ zasady dzia³ania sondy, pokrÛtce j¹ przedstawiÍ. Sonda lambda (nazywana takøe czujnikiem tlenu) jest ogniwem galwanoelektrycznym z†elektrolitem w†stanie sta³ym - tzw. ogniwem Nernsta. S³uøy†ona w†samochodzie do pomiaru stÍøenia tlenu w†spalinach. Parametr ten uøywany jest przez jednostkÍ steruj¹c¹ prac¹ silnika do ustalenia w³aúciwego sk³adu mieszanki paliwowo-powietrznej. BudowÍ sondy pokazano na rys. 1. Jeøeli stÍøenie tlenu po obu stronach sondy jest jednakowe, wytwarza ona napiÍcie z†przedzia³u 0...1 V. Na rys. 2 pokazano charakterystykÍ robocz¹ czujnika. Aby dzia³a³ prawid³owo, jego temperatura musi przekraczaÊ 300 oC. NiektÛre sondy posiadaj¹ grza³ki w†celu szybszego osi¹gniÍcia za³oøonej temperatury pracy. Istnieje kilka typÛw†sond lambda - od jednoprzewodowych
do czteroprzewodowych. We wszystkich rodzajach wystÍpuje jeden przewÛd sygna³owy. Pozosta³e s³uø¹ do pod³¹czenia masy oraz grza³ki. Mieszanka ma sk³ad prawid³owy, jeøeli wspÛ³czynnik lambda wynosi 1, co odpowiada napiÍciu mierzonemu na sondzie o†wartoúci 0,46 V. W†praktyce sterownik silnika tak ustala sk³ad mieszanki, aby wartoúÊ wspÛ³czynnika lambda oscylowa³a wokÛ³ 1. Objawia siÍ to cyklicznymi zmianami napiÍcia na sondzie. Za prawid³owo wyregulowan¹ mieszankÍ przyjmuje siÍ stan, w†ktÛrym wartoúÊ napiÍcia na sondzie zmienia siÍ w†przedziale od 0,1...0,2 V†(mieszanka uboga) do 0,8...0,9 V†(mieszanka bogata) z†czÍstotliwoúci¹ ok. 0,5...1 Hz (rys. 3).
21
Tester samochodowych sond lambda
Teraz zajmijmy siÍ testerem i†analizatorem - dwa w†jednym. Moøliwoúci przyrz¹du s¹ nastÍpuj¹ce: - monitorowanie napiÍcia na sondzie w†czasie rzeczywistym, - badanie odpowiedzi jednostki steruj¹cej na symulacjÍ mieszanki bogatej lub ubogiej,
- uúrednianie napiÍcia sondy w†czasie, w†celu ³atwiejszej i†precyzyjniejszej oceny aktualnych ustawieÒ sk³adu mieszanki. Istniej¹ dwie moøliwoúci w³¹czenie testera w†uk³ad pomiarowy sondy: pierwsza polega na pod³¹czeniu siÍ rÛwnolegle do sondy przewodem ìsondaî, bez przerywania jej po³¹czenia ze sterownikiem silnika (rys. 4a), druga - na przerwaniu tego obwodu i†ìwpiÍciu siÍî szeregowo pomiÍdzy sondÍ a†komputer (rys. 4b). W†tym przypadku wykorzystujemy oprÛcz przewodu ìsondaî takøe†przewÛd ìkomputerî. Po w³¹czeniu zasilania aktywuje siÍ pomiar napiÍcia w†czasie rzeczywistym. Wyúwietlacz diodowy jest odúwieøany w†tym trybie 200 razy na sekundÍ, co umoøliwia wizualizacjÍ wszystkich zmian napiÍcia wytwarzanego przez sondÍ. W†trybie tym dostÍpna jest takøe opcja symulacji sk³adu mieszanki. Do jej przeprowadzenia wymagane jest od³¹czenie sondy od komputera i†wpiÍcie siÍ testerem szeregowo w†ten obwÛd tak, jak pokazano na rys. 4b. Wymuszenia dokonujemy za pomoc¹ przyciskÛw S2 - ìBOGATAî i†S3 - ìUBOGAî. Sterownik silnika (oczywiúcie sprawny) bÍdzie stara³ siÍ przeciwdzia³aÊ tym stanom. Jeúli wymuszeniem by³o napiÍcie symuluj¹ce mieszankÍ bogat¹, powinien j¹ zuboøyÊ, jeúli zaú ubog¹ - wzbogaciÊ. Widoczne bÍdzie to na wyúwietlaczu. Przyciskiem S1 - ìAverageî - w³¹czamy funkcjÍ uúredniania, co sygnalizowane jest za-
Rys. 2. Obszar “a” − mieszanka bogata, obszar “b” − mieszanka uboga
Rys. 4. Sposób włączenia testera w obwód pomiarowy: równolegle (a), szeregowo (b)
Rys. 1. Budowa sondy lambda
WspÛ³czynnik lambda mierzony jedn¹ sond¹ dla silnika wielocylindrowego ma wartoúÊ úredni¹ dla wszystkich cylindrÛw. Poniewaø mierzone stÍøenie tlenu odnosi siÍ do ³adunku spalonego wczeúniej, wynik pomiaru w†stosunku do spalonej mieszanki jest opÛüniony. OpÛünienie to jest zaleøne od prÍdkoúci obrotowej i†wynosi ok. 20 ms + 4†π/ω. Tyle informacji tytu³em wstÍpu na temat budowy i†zasady dzia³ania samej sondy lambda.
Zasada dzia³ania testera
22
paleniem siÍ diody ìAverageî. W†tym trybie wyúwietlacz uaktualniany jest co 4†s úredni¹ z†800 pomiarÛw†wykonywanych w†tym czasie. Taki czas akwizycji i†wyúwietlania danych zosta³ przyjÍty z†uwagi na ma³¹ czÍstotliwoúÊ zmian napiÍcia na sondzie. Uúrednianie pozwala na dok³adniejsze oszacowanie stanu wyregulowania sk³adu mieszanki. W†trybie tym nie jest dostÍpna opcja symulacji sk³adu mieszanki. Tester posiada takøe sygnalizacjÍ düwiÍkow¹ stanÛw wskazuj¹cych na uszkodzenie sondy, takich jak przekroczenie wartoúci 1,1 V†oraz zbyt d³ugie (powyøej 4†sekund) pozostawanie napiÍcia sondy w†przedziale 0,4...0,6 V. Poniewaø†czujnik poprawnie pracuje w†temperaturze powyøej 300oC, aby wykonaÊ wiarygodne pomiary, naleøy po uruchomieniu zimnego silnika odczekaÊ od kilku do kilkunastu minut, w†zaleønoúci od zastosowanej w†samochodzie sondy.
Budowa testera Schemat elektryczny uk³adu pomiarowego przedstawiono na rys. 5, zaú uk³adu wyúwietlania na rys. 6. ìSercemî testera jest procesor ATtiny26. Jest to jeden z†nowszych ìma³ychî procesorÛw firmy Atmel. Na swoim wyposaøeniu posiada dwa oúmiobitowe timery/liczniki (z tego jeden ma moøliwoúÊ pracy w†trybie PWM), interfejs transmisji szeregowej USI, komparator analogowy, programowany watchdog oraz najbardziej dla nas istotny 10-bitowy przetwornik A/C. Wykorzystany on
Elektronika Praktyczna 7/2003
Tester samochodowych sond lambda zosta³ do pomiaru napiÍcia sondy. SondÍ lambda pod³¹cza siÍ do styku 6†gniazda J2. St¹d napiÍcie podawane jest poprzez rezystor R10 na wejúcie 3†uk³adu U4A oraz przez styki przekaünika K1 na styk 4†gniazda J2. Wyprowadzenie to s³uøy do pod³¹czenia sterownika silnika w†wersji z†rys. 4b. Przekaünik s³uøy†do przerwania obwodu sonda-komputer oraz podania na z³¹cze pod³¹czone do komputera napiÍcia symuluj¹cego wyst¹pienie mieszanki ubogiej lub bogatej. NastÍpuje to po przyciúniÍciu przycisku S2 (bogata) lub S3 (uboga). Uk³ad U4A pracuje w†konfiguracji wzmacniacza nieodwracaj¹cego. O†wzmocnieniu tego uk³adu decyduj¹ rezystory R18, R19. Ze wzglÍdu na brak moøliwoúci p³ynnej regulacji wzmocnienia tego stopnia, w†celu zapewnienia dostatecznej dok³adnoúci rezystory te powinny byÊ co najmniej 1%. Dioda D7 zabezpiecza uk³ad przed nadmiernie duøym napiÍciem wejúciowym. Wzmocnione napiÍcie sondy jest, poprzez rezystor R11, doprowadzone do wzmacniacza U4B pracuj¹cego, w†po³¹czeniu z†diod¹
Rys. 3. Charakterystyczny cykl pracy sondy dla prawidłowej mieszanki
D4, jako ogranicznik aktywny. Zabezpiecza on procesor U1 przed przekroczeniem na jego wejúciu dopuszczalnego napiÍcia (w tym przypadku napiÍcia zasilania U1). Wartoúci¹ zadan¹ w†ograniczniku jest napiÍcie pod³¹czone do wejúcia 5†uk³adu U4B. Podawane jest ono z†wyjúcia stabilizatora U2 zasilaj¹cego mikrokontroler, co gwarantuje ograniczenie napiÍcia wejúciowego U1 na odpowiednim poziomie. ObwÛd R14, C5 chroni uk³ad U1 przed nag³ymi zmianami wartoúci napiÍcia wejúciowego wywo³anymi przypadkowymi sygna³ami zak³Ûcaj¹cymi. Dioda D5 stanowi dodatkowe zabezpiecze-
nie wejúcia uk³adu U1 w†przypadku uszkodzenia U4. Uk³ad U1 steruje takøe przekaünikiem K1 oraz kluczami analogowymi U3A, U3B zawartymi w†uk³adzie 4066. S³uø¹ one do podawania poprzez przekaünik napiÍcia symuluj¹cego mieszankÍ bogat¹ lub ubog¹. WartoúÊ tego napiÍcia dla mieszanki bogatej wynosi ok. 0,8 V†i†jest wyznaczana poprzez dzielnik R1, R6, a†dla mieszanki ubogiej ok. 0,2 V†ustalana dzielnikiem R2, R9. Rezystory R7, R8 wraz z†diod¹ Zenera D2 maj¹ na celu zabezpieczenie testera w†przypadku niespodziewanego pojawienia siÍ nadmiernie duøego napiÍcia
Rys. 5. Schemat elektryczny sterownika
Elektronika Praktyczna 7/2003
23
Tester samochodowych sond lambda WYKAZ ELEMENTÓW
Rys. 6. Schemat elektryczny wyświetlacza
na z³¹czu pod³¹czonym do sterownika silnika (np. uszkodzenie sterownika lub zwarcie w†instalacji) oraz sterownika, w†przypadku uszkodzenia testera. Do wyprowadzenia 4†(PB3) uk³adu U1 - poprzez elementy R16 i Q2 - pod³¹czony jest przetwornik piezoceramiczny s³uø¹cy do sygnalizacji akustycznej stanÛw mog¹cych wskazywaÊ na uszkodzenie sondy. Elementy D6, R15 i†C9 wymuszaj¹ sygna³ zerowania procesora po w³¹czeniu zasilania. Sygna³ zegarowy kontrolera stabilizowany jest za pomoc¹ zewnÍtrznego kwarcu Y1. Kondensatory C6 i†C7 umoøliwiaj¹ pewny start wewnÍtrznego generatora uk³adu. Procesor steruje takøe (w†sposÛb szeregowy) modu³em wyúwietlania zbudowanym na uk³adach U5, U6 typu 74HC595, ktÛre steruj¹ trzynastoma diodami úwiec¹cymi. Dwanaúcie z†nich ustawionych jest w†postaci linijki i†s³uøy do wizualizacji wartoúci napiÍcia sondy
24
lambda, natomiast dioda D20 sygnalizuje w³¹czenie funkcji uúredniania. Tester zasilany jest bezpoúrednio z†instalacji elektrycznej samochodu. Dioda D1 zabezpiecza uk³ad przed odwrotnym pod³¹czeniem napiÍcia. CzÍúÊ analogowa (uk³ad U4) zasilana jest napiÍciem niestabilizowanym pobieranym z†miejsca oznaczonego na schemacie ì+12Vî. NapiÍcie w†tym miejscu moøe wahaÊ siÍ w†granicach od 12 do 15 V. NapiÍcie dla czÍúci cyfrowej uk³adu stabilizowane jest przez 5-woltowy stabilizator U2. Program dla procesora zosta³ napisany w†jÍzyku C†i†skompilowany za pomoc¹ kompilatora CodeVisionAVR v†1.23.7. WersjÍ ewaluacyjn¹ tego programu (ograniczenie do 2†kB kodu) moøna úci¹gn¹Ê ze strony www.hpinfotech.ro/cvavre.zip. Tester moøe byÊ uøywany do aut napÍdzanych benzyn¹ oraz
Tester samochodowych sond lambda przy zamontowanej instalacji gazowej. Jak wiadomo, przy zasilaniu silnika benzyn¹ kontrolÍ nad sk³adem mieszanki sprawuje komputer. Z†tego powodu jakiekolwiek wykryte nieprawid³owoúci zakoÒczyÊ siÍ musz¹ wizyt¹ w†serwisie b¹dü w†zak³adzie specjalistycznym dysponuj¹cym odpowiedni¹ aparatur¹ do odczytu ustawieÒ jednostki centralnej. Tak samo jest z†instalacjami gazowymi wyposaøonymi w†sterownik mikroprocesorowy. Przy prostszych instalacjach gazowych (bez sterownika) jest moøliwa, na podstawie wskazaÒ testera oraz przy podstawowej znajomoúci budowy instalacji gazowej, samodzielna korekcja sk³adu mieszanki gazu i†powietrza. Rafa³ Szulc
Rys. 7. Schemat montażowy płytki sterownika
Elektronika Praktyczna 7/2003
Rys. 8. Schemat montażowy płytki wyświetlacza
Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiec03.htm oraz na p³ycie CD-EP7/2003B w katalogu PCB.
25
Pr89AT P R O− programator J E K T Ymikrokontrolerów '51 z pamięcią Flash
Pr89AT − programator mikrokontrolerów '51 z pamięcią Flash AVT−518 Opisany w†artykule programator charakteryzuje siÍ prostot¹ wykonania, niskim kosztem, ³atwym w†obs³udze programem steruj¹cym dla Windows, duøymi moøliwoúciami (programuje wiÍkszoúÊ mikrokontrolerÛw '51 firmy Atmel w†obudowach DIP20/40), jest sterowany przez interfejs szeregowy oraz przystosowany do zasilania z†portÛw komputera. Rekomendacje: idealne narzÍdzie dla projektantÛw systemÛw mikroprocesorowych stosuj¹cych w†swoich projektach g³Ûwnie flashowe '51.
Pr89AT w wersji 2.2 umożliwia programowanie następujących mikrokontrolerów: ✓ w obudowach DIP40: 89C51, C52, C55 (bez WD), ✓ w obudowach DIP20: 89C1051, C2051 i C4051.
26
Prezentowany programator jest przeznaczony do programowania uk³adÛw†w†obudowach DIP40 (jak np.: 89C51, 89C52, 89C55 w†wersjach 5†V†lub 12 V) i†innych, zgodnych z†tym standardem programowania, oraz w†obudowach DIP20 (jak np.: 89Cx051). ìSercemî programatora jest mikrokontroler U1 AT89C51 (schemat elektryczny pokazano na rys. 1). Ustawia on, po odczytaniu rozkazu z†portu szeregowego wys³anego przez komputer, odpowiednie adresy, dane i†poziomy napiÍÊ programuj¹cych oraz sygna³Ûw steruj¹cych. Komunikacja z†komputerem odbywa siÍ z†maksymaln¹ prÍdkoúci¹, jak¹ pozwala uzyskaÊ UART, czyli 115200 b/s. Uk³ad U2 dopasowuje poziomy TTL interfejsu szeregowego do poziomÛw zgodnych ze standardem RS232. Dobrze jest zastosowaÊ uk³ad MAX232A w szybszej wersji, ale przy krÛtkich przewodach nie ma to wiÍkszego znaczenia. Na dwÛch bramkach NAND U3 wykonano prosty generator przebiegu prostok¹tnego o†czÍstotliwoúci ok. 20 kHz, ktÛry wraz z†tranzystorem prze³¹czaj¹cym T1 (2N2369), d³awikiem L1, diod¹ D1 i†kondensatorem C2 spe³nia rolÍ przetwornicy napiÍcia z†5†na 16 V. NapiÍcie z†przetwornicy jest stabilizowane
za pomoc¹ diody Zenera D2. Tranzystory T2 i†T3 s³uø¹ do prze³¹czania napiÍcia programuj¹cego podawanego na wejúcia Vpp, ktÛre moøe przyjmowaÊ jedn¹ z†wartoúci: - 0,2 V†- tranzystor T3 nasycony, co odpowiada zeru logicznemu, - 4†V†- tranzystor T2 nasycony, a†T3 zablokowany, co odpowiada stanowi logicznemu ì1î, - 12 V†- T2 i†T3 zablokowane, co umoøliwia uzyskanie napiÍcia programowania Vpp. Uwaga! Tranzystory T2 i†T3 powinny mieÊ moøliwie duøy wspÛ³czynnik wzmocnienia (przynajmniej 250). W†innym przypadku tranzystory mog¹ siÍ nie nasyciÊ i†programator nie bÍdzie dzia³aÊ poprawnie! NapiÍcie zasilania programatora powinno mieÊ wartoúÊ 5†V. Moøna je pobieraÊ bezpoúrednio z†jednego z†portÛw komputera (rys. 2): portu klawiatury PS/2, USB lub GamePortu. Najproúciej jest pod³¹czyÊ siÍ do portu USB, ale w†starszych komputerach tego portu nie by³o, wiÍc w†takich przypadkach proponujÍ wykorzystaÊ port joysticka. W†ostatecznoúci, gdy nie mamy do dyspozycji portu USB ani portu joysticka, moøna pobraÊ zasilanie z†portu klawiatury wykonuj¹c prost¹ przejúciÛwkÍ.
Elektronika Praktyczna 7/2003
Pr89AT − programator mikrokontrolerów '51 z pamięcią Flash podstawek doúÊ szybko zuøywaj¹ siÍ i†nie zapewniaj¹ styku o odpowiedniej jakoúci. Uruchomienie naleøy rozpocz¹Ê od przetwornicy. Przetwornica nieobci¹øona (bez diody stabilizacyjnej D2 12V) powinna na wyjúciu dawaÊ oko³o 16 V†lub wiÍcej. Jeøeli napiÍcie jest niøsze, naleøy†zmieniÊ czÍstotliwoúÊ generatora poprzez zmianÍ pojemnoúci kondensatora C1 do uzyskania odpowiedniego napiÍcia. Jeøeli to nie pomoøe, naleøy zmieniÊ d³awik L1. NastÍpnie naleøy wlutowaÊ pozosta³e elementy i†sprawdziÊ czy steruj¹c tranzystorami T2, T3 otrzymujemy odpowiednie napiÍcia odpowiadaj¹ce zeru logicznemu, jedynce i†napiÍciu programowania.
Oprogramowanie Na potrzeby programatora opracowa³em program steruj¹cy dla Windows. Program korzysta ze standardowej biblioteki API i†wspÛ³pracuje z†przejúciÛwkami USB->RS232. Instalacja programu odbywa siÍ automatycznie za pomoc¹ programu InstallSchield Express, ktÛry ³atwo przeprowadzi nas przez instalacjÍ. Po zainstalowaniu klikamy na ikonkÍ Pr89AT i†uruchamiamy program. Po uruchomieniu pokaøe siÍ okno, jak na rys. 4a. Aby otworzyÊ plik HEX, klikamy na ikonkÍ odczyt i†wybieramy plik. Gdy wybierzemy plik w†dolnym oknie, to pojawi siÍ zawartoúÊ pliku w†kodzie szesnastko-
Rys. 1. Schemat elektryczny programatora
Montaø i†uruchomienie Na rys. 3 przedstawiono schemat montaøowy p³ytki programatora. Rezystory podci¹gaj¹ce R7...R14 znajduj¹ siÍ pod podstawk¹ mikrokontrolera, podobnie jak kondensator C3. Rezysto-
Elektronika Praktyczna 7/2003
rÛw†tych moøna nie wlutowywaÊ, bez nich rÛwnieø programator dzia³a poprawnie, ale dla pewnoúci lepiej je tam umieúciÊ. Dla programowanych uk³adÛw proponujÍ zastosowaÊ podstawki precyzyjne lub ZIF. Styki zwyk³ych
Rys. 2. Schemat podłączenia programatora do gniazd PC, z których można pobierać napięcie zasilające
27
Pr89AT − programator mikrokontrolerów '51 z pamięcią Flash WYKAZ ELEMENTÓW
Rys. 3. Schemat monażowy płytki programatora
wym oraz w†kodzie ASCII (rys. 4b). Aby zapisaÊ na dysku zawartoúÊ bufora (np. z zawartoúci¹ pamiÍci odczytan¹ z mikrokontrolera), klikamy na ikonkÍ zapisz i†zapisujemy dane w†pliku o†podanej nazwie i†lokalizacji. Øeby przyspieszyÊ odczyt, wystarczy klikn¹Ê na plik HEX w†dowolnym menedøerze plikÛw, a†program uruchomi siÍ automatycznie i†za³aduje dane. Wymaga to jednak wczeúniejszego ustawienia w†Windows domyúlnego programu dla plikÛw HEX. Program steruj¹cy prac¹ programatora nie odczytuje plikÛw BIN, ale ³atwo je moøna konwertowaÊ na postaÊ HEX za pomoc¹ ogÛlnie dostÍpnych programÛw (np. http://www.ep.com.pl/ftp/ bin2hex.exe, http://www.ep.com.pl/ ftp/hex2bin.exe). Kolejne ikonki znajduj¹ce siÍ w†menu umoøliawiaj¹ szybkie programowanie, odczytywanie i†pe³-
n¹ blokadÍ programowanego uk³adu. W†pasku Main znajduje siÍ wywo³anie dodatkowych funkcji: kasowanie pamiÍci, weryfikacja jej zawartoúci, odczyt sygnatur, blokady, wybÛr uk³adu czy wybÛr numeru portu COM. Jeøeli w†oknie wyboru uk³adu ustawimy Automatycznie, to programator pobierze informacje o†programowanym mikrokontrolerze z†jego sygnatury. W†razie uszkodzenia sygnatury, co ma czÍsto miejsce przy pracy z†ìma³ymiî '51, naleøy rÍcznie podaÊ typ uk³adu. Programator oprÛcz uk³adÛw, ktÛre wymieniono na liúcie programu, moøe programowaÊ takøe mikrokontrolery innych producentÛw (Philipsa, Winbonda). W†takim przypadku naleøy wybraÊ rÍcznie Inny uk³ad. Maksymalny obszar pamiÍci, jaki moøe zaprogramowaÊ Pr89AT, wynosi 32 kB. Ograniczenie wynika z†potrzeby
Rys. 4. Okno programu Pr89AT po uruchomieniu (a), po wczytaniu pliku HEX (b)
maksymalnego uproszczenia budowy programatora, a†liczba portÛw†I/O zastosowanego mikrokontrolera jest o†jeden za ma³a. Szkoda, bo mÛg³by zostaÊ pokryty ca³y standardowy dla '51 obszar pamiÍci programu do 64 kB i†by³oby wÛwczas moøliwe programowanie m.in. '51 w†wersjach RD2. Podczas zapisu do pamiÍci Flash programator od razu weryfikuje, czy nast¹pi³o poprawne zapisanie. Daje nam to gwarancjÍ, øe programowanie przebiega poprawnie. Marek Kopeæ Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiec03.htm oraz na p³ycie CD-EP7/2003B w katalogu PCB.
Elektronika Praktyczna 7/2003
Radiowy system zdalnego sterowaniaP z kanałem R O J Ezwrotnym K T Y
Radiowy system zdalnego sterowania z kanałem zwrotnym, część 1 AVT−517 W†sk³ad prezentowanego systemu wchodzi nadajnik i†odbiornik, ktÛre pozwalaj¹ sterowaÊ dwoma serwomechanizmami i†dwoma wyjúciami typu w³¹cz/wy³¹cz. Moøliwa jest praca z†kana³em zwrotnym, ktÛrym przesy³ane s¹†dane z†odbiornika do nadajnika. Rekomendacje: zestaw przydatny do dwukierunkowej transmisji danych na relatywnie duøe odleg³oúci w†nielicencjonowanym paúmie 433 MHz. Moøe spe³niaÊ rolÍ systemu zdalnego sterowania modeli lub medium transmisyjnego w†lokalnych systemach telemetrycznych.
Elektronika Praktyczna 7/2003
Najprostszy sposÛb sterowania na odleg³oúÊ prac¹ jakiegoú urz¹dzenia polega na po³¹czeniu go ze stanowiskiem operatora za pomoc¹ kabla. Gdy nie jest to moøliwe, najwygodniej jest uøyÊ ³¹czy bezprzewodowych, z†ktÛrych najwiÍksz¹ popularnoúci¹ ciesz¹ siÍ ³¹cza radiowe. Radiow¹ transmisjÍ danych moøna wykorzystaÊ takøe do zdalnego sterowania modeli samolotÛw, ³odzi lub innych pojazdÛw. OprÛcz wymaganej niezawodnoúci i†moøliwie duøego zasiÍgu, istnieje jeszcze jedno ograniczenie zwi¹zane z†wykonaniem radiowej aparatury do zdalnego sterowania/transmisji danych - jej koszt. Prezentowany w†artykule zestaw moøna zbudowaʆstosunkowo tanio, a†jego najwaøniejsze parametry s¹ nastÍpuj¹ce: - obs³uguje 2†niezaleøne kana³y do sterowania serwomechanizmami,
- obs³uguje 2†niezaleønie prze³¹czane wyjúcia typu w³¹cz/wy³¹cz, - praca z kana³em zwrotnym z†moøliwoúci¹ przekazywania do nadajnika m.in. informacji o†stanie jednego wejúcia typu w³¹cz/ wy³¹cz odbiornika, - kontrola i†sygnalizacja poziomu napiÍcia zasilania zarÛwno nadajnika, jak i†odbiornika, - zasilanie nadajnika 4,5...9 V/33 mA, - zasilanie odbiornika 4,5...9 V/15 mA (ze wzglÍdu na zasilanie serwomechanizmÛw zalecane 4,8...6 V), - transmisja radiowa w†paúmie 433†MHz z†moc¹ nadajnikÛw 10†mW, - cyfrowo kodowana transmisja danych steruj¹cych. Najwaøniejszym elementem prezentowanego systemu jest pÛ³dupleksowy radiomodem, ktÛry wykonano na uk³adzie CC1000 firmy Chipcon. Ze wzglÍdu na ³atwoúÊ zastosowania i†stosunko-
29
Radiowy system zdalnego sterowania z kanałem zwrotnym
Przetworniki po³oøenia
Rys. 1. Przebiegi czasowe sygnałów przy zapisie danych do rejestru wewnętrznego
wo nisk¹ cenÍ uøyto gotowego modu³u z†tym uk³adem CC1000PP - produkowanego przez firmÍ Soyter.
Zintegrowany transceiver CC1000PP Zastosowanie jako kompletnego toru radiowego gotowego modu³u wynika z†chÍci uproszczenia pracy konstruktorÛw. DziÍki temu, mamy ìz†g³owyî koniecznoúÊ optymalizowania i†wykonywania p³ytki drukowanej pod k¹tem wymogÛw stawianych urz¹dzeniom pracuj¹cym w†paúmie 433 MHz. Niew³aúciwe poprowadzenie úcieøek czy powierzchni masy powoduje katastrofalne pogorszenie czu³oúci i†efektywnej mocy nadajnika, co oznacza zmniejszenie zasiÍgu. K³opotliwe jest takøe zdobycie w†iloúciach detalicznych i†montaø miniaturowych elementÛw SMD. Modu³ CC1000PP ma niewielkie wymiary (28 x†21 mm) i†by³oby niezwykle trudno w†warunkach amatorskich samodzielnie wlutowaÊ uøyte do jego budowy miniaturowe elementy. Modu³ umoøliwia dwukierunkow¹ transmisjÍ danych. Prze³¹czanie pomiÍdzy nadawaniem i†odbiorem odbywa siÍ programowo. DziÍki temu moøna by³o w†³atwy sposÛb stworzyÊ kana³ zwrotny, ktÛrym przesy³ane s¹ dodatkowe informacje do operatora. Do komunikacji z†modu³em uøywanych jest 5†linii pogrupowanych w†dwa interfejsy rÛøni¹ce siÍ funkcjami. Wyprowadzenia PALE, PDATA i†PCLK s³uø¹ do programowania trybu pracy, co wi¹øe siÍ z†zapisem lub odczytem zawartoúci wewnÍtrznych rejestrÛw uk³adu CC1000. Za pomoc¹ tych linii moøna np. zaprogramowaÊ czÍstotliwoúÊ pracy, zmieniÊ tryb pracy (nadawanie - odbiÛr), ustawiÊ moc wyjúciow¹ w†trybie nadawania, przeprowadziÊ kalibracjÍ itd.
30
Na rys. 1 pokazano przebiegi czasowe sygna³Ûw na wymienionych wyprowadzeniach podczas zapisu danych do jednego z†rejestrÛw wewnÍtrznych uk³adu. Dane przesy³ane s¹ lini¹ PDATA i†taktowane opadaj¹cym zboczem impulsu zegarowego linii PCLK. Najpierw, przy niskim poziomie linii PALE, transmitowany jest 7-bitowy adres wewnÍtrznego rejestru uk³adu CC1000. Poziom wysoki ostatniego, Ûsmego bitu oznacza, øe chodzi o†operacjÍ zapisu. NastÍpnie poziom na linii PALE zmienia siÍ na wysoki i†transmitowanych jest 8†bitÛw danych wpisywanych do wybranego wczeúniej rejestru. Linie DCLK i†DIO tworz¹ drugi interfejs uøywany do wysy³ania i†odbioru danych przesy³anych drog¹ radiow¹. Do przesy³ania bitÛw danych wykorzystywana jest linia DIO, natomiast na DCLK pojawiaj¹ siÍ generowane przez CC1000 impulsy zegara synchronizuj¹ce transfer kaødego bitu. W†przypadku gdy modu³ pracuje jako nadajnik, kolejny bit danych podawanych szeregowo na liniÍ DIO powinien pojawiÊ siÍ przed narastaj¹cym zboczem impulsu zegarowego. Gdy modu³ pracuje jako odbiornik, dane na linii DIO zmieniaj¹ kierunek. Wtedy zbocze narastaj¹ce impulsu zegarowego okreúla moment, gdy z†linii danych moøna odczytaÊ kolejny bit odbieranych danych.
CzÍúÊ operatorska nadajnik Ta czÍúÊ zestawu s³uøy operatorowi m.in. do sterowania serwomechanizmami po stronie odbiorczej. Schemat elektryczny uk³adu przedstawiono na rys. 2. Ze wzglÍdu na przeznaczenie, schemat moøna podzieliÊ na trzy funkcjonalne czÍúci: przetworniki po³oøenia, elementy steruj¹ce i†sygnalizacyjne oraz uk³ady dopasowuj¹ce.
Do sterowania po³oøeniem serwomechanizmÛw s³uø¹ operatorowi dwa potencjometry do³¹czane do gniazd JP5 i†JP6. Zmianie po³oøenia pokrÍte³ potencjometrÛw powinien odpowiadaÊ analogiczny ruch serwomechanizmÛw. Poniewaø transmisja danych odbywa siÍ w†sposÛb cyfrowy, po³oøenie suwakÛw potencjometrÛw powinno byÊ zakodowane w†ten w³aúnie sposÛb. S³uø¹ do tego celu uk³ady U2 i†U3 (popularne uk³ady czasowe typu 555). Pracuj¹ one jako generatory pojedynczego impulsu o†regulowanym czasie trwania zaleønym od opornoúci potencjometrÛw do³¹czonych do gniazd JP5 i†JP6. Proces zamiany informacji o†pozycji potencjometrÛw na postaÊ cyfrow¹ przebiega nastÍpuj¹co. Najpierw procesor wytwarza na wyjúciu 14 impuls wyzwalaj¹cy dla obu generatorÛw. Impuls ten podawany jest na wejúcia TRIG U2 i†U3. Powoduje to pojawienie siÍ na ich wyjúciach Q†impulsu o†czasie trwania zaleønym od pojemnoúci sta³ego kondensatora (C10 dla U3 i†C8 dla U2) i†opornoúci potencjometru steruj¹cego. Impulsy podawane s¹ na wyprowadzenia 7†i†11 procesora. Narastaj¹ce zbocza impulsÛw z†wyjúÊ Q uk³adÛw czasowych uruchamiaj¹ wewnÍtrzne programowe liczniki procesora, natomiast zbocza opadaj¹ce tych impulsÛw zatrzymuj¹†pracÍ licznikÛw. W†ten sposÛb czas trwania impulsu moøe byÊ zliczony przez licznik i†zamieniony na liczbÍ z†przedzia³u 0...255, proporcjonaln¹ do po³oøenia suwaka potencjometru steruj¹cego. Zastosowane w†prototypie potencjometry steruj¹ce maj¹ opornoúÊ 2,2 kΩ i†w†po³¹czeniu z†kondensatorami C8 dla kana³u pierwszego i†C10 dla kana³u 2 pozwalaj¹ wytwarzaÊ impulsy na wyjúciach Q†o†czasie trwania od 1†ms do 2,2 ms. Moøna zastosowaÊ potencjometry o†innej opornoúci, co wi¹øe siÍ z†dobraniem wartoúci kondensatorÛw C8, C10 oraz opornikÛw korekcyjnych PR2 i†PR3 tak, aby przy ustalonych skrajnych po³oøeniach potencjometrÛw generowane by³y impulsy o†czasach trwania 1†ms i†2,2 ms. Naleøy sko-
Elektronika Praktyczna 7/2003
Radiowy system zdalnego sterowania z kanałem zwrotnym
Rys. 2. Schemat elektryczny nadajnika
Elektronika Praktyczna 7/2003
31
Radiowy system zdalnego sterowania z kanałem zwrotnym
Rys. 3. Schemat elektryczny odbiornika
rzystaÊ ze wzoru na obliczenie czasu trwania impulsu: TQ =1,1(Rx * Cx), gdzie: TQ - czas trwania impulsu na wyjúciach Q†uk³adÛw U2 i†U3 w†sekundach Rx - sumaryczna opornoúÊ potencjometrÛw i†opornikÛw korekcyjnych w†[Ω] Cx - pojemnoúÊ kondensatorÛw C8 i†C10 w†[F]
Elementy steruj¹ce i†sygnalizacyjne OprÛcz przetwornikÛw po³oøenia, uk³ad wyposaøono w†gniazda dla prze³¹cznikÛw steruj¹cych dwoma wyjúciami w³¹cz/wy³¹cz oraz prze³¹cznikiem w³¹czaj¹cym kana³ zwrotny. Znajduj¹†siÍ one na z³¹czu JP4. Wyjúcia w³¹cz/wy³¹cz przyjmuj¹ po stronie odbiorczej poziom odpowiadaj¹cy stanowi logicznemu, jaki wymusz¹ prze³¹czniki do³¹czone do JP4-3 i†5. Z†kolei prze³¹cznik do³¹czony do JP47 w³¹cza lub wy³¹cza kana³ zwrotny. Jeøeli zewrze on to wyprowadzenie do masy, nadajnik steruj¹cy, kaødorazowo po wys³aniu dro-
32
g¹ radiow¹ danych do czÍúci odbiorczej, bÍdzie prze³¹cza³ siÍ na odbiÛr i†oczekiwa³ transmisji zwrotnej z†odbiornika. Wy³¹cznik do³¹czony pomiÍdzy JP4-1 i†2†bÍdzie uaktywnia³ buczek sygnalizuj¹cy stany awaryjne. Do gniazda JP3 do³¹czane s¹ diody sygnalizacyjne. Dioda LED do³¹czona do JP3-1 i†2†informuje o†stanie wejúcia w³¹cz/wy³¹cz odbiornika (jeøeli kana³ zwrotny jest w³¹czony), natomiast LED JP3-3 i†4 sygnalizuje niski poziom napiÍcia zasilania. Do grupy elementÛw sygnalizacyjnych moøna zaliczyÊ takøe uk³ad detekcji poziomu napiÍcia zasilaj¹cego. Opornik R2 i†ürÛd³o napiÍcia odniesienia D1 wytwarzaj¹ stabilne napiÍcie o†wartoúci 1,2V podawane na wejúcie 13 mikrokontrolera. W†mikrokontrolerach AT90S2313 jest to wejúcie odwracaj¹ce wewnÍtrznego komparatora. Do wejúcia nieodwracaj¹cego podawane jest napiÍcie z†suwaka potencjometru PR1 i†jego wielkoúÊ jest proporcjonalna do wartoúci napiÍcia zasilania Uz.
Uk³ady dopasowuj¹ce ZarÛwno modu³ transceivera, jak i†procesor s¹ zasilane stabilizowanym napiÍciem +3V wytwarzanym przez uk³ad U4. Dla umoøliwienia procesorowi wspÛ³pracy z†innymi uk³adami zasilanymi napiÍciem Uz potrzebne s¹†stopnie dopasowuj¹ce poziomy napiÍÊ. S³uø¹ do tego tranzystory T1, T2 i†T3.
CzÍúÊ odbiorcza Na rys. 3 przedstawiono schemat czÍúci odbiorczej steruj¹cej do³¹czonymi serwomechanizmami. NiektÛre fragmenty tego uk³adu s¹ identyczne jak w†czÍúci nadawczej uk³adu. Dotyczy to procesora, po³¹czonego z†nim modu³u transceivera i uk³adu detekcji niskiego poziomu zasilania. Pozosta³e obwody zwi¹zane z†tranzystorami
Elektronika Praktyczna 7/2003
Radiowy system zdalnego sterowania z kanałem zwrotnym
T1-5 pe³ni¹ funkcjÍ obwodÛw wejúcia/wyjúcia. I†tak do z³¹cz JP3 i†JP4 do³¹czane s¹ serwomechanizmy. Do gniazda JP5-1 i†2†doprowadzone zosta³y wyprowadzenia prze³¹cznikÛw w³¹cz/wy³¹cz. S¹ one typu otwarty kolektor. Z†kolei do JP3-3 do³¹czone jest wejúcie w³¹cz/wy³¹cz odbiornika. Jeøeli zostanie podany na nie poziom wysoki napiÍcia, odpowiednia dioda sygnalizacyjna nadajnika zostanie zapalona. Sterowanie serwomechanizmami odbywa siÍ poprzez wygenerowanie co pewien czas dodatniego impulsu. Serwomechanizm obrÛci siÍ w†lewo, jeúli impuls bÍdzie krÛtszy, a†w†przeciwn¹ stronÍ, jeúli siÍ wyd³uøy. K¹t obrotu zaleøy od czasu trwania impulsu, a†ten z†kolei od zakodowanych cyfrowo i†przes³anych drog¹ radiow¹ danych steruj¹cych. Do prÛb z†prototypem uøyte zosta³y serwomechanizmy firmy HITEC HS300 i†HS322. Wymagaj¹ one pojawiania siÍ impulsÛw co 20 ms. Skrajnym po³oøeniom serwomechanizmÛw odpowiadaj¹ czasy 0,9 ms i†2,1 ms. Impulsy o†czasach zawartych pomiÍdzy tymi wartoúciami ustawiaj¹ serwomechanizmy w†po³oøeniach poúrednich.
Opis dzia³ania zestawu nadajnik-odbiornik Poniewaø wiÍkszoúÊ spraw zwi¹zanych z†funkcjonowaniem uk³adu zosta³a juø poruszona podczas omawiania schematÛw ideowych nadajnika i†odbiornika, teraz ograniczÍ siÍ jedynie do krÛtkiego opisu wspÛ³dzia³ania nadajnika i odbiornika. Po w³¹czeniu zasilania odbiornik automatycznie ustawia obydwa serwomechanizmy w†pozycjach neutralnych, wyjúcia w³¹cz/ wy³¹cz s¹ wy³¹czone, a†modu³
Elektronika Praktyczna 7/2003
i†procesor przechodz¹ w†tryb odbioru danych. Nadajnik po w³¹czeniu odczytuje po³oøenie potencjometrÛw steruj¹cych, korzystaj¹c z†przetwornikÛw po³oøenia. NastÍpnie odczytywany jest stan prze³¹cznikÛw steruj¹cych wyjúciami w³¹cz/ wy³¹cz odbiornika i†stan prze³¹cznika za³¹czaj¹cego kana³ zwrotny. Formowane s¹ bajty danych i†nastÍpuje ich wysy³anie do odbiornika. Jeøeli kana³ zwrotny nie jest aktywny, nadajnik po zakoÒczeniu transmisji ponownie sprawdza po³oøenie potencjometrÛw, prze³¹cznikÛw i†wykonuje kolejn¹ transmisjÍ w†nieprzerwanej pÍtli odczytÛw i†transmisji. Jeøeli kana³ zwrotny jest w³¹czony po zakoÒczeniu transmisji, nadajnik przechodzi na nas³uch i†oczekuje odpowiedzi z†odbiornika. Jeøeli odpowiedü nie pojawi siÍ przez ok. 100 ms i†fakt ten powtÛrzy siÍ podczas kolejnych trzech transmisji, nadajnik sygnalizuje brak kana³u zwrotnego migotaniem diody do³¹czonej do JP3-3 i†4. Jeøeli odpowiedü pojawi siÍ, jest ona dekodowana. Zaleønie od stanu wejúcia w³¹cz/wy³¹cz odbiornika, dioda do³¹czona do JP3-1 i†2†jest zapalana lub gaszona. Jednoczeúnie, jeøeli w†informacji przesy³anej kana³em zwrotnym ustawiony zostanie bit niskiego napiÍcia zasilania odbiornika, dioda do³¹czona do JP33 i†4†bÍdzie siÍ úwieci³a tak d³ugo, jak d³ugo ten bit bÍdzie aktywny. Odbiornik po odebraniu transmisji dekoduje dane i†zmienia parametry impulsÛw steruj¹cych serwomechanizmami. Wyjúcia w³¹cz/wy³¹cz ustawiane s¹ w†stan zgodny z†przes³anymi z†nadajnika danymi. Jeøeli w†transmisji ustawiony jest bit kana³u zwrotnego, odbiornik odczytuje poziom wejúcia w³¹cz/wy³¹cz i†poziom swojego napiÍcia zasilania. NastÍpnie formowany jest bajt odpowiedzi i†wysy³any, po czym odbiornik wraca do trybu nas³uchu. Ryszard Szymaniak, AVT [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiec03.htm oraz na p³ycie CD-EP7/2003B w katalogu PCB.
WYKAZ ELEMENTÓW Nadajnik Rezystory PR1: potencjometr montażowy 10kΩ PR2, PR3: potencjometr montażowy 2,2kΩ R1: 4,7Ω R2, R3: 22kΩ R4...R9, R12...R14: 10kΩ R10, R11: 470Ω Kondensatory CE1: 100µF/16V CE2: 1µF/16V C1, C2: 27pF C3...C10: 100nF Półprzewodniki U1: zaprogramowany AT90S2313 D1: źródło napięcia odniesienia 1,2V LM385 U2, U3: LMC555 U4: stabilizator 3V (lub dowolny inny w obudowie TO−92A, np. LP2950−3) T1...T3: BC547 Różne X1: kwarc 3,58MHz B1: sygnalizator akustyczny MOD1: CC1000PP − moduł radiowy na pasmo 433MHz Podstawka DIP20 Listwy złącza dla modułu 2 x 6 (gold pin) Odbiornik Rezystory PR1: 10kΩ R1: 20kΩ SMD1206 R2: 4,7Ω SMD1206 R3, R5: 4,7kΩ SMD1206 R4, R6...R10: 10kΩ SMD1206 R11: 22kΩ SMD1206 Kondensatory C1, C2: 27pF SMD1206 C3...C6: 100nF SMD1206 CE1: 100µF/16V CE2: 1µF/16V Półprzewodniki U2: AT90S2313 zaprogramowany T1...T5: BC848 SMD MOD1: CC1000PP − moduł radiowy na pasmo 433MHz D1L źródło napięcia odniesienia 1,2V LM385 U1: stabilizator 3V (lub dowolny inny w obudowie TO−92A, np. LP2950−3) Różne X1: 3,58MHz Podstawka DIP20 Listwy złącza dla modułu 2 x 6 (gold pin)
33
P
R
O„Klocki” J E K RS485 T Y
„Klocki” RS485, część 2
W†drugiej czÍúci artyku³u przedstawiamy dwie karty wyjúciowe, za pomoc¹ ktÛrych moøna sterowaÊ rÛønorodnymi urz¹dzeniami zewnÍtrznymi. Elementami wykonawczymi w†jednej z†nich s¹ przekaüniki elektromechaniczne, w†drugiej triaki, ktÛrych bramki s¹ zasilane przez nowoczesne optotriaki. Rekomendacje: zabawÍ w†klocki RS485 polecamy szczegÛlnie tym Czytelnikom, ktÛrzy musz¹ przes³aÊ dane cyfrowe na duøe odleg³oúci, z†relatywnie duø¹ prÍdkoúci¹.
Karta wyjúÊ przekaünikowych AVT-531 Karta wyjúÊ przekaünikowych zawiera osiem przekaünikÛw o†obci¹øalnoúci stykÛw rÛwnej 10 A. Moøe s³uøyÊ do za³¹czania odbiornikÛw zasilanych przemiennym lub sta³ym np. 220†V†(AC), 12†V†(DC). Przekaüniki posiadaj¹ jeden styk prze³¹czny, co umoøliwia zasilanie do³¹czonego urz¹dzenia, gdy cewka przekaünika jest zasilana (NO) lub gdy przekaünik jest w†spoczynku (NC). Uk³ady steruj¹ce s¹ odseparowane galwanicznie od uk³adÛw wykonawczych. Karta umoøliwia komunikacjÍ dwustronn¹, dziÍki czemu moøna sprawdziÊ stan wszystkich przekaünikÛw.
Budowa
Klocki RS485 to: -
AVT-530 - konwerter RS232<->RS485, AVT-531 - karta przekaników, AVT-532 - karta triaków, AVT-533 - karta wyjæ cyfrowych (aktywne GND), AVT-534 - karta wyjæ cyfrowych (aktywne VCC), AVT-535 - karta wejæ cyfrowych, AVT-536 - 8-wejciowa karta wejæ analogowych, AVT-537 - 4-cyfrowy wywietlacz LED, AVT-538 - 32-znakowy wywietlacz LCD.
Elektronika Praktyczna 7/2003
Schemat elektryczny karty przekaünikÛw jest przedstawiony na rys. 5. G³Ûwnym elementem jest mikroprocesor PIC16F84A, ktÛry odpowiada za odbiÛr oraz nadawanie danych poprzez interfejs RS485 oraz - w†zaleønoúci od odebranych danych - odpowiednio steruje przekaünikami. Procesor pracuje z†zewnÍtrznym oscylatorem o†czÍstotliwoúci 4†MHz. Do zerowania procesora zastosowano specjalizowany uk³ad DS1813 (US3). Przekaünikami steruje mikrokontroler za poúrednictwem wzmacniaczy tranzystorowych zawartych w†uk³adzie ULN2803A (US4). Uk³ad ten zawiera osiem tranzystorÛw z†rezystorami bazo-
wymi, dziÍki ktÛrym moøna sterowaÊ nimi bezpoúrednio z†wyjúʆmikrokontrolera. Dodatkowo obwÛd kolektorowy kaødego tranzystora jest zabezpieczony za pomoc¹ diod przed uszkodzeniem wywo³anym przepiÍciami, ktÛre w†przypadku sterowania cewek przekaünikÛw wystÍpuj¹. Diody te zwieraj¹ napiÍcia wyøsze niø napiÍcie panuj¹ce na wejúciu COM. Jako przekaüniki wykonawcze zastosowano przekaüniki typu RM96P o†jednym styku prze³¹cznym i†maksymalnym prze³¹czanym pr¹dzie rÛwnym 10 A. Przekaüniki umoøliwiaj¹ za³¹czanie odbiornikÛw zasilanych zarÛwno napiÍciem przemiennym, jak i†sta³ym. Do sygnalizacji za³¹czenia przekaünika zastosowano diody úwiec¹ce D1...D8. Dioda zostaje zapalona w†momencie za³¹czenia przekaünika. Rezystory R1...R8 ograniczaj¹ pr¹d p³yn¹cy przez te diody. Za konwersjÍ sygna³Ûw pojawiaj¹cych siÍ w†linii transmisyjnej na standard TTL odpowiada uk³ad MAX485 (US2). Dokonuje on rÛwnieø konwersji z†poziomÛw TTL na poziomy RS485. W†czasie spoczynku uk³ad ten znajduje siÍ w†trybie odbiornika, poniewaø na wejúciach DE i†!RE panuje poziom niski wymuszony przez wyjúcie procesora. Prze³¹czenie w†tryb nadawania uk³adu MAX485 nastÍpuje tylko na czas wysy³ania danych przez kartÍ, a nastÍpnie zostaje przywrÛcony tryb odbioru, aby nie blokowaÊ linii transmisyjnej. Dodatkowy rezystor R11 od-
35
„Klocki” RS485 powiada za dopasowanie linii i†powinien byÊ zamontowany tylko w†jednym module, najbardziej oddalonym od nadajnika (konwertera RS232<->RS485, AVT-530, EP6/2003). O†jego montaøu naleøy jednak zdecydowaÊ po pod³¹czeniu wszystkich modu³Ûw, gdyø podczas testÛw okaza³ siÍ zbÍdny. Zworka JP1 s³uøy†do zmiany podstawowego adresu, pod ktÛrym bÍdzie zg³asza³a siÍ karta przekaünikÛw. Natomiast zworka JP2 umoøliwia powrÛt do podstawowego adresu urz¹dzenia. Rezystory R9 i†R10 s³uø¹ jako rezystory podci¹gaj¹ce wejúcia RA3 i†RA4 do plusa zasilania. Opis zmiany podstawowego adresu karty przekaünikÛw zostanie przedstawiony
Rys. 5. Schemat elektryczny karty przekaźników z interfejsem RS485
36
Elektronika Praktyczna 7/2003
„Klocki” RS485
Rys. 6. Rozmieszczenie elementów na płytce karty przekaźników
w†kolejnej czÍúci artyku³u, gdyø dla wszystkich modu³Ûw przebiega w†taki sam sposÛb. Do stabilizacji napiÍcia zasilaj¹cego zastosowano monolityczny stabilizator typu LM7805. Do filtracji napiÍcia zastosowano kondensatory C1...C4.
nie elementÛw na p³ytce przedstawiono na rys. 6). Montaø elementÛw naleøy zacz¹Ê od wykonania tych w³aúnie zworek srebrzank¹ o†úrednicy 0,5 mm. NastÍpnie naleøy wlutowaÊ rezystory (bez rezystora R11), podstawki pod uk³ady scalone i†kondensatory. Stabilizator napiÍcia (US5) naleøy zamontowaÊ
na leø¹co, dlatego wczeúniej trzeba zagi¹Ê jego wyprowadzenia pod k¹tem 90o. W†kolejnym etapie naleøy wlutowaÊ przekaüniki P1...P8, z³¹cza CON1...CON10 i†zworki JP1 i†JP2. Diody úwiec¹ce naleøy zamontowaÊ na samym koÒcu, aby dopasowaÊ wysokoúÊ ich zamontowania do ewentualnej obudowy. Po prawid³owym zmontowaniu uk³adu moøna przejúÊ do sprawdzenia jego funkcjonowania. W†tym celu do z³¹cza CON9 naleøy pod³¹czyÊ napiÍcia zasilania o†wartoúci oko³o†12†V. Naleøy przy tym zwrÛciÊ szczegÛln¹ uwagÍ na polaryzacjÍ przy³oøonego napiÍcia, gdyø karta nie posiada zabezpieczenia przed odwrotn¹ polaryzacj¹. Do z³¹cza CON10 naleøy pod³¹czyÊ przewody wspÛlnej dla wszystkich modu³Ûw magistrali, zwracaj¹c
Tab. 2. Zestawienie wszystkich komend umożliwiających sterowanie kartą przekaźników Polecenie
Przyk³ad: ESC 1 w 3 1 enter ESC 1 w n 0 enter n-numer przekanika (1...8)
Przyk³ad: ESC 1 w 4 0 enter Ustawienie stanów ESC 1wa s1s2s3s4s5s6s7s8 enter wszystkich przekaników jednos1...s8 mog¹ byæ równe czenie 0 lub 1 (ASCII)
Przyk³ad: ESC 1 w a 11110000 enter Odczyt stanu jednego przekanika
Odczyt stanów wszystkich przekaników
ESC 1 r n enter n-numer przekanika (1...8) Przyk³ad: ESC 1 r 5 enter ESC 1 r a enter
Przyk³ad: ESC 1 r a enter
w³¹cza przekanik numer 3 Wy³¹czenie przekanika o numerze n n=1...8 (odpowiednio 1=przekanik 1, 2=przekanik 2 itd.) wy³¹cza przekanik numer 4 Ustawia stany dla wszystkich przekaników jednoczenie. Parametry s1...s8 odpowiadaj¹ stanom odpowiednich przekaników (s1 odpowiada stanowi przekanika P1, s2 stanowi przekanika P2, itd.). Parametr s równy 1(ASCII) powoduje za³¹czenie, a równy 0(ASCII) wy³¹czenie przekanika. w³¹cza przekaniki o numerach 1...4 i wy³¹cza przekaniki o numerach 4...8. Zwraca informacjê o stanie wskazanego w parametrze n przekanika. Jeli przekanik jest w³¹czony, to zwraca 1(ASCII), jeli wy³¹czony, to 0(ASCII) odczytuje stan przekanika o numerze 5 Zwraca informacjê o stanie wszystkich przekaników, do modu³u steruj¹cego wysy³ane jest 8 znaków. Jeli przekanik jest w³¹czony, to zwraca 1(ASCII), jeli wy³¹czony, to 0(ASCII). odczytuje stany wszystkich przekaników
37
„Klocki” RS485
Rys. 7. Schemat elektryczny karty triaków z interfejsem RS485
38
Elektronika Praktyczna 7/2003
„Klocki” RS485 przy tym uwagÍ na sposÛb ich pod³¹czenia (A do A, B do B).
Obs³uga karty przekaünikÛw Karta przekaünikÛw posiada adres odpowiadaj¹cy cyfrze ì1î (w kodzie ASCII), dlatego jakiekolwiek dzia³ania jej dotycz¹ce mog¹ byÊ wykonane po podaniu tego adresu. Stan przekaünikÛw moøe byÊ zmieniany pojedynczo, niezaleønie dla kaødego przekaünika lub grupowo po podaniu w†jednym pakiecie danych ustawienia stanÛw wszystkich przekaünikÛw. Moøliwy jest takøe odczyt stanu dowolnego przekaünika, jak rÛwnieø wszystkich jednoczeúnie. Kaøda komenda rozpoczyna siÍ od znaku ESC (klawisz Escape na klawiaturze), nastÍpnie naleøy podaÊ adres karty i†rozkaz, jaki ma byÊ wykonany. Zestaw wszystkich komend umoøliwiaj¹cych sterowaniem kart¹ przekaünikÛw oraz przyk³adowe polecenia i†reakcjÍ na nie karty przedstawiono w†tab. 2.
Karta wyjúÊ optoizolowanych AVT-532 Karta triakÛw moøe byÊ zastosowana do sterowania urz¹dzeniami zasilanymi napiÍciem 220 VAC. RolÍ elementÛw wykonawczych spe³nia osiem triakÛw sterowanych poprzez transoptory zapewniaj¹ce galwaniczn¹ separacjÍ od sieci energetycznej urz¹dzeÒ†do³¹czonych do magistrali RS485. KartÍ
wyposaøono w†zasilacz, dziÍki ktÛremu nie trzeba stosowaÊ dodatkowego napiÍcia sta³ego do zasilania uk³adÛw steruj¹cych. Uk³ady steruj¹ce s¹ odizolowane galwanicznie od uk³adÛw wykonawczych poprzez zastosowanie optotriakÛw. Karta umoøliwia komunikacjÍ dwukierunkow¹, dziÍki czemu moøna sprawdziÊ stan wszystkich triakÛw.
Budowa Schemat elektryczny karty triakÛw przedstawiono na rys. 7. Jej g³Ûwnym elementem jest mikrokontroler PIC16F84A, ktÛry odpowiada za odbiÛr i nadawanie danych poprzez magistralÍ RS485 oraz steruje triakami zgodnie z†odebranymi poleceniami. Procesor jest taktowany sygna³em zegarowym o†czÍstotliwoúci stabilizowanej za pomoc¹ zewnÍtrznego rezonatora o†czÍstotliwoúci 4†MHz. Do zerowania mikrokontrolera zastosowano specjalizowany uk³ad DS1813 (US3). Bramki triakÛw s¹ sterowane przez optotriaki, wskutek czego uzyskano izolacjÍ galwaniczna uk³adÛw wykonawczych od uk³adÛw steruj¹cych, a†ponadto pr¹d wymagany do sterowania triakiem wynosi w†takim przypadku zaledwie kilka miliamperÛw. Poniewaø porty procesora mog¹ byÊ obci¹øane pr¹dem o†wartoúci wynosz¹cej maksymalnie 25 mA, to optotriaki s¹ sterowane bezpoúrednio z†portu PB bez dodatkowych wzmacniaczy. Rezystory
R19...R26 ograniczaj¹ pr¹d p³yn¹cy przez diody optotriakÛw. Dodatkowe diody úwiec¹ce w³¹czone szeregowo w obwodach sterowania optotriakami s³uø¹ do sygnalizacji úwietlnej stanu triaka, a†tym samym urz¹dzenia do niego pod³¹czonego. Zastosowane triaki mog¹ przewodziÊ pr¹dy o†maksymalnej wartoúci rÛwnej 12 A. Za konwersjÍ sygna³Ûw pojawiaj¹cych siÍ w†linii transmisyjnej na standard TTL odpowiada uk³ad MAX485 (US2), dokonuje on rÛwnieø konwersji z†poziomÛw TTL na poziomy RS485. Podczas spoczynku uk³ad ten znajduje siÍ w†trybie odbiornika, poniewaø na wejúciach DE i†!RE panuje poziom niski wymuszony przez wyjúcie procesora. Prze³¹czenie w†tryb nadawania uk³adu MAX485 nastÍpuje tylko na czas wysy³ania danych przez kartÍ triakÛw, a†nastÍpnie zostaje przywrÛcony tryb odbioru, aby nie blokowaÊ linii transmisyjnej. Dodatkowy rezystor R†s³uøy do dopasowania linii i†powinien byÊ zamontowany jedynie w†jednym module, najbardziej oddalonym od nadajnika (konwertera RS232<>RS485).O jego montaøu naleøy jednak zdecydowaÊ po pod³¹czeniu wszystkich modu³Ûw, gdyø w†czasie testÛw okaza³ siÍ zbÍdny. Zworka JP1 s³uøy do zmiany podstawowego adresu, pod ktÛrym bÍdzie zg³asza³a siÍ karta przekaünikÛw. Natomiast zworka JP2 umoøliwia powrÛt†do podstawowego adresu
Rys. 8. Rozmieszczenie elementów na płytce karty triaków
Elektronika Praktyczna 7/2003
39
„Klocki” RS485 urz¹dzenia. Rezystory R1 i†R2 s³uø¹ jako rezystory podci¹gaj¹ce wejúcia RA3 i†RA4 do plusa zasilania. Opis zmiany podstawowego adresu karty triakÛw zostanie przedstawiony w†dalszej czÍúci artyku³u, gdyø dla wszystkich modu³Ûw przebiega w†taki sam sposÛb. Do zasilania uk³adÛw zastosowano zasilacz wykonany z†uøyciem transformatora T, mostka prostowniczego G1 i†scalonego stabilizatora US4. Do filtracji napiÍcia zastosowano kondensatory C1...C4.
Montaø Schemat montaøowy p³ytki optotriakÛw pokazano na rys. 8. Montaø elementÛw naleøy rozpocz¹Ê od rezystorÛw (bez rezystora R), nastÍpnie naleøy wlutowaÊ podstawki pod uk³ady scalone i†kondensatory. Kolejno naleøy wlutowaÊ optotriaki U1...U8, triaki Q1...Q8, z³¹cza CON1...CON10. Na samym koÒcu naleøy zamontowaÊ transformator T†i†diody úwiec¹ce D1...D8 dopasowuj¹c†ich wysokoúÊ do potrzeb. Jako bezpiecznik B1 naleøy zastosowaÊ bezpiecznik o†wartoúci zaleønej od mocy pobieranej przez od-
biorniki do³¹czone do triakÛw. Jeúli triaki bÍd¹ sterowa³y øarÛwkami, to bezpiecznik moøe mieÊ wartoúÊ 2†A. W†przypadku sterowania urz¹dzeniami o†mocy wiÍkszej niø 200 W na jeden kana³, dodatkowo naleøy zastosowaÊ radiator dla triakÛw. Radiator taki moøe byÊ wykonany z†blachy aluminiowej, naleøy jednak odizolowaÊ obudowÍ triaka od radiatora za pomoc¹ podk³adek i†tulejek izolacyjnych. NapiÍcie zasilaj¹ce (220 VAC) naleøy pod³¹czyÊ do z³¹cza CON1, a†urz¹dzenia odbiorcze do z³¹czy CON2...CON9. Przy wykonywaniu okablowania naleøy zachowaÊ szczegÛln¹ uwagÍ ze wzglÍdu na kontakt z†niebezpiecznym dla øycia napiÍciem 220 VAC. Przy duøych pr¹dach prze³¹czanych naleøy dodatkowo wzmocniÊ úcieøki doprowadzaj¹ce wspÛlne zasilanie do triakÛw i†do z³¹czy CON2...CON9, przez przylutowanie do nich drutu miedzianego o†przekroju oko³o 1†mm2. Do z³¹cza CON10 naleøy pod³¹czyÊ przewody wspÛlnej dla wszystkich modu³Ûw magistrali, zwracaj¹c przy tym uwagÍ na sposÛb†pod³¹czenie (A do A, B†do B).
Tab. 3. Zestawienie wszystkich komend umożliwiających sterowanie kartą triaków Rodzaj komendy
Wydana komenda
Za³¹czenie jednego ESC 2 w n 1 enter triaka n-numer triaka (1...8) Przyk³ad: ESC 2 w 3 1 enter Wy³¹czenie jednego ESC 2 w n 0 enter triaka n-numer triaka (1...8) Przyk³ad: ESC 2 w 4 0 enter Ustawienie stanów ESC 2 w a s1s2s3s4s5s6s7s8 wszystkich triaków enter jednoczenie s1...s8 mog¹ byæ równe 0 lub 1 (ASCII)
Przyk³ad: ESC 2 w a 11110000 enter Odczyt stanu jednego triaka
Odczyt stanów wszystkich triaków
ESC 2 r n enter n-numer triaka (1...8) Przyk³ad: ESC 2 r 5 enter ESC 2 r a enter
Przyk³ad: ESC 2 r a enter
40
Reakcja karty triaków Za³¹czenie przekanika o numerze n n=1...8 (odpowiednio 1=triak 1, 2=triak 2 itd.) w³¹cza triak numer 3 Wy³¹czenie triaka o numerze n n=1...8 (odpowiednio 1= triak 1, 2= triak 2 itd.) wy³¹cza triak numer 4 Ustawia stany dla wszystkich triaków jednoczenie. Parametry s1...s8 odpowiadaj¹ stanom odpowiednich triaków (s1 odpowiada stanowi triaka Q1, s2 stanowi triaka Q2, itd.). Parametr s równy 1(ASCII) powoduje za³¹czenie, a równy 0(ASCII) wy³¹czenie triaka. W³¹cza triaki o numerach 1...4 i wy³¹cza triaki o numerach 4...8. Zwraca informacjê o stanie wskazanego w parametrze n triaka. Jeli przekanik jest w³¹czony, to zwraca 1(ASCII), jeli wy³¹czony, to 0(ASCII) odczytuje stan triaka o numerze 5 Zwraca informacjê o stanie wszystkich triaków, do modu³u steruj¹cego wysy³ane jest 8 znaków. Jeli triak jest w³¹czony, to zwraca 1(ASCII), jeli wy³¹czony, to 0(ASCII). odczytuje stany wszystkich triaków
Obs³uga karty triakÛw Karta triakÛw posiada adres odpowiadaj¹ce kodowi znaku ì2î (w kodzie ASCII), dlatego jakiekolwiek dzia³ania jej dotycz¹ce mog¹ byÊ wykonane po podaniu tego adresu. Stan triakÛw moøe byÊ zmieniany pojedynczo, niezaleønie dla kaødego triaka lub grupowo po podaniu w†jednym pakiecie danych ustawiaj¹cych stany wszystkich triakÛw. Moøliwy jest takøe odczyt stanu dowolnego triaka, jak rÛwnieø wszystkich jednoczeúnie. Kaøda komenda rozpoczyna siÍ od znaku ESC (klawisz Escape na klawiaturze), nastÍpnie naleøy podaÊ adres karty i†rozkaz, jaki ma byÊ wykonany. Zestaw wszystkich komend umoøliwiaj¹cych sterowaniem kart¹ triakÛw oraz przyk³adowe polecenia i†reakcjÍ karty na nie przedstawiono w†tab. 3. Krzysztof P³awsiuk, AVT [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiec03.htm oraz na p³ycie CD-EP7/2003B w katalogu PCB.
Elektronika Praktyczna 7/2003
Akwizycja danych przez Ethernet − zdalny P Rmoduł O J pomiarowy E K T Y
Akwizycja danych przez Ethernet Zdalny moduł pomiarowy, część 2
W†drugiej czÍúci artyku³u przedstawiamy trudniejsz¹ dla elektronikÛw czÍúÊ systemu zdalnej akwizycji danych programowanie sieciowe. Rekomendacje: prezentujemy system pomiarowy o†ogromnych walorach poznawczych - autor zintegrowa³ w†nim bowiem zaawansowany system pomiaru temperatury i†jednoczeúnie pokaza³, w†jaki sposÛb wyniki pomiarÛw udostÍpniÊ za pomoc¹ Ethernetu.
Elektronika Praktyczna 7/2003
Oprogramowanie wspÛ³pracuj¹ce ze zdalnym termometrem Poniøsze opisy dotycz¹ Windows 98SE - instalacje pod 2000/ NT/XP bÍd¹ wymaga³y zastosowania instrukcji dostarczanych razem z†pakietami.
Program komunikacyjny PT1000.EXE Program komunikacyjny (napisany w†bezp³atnym Delphi 6†PE kody ürÛd³owe s¹ dostÍpne w†materia³ach pomocniczych na p³ycie CD-EP7/2003) realizuje nastÍpuj¹ce zadania: - wysy³a co pewien czas zapytanie do oddalonego termometru, - wykrywa i†sygnalizuje brak odpowiedzi, - prawid³ow¹ odpowiedü dekoduje i†otrzyman¹ wartoúÊ temperatury zapisuje wraz z†czasem wykonania pomiaru do tabeli MySql, - pozwala na wybÛr uøywanego portu szeregowego, - pozwala na okresowe wy³¹czenie portu w†celu jego wykorzys-
tania przez inn¹ aplikacjÍ bez wychodzenia z†programu, - wyúwietla informacyjn¹ ikonÍ w†obszarze podajnika (tray) w†opisie (hint) ikony moøna odczytaÊ ostatni¹ wartoúÊ temperatury. Przy tym odczycie nie jest potrzebny øaden interfejs ekranowy - wyúwietlamy zatem (komend¹ w†kontekstowym menu ikony) tylko proste okienko dialogowe wyboru i†czasowego wy³¹czenia portu szeregowego. Do obs³ugi portu szeregowego z†pod³¹czonym poprzez adapter optoizolacyjny uk³adem modemu sieciowego ST7537 s³uøy komponent TRsPort. Natomiast komunikacjÍ z†baz¹ danych umoøliwia modu³ mysql.pas dostarczaj¹cy funkcje API MySQL pozwalaj¹ce na bezpoúrednie odwo³ania do bazy. Delphi w†wersji Personal Edition nie posiada (w odrÛønieniu od edycji profesjonalnych) øadnych komponentÛw wspomagaj¹cych programowanie bazodanowe - jednak w†naszym zastosowaniu (gdy uøy-
41
Akwizycja danych przez Ethernet − zdalny moduł pomiarowy wamy tylko niewielkiej liczby danych) nie jest to przeszkod¹, gdyø funkcje API MySQL s¹ w†zupe³noúci wystarczaj¹ce. Wszystkie szczegÛ³y zainteresowani znajd¹ w†kodzie ürÛd³owym.
Serwer bazodanowy MySQL Aby PT1000.EXE mÛg³ wykonywaÊ zapisy do tabeli, musimy mieÊ uruchomiony serwer MySQL udostÍpniaj¹cy swoje funkcje. Przez d³ugi czas zarÛwno MySQL, jak i†Apache by³y praktycznie domen¹ uøytkownikÛw Linuksa. Teraz sytuacja radykalnie siÍ zmieni³a - bez problemu moøemy stosowaÊ te znakomite i†bezp³atne narzÍdzia rÛwnieø w†úrodowisku Windows. Na firmowej stronie MySQL znajdziemy gotowy ìokienkowyî instalator, ktÛry praktycznie samodzielnie umieúci serwer na naszym dysku. W†folderze [docs] znajdziemy teø pe³n¹ dokumentacjÍ, ktÛra pozwoli na wyjaúnienie wszelkich niejasnoúci. Przed uruchomieniem serwera naleøy sprawdziÊ, czy w†naszej maszynie mamy zainstalowany protokÛ³ TCP/IP (dotyczy to tylko komputerÛw bez dostÍpu do Internetu). W†razie potrzeby w†oknie konfiguracji otoczenia sieciowego dodajemy protokÛ³. Do kontroli nad serwerem najlepiej uøyÊ dostarczonego razem z†pakietem programu winmysqladmin.exe (w folderze [bin]), ktÛry oprÛcz wielu uøytkowych informacji oferuje takøe sprawne uruchamianie i†zatrzymywanie, przygotowanie i†edycjÍ pliku startowego.ini oraz umieszczenie wpisu w†menu Autostart. Po udanym zainstalowaniu i†uruchomieniu serwera przygotowujemy niewielk¹ bazÍ danych, w†ktÛrej bÍd¹ przechowywane informacje przekazywane przez PT1000.EXE. Do tego celu moøemy uøyÊ dowolnego klienta MySQL - nawet najprostszego konsolowego mysql.exe dostarczanego z†pakietem, ktÛry jednak wymaga znajomoúci sk³adni poleceÒ SQL. Warto wiÍc wyszukaÊ w†sieci jakieú dogodniejsze narzÍdzie - bardzo sympatyczny w†uøyciu jest m.in. klient phpMyAdmin ze strony http://www.phpwizard.net/projects/phpMyAdmin, ktÛry jednak wymaga uruchomienia najpierw serwera http z†nastÍpnego punktu.
42
Nasza ma³a baza nazywa siÍ Pogoda i†zawiera tylko jedn¹ tabelÍ meteo z†polami: - Czas typu DATETIME, - Tempout typu FLOAT. Moøemy oczywiúcie uøyÊ innych nazw, ale musi byÊ zachowana zgodnoúÊ z†kodem odwo³aÒ do bazy w†PT1000.EXE. Ostatnim zabiegiem koniecznym do w³aúciwej wspÛ³pracy programÛw jest udostÍpnienie biblioteki Libmysql.dll zawieraj¹cej funkcje API i†dostarczonej razem z†pakietem w†podkatalogu [lib\opt]. Kopiujemy j¹ albo do foldera z†plikiem PT1000.EXE, albo - lepiej - do domyúlnego foldera [windows\system].
Serwer http Apache Apache rÛwnieø oferuje na firmowej stronie gotowy instalator dla Windows. Mamy obecnie do wyboru najnowsz¹ wersjÍ serii 2†oraz starsz¹ 1.3.27. W†naszym przyk³adzie uøyta zosta³a starsza wersja - w†zupe³noúci wystarczaj¹ca dla bardzo niewielkich wymagaÒ testowego uk³adu. Po instalacji mamy od razu serwer wstÍpnie skonfigurowany, ze stron¹ startow¹ witryny ustawion¹ na folder [htdocs] oraz z†u³atwiaj¹cymi pracÍ wpisami do Menu Start. WstÍpnie uruchamiamy serwer jako aplikacjÍ konsolow¹ (z pozycji menu Start>Programy>Apache>Start Apache in Console). Jeúli teraz w†przegl¹darce WWW wpiszemy adres localhost (albo ìcyfrowoî http://127.0.0.1), powinna siÍ otworzyÊ powitalna strona Apache. PracÍ Apache'a w†konsoli koÒczymy sekwencj¹ ctrl+c. Jeúli chcemy, aby serwer startowa³ samoczynnie razem z†systemem, mamy do wyboru dwie moøliwoúci: 1.UmieúciÊ skrÛt w†folderze Autostart, co jest o†tyle niewygodne, øe przy wy³¹czaniu systemu trzeba konsolÍ Apache'a rÍcznie zamykaÊ. 2.ZainstalowaÊ Apache'a jako us³ugÍ (service). W†domowych Windows 9x opcja ta ma charakter eksperymentalny i†dzia³anie nie jest gwarantowane. W†testowym uk³adzie uda³o siÍ uruchomiÊ w†ten sposÛb wersjÍ 1.3.22 pod W98SE, ale wersja 2.0 juø odmawia³a wspÛ³pracy.
Instalacja us³ugi jest wykonywana w†konsoli DOS-owej komend¹ apache -i -n nazwa_uslugi. Po wykonaniu znajdziemy odpowiedni wpis w†rejestrze HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/RunServices. Pod W9x zalety us³ugi s¹ ograniczone - sprowadzaj¹ siÍ praktycznie do ukrycia procesu przed uøytkownikiem. PracÍ us³ugi moøemy jednak nadal w†razie potrzeby kontrolowaÊ komendami konsolowymi apache -n nazwa_uslugi -k start/restart/stop/shutdown, co moøe byÊ przydatne np. przy zmianach konfiguracji. Jeúli chcemy umieúciÊ nasz¹ witrynÍ w†miejscu odpowiedniejszym niø domyúlne [htdocs], zak³adamy oddzielny folder, np. c:\webroot, w†ktÛrym umieszczamy kod w³asnej strony powitalnej jako plik index.html (jest to domyúlny plik otwierany przez przegl¹darkÍ po po³¹czeniu siÍ z†witryn¹). Wtedy jednak musimy w†konfiguracji httpd.conf zaktualizowaÊ wpis DocumentRoot (w naszym przypadku DocumentRoot ìc:/webrootî - uwaga na uniksowy slash) i†zaraz potem ustawiÊ dla naszego foldera uprawnienia dostÍpu (sekcja Directory ìc:/webrootî >....., zawartoúÊ moøemy pozostawiÊ domyúln¹). Naleøy zaznaczyÊ, øe Apache'a nie naleøy uøywaÊ pod W9x jako serwera internetowego. Te systemy zupe³nie siÍ do tego nie nadaj¹ ze wzglÍdu na brak zabezpieczeÒ i†nisk¹ stabilnoúÊ. Natomiast z†powodzeniem moøna wykonywaÊ rozmaite testy w†ma³ych bezpiecznych sieciach, domowej lub niewielkiej firmowej (jak w†prezentowanym przyk³adzie).
PHP4 JÍzyk php s³uøy do pisania skryptÛw wykonywanych po stronie serwera http. Ze wzglÍdu na swoje zalety i†przystÍpnoúÊ (wynikaj¹c¹ z†przejÍcia wielu elementÛw C) zdoby³ szerokie uznanie i†szybko siÍ rozpowszechni³. Oczywiúcie serwer musi byÊ wyposaøony w†oprogramowanie wykonawcze dla skryptÛw. WspÛ³praca Apache'a z†PHP moøe siÍ odbywaÊ w†dwojaki sposÛb: - tak jak w†przypadku skryptÛw CGI modu³ wykonawczy php.exe
Elektronika Praktyczna 7/2003
Akwizycja danych przez Ethernet − zdalny moduł pomiarowy
Rys. 8 . Wygląd testowej strony w oknie przeglądarki WWW
jest traktowany jako zewnÍtrzny program i†uruchamiany oddzielnie dla kaødego pliku, - php moøe byÊ zintegrowane z†Apache'em poprzez dynamicznie ³adowan¹ bibliotekÍ funkcji (php4ts.dll), co znacznie przyúpiesza wykonywanie programu. Gotowy instalator dla Windows konfiguruje wszystko tylko dla pierwszego przypadku. Dlatego wykonujemy instalacjÍ oraz konfiguracjÍ rÍcznie: - plik zip z†pakietem php rozpakowujemy do wybranego folderu, np. c:\php, - do folderu [Windows\System] kopiujemy potrzebne biblioteki: g³Ûwn¹ php4ts.dll, odpowiadaj¹c¹ za wspÛ³pracÍ z†Apache'em php4apache.dll z†podkatalogu [sapi] oraz biblioteki wbudowanych rozszerzeÒ z†podkatalogu [dll] (jeúli jakieú biblioteki juø s¹, to nadpisujemy je nowymi tylko wtedy, gdy coú nie zechce funkcjonowaÊ - kaødorazowo wykonuj¹c przed zmian¹ kopiÍ zapasow¹ poprzedniej wersji), - do folderu [Windows] kopiujemy plik php.ini-dist jako php.ini, - w†php.ini (sekcja Path and directories) dopisujemy úcieøki do naszego foldera ze stron¹ WWW (doc_root = ìc:/webrootî) oraz do foldera z†bibliotekami dodatkowych rozszerzeÒ php (extension_dir = ìc:/php/extensionsî).
Elektronika Praktyczna 7/2003
Teraz dodatkowo musimy poinformowaÊ Apache'a o†moøliwoúci korzystania z†php. Wykonujemy to, edytuj¹c plik httpd.conf: - dopisujemy (moøna na koÒcu) instrukcje ³adowania modu³u:
LoadModule php4_module c:/ php/sapi/php4apache.dll AddModule mod_php4.c - informujemy serwer, ktÛre pliki powinny byÊ poddane ìobrÛbceî PHP - znajdujemy i†odkomentowujemy liniÍ (ew. dopisujemy jeúli brak): AddType application/x-httpdphp.php.phtml (tylko w†plikach z†podanymi rozszerzeniami bÍd¹ wykonywane skrypty, moøemy do swoich testÛw dodaÊ teø dla uproszczenia.html - w†normalnej pracy serwera jest to b³¹d, gdyø powoduje stratÍ czasu na analizÍ plikÛw z†za³oøenia bez skryptÛw, natomiast przy prÛbach umoøliwi dopisywanie skryptÛw do istniej¹cego kodu html bez zmiany rozszerzeÒ plikÛw na .php). Jeøeli Apache by³ uruchomiony, musimy go zatrzymaÊ. Ponowne uruchomienie w†konsoli powinno powiadomiÊ nas o†prawid³owym skonfigurowaniu (np. Apache/1.3.22 (Win32) PHP/4.1.0 running...). Jeúli serwer ìnie przyj¹³î PHP, musimy sprawdziÊ wszystko jeszcze raz i†ewentualnie zajrzeÊ
List. 1. Listing opisu przykładowej strony w języku HTML
Czas ostatniego pomiaru
Temperatura zewnętrzna
43
Akwizycja danych przez Ethernet − zdalny moduł pomiarowy do bogatych, dostarczanych z†pakietami manuali. Na koniec wykonujemy ostatni prosty test dzia³ania php, lokuj¹c na stronie odnoúnik do jakiegoú zupe³nie prostego pliku .php zawieraj¹cego krÛtki skrypt (np. echo ìPhp is OKî; albo Phpinfo();).
Wyúwietlenie wartoúci temperatury Teraz moøemy uøyÊ zainstalowanych narzÍdzi do wyúwietlania na naszej stronie wartoúci temperatury oraz czasu pomiaru, lokowanych w†tabeli meteo przez PT1000.EXE. Ca³y opis html tes-
44
towej strony znajduje siÍ w†materia³ach pomocniczych na p³ycie CD-EP7/2003 (wygl¹d strony przedstawiono na rys. 8). ZwrÛÊmy uwagÍ na ustawienie odúwieøania tabelki z†wartoúciami na czas zgodny z†czÍstotliwoúci¹ odczytu termometru. Opis przygotowany w†HTML dla prezentowanej strony pokazano na list. 1. Na koniec jeszcze ogÛlna uwaga. Czytelnicy obeznani z†tematyk¹ sieciow¹ z†pewnoúci¹ nie bÍd¹ zachwyceni maksymalnie uproszczonym sposobem przedstawienia oprogramowania. Jednak artyku³ absolutnie nie pretenduje do rangi
samouczka dla webmasterÛw i†pocz¹tkuj¹cych administratorÛw. Mia³ za zadanie prezentacjÍ moøliwoúci po³¹czenia w†funkcjonaln¹ ca³oúÊ pozornie bardzo odleg³ych technik w†ramach prostego, ale sprawdzonego i†dzia³aj¹cego przyk³adu jednoczeúnie nie wykraczaj¹c za bardzo poza sferÍ elektroniki. Jerzy Szczesiul, AVT [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiec03.htm oraz na p³ycie CD-EP7/2003B w katalogu PCB.
Elektronika Praktyczna 7/2003
PHANTOM P −R dekoder O J E surround K T Y
PHANTOM Dekoder surround, część 2 DüwiÍk dookÛlny jest coraz czÍúciej s³yszalny w†sprzÍcie audio powszechnego uøytku. Nie oznacza to jednak, øe uøytkownicy wiedz¹, i†maj¹ gdzie siÍ dowiedzieÊ, jak dzia³aj¹ dekodery surround i†jakimi moøliwoúciami dysponuj¹. Mamy nadziejÍ, øe prezentowany projekt dekodera pomoøe w†wyjaúnieniu zwi¹zanych z tym w¹tpliwoúci. Rekomendacje: projekt polecamy wszystkim audiofilom eksperymentuj¹cym z†düwiÍkiem, ktÛrym nie wystarczaj¹ standardowe dekodery surround.
Elektronika Praktyczna 7/2003
Linia opÛüniaj¹ca
Uk³ad autobalansu
Dekoder wyposaøono w†analogow¹ liniÍ opÛüniaj¹c¹ zbudowan¹ na uk³adzie scalonym MN3207, ktÛrej schemat pokazano na rys. 8. Uk³ad ten ma w†swej strukturze 1024 tranzystory polowe, ktÛre odpowiednio taktowane dwoma przebiegami prostok¹tnymi o†czÍstotliwoúci oko³o 40 kHz przenosz¹ syga³y z†wejúcia uk³adu, kolejno poprzez wszystkie tranzystory, na komplementarne wyjúcia. W†efekcie daje to opÛünienie sygna³u analogowego o†oko³o 12 ms. Przebieg prostok¹tny jest generowany przez uk³ad scalony MN3102. Przed lini¹ opÛüniaj¹c¹ i†za ni¹ zosta³y umieszczone filtry dolnoprzepustowe o†czÍstotliwoúci granicznej oko³o 12 kHz. Linia opÛüniaj¹ca jest bardzo wraøliwa na przesterowanie, dlatego filtr na wejúciu t³umi sygna³ o†po³owÍ, a†filtr wyjúciowy wzmacnia sygna³ dwa razy. W†sumie daje to wzmocnienie ca³ej linii zbliøone do†jednoúci. OpÛünieniu poddawany jest (jeúli linia opÛüniaj¹ca jest programowo w³¹czona) sygna³ surround tylnych kana³Ûw, we wszystkich trybach pracy z†wyj¹tkiem trybu DIRECT. W³¹czenie linii opÛüniaj¹cej uzasadnione jest w†nastÍpuj¹cych przypadkach: - jeúli s³uchacz znajduje siÍ bliøej tylnych g³oúnikÛw - linia opÛüniaj¹ca przesuwa pozorne po³oøenie g³oúnikÛw tylnych o†oko³o 4†m, - podczas ogl¹dania filmÛw ürÛd³o podstawowych düwiÍkÛw jest wtedy lokalizowane przed s³uchaczem. W³¹czenie linii opÛüniaj¹cej przy s³uchaniu muzyki jest dyskusyjne. Moim zdaniem, jeúli s³uchacz znajduje siÍ w†rÛwnej odleg³oúci od wszystkich g³oúnikÛw, linia opÛüniaj¹ca przy s³uchaniu muzyki nie jest potrzebna. Podczas ogl¹dania filmÛw powinna byÊ zawsze w³¹czona.
Uk³ad U6 (NE570 - rys. 9) wzmacnia sygna³y lewego i†prawego kana³u tak, aby na jego wyjúciu poziomy úrednie tych sygna³Ûw by³y rÛwne. Wzmocnienie w†danym kanale jest proporcjonalne do pr¹du wp³ywaj¹cego na wejúcie prostownika (R_INA, R_INB). Pr¹d ten jest natomiast proporcjonalny do napiÍcia zmiennego wystÍpuj¹cego na wyjúciu drugiego kana³u. Potencjometrem PR1 naleøy nastawiÊ wzmocnienie spoczynkowe (przy ma³ych sygna³ach wejúciowych) uk³adu NE570 na zbliøone do jednoúci. Tranzystory T1 i†T2 tworz¹ wzmacniacz rÛønicowy. W wyniku takiego po³¹czenia, gdy wzmocnienie jednego kana³u roúnie, to drugiego naleje i†odwrotnie. Uk³ady U9C i†U9D pracuj¹ jako prostowniki ìidealneî. Na wyjúciu uk³adu U6 znajduje siÍ filtr ìwycinaj¹cyî sk³adowe sygna³u o czÍstotliwoúci od 120 Hz do 8kHz. Filtr zosta³†w³¹czony pomiÍdzy dwa wyjúcia, poniewaø dalej sygna³y s¹ podawane na wzmacniacz rÛønicowy. £atwiej by³o zbudowaÊ jeden filtr pomiÍdzy dwoma wyjúciami niø dwa identyczne filtry pomiÍdzy danym wyjúciem a†mas¹. Wzmacniacz U5B wytwarza sygna³ rÛønicowy sygna³Ûw wyjúciowych z†uk³adu U6. Rezystory R35...R38 powinny byÊ rezystorami precyzyjnymi lub dobieranymi.
Obwody pomocnicze Na rys. 10 pokazano schemat elektryczny bloku sterowania kluczami analogowymi†(U15), uk³ady korekcji barwy tonu†(U14A, U14B) oraz zespÛ³ multiplekserÛw analogowych†(E3B, E3C). Dekoder jest sterowany przez magistralÍ I2C, za poúrednictwem uk³adu U15 i†wewnÍtrznych rejestrÛw TDA7429S. Adres uk³adu TDA7429S jest rÛwny 80H (128), natomiast uk³a-
45
PHANTOM − dekoder surround du PCF8574A 70H (112). Uk³ad TDA7429S posiada w†swojej strukturze 10 rejestrÛw (subadresy 0...9). Do tego uk³adu wysy³ane s¹ zawsze 3†bajty: - adres uk³adu - 80H, - subadres rejestru - 0...9, - bajt danych. Uk³ad PCF8574A ma jeden rejestr uøywany w†naszym uk³adzie jako wyjúciowy. Do tego uk³adu wysy³ane s¹ zawsze 2†bajty: - adres uk³adu - 70H, - bajt danych. W†tab. 2 i†3 podano, w†zapisie heksadecymalnym, poszczegÛlne kombinacje wartoúci bitÛw. Jeúli dany bajt steruje jednoczeúnie kilkoma parametrami, to poszczegÛlne kombinacje bitÛw naleøy zsumowaÊ. Przyk³ad: Øeby ustawiÊ fazÍ sygna³u wynosz¹c¹ 180o, w³¹czyÊ regulacjÍ barwy tonu, wy³¹czyÊ opÛünienie, w³¹czyÊ miksowanie sygna³u REAR z†kana³ami przednimi, wykorzystaÊ sygna³ z†uk³adu AUTOBALANS oraz podaÊ na wejúcia VAR zdekodowane sygna³y tylnych kana³Ûw, to otrzymujemy bajt: C0 + 00 + 10 + 08 + 00 + 00 -----------= E8 Po zsumowaniu wszystkich liczb otrzymujemy wartoúÊ E8H, ktÛr¹ naleøy wys³aÊ pod adres 70H. Na rys. 11 zamieszczono schemat elektryczny zasilacza oraz okablowania gniazd. Dekoder wymaga zasilania: +12 V/50 mA, +5 V/5 mA, -12 V/ 10 mA.
Montaø i†uruchomienie
Rys. 8. Schemat elektryczny linii opóźniającej
46
Dekoder zosta³ zmontowany na dwuwarstwowej p³ytce drukowanej, ktÛrej schemat montaøowy pokazano na rys. 12. Zastosowano elementy przewlekane oraz do montaøu†powierzchniowego (SMD). Wszystkie elementy SMD znajduj¹ siÍ na spodniej stronie p³ytki. Montaø naj-
lepiej rozpocz¹Ê od zamontowania rezystorÛw SMD o†wymiarze 1206 (3,2x1,6 mm) oraz kondensatorÛw†SMD 100 nF, o†takim samym rozmiarze obudowy. NastÍpnie montujemy elementy przewlekane po w³aúciwej stronie ìelementÛwî. Montaø moøna rozpocz¹Ê od wlutowania podstawek pod uk³ady scalone (jeúli zamierzamy montowaÊ uk³ady scalone w†podstawkach). NastÍpnie montujemy rezystory 0,125 W, diody BAVP, drabinki diod, kondensatory ceramiczne, kondensatory MKT oraz kondensatory elektrolityczne. Po zamontowaniu wszystkich elementÛw biernych naleøy wlutowaÊ scalone stabilizatory napiÍÊ ±8 V†(U10, U12). Po wlutowaniu stabilizatorÛw pod³¹czamy do z³¹cza LZZ stabilizowane napiÍcia zasilaj¹ce +12 i†-12 V. Po pod³¹czeniu zasilania naleøy sprawdziÊ napiÍcia zasilania wszystkich uk³adÛw scalonych. NastÍpnie moøna pod³¹czyÊ do z³¹cza LZ1 napiÍcie +5V i†sprawdziÊ napiÍcia zasilania uk³adÛw U15 i†U16. Po sprawdzeniu napiÍÊ zasilaj¹cych montujemy tranzystory i†uk³ady scalone. Montujemy tylko jeden z†uk³adÛw E3 (CD4052) albo U13 (DG409). Uk³ad U3 (TDA7429S) jest zasilany napiÍciem +8 V†i†dostarcza napiÍcie referencyjne +4 V. NapiÍcie referencyjne polaryzuje wiÍkszoúÊ wzmacniaczy operacyjnych. Dlatego sk³adowa sta³a sygna³Ûw przetwarzanych przez dekoder wynosi +4 V. Po zamontowaniu wszystkich elementÛw i†za³¹czeniu zasilania, moøemy sprawdziÊ oscyloskopem czÍstotliwoúÊ sygna³Ûw prostok¹tnych na wyprowadzeniach 2 i†6 uk³adu U8 - powinna wynosiÊ oko³o 48 kHz, a†jego amplituda oko³o 8†V. Jeúli nie mamy oscyloskopu, moøemy sprawdziÊ sk³adow¹ sta³¹ na wyprowadzeniach 2 i†6, ktÛrej wartoúÊ powinna wynosiÊ oko³o 4†V. Suwak potencjometru PR1 ustawiamy w†po³oøeniu úrodkowym. NastÍpnie zak³adamy, zgodnie ze schematem, zworki: na polu JP1 ³¹czymy punkty 1†z†3†oraz 2†z†4, na polu JP2 ³¹czymy punkty 1†z†2†oraz 3†z†4, dla zworki Z1 ³¹czymy punkty 1 z†2. W celu uruchamienia dekodera naleøy pod³¹czyÊ go do kompu-
Elektronika Praktyczna 7/2003
PHANTOM − dekoder surround Tab. 2. Funkcje i adresy rejestrów układu TDA7429S o adresie bazowym 80H Subadres
Nazwa rejestru
Bity steruj¹ce bit <7> zawsze równy 0
Subadres
Nazwa rejestru
0
INPUT ATTENUATION
<6> REARINREAROUT pins 00 - pins active - w naszym dekoderze zawsze to ustawienie! 40 - pins no active <5><4> <3><2><1><0> Input ATTENUATION 00 = 0,0 dB 01 = - 0,5 dB ... 30 = -31,5 dB
3
BASS
1
2
Surround & Out & Efefect ctrl
Phase shift resistors
<6><5><4><3> Effect SurR 00 = -6,0 dB 08 = -7,0 dB ... 78 = -21,0 dB <2> Rear Out 00 - Out = VAR 04 - Out = Fix <1><0> Mode Surround 00 - Simulated 01 - Music 02 - Stereo 03 - Movie <7><6> 00 40 80 C0 <5><4> 00 10 20 30 <3><2> 00 04 08 0C <1><0> 00 01 02 03 -
tera. Pod³¹czenie naleøy wykonaÊ zgodnie ze schematem 6, jeúli zamierzamy uøyÊ programu DEKODER24.EXE (udostÍpniamy go na p³ycie CD-EP7/2003B). Moøna rÛwnieø zastosowaÊ inny program s³uø¹cy do obs³ugi I2C-Bus i†wtedy bÍdzie potrzebny odpowiedni interfejs. Pod³¹czenie dekodera do komputera lub zestawu audio wykonujemy zawsze przy wyjÍtych wtyczkach z†sieci zasilaj¹cej. Zak³adaj¹c, øe do³¹czyliúmy dekoder do komputera poprzez odpowiedni interfejs, uruchamiamy program DEKODER24.EXE (widok jego okna pokazano na rys. 13). Program ten moøe byÊ rÛwnieø przydatny podczas uruchamiania p³ytki dekodera. Po³¹czenie kom-
Elektronika Praktyczna 7/2003
4
MIDDLE & TREBLE
Bity steruj¹ce bit <7> zawsze równy 0
Subadres
Nazwa rejestru
<4><3><2><1><0> BASS 10 = -14 dB 11 = -12 dB 12 = -10 dB ... 16 = -2 dB 17 = 0 dB 1F = 0 dB 1E = +2 dB 1D = +4 dB ... 1A = +10 dB 19 = +12 dB 18 = +14 dB
5
SPEAKER Rear Left (SPEAKER ATTENUATION L)
<6><5><4> <3><2><1><0> RL 00 = 0 dB 01 = -1 dB 02 = -2 dB ... 3F = -63 dB 40 = -64 dB ... 4F = -79 dB 50 - MUTE
6
<7><6><5><4> TREBLE 00 = -14 dB 10 = -12 dB 20 = -10 dB ... 60 = -2 dB 70 = 0 dB F0 = 0 dB E0 = +2 dB D0 = +4 dB ... A0 = +10 dB 90 = +12 dB 80 = +14 dB <3><2><1><0> MIDDLE 00 = -14 dB 01 = -12 dB 02 = -10 dB ... 06 = -2 dB 07 = 0 dB 0F = 0 dB 0E = +2 dB 0D = +4 dB ... 0A = +10 dB 09 = +12 dB 08 = +14 dB
SPEAKER Rear Right (SPEAKER ATTENUATION R)
<6><5><4> <3>2<1><0> RR tak samo jak dla rejestru 5
7
SPEAKER Front Left (AUX ATTENUATION L)
<6><5><4> <3>2<1><0> FL tak samo jak dla rejestru 5
8
SPEKER Front Right (AUX ATTENUATION R)
<6><5><4> <3>2<1><0> FR tak samo jak dla rejestru 5
putera z†p³ytk¹ dekodera wymaga zastosowania uk³adu dopasowuj¹cego sygna³y magistrali I2C do RS232 (schemat publikujemy na p³ycie CD-EP7/2003B oraz na naszej stronie internetowej). W†tym samym katalogu, w†ktÛrym znajduje siÍ program DEKODER24.EXE , naleøy rÛwnieø umieúciÊ plik PRTCOM.DLL. Przyciskami SetSDA i†ClrSDA moøemy zmieniaÊ stan linii SDA, sprawdzaj¹c go przyciskiem RdSDA oraz badaj¹c napiÍcie na nÛøce 15 uk³adu U15. Podobnie moøna sprawdziÊ poprawnoúÊ sterowania linii SCL, naciskaj¹c przyciski SetSCL i†ClrSCL i†obserwuj¹c napiÍcie na wyprowadzeniu 14 uk³adu U15.
9
Bity steruj¹ce bit <7> zawsze równy 0
INPUT & FRONT <6><5> Front Right OUT 00 - 3BAND 20 - SURR 40 - REAR 60 - FIX <4><3> Front Left 00 - 3BAND 08 - SURR 10 - REAR 18 - FIX <2><1> Input muliplexer 00 - IN2 02 - IN3 04 - (IN4) 06 - IN1
Po sprawdzeniu prawid³owoúci komunikacji na magistrali I2C, ponownie wy³¹czamy zasilanie wszystkich urz¹dzeÒ i†wyjmujemy wtyczki z†gniazdek sieciowych. Do dekodera pod³¹czamy zestaw audio. Na jedno lub wiÍcej z†wejúÊ naleøy doprowadziÊ sygna³ akustyczny z†odtwarzacza CD lub DVD albo z†karty düwiÍkowej komputera. Wyjúcia dekodera pod³¹czamy do dwÛch wzmacniaczy stereo, na wejúcia LINE_IN lub/i AUX karty düwiÍkowej w†komputerze. Moøna do wyjúÊ dekodera pod³¹czyÊ g³oúnikowe zestawy komputerowe wyposaøone we w³asne wzmacniacze. Moøna rÛwnieø pod³¹czyÊ wyjúcia kana³Ûw przednich do wzmacniacza stereo,
47
PHANTOM − dekoder surround
Rys. 9. Schemat elektryczny układu autobalansu
a†wyjúcia kana³Ûw tylnych do komputerowego zestawu g³oúnikowego (typu 2.0 lub 2.1). Po wykonaniu po³¹czeÒ miÍdzy wszystkimi urz¹dzeniami moøemy pod³¹czyÊ wtyczki zasilaj¹ce i†w³¹czyÊ wszystkie urz¹dzenia. Po wybraniu odpowiedniego wejúcia powinniúmy us³yszeÊ düwiÍk w†kana³ach przednich. Programowo moøemy zmieniaÊ tryb pracy dekodera: Stereo, Movie, Simulated, Music, Autobalance. W†poszczegÛlnych trybach zmienia siÍ charakter düwiÍku generowanego przez kana³y tylne. Jeúli zaznaczymy pole Front MIX, to charakter brzmienia rÛwnieø bÍdzie siÍ zmienia³ w†kana³ach przednich. Gdy po wybraniu trybu Autobalance nie pojawi siÍ czysty düwiÍk w†kana³ach tylnych, naleøy sprawdziÊ po³¹czenia na polu krosowym JP1. W†dowolnym trybie pracy poza trybem Stereo - moøna za³¹czyÊ liniÍ opÛüniaj¹c¹ przez zaznaczenie pola DELAY 10ms. Jeúli linia opÛüniaj¹ca dzia³a prawi-
48
d³owo, powinniúmy us³yszeÊ niezniekszta³cony, oddalony pozornie o†oko³o 3...4 m†düwiÍk w†tylnych g³oúnikach. Jeúli düwiÍk jest silnie zniekszta³cony lub nie ma go wcale, naleøy sprawdziÊ prawid³owoúÊ montaøu uk³adÛw U9A, U8, U11 oraz U9B. Uk³ady U9A i†U9B pracuj¹ w†uk³adzie filtrÛw dolnoprzepustowych o†czÍstotli-
woúci granicznej oko³o 12 kHz. Uk³ad U11 jest generatorem dwÛch przebiegÛw prostok¹tnych o†czÍstotliwoúci oko³o 48 kHz, przesuniÍtych w†fazie o†pÛ³ okresu (wyprowadzenia 2†i†4). Uk³ad U8 jest analogow¹ lini¹ opÛüniaj¹c¹. Uk³ad ten wymaga odpowiedniej wartoúci sk³adowej sta³ej na nÛøce 3†(AUDIO_IN). Dlatego rezystory
Tab. 3. Funkcje i adresy rejestrów układu PCF8574A o adresie bazowym 70H Aktywne bity
Nazwa
Dzia³anie poszczególnych kombinacji bitów
<7><6>
Faza surround
<5>
Barwa tonu - ty³
<4>
Opónienie (DELAY)
<3>
Miksowanie sygna³u REAR z przednimi kana³ami Funkcja koñcówki LP uk³adu TDA7429S Wejcie VAR
PHANTOM − dekoder surround Po zaznaczeniu pola Rear Tone powinna siÍ zmieniÊ barwa tonu w†kana³ach tylnych. Odpowiedzialny jest za to uk³ad U5B. Uk³ad U5A odpowiedzialny jest za fazÍ kana³Ûw tylnych. Pole Phase rear pozwala ustawiÊ fazÍ tych kana³Ûw na 0/90 lub 180 stopni. Powyøsze rozwaøania dotyczy³y ustawienia wyjúÊ L/R†Rear w†pozycji REAR, dla ktÛrej kana³y tylne odtwarzaj¹ düwiÍk dookÛlny wytwarzany w†sposÛb†analogowy z†kana³Ûw przednich. W†po³oøeniach IN1_R_D, IN_R_T w†kana³ach tylnych jest odtwarzany düwiÍk doprowadzony bezpoúrednio z†zewn¹trz. Dla po³oøenia IN_R_T†barwa tonu jest korygowana niezaleønie w†kaødym z†kana³Ûw przez wzmacniacze U14A i†U14B. Dla po³oøeÒ 3BAND i†FIX w†kana³ach tylnych s¹ odtwarzane sygna³y kana³Ûw przednich.
Tryby pracy dekodera Kompletny dekoder moøe pracowaÊ w†dwÛch dodatkowych trybach: AUTOBALANS - w†tym trybie pracy sygna³ rÛønicowy jest generowany poza uk³adem scalonym TDA7429S, a†przesuwniki fazowe i†regulacja EFFECT nie s¹ wykorzystywane. Nie naleøy jednak myliÊ tego trybu pracy z†funkcj¹ autobalans w†niektÛrych scalonych dekoderach DOLBY, w†ktÛrych funkcja autobalans pozwala na zrÛwnowaøenie w†zakresie kilku decybeli kana³Ûw L†i†R†na samym wejúciu. W†tym dekoderze autobalans w†zasadzie pracuje jako VCA (wzmacniacz sterowany napiÍciowo). W†uk³adzie NE570 znajduj¹ siÍ dwa pseudo VCA (po jednym dla kana³u L†i†R). Wzmacniacz rÛønicowy, zbudowany na dwÛch
Rys. 10. Schemat elektryczny bloku sterowania kluczami analogowymi (U15), układu korekcji barwy tonu (U14A, U14B) oraz zespołu multiplekserów analogowych (E3B, E3C)
R73 i†R74 powinny byÊ rezystorami precyzyjnymi lub odpowiednio dobrane. Na wejúciu AUDIO_IN (wyprowadzenie 3) powinno wystÍpowaÊ napiÍcie rÛwne 0,572,
tranzystorach p-n-p (T1, T2), na podstawie pomiaru amplitud napiÍÊ wyjúciowych z†uk³adu NE570 tak steruje wzmocnieniem wzmacniaczy VCA, aby napiÍcia te by³y rÛwne. Podobny uk³ad jest stosowany w†dekoderach DOLBY PRO LOGIC II. Jeúli na wejúciu dekodera pojawi siÍ sygna³ tylko w†jednym z†kana³Ûw (np. lewym), to uk³ad AUTOBALANS bÍdzie stara³ siÍ wyrÛwnaÊ poziom obydwu kana³Ûw i†w†efekcie kana³ lewy zostanie st³umiony do†poziomu oko³o -20dB, a†kana³ prawy wzmocniony do†poziomu oko³o +6dB. Daje to bardzo pozytywny efekt, poniewaø sygna³ w†kana³ach tylnych pojawi siÍ na poziomie oko³o -20dB (w idealnym dekoderze nie pojawi³by si͆wcale). Gdyby uk³ad AUTOBALANS zosta³ wy³¹czony (praca w†trybie MUSIC lub MOVIE), to w†kana³ach tylnych pojawi³by siÍ sygna³ na poziomie oko³o -3dB (a w†idealnym deko-
Rys. 13. Widok okna programu DEKODER24.EXE
50
derze nie powinien pojawiÊ siÍ wcale). UogÛlniaj¹c, moøna powiedzieÊ, øe w†trybach pracy MUSIC i†MOVIE przes³uchy miÍdzy kana³ami wynosz¹ oko³o -3dB, a†tylko w†trybie AUTOBALANS zostaj¹ zredukowane do†poziomu -20dB. Tryb AUTOBALANS nadaje siÍ znakomicie do†odtwarzania düwiÍku zakodowanego w†systemie DOLBY SURROUND. DIRECT - w†tym trybie pracy ca³y dekoder pracuje jako przedwzmacniacz czterokana³owy. W†g³oúnikach przednich moøliwa jest regulacja barwy düwiÍku w†trzech zakresach (basy, úrednie, wysokie), w†g³oúnikach tylnych moøna w³¹czyÊ podbicie (na sta³ym poziomie) tonÛw niskich i†wysokich. Na wejúcie (tylko numer 1) naleøy podaÊ cztery sygna³y np. z†DVD.
Fazy g³oúnikÛw Fazy wszystkich czterech g³oúnikÛw powinny byÊ zgodne. W†dekoderze fazÍ tylnych g³oúnikÛw naleøy wybraÊ najlepiej na 180o lub 90o. Faza 90o ma zastosowanie tylko w†przypadku, gdy tylne g³oúniki nie posiadaj¹ ìprawdziwegoî wzmacniacza, lecz wykorzystywane s¹ komputerowe g³oúniczki z†subwooferem (zestaw 2.1). Naj³atwiej fazy g³oúnikÛw sprawdziÊ w†trybie MUSIC dekodera. Na wejúcie prawego lub lewego kana³u dekodera naleøy podaÊ
sygna³ testowy (z generatora lub z†komputera). Jeúli g³oúniki maj¹ prawid³owe fazy, to faza kana³u lewego przedniego (LF) bÍdzie zgodna z†faz¹ kana³u lewego tylnego (LR) i†düwiÍk z†tych g³oúnikÛw bÍdzie siÍ sumowaÊ, daj¹c prawid³ow¹ lokalizacjÍ ürÛd³a düwiÍku z†lewej strony - g³oúnik prawy tylny (RR) bÍdzie odtwarza³ w†tym momencie düwiÍk w†fazie przeciwnej, ktÛry powinien siÍ odejmowaÊ od düwiÍku generowanego przez lewe g³oúniki (LF i†LR). Jeúli g³oúniki tylne maj¹ nieprawid³owe fazy, to düwiÍk us³yszymy ìpo†przek¹tnejî - sygna³ z†g³oúnika lewego przedniego zsumuje siÍ z†sygna³em g³oúnika prawego†tylnego. Powyøsze rozwaøania dotycz¹ zgodnoúci faz przÛd-ty³. Zak³adam, øe wystÍpuje zgodnoúÊ faz lewy-prawy dla obydwu par g³oúnikÛw (przednich i†tylnych). Na p³ytce dekodera pole krosowe JP2 pozwala zamieniÊ miejscami kana³y LR i†RR - powoduje to jednoczesne odwrÛcenie faz tylnych g³oúnikÛw, ale tylko dla pracy w†analogowych trybach surround. W†trybie DIRECT pole krosowe JP2 nie bierze udzia³u. Zbyszko Przyby³ Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiec03.htm oraz na p³ycie CD-EP7/2003B w katalogu PCB.
Elektronika Praktyczna 7/2003
N O T A T N I K
P R A K T Y K A
Prototyp w godzinę − precyzja niemal przemysłowa Płytki drukowane w domu, część 2 Termotransfer - metoda ìkredowaî W†pierwszej czÍúci artyku³u wspomnia³em o†wadzie nieroz³¹cznie zwi¹zanej ze stosowaniem folii termotransferowej, polegaj¹cej na mechanicznym uszkadzaniu rysunku mozaiki wystÍpuj¹cym podczas odrywania folii. Powstaje zatem pytanie, czy moøna usun¹Ê noúnik w†inny sposÛb, np. przez rozpuszczenie? W†tym w³aúnie kryje siÍ idea prostej modyfikacji polegaj¹cej na zast¹pieniu poliestrowej folii... papierem. Maj¹c gotowy projekt, naleøy go wydrukowaÊ lub skopiowaÊ na kserografie na g³adkim, powlekanym papierze kredowym. Po naprasowaniu wzoru mozaiki na p³ytkÍ drukowan¹, p³ytkÍ wraz z†mask¹ umieszcza siÍ na
Elektronika Praktyczna 7/2003
kilka minut w†ciep³ej wodzie. Kredowa pow³oka nie ulega wprawdzie rozpuszczeniu, ale pod wp³ywem wody miÍknie, po czym daje siÍ usun¹Ê w†sposÛb niezagraøaj¹cy ca³oúci mozaiki. Nie potrafiÍ jednoznacznie okreúliÊ, komu naleøy przypisaÊ autorstwo tego pomys³u. Po raz pierwszy zetkn¹³em siÍ z†nim ponad rok temu na liúcie dyskusyjnej avt.ep.elektronika. Efekty wstÍpnych testÛw okaza³y siÍ na tyle interesuj¹ce, øe postanowi³em zaj¹Ê siÍ tym tematem znacznie dok³adniej. Przedstawione w†artykule wyniki i†szczegÛ³owy sposÛb postÍpowania s¹ rezultatem licznych prÛb maj¹cych na celu zdobycie wprawy i†dopracowanie technologii.
W†drugiej czÍúci artyku³u przedstawiamy opis metody ìøelazkowejî, ktÛra jest jedn¹ z†najlepiej rokuj¹cych w†warunkach amatorskich. Jak siÍ przekonacie, moøliwe do osi¹gniÍcia wyniki s¹ - przy odrobinie wprawy - niewiarygodnie dobre. Papier Od papieru stosowanego jako noúnik w†metodzie termotransferowej oczekujemy spe³nienia kilku warunkÛw: g³adkoúci powierzchni, rozpuszczalnoúci pow³oki i†odpornoúci na temperaturÍ. ChropowatoúÊ rzutuje przede wszystkim na precyzjÍ odwzorowania krawÍdzi. W†praktyce moøna
przyj¹Ê, øe b³Ídy spowodowane nierÛwnoúci¹ powierzchni powinny byÊ mniejsze niø nieuniknione b³Ídy wprowadzane przez raster drukarki. SpoúrÛd kilku przetestowanych gatunkÛw papieru wybra³em do prÛb Papier kredowy do prac dyplomowych o†gramaturze 115 g/m 2 produkowany przez UNIPAP Strzegom (cena ok. 15 z³/
51
N O T A T N I K
P R A K T Y K A
Rys. 5. Podziałka testowa wykorzystana do określenia stopnia deformacji papieru (widok zmniejszony do 60%) 100 ark.). Charakteryzuje siÍ on g³adkim licem i†odpornoúci¹ na deformacje, a†zarazem jest na tyle elastyczny, øe bez problemu przechodzi przez uk³ad prowadzenia arkusza w†drukarce. NiektÛrzy uczestnicy pl.misc.elektronika propaguj¹ rÛwnieø konkurencyjny wariant, polegaj¹cy na wykorzystaniu cienkiego papieru klasy LWC uøywanego powszechnie do druku czasopism (w tym rÛwnieø Elektroniki Praktycznej). SkrÛt LWC pochodzi od angielskiej nazwy LightWeight Coated paper i†oznacza papier o†gramaturze rzÍdu 70 g/m 2 powleczony g³adk¹ warstw¹ z³oøon¹ m.in. z†wÍglanu wapnia (kredy), glinki kaolinowej i†lateksu. Termogazetotransfer - taka bowiem øartobliwa nazwa przylgnͳa†do tego wariantu metody, posiada niezaprzeczalne zalety. DziÍki mniejszej gruboúci, a†takøe nieco innym w³asnoúciom pow³oki, pozosta³oúci papieru LWC s¹ znacznie ³atwiejsze do usuniÍcia z†powierzchni laminatu. Zarazem wi¹øe siÍ to jednak z†pewnymi niedogodnoúciami: - Pozosta³oúci kredy wype³niaj¹ce mikroporowate nieszczelnoúci w†warstwie tonera chroni¹ przed nadtrawianiem p³aszczyzn miedzi. Delikatne pokrycie papieru LWC zmywa siÍ niemal bez úladu, ods³aniaj¹c†ew. nieszczelnoúci w†nadruku. - Niewielka gramatura papieru sprzyja deformacji podczas prasowania, co moøe utrudniaÊ utrzymanie powtarzalnych wymiarÛw ca³ej p³ytki. - W†kserograficznych punktach us³ugowych znacznie ³atwiej
52
bÍdzie uzyskaÊ kopiÍ na czystej kartce papieru kredowego niø na kolorowej reklamie wyciÍtej z†jednego z†popularnych czasopism kobiecych. Aczkolwiek, jak wykazuje dotychczasowa praktyka, wydruk na zadrukowanym papierze LWC nie powoduje zauwaøalnej szkody dla mechanizmÛw drukarki. Bardzo istotn¹ cech¹ papieru odrÛøniaj¹c¹ go od folii z†tworzyw sztucznych jest jego higroskopijnoúÊ. Kartka papieru przechowywana w†normalnych warunkach mieszkaniowych zawsze zawiera pewien procent wody. Poddana utrwalaniu termicznemu w†drukarce a†nastÍpnie nagrzewaniu podczas prasowania ulega szybkiemu wysuszeniu, co powoduje zmianÍ wymiarÛw†(skurcz) i†to na dodatek rÛøni¹cy siÍ wielkoúci¹ w†dwÛch prostopad³ych kierunkach. Seria prÛb polegaj¹ca na pomiarze przetransferowanej podzia³ki testowej (rys. 5) o†rozmiarach 100x100 mm wykaza³a, øe skurcz papieru (o gramaturze 115 g/m 2) pobranego bezpoúrednio ìz†pÛ³kiî moøe przekraczaÊ 0,5 mm/100 mm. Jest to wystarczaj¹co duøo, aby uzyskana odchy³ka wymiarÛw†uniemoøliwi³a zgranie warstw p³ytki dwustronnej lub np. swobodne osadzenie 40-pinowego gniazda IDC. Prosty zabieg sprowadzaj¹cy siÍ do kilkudziesiÍciosekundowego suszenia arkusza na stoliku grzewczym, bezpoúrednio przed wydrukiem, pozwoli³ na zredukowanie skurczu do wartoúci mniejszej niø 0,2 mm/100 mm, czyli akceptowalnej w†warunkach amatorskich.
Fot. 6. Ścieżki 6 mils nachylone pod kątem 6,3o do osi rastra − wydruk na papierze i odwzorowanie w miedzi. Widoczne schodki powstały w wyniku rasteryzacji z rozdzielczością (a) 300 dpi i (b) 600 dpi. Zaznaczone linie symbolizują krawędzie ście− żek zawartych w projekcie
Drukarka O†moøliwoúci wykorzystania danej drukarki (lub kserokopiarki) do wykorzystania w†metodzie transferowej decyduj¹ rodzaj i†iloúÊ nak³adanego tonera oraz rozdzielczoúÊ i†jakoúÊ druku. Oceniaj¹c przydatnoúÊ wydruku, naleøy zwrÛciÊ szczegÛln¹ uwagÍ na jednolitoúÊ (szczelnoúÊ) krycia duøych p³aszczyzn oraz iloúÊ na³oøonego tonera. Wydrukowane úcieøki powinny byÊ wyczuwalne w†dotyku jako nieznaczne zgrubienia na powierzchni papieru. Niemal wszystkie prÛby prezentowane w†artykule zosta³y wykonane na drukarce laserowej HP LaserJet 4+ o†roz-
dzielczoúci 600 dpi (z alternatywnym tonerem firmowanym przez Esselte). Pozytywne wyniki, potwierdzaj¹ce moøliwoúÊ transferu tonera i†jego odpornoúÊ na trawienie, uzyska³em rÛwnieø z†wydrukami z†drukarek HP LaserJet 2200 (1200 dpi), Lexmark Optra E310 oraz kopiarkami Minolta (laser) i†Canon NP5060 i†NP6612. Od innych osÛb otrzyma³em rÛwnieø pozytywne opinie dotycz¹ce kilku drukarek z†serii HP (HPIII, HP4Si, HP5L, HP6P) oraz OkiPage 8W. Drukarka laserowa jest urz¹dzeniem rastrowym, a†to oznacza, øe wydrukowane krawÍdzie úcieøek pionowych lub poziomych s¹ ìprzyci¹ganeî do
Fot. 7. Wbrew potocznej nazwie metody, żelazko służy nie do prasowania, a jako gorący stolik podgrzewający od spodu płytkę laminatu. Optymalna temperatura płyty wynosi ok. 155...160oC
Elektronika Praktyczna 7/2003
N O T A T N I K
P R A K T Y K A
Fot. 8. Przykładanie maski do powierzchni gorącego laminatu. Alternatywnie można przytwierdzić maskę na zimno, skrawkami samoprzylepnego papieru. Należy zwrócić baczną uwagę, aby w pierwszych sekundach nagrzewania nie nastąpiło prze− sunięcie i rozmazanie przenoszonego obrazu siatki rastra, natomiast krawÍdzie úcieøek ukoúnych maj¹ w†rzeczywistoúci postaÊ linii schodkowej. Zakres rozdzielczoúci popularnych obecnie drukarek laserowych rozci¹ga siÍ od 300 dpi (punktÛw na cal) w†najstarszych urz¹dzeniach do 1200 dpi. Øeby uzmys³owiÊ sobie znaczenie tego parametru, wyraümy wielkoúÊ jednego punktu rastra w†jednostkach mils. OtÛø rozdzielczoúÊ 300 dpi odpowiada ok. 3,3 mils, 600 dpi - ok. 1,7 mils, a†1200 dpi to ok. 0,83 mils. Na fot. 6 moøemy zobaczyÊ mikroskopowe zdjÍcie ukoúnych úcieøek o†szerokoúci 6†mils wydrukowanych na papierze, a†nastÍpnie wytrawionych w†miedzi. PrÛbki zosta³y wykonane w†dwÛch rozdzielczoúciach: 300 dpi (a) oraz 600 dpi (b). Uzyskane efekty prowadz¹ do wniosku, øe do wytwarzania precyzyjnych PCB, nawet w†warunkach amatorskich, naleøy siÍgn¹Ê po drukarkÍ o†rozdzielczoúci co najmniej 600 dpi. IloúÊ nanoszonego tonera wymaga dobrania w†drodze eksperymentu. W†testowej drukarce HP4+ najlepsze wyni-
ki osi¹ga³em, ustawiaj¹c dawkowanie tonera na 1†lub 2 stopieÒ w†skali 1...5.
Wydruk Zagadnieniem, na ktÛre zwraca siÍ szczegÛln¹ uwagÍ we wszystkich opisach wytwarzania PCB, jest prawid³owa orientacja masek odpowiadaj¹cych poszczegÛlnym warstwom projektu. Wydruki poszczegÛlnych warstw wykonane bez modyfikacji, bezpoúrednio z†programu CAD, maj¹ tak¹ sam¹ orientacjÍ jak na ekranie, tzn. warstwy gÛrne (TopLayer, TopOverlay) s¹ widoczne tak jak na rzeczywistej p³ytce, natomiast warstwy dolne (BottomLayer, BottomOverlay) jako przeúwituj¹ce przez p³aszczyznÍ laminatu. Przyk³adaj¹c maskÍ do p³ytki, musimy j¹ u³oøyÊ tonerem do powierzchni miedzi. Zatem warstwy gÛrne wymagaj¹ wydrukowania w†odbiciu lustrzanym (mirror). Natomiast wydruki warstw dolnych pod³oøone pod p³ytkÍ juø przylegaj¹†tonerem do miedzi, czyli nie wymagaj¹ odbicia lustrzanego (tab. 2). ZwrÛÊmy uwagÍ, øe tradycyjny podzia³ na ìstronÍ elemen-
Tab. 2. Orientacja wydruków poszczególnych warstw płytki drukowanej Warstwa
Przeznaczenie
Orientacjawydruku
Top Overlay Top Layer
Górny opis elementów Górna mozaika po³¹czeñ (Component Side strona elementów) Dolna mozaika po³¹czeñ (Solder Side - strona lutowania) Dolny opis elementów
lustrzana lustrzana
Bottom Layer Bottom Overlay
Elektronika Praktyczna 7/2003
prosta prosta
53
N O T A T N I K
P R A K T Y K A
Fot. 9. Najwygodniejszym sposobem prasowania okazało się użycie dwóch, ciasno zwiniętych, szmacianych tamponów. Jednym przytrzymujemy gorącą płytkę, a drugim pocieramy papier miejsce obok miejsca, dociskając toner do powierzchni miedzi
Cu w†krajach anglosaskich jest okreúlany jako jednouncjowy, czyli zawieraj¹cy miedü o†masie jednej uncji na stopÍ kwadratow¹ 1oz/sq.ft (gÍstoúÊ miedzi ρCu = 8,96 g/cm 3 , 1†oz. = 28,3495 g, 1†ft = 0,3048 m). Analogicznie - foliom cieÒszym od standardowej odpowiadaj¹ oznaczenia 1/3 oz. i†1/2 oz., a†foliom grubym 2†oz. i†3oz. Z†gruboúci¹ warstwy miedzi bezpoúrednio wi¹øe siÍ jej rezystancja powierzchniowa, a†co za tym idzie dopuszczalna obci¹øalnoúÊ pr¹dowa úcieøek oraz g³ÍbokoúÊ podtrawieÒ powoduj¹cych zwÍøenie úcieøek poniøej ich nominalnej szerokoúci. W†tab. 3 zestawiono typowe gruboúci miedzi i†odpowiadaj¹ce im orientacyjne wartoúci rezystancji powierzchniowej uzyskiwane na gotowych p³ytkach.
Laminat Wymagania jakoúciowe i†zasady przygotowania powierzchni laminatu (zmatowienie i†odt³uszczenie) nie rÛøni¹ siÍ od opisanych przy okazji omawiania metody†fotolitograficznej. Metoda termotransferowa jest jednak bardziej wraøliwa na obecnoúÊ rys i†wg³ÍbieÒ na powierzchni laminatu, ktÛre mog¹ uniemoøliwiÊ dociúniÍcie tonera i†skutkuj¹cych np. nieprzewidzianymi przewÍøeniami úcieøek. Kupuj¹c laminat, naleøy rÛwnieø zwrÛciÊ uwagÍ na splot tkaniny szklanej (osnowy) widoczny jako siateczka wg³ÍbieÒ na powierzchni miedzi. Zbyt g³Íboki relief wystÍpuj¹cy w†miernej jakoúci laminatach moøe znacznie utrudniÊ precyzyjny transfer drobnych elementÛw projektu. Przy amatorskim zakupie niewielkich iloúci laminatu z†przypadkowych ürÛde³ zazwyczaj zwraca siÍ uwagÍ jedynie na rodzaj pod³oøa (najczÍúciej
bÍdzie to laminat papierowo-fenolowy np. FR-2, szklano-epoksydowy np. FR-4 lub kompozytowy np. CEM-1), przyjmuj¹c milcz¹ce za³oøenie, øe gruboúÊ folii miedzianej wynosi typowo 35 µm. Istotnie jest to gruboúÊ standardowa, stosowana powszechnie do wytwarzania jedno- i†dwustronnych p³ytek drukowanych metodami subtraktywnymi (bez metalizacji otworÛw). Naleøy jednak zdawaÊ sobie sprawÍ, øe w†technologiach przemys³owych uøywa siÍ takøe†folii miedzianej o†innych gruboúciach i†takie laminaty rÛwnieø moøna napotkaÊ w†sklepach elektronicznych. Folie o†gruboúci wiÍkszej niø standardowa (70 µm i†105 µm) znajduj¹ zastosowanie w†p³ytkach o†podwyøszonej obci¹øalnoúci pr¹dowej, natomiast laminaty z†cienkimi foliami (12 µm, 17,5 µm) s¹ materia³em stosowanym m.in. do wytwarzania p³ytek metalizowanych wykonywanych metod¹ pÛ³addytywn¹, w†ktÛrej nastÍpuje elektrolityczne osadzenie dodatkowej warstwy miedzi. Wyjaúnijmy przy okazji, dlaczego gruboúÊ folii miedzianej przybiera tak nietypowe wartoúci. OtÛø podstawowy laminat pokryty foli¹ 35 µm
Przenoszenie rysunku stanowi etap najtrudniejszy a†zarazem najbardziej zaleøny od zdobytej wprawy. W†czasie przenoszenia powierzchnia tonera musi zostaÊ nadtopiona, a†nastÍpnie dok³adnie dociúniÍta na ca³ej powierzchni p³ytki. Wbrew potocznej nazwie metody, øelazko wcale nie najlepiej nadaje siÍ do prasowania. Praktykowane niekiedy dociskanie maski do laminatu gor¹c¹ stopk¹ øelazka jest obarczone dwoma wadami: - Przyklejenie tonera wymaga dosyÊ silnego docisku i†co waøniejsze docieraj¹cego rÛwnomiernie do kaødego miejsca na p³ytce. Podczas nagrzewania, laminat ³atwo ulega deformacji, co znacznie utrudnia jednolite przyklejenie maski na ca³ej powierzchni. - Pod³oøe laminatu posiada pewn¹ pojemnoúÊ ciepln¹. Po
przy³oøeniu øelazka od strony papieru nastÍpuje szybkie miÍkniÍcie tonera, podczas gdy powierzchnia miedzi wci¹ø pozostaje zimna. W†moim odczuciu sytuacja taka sprzyja przypadkowym przesuniÍciom maski i†rozmazywaniu przenoszonego rysunku. Na podstawie w³asnych doúwiadczeÒ mogÍ stwierdziÊ, øe znacznie lepsze wyniki daje odwrÛcenie øelazka stopk¹ do gÛry i†potraktowanie go jako gor¹cego stolika nagrzewaj¹cego p³ytkÍ od spodu, czyli od strony laminatu. Wszystkie prÛby zosta³y wykonane z†uøyciem prowizorycznej, ale zarazem dosyÊ skutecznej konstrukcji widocznej na fot. 7. P³yta z†grubej blachy mosiÍønej, dociúniÍta úrubami do obrzeøa stopki øelazka, zwiÍksza powierzchniÍ pola roboczego i†jednoczeúnie ma za zadanie ujednolicaÊ rozk³ad temperatur na jej powierzchni. Tanie øelazko dalekowschodniej ìmarkiî o†mocy grza³ki 1200 W, z†regulatorem ustawionym na maksimum, zapewnia utrzymanie centralnej strefy stolika w†temperaturze ok. 155...160oC. Niestety, ze wzglÍdu na zbyt ma³¹ przewodnoúÊ ciepln¹ mosi¹dzu i†niewielk¹ gruboúÊ p³yty, rozk³ad temperatur uzyskany na prototypowym stoliku jest daleki od optymalnego, dlatego nastÍpna wersja stolika zostanie wyposaøona w†p³ytÍ miedzian¹ lub aluminiow¹ o†gruboúci co najmniej 10 mm. Papier z†wydrukiem uk³adamy tonerem do do³u na oczyszczonej powierzchni miedzi i†przytwierdzamy na krawÍdzi skrawkami papieru samoprzylepnego. Naleøy pamiÍtaÊ o†przyciÍciu papieru z†zachowaniem co najmniej 10
Tab. 3. Zestawienie typowych grubości miedzi i odpowiada− jące im orientacyjne wartości rezystancji powierzchniowej
Fot. 10. Krytyczny punkt metody, zależny od nabytej wprawy. Uplastyczniony toner rozlewa się na powierzchni miedzi w stopniu proporcjonalnym do temperatury stolika i nacisku tamponu. Oba fragmenty widoczne na zdjęciu pochodzą z jednej płytki, a finalna różnica szerokości ścieżek zależy wy− łącznie od czasu i siły prasowania
Elektronika Praktyczna 7/2003
N O T A T N I K
P R A K T Y K A
Fot. 11. W porównaniu z fotolitografią wymagania odnośnie czystości są nieporównywalnie mniejsze, mimo to nie należy ich lekceważyć. Na zdjęciu − spustoszenia w rysunku ścieżek (6 mils) spowodowane przez włos pozostawiony między płytką a papierem mm marginesu od obrysu projektu, co pozwoli na wyeliminowanie b³ÍdÛw wystÍpuj¹cych zazwyczaj na krawÍdziach arkusza. Dok³adne ustalenie pozycji papieru ma zasadnicze znaczenie przy wykonywaniu p³ytek dwustronnych, a†takøe w†przypadku niewielkiego nadmiaru laminatu. W†praktyce, przy wykonywaniu p³ytek jednostronnych upraszcza³em sobie pracÍ k³ad¹c†papier dopiero na nagrzany laminat (fot. 8). Poniewaø toner szybko przykleja siÍ do gor¹cej p³ytki, to po zdobyciu pewnego doúwiadczenia moøna nie obawiaÊ siÍ rozmazania przenoszonego obrazu. Najwygodniejszym sposobem prasowania okaza³o siÍ uøycie dwÛch, ciasno zwiniÍtych, szmacianych tamponÛw (fot. 9). Jednym z†nich przyciskamy papier i†gor¹c¹ p³ytkÍ do stolika, natomiast drugim pocieramy miejsce obok miejsca, dociskaj¹c toner do powierzchni miedzi. W†miarÍ prasowania, niewidoczny pocz¹tkowo rysunek úcieøek zaczyna przebijaÊ przez papier tworz¹c zauwaøalny relief na jego powierzchni. Czas prasowania i†si³a docisku s¹ parametrami, ktÛrych niestety nie da siÍ okreúliÊ z†gÛry i†trzeba je ustaliÊ metod¹ prÛb i†b³ÍdÛw, stopniowo dochodz¹c do wprawy. Orientacyjnie moøna przyj¹Ê, øe ca³oúÊ operacji na stoliku zamyka siÍ w†czasie ok. 1...3 minut. Weümy pod uwagÍ, øe uplastyczniony toner rozp³ywa siÍ na powierzchni miedzi w†stopniu proporcjonalnym do temperatury stolika i†nacisku tamponu. Oba fragmenty pokazane na fot. 10 pochodz¹ z†tej samej p³ytki testowej i†celowo rÛøni¹ siÍ czasem i†si³¹ uøyt¹ podczas prasowania.
Elektronika Praktyczna 7/2003
Metoda termotransferowa, w†porÛwnaniu z†fotolitografi¹ nie stawia prawie øadnych wymagaÒ odnoúnie czystoúci pomieszczenia, dziÍki temu ca³kowicie wystarczaj¹ jej warunki panuj¹ce w†mieszkaniu lub pokoju biurowym. Jedynym momentem wymagaj¹cym szczegÛlnej starannoúci jest przyk³adanie papieru do p³ytki. Naleøy zwrÛciÊ uwagÍ, aby nie pozostawiÊ pomiÍdzy nimi zanieczyszczeÒ (w³os, ziarno piasku itp.) mog¹cych uniemoøliwiÊ rÛwnomierne dociúniÍcie papieru (fot. 11).
Usuwanie papieru Maj¹c za sob¹ prasowanie, zdejmujemy p³ytkÍ ze stolika i†pozwalamy jej ostygn¹Ê. W†tym czasie przygotowujemy k¹piel z³oøon¹ z†ciep³ej wody z†dodatkiem kilku kropel detergentu (np. p³ynu do mycia naczyÒ). Domieszka detergentu zmniejsza napiÍcie powierzchniowe i†u³atwia penetracjÍ wody i†dziÍki temu wspomaga nasi¹kanie papieru. MiÍkniÍcie moøna takøe przyspieszyÊ, zarysowuj¹c paznokciami jego gÛrn¹ powierzchniÍ. Zazwyczaj po up³ywie 5...10 minut warstwa celulozy daje siÍ oddzie-
Fot. 12. Resztki powłoki kre− dowej działają jak maska chroniąca przez dostępem kąpieli trawiącej i powodują występowanie zwarć. Przy myciu należy zwrócić szcze− gólną uwagę na oczyszcze− nie wąskich odstępów między ścieżkami i otworów służących do centrowania wiertła
55
N O T A T N I K
P R A K T Y K A
Fot. 13. Do usuwania resztek powłoki kredowej można użyć szczoteczki do zębów, a najlepiej − opuszka własnego palca. Prawidłowo nałożony toner mocno przylega do miedzi i wy− trzymuje bez uszczerbku nawet energiczne pocieranie
56
liÊ, pozostawiaj¹c na p³ytce resztki pow³oki kredowej przyklejone do powierzchni tonera. Usuwanie resztek kredy jest najbardziej pracoch³onnym (trwa nawet do 10 minut) etapem procesu, a†jednoczeúnie starannoúÊ z†jak¹ siÍ je wykona decyduje o†braku zwarÊ pomiÍdzy úcieøkami (fot. 12). Do usuniÍcia pow³oki moøna pos³uøyÊ siÍ np. szczoteczk¹ do zÍbÛw, aczkolwiek w†praktyce najskuteczniejsze okaza³y siÍ strumieÒ ciep³ej wody i†opuszek palca. Warstwa tonera zaskakuj¹co mocno przylega do powierzchni miedzi i†wytrzymuje nawet energiczne pocieranie, bez obawy oderwania úcieøek (fot. 13). Zauwaøy³em przy tym, øe wymywanie kredy zachodzi oporniej, jeøeli papier zosta³ wczeúniej poddany szybkiemu suszeniu na øelazku. Szybkim
sposobem na pozbycie siÍ ca³ej kredy moøe byÊ jej wytrawienie, np. przez przetarcie p³ytki tamponem nasyconym 10% kwasem octowym. Niestety usuwaj¹c mostki†spomiÍdzy úcieøek zmywamy jednoczeúnie pow³okÍ uszczelniaj¹c¹ mikropory w†warstwie tonera. Ten sam problem dotyczy wariantu polegaj¹cego na wykorzystaniu papieru LWC. £atwoúÊ usuwania kredowej pow³oki zostaje okupiona ryzykiem naruszenia zas³oniÍtych p³aszczyzn miedzi i†wytrawiania mikroskopijnych kraterÛw w†jej powierzchni. Marek Dzwonnik, AVT [email protected] Za miesi¹c, w ostatniej czÍúci artyku³u, dokoÒczymy opis postÍpowania a takøe przedstawimy moøliwoúci i ograniczenia przezentowanej technologii.
Elektronika Praktyczna 7/2003
P R O G R A M Y
część 6 Projektowanie mozaiki úcieøek na p³ytce drukowanej to proces z³oøony nie tylko ze wzglÍdu na koniecznoúÊ odpowiedniego po³¹czenia W†przypadku Specctry routing, czyli wytyczanie úcieøek pomiÍdzy poszczegÛlnymi elementami elektronicznymi sk³adaj¹cymi siÍ na projektowany obwÛd drukowany, odbywa siÍ zgodnie z†przyjÍtymi wczeúniej zasadami i†regu³ami projektowymi. Naleøy w†tym miejscu przypomnieÊ, øe nie wszystkie z†poleceÒ zwi¹zanych z kontrol¹ pracy routera dostÍpne s¹ z†poziomu interfejsu graficznego. CzÍúÊ bardziej zaawansowanych moøliwoúci, w†ktÛre wyposaøono SpecctrÍ (i to zarÛwno na etapie routingu, jak i†placementu) jest dostÍpna jedynie z†wiersza poleceÒ tego programu i†wykonywana na podstawie odpowiednich komend zadawanych bezpoúrednio z†klawiatury b¹dü wprowadzana w†odpowiedni sposÛb za pomoc¹ pliku .DO, o†ktÛrym wspomnieliúmy w†drugiej czÍúci artyku³u. Niesie to za sob¹ koniecznoúÊ zapoznania siÍ ze sk³adni¹ jÍzyka, ale gwarantuje jednoczeúnie ca³kowit¹ kontrolÍ nad routerem. Generalnie routowanie projektu, niezaleønie od tego, czy sterujemy Specctr¹ z†poziomu interfejsu graficznego, poleceÒ wydawanych w†jÍzyku Specctry, czy teø pliku .DO, sk³ada siÍ z†trzech etapÛw: preroutingu (funkcje zwi¹zane z†preroutingiem opisywaliúmy w†poprzedniej czÍúci artyku³u), w³aúciwego routingu oraz postroutingu. Routing (General Purpose Routing) w†przypadku Specctry sk³ada siÍ z†kilku kolejno nastÍpuj¹cych po sobie faz. Na pocz¹tku (w pierwszych kolejnych 5 przejúciach) úcieøki s¹ wytyczane najkrÛtszymi moøliwymi trasami z†zachowaniem narzuconych wczeúniej kierunkÛw i†limitÛw, przy czym s¹ ignorowane konflikty (rys. 10) polegaj¹ce na powstawaniu niedozwolonych przeciÍÊ úcieøek, jak rÛwnieø nie s¹ brane pod uwagÍ
Rys. 10. W ten sposób sygnalizowana jest niezgodność z predefiniowanymi regułami projektowymi
58
b³Ídy polegaj¹ce na niedotrzymaniu odstÍpÛw. Na tym etapie podczas kaødego kolejnego przejúcia wszystkie po³¹czenia s¹ zrywane, a†nastÍpnie ponownie k³adzione zgodnie z†technik¹ rip-up and retry. Po wykonaniu pierwszych piÍciu przejúÊ strategia dzia³ania Specctry ulega zmianie - program prÛbuje ponownego u³oøenia úcieøek, ktÛre powoduj¹ konflikty, natomiast wszystkie pozosta³e nie podlegaj¹ zrywaniu. Od szÛstego przejúcia poprzez kaøde kolejne celem autoroutera jest wyeliminowanie wszystkich istniej¹cych jeszcze konfliktÛw i†ci¹g³a poprawa ogÛlnego wyniku routowania, aø do uzyskania 100% poprawnych po³¹czeÒ. W†przypadku zaawansowanych, gÍsto upakowanych drukÛw, liczba przejúÊ moøe przekroczyÊ 100. Podczas kaødego przejúcia jest monitorowany wspÛ³czynnik redukcji konfliktÛw, ktÛre pozosta³y jeszcze do rozwi¹zania. Jeøeli zostanie zarejestrowana sytuacja, øe podczas kilku kolejnych przejúÊ wspÛ³czynnik ten jest ma³y, autorouter automatycznie zmienia po³oøenie juø u³oøonych úcieøek i†ponawia prÛbÍ ich wytyczania. Specctra umoøliwia úledzenie postÍpu pracy routera w†sposÛb ci¹g³y, z†moøliwoúci¹ rejestracji wszystkich krokÛw, jakie zosta³y wykonane w†kaødej sesji. Na podstawie informacji, ktÛre s¹ wyúwietlane w†oknie Output Window, uøytkownik juø w†pocz¹tkowej fazie routowania projektu moøe z†prawie 100% prawdopodobieÒstwem przewidzieÊ ewentualne ìk³opotyî z†prawid³owym po³¹czeniem elementÛw. Jest to bardzo pomocne w†przypadkach, gdy p³ytka drukowana jest skomplikowana, a†wytyczanie po³¹czeÒ trwa d³ugo. Dobrym wyk³adnikiem szans, jakie mamy na uzyskanie 100% po³¹czeÒ, jest stosunek wszystkich konfliktÛw (krzyøowaÒ úcieøek oraz konfliktÛw odleg³oúciowych) przypadaj¹cych na iloúÊ wszystkich po³¹czeÒ projektu. Jeøeli po pierwszym przejúciu routera liczba konfliktÛw jest piÍÊ razy wiÍksza od liczby wszystkich po³¹czeÒ, jest bardzo prawdopodobne, øe wyst¹pi¹ problemy z†prawid³owym wykonaniem projektu. OprÛcz wytyczania úcieøek dla wszystkich po³¹czeÒ znajduj¹cych siÍ w†projekcie, Specctra umoøliwia u³oøenie úcieøki dla konkretnego po³¹czenia lub wybranej grupy po³¹czeÒ. Po³¹czenia do ìpoprowadzeniaî moøemy zazna-
elementÛw elektronicznych za pomoc¹ úcieøek, ktÛre musimy zmieúciÊ na zwykle ograniczonej powierzchni druku. WspÛ³czesne projekty narzucaj¹ bowiem szereg innych wymagaÒ. Podczas projektowania p³ytek drukowanych niejednokrotnie staje siÍ waøne okreúlenie rezystancji i†pojemnoúci úcieøek, przes³uchÛw pomiÍdzy nimi czy teø impedancji charakterystycznej úcieøki w†przypadku uk³adÛw wielkiej czÍstotliwoúci. Konstrukcja mozaiki úcieøek wp³ywa bowiem bezpoúrednio na parametry elektryczne ca³ego urz¹dzenia. czaÊ bezpoúrednio za pomoc¹ myszki (co jest wygodne w†przypadku grupy po³¹czeÒ). OprÛcz prowadzenia úcieøek w†sposÛb automatyczny, Specctra umoøliwia oczywiúcie wytyczanie úcieøek rÍcznie (rys. 11). Po przejúciu do trybu interaktywnego moøemy zarÛwno wytyczaÊ nowe úcieøki jak i†modyfikowaÊ istniej¹ce. DostÍpne operacje to tworzenie, edycja,
Rys. 11. Podczas ręcznego prowadze− nia ścieżki kolidujące z nią ścieżki są automatycznie załamywane podczas “najazdu”
Elektronika Praktyczna 7/2003
P R O G R A M Y a)
b)
Rys. 12. Rezultat działania funkcji MITER przed (a) oraz po (b) wykonaniu polecenia MITER przesuwanie, kopiowanie, ucinanie lub kasowanie okreúlonych úcieøek lub ich segmentÛw. Podobnej obrÛbce moøemy poddawaÊ przelotki, wylewki miedzi i†inne elementy projektu np. obszary zabronione. Ponadto Specctra umoøliwia edycjÍ topologii po³¹czeÒ, zmianÍ atrybutÛw poszczegÛlnych elementÛw projektu, takich jak przelotki, segmenty úcieøek (ich szerokoúÊ) itd. MetodÍ dzia³ania routera w†odniesieniu do wybranych funkcji w†trybie interaktywnym moøemy modyfikowaÊ, korzystaj¹c z†setupu. Edycji mog¹ podlegaÊ regu³y projektowe oraz inne parametry. W†przypadku rÍcznego wytyczania úcieøek Specctra przewiduje szereg udogodnieÒ. Podczas prowadzenia úcieøki s¹ automatycznie obrazowane dopuszczalne kierunki, w†ktÛrych moøe byÊ u³oøony dany segment, on-line kontrolowane jest zachowanie przyjÍtych regu³ projektowych, koliduj¹ce úcieøki s¹ automatycznie odsuwane lub za³amywane (podobnie dzieje siÍ np. w†przypadku przesuwania úcieøki). Odsuwane úcieøki mog¹ automatycznie przeskakiwaÊ przez przeszkody tj. koliduj¹ce elementy projektu. W†przypadku braku moøliwoúci u³oøenia úcieøki na danej warstwie przewidziano opcjÍ automatycznego lub rÍcznego dodawania przelotek, a†takøe opcjÍ automatycznego ³¹czenia wskazanej úcieøki. Funkcja automatycznego koÒczenia danej úcieøki jest
60
bardzo wygodna jeúli np. obrÛbki rÍcznej wymaga jedynie jej okreúlony fragment. W†trybie interaktywnym moøemy rÛwnieø prowadziÊ jednoczeúnie dwie úcieøki (grupy úcieøek), takøe w†przypadku, gdy znajduj¹ siÍ one na rÛønych warstwach p³ytki (Tandem Layer Pair), jak rÛwnieø dodawaÊ úcieøki typu floating tzn. niemaj¹ce powi¹zania elektrycznego z†øadnym z†elementÛw projektu. IloúÊ funkcji wspomagaj¹cych rÍczny tryb projektowania jest w†przypadku Specctry bardzo szeroka. Tak jak w†przypadku wytyczania úcieøek w†sposÛb automatyczny, tak i†w†trybie intraktywnym Specctra kontroluje on-line wszystkie posuniÍcia projektanta. Tak wiÍc np. wytyczaj¹c rÍcznie úcieøkÍ, dla ktÛrej okreúlono parametr maksymalnej d³ugoúci, jesteúmy informowani jeúli d³ugoúÊ ta jest przekraczana. Wszystkie przekroczenia regu³ projektowych pomiÍdzy obiektami routowanymi, takimi jak úcieøki, przelotki, wyprowadzenia elementÛw, obszary zabronione, obszary miedzi itd. mog¹ byÊ sygnalizowane graficznie. Kolejn¹ grup¹ funkcji, jakie udostÍpnia Specctra, s¹ funkcje zwi¹zane z†postroutingiem projektu, czyli jego optymalizacj¹ pod k¹tem jakoúciowym i†technologicznym. Podstawowe funkcje postroutera to: CRITIC - funkcja eliminuj¹ca zbÍdne za³amania úcieøek. Jej dzia³anie jest
zbliøone do CLEAN, z†tym øe w†tym przypadku úcieøki nie s¹ zrywane i†prowadzone od nowa, a†jedynie optymalizowane takøe pod k¹tem optymalizacji odprowadzeÒ od przelotek i†wyprowadzeÒ. SHIELD - funkcja powoduj¹ca u³oøenie úcieøek ekranuj¹cych. FILTER ROUTING - funkcja uøywana w†przypadku, gdy wynik dzia³ania autoroutera nie koÒczy siÍ 100% sukcesem nawet w†wypadku wykonania duøej liczby przejúÊ i†konieczne jest rÍczne wytyczenie okreúlonego po³¹czenia lub po³¹czeÒ. Rezultat dzia³ania funkcji to zerwanie úcieøek, dla ktÛrych istniej¹ konflikty i†pozostawienie ich jako unrouted. CENTER WIRES - funkcja optymalizuj¹ca po³oøenie úcieøek biegn¹cych pomiÍdzy dwoma s¹siaduj¹cymi ze sob¹ wyprowadzeniami danego elementu. SPREAD WIRES - funkcja powoduj¹ca rÛwnomierne rozprzestrzenienie úcieøek na dostÍpnym obszarze. TESPOINTS - funkcja dodaj¹ca punkty testowe do kontroli produkcji druku oraz testowania zmontowanych obwodÛw PCB. MITER - funkcja tworz¹ca úciÍcia naroønikÛw úcieøek lub ich zaokr¹glenia zgodnie z†zadanymi parametrami (rys. 12). Ostatni¹ grup¹ narzÍdzi, jakie udostÍpnia Specctra, s¹ rozbudowane funkcje raportuj¹ce. Pozwalaj¹ one na uzyskanie szczegÛ³owych informacji o†poszczegÛlnych elementach fizycznych sk³adaj¹cych siÍ na projektowany obwÛd PCB, jak rÛwnieø o†wszelkich obiektach definiowanych przez uøytkownika w†trakcie projektowania p³ytki. Informacje te prezentowane s¹ w†postaci tekstowej i†w†mog¹ byÊ zachowane na dysku komputera. RK Dodatkowe informacje Wiêcej informacji mo¿na uzyskaæ w firmie RKSystem, www.rk-system.com.pl.
Elektronika Praktyczna 7/2003
S P R Z Ę T
MTS-51 Zestaw do nauki mikrokontrolera '51 Trzeba obiektywnie przyznaÊ, øe MCS-51 to rodzina uk³adÛw bardzo przyjazna dla uøytkownika, ³atwa do nauczenia i†úwietnie wyposaøona w†narzÍdzia zarÛwno programowe, jak i†sprzÍtowe. Moøna oczywiúcie polemizowaÊ, czy przyjÍta koncepcja jednostki centralnej jest dobra i†czy odpowiada dzisiejszym wymaganiom? Czy w†dobie tak szybkich zmian, jakie obserwujemy w†elektronice, rdzeÒ mikrokontrolera opracowany kilkanaúcie lat temu nie jest juø muzealnym zabytkiem? Pojawiaj¹ce siÍ co pewien czas nowe mutacje 51-ki úwiadcz¹ o†tym, øe powyøsze w¹tpliwoúci nie znajduj¹ uzasadnienia, a†rodzina ma siÍ ca³kiem nieüle (dowody na to przedstawiamy w†artykule opublikowanym na wk³adce On/Off Line - tylko w†EPo/oL). Na pocz¹tku ery mikrokontrolerÛw konstruktorzy wykorzystuj¹cy je byli nie wiadomo jakimi specami. Dzisiaj moøna nie znaÊ na pamiÍÊ serii uk³adÛw TTL czy CMOS, ale bez znajomoúci choÊby jednego mikrokontrolera trudno zabieraÊ siÍ nawet za najprostsze projekty. ChoÊ w†zakresie literatury technicznej w†ci¹gu ostatnich lat bardzo wiele siÍ u†nas zmieni³o na korzyúÊ, to - jak wiadomo - skutecznoúÊ nauczania znacznie siÍ zwiÍksza, jeúli do nauki wykorzystuje siÍ Êwiczenia praktyczne. Specjalnie dla tych, ktÛrzy dzisiaj nie maj¹ jeszcze zielonego pojÍcia, co to jest mikrokontroler, na dalekim Tajwanie opracowano trenaøer MTS-51. Nie jest to klasyczny starter kit, do jakich jesteúmy przyzwyczajeni. Raczej trudno do³¹czyÊ do niego w³asny fragment systemu, ale chyba teø nie taka by³a intencja projektantÛw. Zamys³em by³o jak najpe³niejsze zaprezentowanie architektury mikrokontrolera i†sposobÛw do³¹czania typowych uk³adÛw peryferyjnych, z†jakimi spotykamy siÍ na co dzieÒ, st¹d ich bogactwo w†zestawie (fot. 1). DoúÊ oryginalnie wygl¹da p³yta czo³owa zestawu. Jest to po prostu p³ytka drukowana, do ktÛrej przylutowano poszczegÛlne elementy. Zamiast typowej soldermaski zastosowano farbÍ, ktÛra maskuje úcieøki na p³ytce, a†na
Elektronika Praktyczna 7/2003
niej na³oøono opisy wyjaúniaj¹ce funkcje poszczegÛlnych elementÛw. Trenaøer jest wyposaøony we wbudowany zasilacz sieciowy.
Dokumentacja Do zestawu do³¹czono pokaünych rozmiarÛw ksi¹økÍ, ktÛra w†swej pierwszej czÍúci jest ürÛd³em wiedzy na temat architektury mikrokontrolerÛw '51, w†drugiej natomiast dok³adnie opisuje sam zestaw MTS-51. W†czÍúci teoretycznej zapoznajemy siÍ z†podstawowymi pojÍciami zwi¹zanymi z†technik¹ mikroprocesorow¹. Dowiadujemy siÍ co to jest ALU, CPU, czym rÛøni¹ siÍ pamiÍci ROM, PROM, EPROM, EEPROM, RAM, poznajemy zasadÍ dzia³ania uk³adÛw we/wy oraz systemu przerwaÒ. Dalej dowiadujemy siÍ, jak powyøsze komponenty s¹ implementowane w†konkretnych uk³adach rodziny MCS-51. Moøna zauwaøyÊ, øe opisy zamieszczone w†podrÍczniku s¹ zredagowane nieco inaczej niø odpowiadaj¹ce im noty katalogowe. Uøyte sformu³owania zosta³y dobrane z†myúl¹ o†tym, øe bÍd¹ je czytaÊ ludzie
Parafrazuj¹c popularne powiedzenie, chcia³oby siÍ rzec: ì51-ka wiecznie øywaî. Wci¹ø znajduj¹ siÍ chÍtni do wykorzystywania jej w†swoich projektach, wci¹ø nie brak chÍtnych do wkraczania w†úwiat mikrokontrolerÛw poprzez poznawanie w³aúnie tej rodziny. Jeúli juø siÍ uczyÊ, to najlepiej na b³Ídach. Dysponuj¹c opisanym poniøej zestawem, moøna ich bezpiecznie pope³niaÊ bez liku. z†praktycznie zerowym poziomem wiedzy. PoszczegÛlne fragmenty tekstu s¹ bogato ilustrowane tabelami i†rysunkami. Tam, gdzie jest to potrzebne, przedstawiane s¹ algorytmy procedur w†postaci graficznej. Pod koniec pierwszej czÍúci podrÍcznika zamieszczono listÍ rozkazÛw mikrokontrolera '51, zilustrowan¹ przyk³adowym programem w†asemblerze. Zawarto rÛwnieø krÛtki opis makroasemblera X8051 oraz linkera LINK4. DoúÊ dok³adnie opisane s¹ teø formaty plikÛw wynikowych.hex, w†szczegÛlnoúci rÛønice pomiÍdzy typami Intel, Extended Intel, Tektronix, S19, S28 i†S37. Kolejne rozdzia³y dotycz¹ zestawu MTS-51.
Fot. 1. Wygląd zestawu MTS−51
61
S P R Z Ę T
Rys. 2. Okno programu WinISP PoszczegÛlne bloki funkcjonalne zestawu omÛwiono indywidualnie, do kaødego opisu do³¹czono odpowiedni schemat ideowy. Zaprezentowano tu rÛwnieø program wykorzystywany do programowania mikrokontrolera - WinISP. Kolejn¹ czÍúÊ dokumentacji stanowi¹ dok³adne opisy kilkunastu ÊwiczeÒ praktycznych, jakie moøna przeprowadziÊ w†oparciu o†zestaw MTS-51. Po krÛtkim wstÍpie ogÛlnym do kaødego tematu, podano sposÛb skonfigurowania prze³¹cznikÛw i†zworek, a†nastÍpnie dok³adnie opisano przebieg Êwiczenia. Ca³oúÊ jest uzupe³niona podaniem wersji ürÛd³owych programÛw, ktÛre moøna rÛwnieø znaleüÊ na za³¹czonym CD-ROM-ie.
Programowanie mikrokontrolera W†zestawie MTS-51 zastosowano mikrokontroler P89C51RD+ firmy Philips. Posiada on wewnÍtrzn¹ pamiÍÊ programu typu Flash, dziÍki czemu sta³o siÍ moøliwe programowanie go w†systemie. CzynnoúÊ ta jest bardzo prosta, nie wymaga ci¹g³ego przek³adania uk³adu z†systemu uruchamianego do programatora, mimo øe przewidziano specjaln¹ podstawkÍ typu ZIF, niewymagaj¹c¹ uøywania si³y podczas demontaøu. Jej zastosowanie wynika wiÍc raczej ze stworzeniem moøliwoúci wymiany typu mikrokontrolera. Przed przyst¹pieniem do programowania naleøy za pomoc¹ specjalnej zworki ustawiÊ odpowiednie napiÍcie programuj¹ce (5 lub 12 V), po³¹czyÊ zestaw z†komputerem poprzez port szeregowy, uruchomiÊ program WinISP i†wcisn¹Ê przycisk prze³¹czaj¹cy zestaw w†tryb pracy ISP. NastÍpnie w†parametrach programu okreúla siÍ typ uk³adu, numer portu komunikacyjnego, zakres programowanych adresÛw, a†takøe czÍstotliwoúÊ taktowania mikrokontrolera (rys. 2). Za pomoc¹ tego programu moøna takøe ustawiÊ bity zabezpieczaj¹ce, do nauki nie bÍd¹ one jednak potrzebne. Kolejn¹ czynnoúci¹ jest za³adowanie programu wynikowego, ktÛry bÍdzie zapisany w†pamiÍci Flash. Uøytkownik oprÛcz wersji ürÛd³owych dostaje na CDROM-ie przygotowane przez producenta do kaødego Êwiczenia pliki wynikowe.hex. Nie jest wiÍc konieczne kompi-
62
lowanie programÛw przed uøyciem. Po za³adowaniu programu wyúwietlane s¹ jego adresy pocz¹tku i†koÒca. Odpowiedni obszar pamiÍci Flash powinien byÊ wykasowany przed przyst¹pieniem do programowania. S³uøy do tego klawisz Erase Block. Jeúli warunek ten jest spe³niony, wystarczy wcisn¹Ê klawisz Program Part, aby po kilku sekundach uzyskaÊ gotowy do testÛw mikrokontroler. Program WinISP umoøliwia ponadto rÍczne modyfikowanie zawartoúci bufora, w†tym zape³nianie go podanym wzorcem. Po zakoÒczeniu programowania naleøy ponownie prze³¹czyÊ zestaw w†normalny tryb pracy, odpowiednio dla uruchamianego programu skonfigurowaÊ wszystkie prze³¹czniki i†zworki i†wyzerowaÊ system przyciskiem Reset. Jeúli wszystkie powyøsze czynnoúci zosta³y wykonane prawid³owo, to mikrokontroler powinien od tego momentu rozpocz¹Ê wykonywanie zapisanego w†jego pamiÍci programu. Na w³asne pomys³y z†pewnoúci¹ przyjdzie czas, na pocz¹tku warto zapoznaÊ siÍ z†gotowymi propozycjami eksperymentÛw.
Æwiczenia Przygotowane przez producenta zestawu eksperymenty maj¹ na celu wszechstronne zademonstrowanie moøliwoúci mikrokontrolerÛw rodziny MCS-51. Prezentacja jest oparta na obs³udze typowych urz¹dzeÒ peryferyjnych, daj¹c tym samym gotowe rozwi¹zania dla praktykÛw. Na ogÛ³ jeden eksperyment jest podzielony na kilka ÊwiczeÒ, co pozwala na stopniowe nabywanie umiejÍtnoúci przez ucznia. Poniøej zapoznamy siÍ pokrÛtce z†programem kursu. Sterowanie diodami LED Pierwsze Êwiczenia maj¹ na celu nauczenie korzystania z†portÛw we/wy. Najprostszym i†najbardziej efektownym przyk³adem jest oczywiúcie mruganie diodami úwiec¹cymi. Mamy wiÍc efekt ìbiegn¹cego punktuî. Przy okazji uczymy siÍ tworzyÊ pÍtle wytracania czasu. W†kolejnych Êwiczeniach sposÛb zapalania LED-Ûw ulega modyfikacjom. Poznajemy teø technikÍ wykorzystywania tablic przechowuj¹cych szablon wyúwietlania (lookup table). Sterowanie wyúwietlaczem 7-segmentowym W†kolejnym Êwiczeniu zaznajamiamy siÍ z†technik¹ wyúwietlania informacji na 7-segmentowym wyúwietlaczu cyfrowym. Do dyspozycji s¹ dwie pary wyúwietlaczy. Uczymy siÍ przy okazji tworzyÊ dwucyfrowy licznik rewersyjny. Sterowanie wskaünikiem matrycowym 8x8 LED Tym razem poprzeczka zosta³a nieznacznie podniesiona. Wykorzystujemy juø jednoczeúnie dwa porty P0 i†P2. Uzyskujemy bardzo efektowne wraøenia wizualne. Wyúwietlacz matrycowy umoøliwia wyúwietlanie piÍknych znakÛw alfanumerycznych. Po nabraniu wprawy bÍdziemy
mogli projektowaÊ w³asn¹ semigrafikÍ. Przydaje siÍ nabyta wczeúniej umiejÍtnoúÊ wykorzystywania tablic lookup. Pod koniec ÊwiczeÒ jesteúmy juø prawie gotowi do zaprojektowania w³asnej tablicy úwietlnej z†przesuwaj¹cymi siÍ napisami. Obs³uga klawiatury matrycowej 4x4 Do klasycznego otoczenia mikrokontrolera dochodzi zewnÍtrzny enkoder 74C922. Jest to specjalizowany uk³ad przeznaczony do obs³ugi klawiatury matrycowej. Potrafi on wykryÊ wciúniÍcie klawisza, a†fakt ten sygnalizuje mikrokontrolerowi generuj¹c przerwanie. Przekraczamy wiÍc kolejny stopieÒ wtajemniczenia. Reakcj¹ na naciúniÍcie klawisza jest zapalenie odpowiadaj¹cego mu LED-a lub cyfry na wyúwietlaczu. Sterowanie silnikiem krokowym To juø nie przelewki. Postawione przed nami zadania staj¹ siÍ coraz trudniejsze. Niew¹tpliwie zadaniem takim jest sterowanie 4-fazowym silnikiem krokowym. Uczymy siÍ obracaÊ jego oú w†dwie strony, wykonywaÊ okreúlon¹ liczbÍ obrotÛw, regulujemy teø prÍdkoúÊ obrotÛw silnika. Wykorzystywanie portu szeregowego Przeprowadzamy doúÊ dziwny eksperyment. Wysy³amy dane z†wewnÍtrznego portu szeregowego (UART) zaimplementowanego w†mikrokontrolerze, a†odbieramy w†rejestrze przesuwaj¹cym 74164. Wyjúcia rÛwnoleg³e tego uk³adu steruj¹ LED-ami. Podobny przebieg ma kolejne Êwiczenie. RÛwnoleg³e dane s¹ w†nim wysy³ane z†rejestru 74165 i†odbierane przez UART. Transoptory jako elementy steruj¹ce Do dyspozycji mamy dwa transoptory. PrÛbujemy poprzez nie sterowaÊ kierunkiem obrotÛw silnika krokowego, zliczaÊ impulsy, itp. Obs³uga timerÛw mikrokontrolera w†rÛønych trybach Podobnie jak w†pierwszym Êwiczeniu zapalamy LED-y. Tym razem jednak czas úwiecenia wyznacza wewnÍtrzny uk³ad czasowy mikrokontrolera. W†dalszej czÍúci budujemy generator przebiegu prostok¹tnego o†ustalonej czÍstotliwoúci rÛwnej 1†kHz. NastÍpny stopieÒ wtajemniczenia obejmuje generacjÍ przebiegÛw na wyprowadzeniach P2.0 do P2.3. Kolejne ich czÍstotliwoúci pozostaj¹ w†stosunku 1:2.
Rys. 3. Okno programu µVision/51
Elektronika Praktyczna 7/2003
S P R Z Ę T w†kolejnych krokach mrugaÊ i†przesuwaÊ siÍ po ekranie. Na koniec, wykorzystuj¹c nabyte wczeúniej umiejÍtnoúci, budujemy elektroniczny stoper pracuj¹cy z†dok³adnoúci¹ do 0,01 s. Systemy wieloprocesorowe To brzmi dumnie. W†rzeczywistoúci chodzi o†sprzÍgniÍcie dwÛch zestawÛw poprzez port szeregowy.
NarzÍdzia programowe Rys. 4. Okno programu dScope−251/51 åpiewaÊ kaødy moøe Niekoniecznie úpiewaÊ, ale graÊ na pewno. Niestety proponowany instrument robi to ìtrochÍ gorzejî, fa³szuje bowiem niemi³osiernie. Do odtwarzania düwiÍkÛw wykorzystuje zwyk³y buzzer, co moøe byÊ pewnym usprawiedliwieniem problemÛw. Podbudowa teoretyczna jest za to bardzo naukowa. Wyúwietlacz alfanumeryczny To has³o spÍdza sen z†powiek niejednemu elektronikowi. Korzystaj¹c z†zestawu, uczymy siÍ obs³ugiwaÊ wyúwietlacz alfanumeryczny LCD 20x2, wykorzystuj¹c 8-bitow¹ magistralÍ danych. Pocz¹tkowo napisy pojawiaj¹ siÍ statycznie, by
64
Powyøsze Êwiczenia moøna - jak wiemy - przeprowadziÊ w†oparciu o†przygotowane fabrycznie pliki.hex. Prawdziwy konstruktor, choÊby pocz¹tkuj¹cy, bÍdzie z†pewnoúci¹ prÛbowa³ do³oøyÊ do nich w³asn¹ inwencjÍ twÛrcz¹. Jest to moøliwe, gdyø do zestawu do³¹czono ewaluacyjne wersje programÛw µVision/51 (rys. 3) oraz dScope-251/51 (rys. 4) firmy Keil. Pozwalaj¹ one na tworzenie kodu wynikowego do 2†kB, zarÛwno w†asemblerze, jak i†w†jÍzyku C. Debugger dScope-251/51 przydaje siÍ do testowania na sucho programu przed zapisaniem go w†pamiÍci mikrokontrolera.
Ocena Zestaw MTS-51 to úwietny zestaw edukacyjny. BÍdzie na pewno duø¹ pomoc¹ dydaktyczn¹ w†szkolnych
i†uczelnianych pracowniach systemÛw mikroprocesorowych. Dobrze napisana ksi¹øka bÍd¹ca zarÛwno ürÛd³em wiedzy ogÛlnej, jak i†instrukcj¹ obs³ugi ma niestety jedn¹ wadÍ. Po kilku otwarciach rozsypuje siÍ na pojedyncze kartki - juø myúla³em, øe jest to tylko nasza ìnarodowaî specjalnoúÊ. Szkoda teø, øe nie opracowano polskiej wersji jÍzykowej podrÍcznika. P³yta czo³owa zestawu, choÊ zaprojektowana bardzo ergonomicznie, rÛwnieø nie jest pozbawiona drobnego b³Ídu. Gniazdo krawÍdziowe portu szeregowego nie jest - jakby sugerowa³a to nazwa - wyprowadzone na krawÍdü p³ytki, w†wyniku czego po w³oøeniu wtyku zostaje doúÊ powaønie odkszta³cone. Mimo drobnych niedoci¹gniÍÊ, zestaw stwarza bardzo dobre wraøenie ogÛlne. Uczniowie bÍd¹ zachwyceni tym, øe mog¹ mrugaÊ lampkami, wyúwietlaÊ ruchome napisy i†sterowaÊ obrotami silnika. Jaros³aw Doliñski, AVT [email protected] Dodatkowe informacje Cena kompletnego zestawu: 2900 z³ netto. Zestaw do testów udostêpni³a redakcji firma NDN, tel. (22) 641-15-47, www.ndn.com.pl.
Elektronika Praktyczna 7/2003
P R O G R A M Y
Przełom na rynku narzędzi EDA dla elektroników, część 5 WúrÛd nowych cech Protela DXP nie sposÛb pomin¹Ê modu³u do automatycznego prowadzenia po³¹czeÒ. Zaimplementowany w†Protelu DXP autorouter topologiczny nowej generacji - Situs firmy Altium - wnosi now¹ jakoúÊ w†zakresie automatycznego prowadzenia úcieøek na p³ycie. Pe³na integracja z†edytorem PCB u³atwia pracÍ i†eliminuje problemy, jakie zwykle wystÍpuj¹ przy wymianie danych z†innymi programami. Autorouter topologiczny Situs Stworzony od pocz¹tku przez Altium autorouter nowej generacji znalaz³ zastosowanie po raz pierwszy w†pakiecie Protel DXP. W†programie tym wykorzystano przestrzenn¹ analizÍ topologiczn¹, ktÛra zapewnia znacznie lepsze efekty w†trasowaniu úcieøek, niø osi¹gane przez narzÍdzia bazuj¹ce na tradycyjnych algorytmach. Autorouter topologiczny jest pozbawiony wielu ograniczeÒ wystÍpuj¹cych w†tradycyjnych narzÍdziach. Nieregularne kszta³ty elementÛw, rÛøne wielkoúci rastra wyprowadzeÒ, obudowy wyposaøone w†setki wyprowadzeÒ to cechy nowoczesnych obwodÛw drukowanych, z†ktÛrymi nie radzi sobie wiÍkszoúÊ programÛw starszej generacji. Natomiast Situs sprawdza siÍ doskonale nawet w†przypadku obwodÛw, w†ktÛrych stosujemy obudowy elementÛw w†rÛønych technologiach, takøe z†rÛønym rozstawem wyprowadzeÒ oraz elementy obrÛcone pod dowolnym k¹tem. W†przeciwieÒstwie do starszych wersji Protela i†wielu innych narzÍdzi, teraz autorouter radzi sobie dobrze ze skomplikowanymi obwodami, obs³uguj¹c wszystkie technologie obudÛw do montaøu powierzchniowego, m.in. takie jak BGA, QFP i†LCC. £¹czenie wyprowadzeÒ skomplikowanych elementÛw powierzchniowych wspomagaj¹ polecenia z†menu Auto Route>Fanout (rys. 1), ktÛrych zachowanie jest kontrolowane przez odpowiednie regu³y projektowe z†sekcji Fanout Control.
Rys. 1. Autorouter uruchamiamy i konfigu− rujemy w menu Auto Route wprost z edytora PCB
Elektronika Praktyczna 7/2003
Optymalna konfiguracja strategii jest uzaleøniona od charakteru obwodu drukowanego. Prowadzenie úcieøek dla kaødej strategii odbywa siÍ w†kilku przejúciach. Trudno poleciÊ idealn¹ konfiguracjÍ dla kaødego rodzaju p³yty, dlatego zaleca siÍ wybÛr jednej z†domyúlnych strategii i†eksperymentowanie z†dodawaniem, usuwaniem i†zmian¹ kolejnoúci poszczegÛlnych przejúÊ. Przyk³adow¹ konfiguracjÍ autoroutera dla domyúlnej strategii wielowarstwowej pokazano na rys. 3.
Autorouter jest úciúle zintegrowany ze úrodowiskiem DXP i†dostÍpny wprost z†menu edytora PCB. Automatyczne prowadzenie úcieøek moøemy uruchomiÊ dla ca³ej p³yty lub fragmentu obwodu. Jak widaÊ na rys. 1, moøemy poprowadziÊ úcieøki dla danej sieci (Net), wybranego po³¹czenia (Conntection), elementu (Component) oraz fragmentu wewn¹trz wyznaczonego okna (Area) lub zdefiniowanego wczeúniej obszaru (Room). Situs przestrzega wszystkich regu³ projektowych, elektrycznych oraz zwi¹zanych z†prowadzeniem po³¹czeÒ. Respektuje m.in. takie szczegÛ³y jak style przelotek oraz úlepe i†zagrzebane przelotki. SposÛb konfiguracji autoroutera Situs jest odmienny od znanych we wczeúniejszych wersjach Protela. Program jest dostarczany z†zestawem gotowych strategii prowadzenia po³¹czeÒ, kaøda dostosowana do specyficznych sytuacji. Situs wybiera automatycznie, zaleønie od iloúci warstw zdefiniowanych w†projekcie, domyúln¹ strategiÍ dla p³yt dwuwarstwowych (Default 2†Layer Board) lub domyúln¹ strategiÍ dla drukÛw wielowarstwowych (Default Multi Layer Board). Przed uruchomieniem autoroutera moøemy rÛwnieø rÍcznie wybraÊ jedn¹ z†kilku predefiniowanych strategii lub stworzyÊ w³asn¹ (rys. 2). Domyúlne strategie nie mog¹ byÊ modyfikowane, natomiast moøemy je kopiowaÊ dowoln¹ iloúÊ razy i†na ich podstawie tworzyÊ i†edytowaÊ w³asne strategie.
Protel DXP wspomaga projektowanie obwodÛw drukowanych, dla ktÛrych istotnym parametrem úcieøek jest ich impedancja charakterystyczna. S³uøy do tego specjalny tryb prowadzenia úcieøki, w†ktÛrym zamiast sta³ej szerokoúci, program utrzymuje zadan¹ impedancjÍ po³¹czenia, dobieraj¹c automatycznie parametry geometryczne úcieøki. Prowadzenie úcieøek w†taki sposÛb, øeby spe³nia³y za³oøenia okreúlonej impedancji, wymaga skonfigurowania parametrÛw fizycznych laminatu takich jak w³aúciwoúci materia³u, gruboúÊ izolacji i†miedzi, rozmieszczenia warstw zasilaj¹cych wzglÍdem sygna³owych, a†takøe doboru odpowiedniej szerokoúci úcieøek. KontrolÍ tego procesu umoøliwia Layer Stack Manager, ktÛry zawiera wbudowany kalkulator impedancji úcieøek. RÛwnania, jakimi pos³uguje siÍ program do obliczania impedancji, moøemy zobaczyÊ, a†takøe zmodyfikowaÊ, klikaj¹c przycisk Impedance Calculation w†oknie Layer Stack Manager. Pojawia siÍ okienko Impedance Formula Editor pokazane na rys. 4. Kalkulator impedancji pracuje w†zgodzie z†regu³ami projektowymi Routing Width, kiedy s¹ one skonfigurowane w†trybie Characteristic Impedance Driven Width. W†tym trybie szerokoúÊ po³¹czenia wymagana na kaødej warstwie jest obliczana na podstawie
Rys. 2. Dostępne są predefiniowane strategie prowadzenia ścieżek
Rys. 3. Widok okna konfiguracji strategii autoroutera Situs
Prowadzenie úcieøek z†kontrol¹ impedancji
65
P R O G R A M Y
Rys. 4. Okno Impedance Formula Editor pozwala podejrzeć i edytować równania, którymi posługuje się kalkulator impedan− cji połączeń programu Protel okreúlonej impedancji, z†wykorzystaniem odpowiednich rÛwnaÒ oraz parametrÛw fizycznych zdefiniowanych dla stosu warstw. Waøne jest, øeby parametry stosu warstw (laminatu) by³y prawid³owo zdefiniowane. Tylko wtedy moøemy osi¹gn¹Ê realistyczne wyniki. Jeøeli prowadzimy po³¹czenia, dla ktÛrych mamy zdefiniowane regu³y na impedancjÍ, szerokoúÊ úcieøki jest ustawiana automatycznie na wymagan¹ dla danej warstwy, tak aby spe³niÊ kryterium okreúlonej impedancji.
Nowy sposÛb okreúlania zasiÍgu regu³ projektowych PCB Regu³y projektowe definiuj¹ wszystkie wymagania projektu, w†tym takie jak odstÍpy izolacyjne, szerokoúci úcieøek, style ³¹czenia warstw zasilaj¹cych, parametry prze-
Rys. 5. Widok okna edytora reguł projek− towych z wybraną regułą określającą impedancję połączeń dla jednej z sieci
66
lotek i†wiele innych. Kaøda regu³a ma swÛj zasiÍg, ktÛry okreúla dok³adnie, czego regu³a dotyczy - na przyk³ad wszystkich obiektÛw na p³ycie, wszystkich obiektÛw naleø¹cych do okreúlonej sieci (rys. 5) czy wszystkich obiektÛw posiadaj¹cych okreúlon¹ obudowÍ. Zamiast uøywaÊ sta³ych, predefiniowanych ustawieÒ zasiÍgu regu³ projektowych, Protel DXP wykorzystuje zapytania do okreúlania, ktÛrych obiektÛw dotyczy dana regu³a. Wbudowany jÍzyk zapytaÒ daje pe³n¹ swobodÍ i†nieograniczone moøliwoúci definiowania zakresu dzia³ania kaødej regu³y (rys. 6). ZasiÍg regu³y moøemy okreúliÊ na kilka sposobÛw, przyk³adowo: - Uøywaj¹c predefiniowanych opcji dostÍpnych w†oknie dialogowym kaødej regu³y, takich jak Net, Net Class, Layer oraz Net and Layer. Zaznaczaj¹c jedn¹ z†nich, a†nastÍpnie wybieraj¹c parametr z†listy rozwijanej, budujemy automatycznie zapytanie. - Za pomoc¹ narzÍdzia Query Builder - wybieramy z†listy poszczegÛlne sk³adniki zapytania i†budujemy szybko nawet z³oøone kwerendy, a†program pomaga unikn¹Ê b³ÍdÛw w†sk³adni. - Uøywaj¹c narzÍdzia Query Helper, ktÛre zawiera wszystkie dostÍpne s³owa kluczowe, kaøde opatrzone krÛtkim opisem. Naciskaj¹c F1, kiedy kursor znajduje siÍ w†úrodku s³owa kluczowego, uzyskujemy jego szczegÛ³owy opis oraz przyk³ady stosowania. Zastosowanie jÍzyka zapytaÒ, znanego bardziej z†baz danych, moøe wydawaÊ siÍ trochÍ dziwne w†odniesieniu do programu s³uø¹cego do projektowania. Jednak, jeúli uúwiadomimy sobie, øe wszystkie obiekty oraz informacje zgromadzone w†projekcie stanowi¹ szczegÛlny przypadek bazy danych, wtedy wprowadzenie jÍzyka zapytaÒ wydaje siÍ rozwi¹zaniem naturalnym. Filtrowanie informacji za pomoc¹ zapytaÒ daje nieograniczone moøliwoúci, a jedyna wada takiego rozwi¹zania to potencjalna trudnoúÊ w†sprawnym pos³ugiwaniu siÍ t¹ technik¹. Jednak maj¹c do dyspozycji w†programie wsparcie w†postaci narzÍdzi takich jak wspomniane wczeúniej Query Helper i†Query Builder, moøemy tworzyÊ dowolnie z³oøone zapytania, nie znaj¹c nawet sk³adni jÍzyka ani s³Ûw kluczowych. RÛwnieø opanowanie techniki tworzenia zapytaÒ nie jest zadaniem ponad si³y, a†daje wiÍksz¹ swobodÍ pos³ugiwania siÍ tym narzÍdziem. Wystarczy wiedzieÊ, øe zapyta-
Rys. 6. Przykładowa reguła dotycząca wszystkich elementów w obudowie typu IDC40P
Rys. 7. Najwyższą rangę posiada reguła Width_1, której nadano priorytet równy 1 nie to kombinacja s³Ûw kluczowych, identyfikatorÛw obiektÛw i†wartoúci, ktÛre po³¹czone operacjami matematycznymi tworz¹ rÛwnanie - regu³Í, ktÛra jest analizowana przez program i†stosowana do kaødego obiektu. Obiekty spe³niaj¹ce regu³Í tworz¹ zbiÛr odpowiadaj¹cy zapytaniu. Aby system regu³ by³ jeszcze bardziej elastyczny, oprÛcz zakresu dzia³ania moøemy definiowaÊ priorytet kaødej regu³y. Priorytet okreúla porz¹dek, w†jakim s¹ stosowane poszczegÛlne regu³y i†ma szczegÛlne znaczenie w†przypadku, kiedy zakresy dzia³ania kilku regu³ pokrywaj¹ siÍ czÍúciowo. W†takim przypadku zastosowanie ma regu³a o†najwyøszym priorytecie. Priorytety regu³ s¹ widoczne w†g³Ûwnym oknie dialogowym Design Rules, pokazanym na ilustracji poniøej. Najwyøszy priorytet jest oznaczony liczb¹ 1†(rys. 7). Grzegorz Witek, Evatronix
Dodatkowe informacje Dodatkowe informacje mo¿na uzyskaæ w firmie Evatronix, www.evatronix.com.pl.
Elektronika Praktyczna 7/2003
K U R S
Opis protoko³u Mbus v2 dla telefonów Nokia 3210, 33xx, 3410, 51xx, 61xx, 62xx, 7110, 82xx, 9110, 9210
Programowanie telefonów komórkowych, część 1 Programowanie telefonÛw komÛrkowych jest z†jednej strony ìsztuk¹ magiczn¹î, natomiast z†drugiej moøna je przeprowadziÊ za pomoc¹ dowolnego komputera Transmisja w†standardzie Mbus odbywa siÍ jednoprzewodowo, tzn. przesy³ danych do i†z†telefonu odbywa siÍ jedn¹ lini¹ komunikacyjn¹. Dane przesy³ane s¹ w†postaci ramek, w†ktÛrych poszczegÛlne bajty maj¹ úciúle okreúlone znaczenie. Transmisja zestawu ramek jest zabezpieczona przed b³Ídami. Ostatnie miejsce w†ramce zarezerwowane jest dla sumy kontrolnej, ktÛra obliczana jest specjalnym algorytmem. W†protokole Mbus wyrÛøniamy 2†podstawowe typy ramek: - ramki danych, - ramki potwierdzenia. Komunikacja z†telefonem odbywa siÍ wed³ug poniøszego schematu: - wysy³amy ramkÍ danych, - telefon odpowiada nam ramk¹ potwierdzenia oraz ramk¹ z†pakietem informacji,
i†odpowiedniego oprogramowania. Podstaw¹ jest znajomoúÊ protoko³u Mbus, ktÛry przedstawiamy w†artykule. - wysy³amy ramkÍ potwierdzaj¹c¹ odbiÛr danych z†telefonu.
Ramka danych Format ramki danych wysy³anej do telefonu ID – 00 – Type – Type2 – LenMin – LenMax – Type3 – Block – Seq – CheckSum Format ramki danych otrzymywanej z†telefonu ID – Type – 00 – Type2 – LenMin – LenMax – Type3 – Block – Seq – CheckSum Funkcje poszczegÛlnych pÛl w†ramkach wysy³anych i†otrzymanych opisano w†tab. 1.
Tab.1. Funkcje pól w ramkach wysyłanych i otrzymanych Pozycja w ramce
Znaczenie
Opis
ID
Typ transmisji
0x1C - IR/Fbus 0x1E - Serial Fbus 0x1F - Serial Mbus 0x1D - TE Mbus 0x10 - TE Mbus (service soft) -wykorzystuj¹c ten rodzaj transmisji, nale¿y wpierw wprowadziæ telefon w tryb serwisowy 0x40 - Ramka danych 0x7F - Ramka potwierdzaj¹ca 0x00 Liczba bajtów w przedziale: [Block....Checksum] 0x00, 0x01 - ramka danych do telefonu 0x01, 0x01 - ramka danych z telefonu Jest to najbardziej znacz¹cy obszar w ca³ej ramce. Znajduj¹ siê tu bajty bêd¹ce rozkazami dla telefonu oraz dane. Chc¹c odczytaæ wartoæ okrelonego parametru, w tym bloku nale¿y wstawiæ jedynie wartoæ rozkazu odpowiedzialnego za jego pobranie. Pole to zawiera numer sekwencji ramki. Numer sekwencji jest zwiêkszany przy kolejnej ramce wysy³anej do telefonu, pod warunkiem ¿e nie przeprowadzamy retransmisji z powodu b³êdów. Suma kontrolna niesie informacjê o poprawnoci ramki danych. Jeli nie zostanie ona prawid³owo obliczona, telefon odrzuci ramkê i przerwie komunikacjê. Suma kontrolna obliczana jest ze wszystkich bajtów wchodz¹cych w sk³ad ramki za pomoc¹ funkcji XOR.
Type
Rodzaj transmisji
Type2
Typ ramki
LenMin LenMax Type3
D³ugoæ ramki Kierunek danych
Block
Blok danych
Seq
Numer sekwencji
Checksum
Suma kontrolna
68
Ramka danych w Mbus Standardowe parametry transmisji są następujące: prędkość 9600 bd, ramka składa się z 8 bitów danych, 1 bitu stopu, bez parzysto− ści. Jeúli chcemy zmieniÊ wartoúci ustawieÒ telefonu, to po okreúlonym rozkazie wystÍpuj¹ jeszcze bajty danych z†nowymi wartoúciami dla okreúlonego parametru. W†ramkach danych†otrzymywanych z†telefonu w†tym bloku znajduje siÍ kod rozkazu, ktÛry by³ wczeúniej wysy³any, oraz wartoúci parametru, ktÛrego dany rozkaz dotyczy.
Ramki potwierdzenia Po wys³aniu odpowiednio zbudowanej ramki danych, telefon odpowiada ramk¹ potwierdzenia, oznaczaj¹c¹ poprawne odebranie danych, a†nastÍpnie przeúle nam w†odpowiedzi ramkÍ danych. OdbiÛr danych musimy potwierdziÊ, wysy³aj¹c ramkÍ potwierdzenia o†okreúlonym formacie. Format ramki potwierdzenia otrzymywanej z†telefonu: ID – Type – 00 – 7F – Seq2 – Checksum W ramce potwierdzaj¹cej, ktÛr¹ otrzymujemy z telefonu, komorka Seq2 przyj-
Elektronika Praktyczna 7/2003
K U R S
K U R S
Rys. 1. Schemat elektryczny standardowego interfejsu Mbus muje wartoúÊ pola Seq z ramki, ktÛr¹ wczeúniej wysy³aliúmy (ramka danych). Format ramki potwierdzenia wysy³anej do telefonu ID – 00 – Type – 7F – Seq2 – Checksum
Tryb testowy Czynnoúci opisane poniøej moøna wykonaÊ wy³¹cznie po wczeúniejszym wprowadzeniu telefonu w†tryb testowy, tzw. TEST MODE. W†tym trybie telefon jest przygotowany jedynie do wykonywania operacji testowych. Odbieranie po³¹czeÒ przychodz¹cych, a†takøe wykonywanie po³¹czeÒ nie jest moøliwe. Telefon powrÛci do normalnego trybu pracy po wyzerowaniu lub wy³¹czeniu i†ponownym w³¹czeniu. Aby wprowadziÊ telefon w†tryb testowy, naleøy wys³aÊ ramkÍ z†rozkazem prze³¹czenia w†TEST MODE (kod 0x64, 0x02). Prze³¹czenie w†tryb testowy wymaga wys³ania ramki danych pokazanej poniøej: 1F – 00 – 10 – 40 – 00 – 04 – 00 – 01 – 64 – 02 – 31 – 1D Telefon potwierdza przyjÍcie ramki poprzez wys³anie ramki:
Tab. 2. Parametry możliwe do odczytania z telefonu oraz odpowiadające im kody rozkazów Parametr do pobrania
Rozkaz binarny
MSID MCU SW Checksum COBBA DSP internal (ROM) HW ASIC Sys Locks info Product serial number Product code Manufacter Month Ustawienia profilu
Informacje o†telefonie Aby uzyskaÊ jakiekolwiek informacje od telefonu na temat jego parametrÛw, naleøy wys³aÊ ramkÍ z†rozkazem ich podania. W†zaleønoúci od parametru, na temat ktÛrego chcemy uzyskaÊ informacje, naleøy pos³uøyÊ siÍ rozkazem odpowiedzialnym za ich pobranie. Kaødemu rozkazowi przyporz¹dkowany jest inny parametr.
Sumy kontrolne Liczenie sum kontrolnych ramek przesyłanych przez magistralę Mbus ułatwi program udostępniony przez autora artykułu, który publikujemy na płycie CD−EP5/2003B.
69
K U R S Odczytanie kodu zabezpieczaj¹cego wymaga wys³ania ramki pokazanej poniøej: 1F – 00 – 10 – 40 – 00 – 04 – 00 – 01 – 6E – 01 – 03 – 26 Telefon potwierdza jej poprawny odbiÛr za pomoc¹ ramki: 1F – 10 – 00 – 7F – 03 – 73 NastÍpnie telefon przesy³a odpowiedü zawieraj¹c¹ kod zabezpieczaj¹cy (w zapisie szesnastkowym): 1F – 10 – 00 – 40 – 00 – 0B – 01 – 01 – 6E – 01 – 01 – 31 – 32 – 33 – 34 – 35 – 00 – 05 – 1E TransmisjÍ koÒczy potwierdzenie odbioru danych: 1F – 00 – 10 – 7F – 0C – 7C Po konwersji odebranego kodu na znaki ASCII otrzymujemy: 12345
M I N I P R O J E K T Y Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość ich praktycznej realizacji. Zmontowanie układu nie zabiera zwykle więcej niż dwa, trzy kwadranse, a można go uruchomić w ciągu kilkunastu minut. Układy z „Miniprojektów” mogą być skomplikowane funkcjonalnie, lecz łatwe w montażu i uruchamianiu, gdyż ich złożoność i inteligencja jest zawarta w układach scalonych. Wszystkie układy opisywane w tym dziale są wykonywane i badane w laboratorium AVT. Większość z nich znajduje się w ofercie kitów AVT, w wyodrębnionej serii „Miniprojekty” o numeracji zaczynającej się od 1000.
Częstościomierz analogowy Nie od dziú wiadomo, øe z†555 moøna zrobiÊ wszystko jeden z†przyk³adÛw przedstawiamy w†artykule. Rekomendacje: proúciutki przyrz¹d laboratoryjny, za pomoc¹ ktÛrego moøna wykonaÊ ca³kiem powaøne pomiary.
W†czÍstoúciomierzu zastosowano popularny timer NE555, co uczyni³o konstrukcjÍ miernika prost¹ i†bardzo tani¹. Na rys. 1 przedstawiono schemat elektryczny uk³adu. Prezentowany czÍstoúciomierz ma za zadanie przetworzenie czÍstotliwoúci wejúciowej na napiÍcie, ktÛrego wartoúÊ úrednia jest wskazywana przez miernik magnetoelektryczny. Timer 555 pracuje tutaj jako przerzutnik monostabilny, wyzwalany impulsami wejúciowymi. Wype³nienie impulsÛw wyjúciowych zaleøy od stosunku czasu trwania impulsu wyjúciowego do okresu wyzwalania. ZaleønoúÊ ta jest liniowa i†dlatego moøemy wykorzystaÊ j¹ do pomiaru czÍstotliwoúci. Miernik ma dwa wejúcia: jedno s³uøy do pomiaru sygna³Ûw prostok¹tnych o†poziomach TTL, drugie do pomiaru sygna³Ûw sinusoidalnych. Sygna³y sinusoidalne s¹ odpowiednio formowane we
wzmacniaczu wejúciowym, z³oøonym z†tranzystorÛw T1 i†T2. Ma³y pobÛr pr¹du przez miernik kwalifikuje go do zasilania bateryjnego. Za jego pomoc¹ moøna mierzyÊ czÍstotliwoúci w†zakresie od 20 Hz do 200 kHz, w†czterech zakresach pomiarowych prze³¹czanych zworkami ZW1...ZW4. Ze wzglÍdu na niewielki pobÛr pr¹du miernik moøe byÊ z†powodzeniem zasilany z†baterii 9V. Miernik wykonano na jednostronnej p³ytce drukowanej, ktÛrej schemat montaøowy pokazano na rys. 2. Uk³ad po prawid³owym zmontowaniu i†w³¹czeniu zasilania za-
Rys. 1
Rys. 2
Elektronika Praktyczna 7/2003
czyna pracowaÊ od razu, wymaga jedynie wyskalowania. W†tym celu powinniúmy posiadaÊ generator sygna³u o†czÍstotliwoúci 20 Hz...200 kHz oraz miernik czÍstotliwoúci. Za pomoc¹ zworek (jumperÛw lub innych prze³¹cznikÛw) wybieramy zakres, na
ktÛrym przeprowadzimy regulacjÍ, nastÍpnie do wejúcia pomiarowego przyk³adamy sygna³ o†maksymalnej czÍstotliwoúci odpowiadaj¹cej danemu zakresowi. RÛwnolegle z†generatorem, na wejúcie moøemy kontrolnie pod³¹czyÊ cyfrowy miernik czÍstotliwoúci. Potencjometrem danego zakresu, obserwuj¹c wskazania miernika wychy³owego, ustawiamy wskazÛwkÍ na maksimum wskazaÒ. Tak samo postÍpujemy podczas regulacji na pozosta³ych podzakresach. Krzysztof Górski, AVT [email protected]
P³ytka drukowana jest dostÍpna w AVT - oznaczenie AVT-1369. Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/?pdf/ lipiec03.htm oraz na p³ycie CD-EP7/2003 w katalogu PCB.
71
M I N I P R O J E K T Y
Zabezpieczenie linii telefonicznej W†artykule przedstawiono prosty w†wykonaniu, lecz skuteczny uk³ad mog¹cy byÊ jednoczeúnie ìobroÒc¹î uøytkownika telefonu stacjonarnego i†ìdrÍczycielemî potencjalnych piratÛw telefonicznych. Podstawowym przeznaczeniem urz¹dzenia jest zabezpieczenie linii telefonicznej przed piratami. Rekomendacje: urz¹dzenie przydatne tym uøytkownikom telefonÛw, ktÛrzy chc¹ zapewniÊ bezpieczeÒstwo swoim rachunkom...
Na rys. 1 przedstawiono schemat elektryczny urz¹dzenia. Jego konstrukcjÍ moøna podzieliÊ na trzy bloki funkcjonalne: blok linii, blok zasilania i†generator sygna³u akustycznego. Blok linii z†blokiem zasilania umoøliwia bezpoúred-
Rys. 1
nie pod³¹czenie urz¹dzenia do linii telefonicznej oraz zasilanie generatora. Generator zbudowano na timerze NE555 pracuj¹cym w†trybie astabilnym. Jest on ürÛd³em zak³Ûcaj¹cego sygna³u akustycznego. Po pod³¹czeniu urz¹dzenia do linii telefonicznej bÍd¹cej w†stanie spoczynku (napiÍcie 48...60 V), dioda Zenera D1 zaczyna przewodziÊ wprowadzaj¹c tranzystor
Rys. 2
72
T1 w†stan przewodzenia, co powoduje zablokowanie tranzystora T2 i†odciÍcie zasilania generatora. Po obniøeniu siÍ napiÍcia na
linii telefonicznej poniøej napiÍcia Zenera diody D1, dioda ta przestaje przewodziÊ, a†kondensator C1 przez chwilÍ podtrzymuje przewodzenie T1. Odblokowany tranzystor T2 w³¹cza zasilanie generatora US1, ktÛry zaczyna wysy³aÊ w†liniÍ akustyczny sygna³ zak³Ûcaj¹cy. Dodatkowo do wyjúcia generatora moøemy do³¹czyÊ s³uchawkÍ, ktÛra umoøliwia monitorowanie linii telefonicznej. Uk³ad zmontowano na jednostronnej p³ytce drukowanej, na ktÛrej umieszczono wszystkie elementy uk³adu. Schemat montaøowy przedstawiono na rys. 2. Uruchomienie uk³adu ogranicza siÍ praktycznie do sprawdzenia poprawnoúci montaøu i†pod³¹czenia linii telefonicznej. Prezentowane urz¹dzenie moøe byÊ z†powodzeniem wykonany przez kaødego pocz¹tkuj¹cego elektronika amatora. Krzysztof Górski, AVT [email protected]
P³ytka drukowana jest dostÍpna w AVT - oznaczenie AVT-1368. Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/?pdf/ lipiec03.htm oraz na p³ycie CD-EP7/2003 w katalogu PCB.
Elektronika Praktyczna 7/2003
K U R S
Celem tego artyku³u jest opis funkcjonowania oraz sposobÛw konfiguracji i†wykorzystania timerÛw w†mikrokontrolerach z†rodziny AVR. Rozpoczynaj¹c od ogÛlnego opisu, poprzez przyk³adowe programy, postaram siÍ wyt³umaczyÊ jak wykorzystaÊ timer wbudowany w†strukturÍ mikrokontrolera AVR dla w³asnych potrzeb. W†przyk³adach programÛw pos³ugiwa³em siÍ mikrokontrolerem AT90S8535.
część Obsługa timerów w mikrokontrolerach AVR Trudno jest znaleüÊ polski odpowiednik s³owa ìtimerî. WiÍkszoúÊ konstruktorÛw, ktÛrzy mieli juø do czynienia z†mikrokontrolerami, doskonale wiedz¹ jakie funkcje moøe on spe³niaÊ. PozwÛlcie wiÍc, øe bÍdÍ siÍ tym s³owem pos³ugiwa³ bez poszukiwania jego odpowiednika w†naszym ojczystym jÍzyku. Timer to prosty uk³ad licz¹cy, najczÍúciej o†rozdzielczoúci 8†lub 16 bitÛw. Niech nie zwiedzie nas jednak prostota jego budowy - z†kaødym timerem zwi¹zany jest bowiem szereg rÛønych zmiennych (najczÍúciej s¹ to bity rejestru kontrolnego) wp³ywaj¹cych na to w†jaki sposÛb bÍdzie on pracowa³. CzÍsto istniej¹ wiÍc moøliwoúci nastaw kierunku zliczania (w gÛrÍ lub w†dÛ³) oraz wyboru ürÛd³a impulsÛw zegarowych - czy to z†otoczenia mikrokontrolera, czy teø z†wewnÍtrznego generatora zegarowego lub do³¹czonego rezonatora kwarcowego (AVR). Programista - elektronik najczÍúciej uøywa timera b¹dü to do zliczania impulsÛw, b¹dü to do pomiaru czasu ich trwania albo teø do budowy tak zwanego generatora PWM. BÍdzie o†tym mowa w†dalszej czÍúci artyku³u. NajczÍúciej, jeúli timer wykorzystywany jest do pomiaru czasu trwania impulsu, to jako wzorzec wykorzystuje siÍ wewnÍtrzny generator zegarowy lub wzorcowy, zewnÍtrzny sygna³ od-
niesienia. Prowadzi to nas do wniosku, øe czas trwania impulsu moøe byÊ mierzony z†dok³adnoúci¹ do czasu trwania impulsÛw wzorcowych. Stanowi¹ one swego rodzaju jednostkÍ pomiarow¹. Najwaøniejsz¹ jednak cech¹ timera jest ta, øe moøe on funkcjonowaʆniezaleønie od reszty procesÛw obs³ugiwanych przez jednostkÍ centraln¹ mikrokontrolera (abstrahuj¹c od konfiguracji bitÛw kontroluj¹cych pracÍ timera, ktÛra musi byÊ wykonana przez CPU). Struktury wspÛ³czesnych mikrokontrolerÛw wyposaøane s¹ w†2†lub 3†uk³ady timerÛw. Mikrokontrolery rodziny AVR (AT90 i†ATmega) s¹ wyposaøone w†dwa timery 8-bitowe i†jeden 16-bitowy. W†wiÍkszoúci zastosowaÒ†wiÍksze moøliwoúci oferuje timer 16-bitowy, jednak dla wielu aplikacji rozdzielczoúÊ 8-bitowa jest wystarczaj¹ca. Jest ona teø bardziej dopasowana do architektury rdzenia (ktÛry jest 8-bitowy) i†przez to umoøliwia znacznie szybsze wykonywanie operacji arytmetycznych czy porÛwnaÒ ze sta³ymi lub zmiennymi uøywanymi przez dan¹ aplikacjÍ. Ze wzglÍdu na swoj¹ elastycznoúÊ, timery mikrokontrolerÛw AVR mog¹ byÊ wykorzystywane dla rÛønych celÛw. Dalsza czÍúÊ tekstu ma na celu przybliøenie tych zastosowaÒ oraz wyt³umaczenie w†jaki sposÛb niezaleøne uk³ady funkcjonalne komuniku-
Tabela 1. Nastawy bitów preskalera TCCRx Bit 2 Bit 1 Bit 0 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
Synchroniczny Timer 0 i Timer 1 PCK0,1 = zegar syst.
j¹ siÍ z†CPU mikrokontrolera oraz jak mog¹ byÊ przezeÒ wykorzystane.
Sygnalizacja zdarzeÒ CPU mikrokontrolera AVR moøe monitorowaÊ do 3†zdarzeÒ powodowanych przez kaødy z†timerÛw. Zdarzenia te s¹ sygnalizowane przez ustawienie odpowiednich bitÛw†statusu (tak zwanych flag) w†rejestrze TIMSK (Timer Interrupt Mask). Tak wiÍc kontrola stanu timera sprowadza siÍ do testowania przez CPU mikrokontrolera maksymalnie 3†bitÛw sygnalizuj¹cych stan timera. Bitami tymi s¹: Timer Overflow (przepe³nienie timera) Ustawienie tego bitu informuje, øe timer osi¹gn¹³ wartoúÊ maksymaln¹ i†zostanie wyzerowany w†nastÍpnym cyklu zegarowym. Jak wczeúniej wspomnia³em, AVR wyposaøony jest w†dwa timery 8-bitowe oraz jeden 16bitowy. W†praktyce oznacza to dwa timery mog¹ce liczyÊ do wartoúci 0xFF oraz jeden licz¹cy do 0xFFFF. Przepe³nienie sygnalizowane jest przy pomocy bitu nosz¹cego nazwÍ Timer Overflow Flag (TOVx) w†rejestrze TIFR (Timer Interrupt Flag Register). Compare Match (spe³niony warunek porÛwnania) W†przypadku, gdy nie jest konieczne monitorowanie stanu flagi przepe³nienia, moøe byÊ uøywane przerwanie typu COMPARE MATCH wywo³ywane, gdy wartoúÊ zapamiÍtana w†rejestrze OCRx (Output Compare Register) zgadza siÍ ze zliczon¹ przez timer. Wskazanie przez timer wartoúci identycznej z†zapisan¹ w†rejestrze OCRx powoduje ustawienie w³aúciwego bitu OCFx (Output Compare Flag) w†rejestrze TIFR. Timer moøe byÊ rÛwnieø skonfigurowany w†taki sposÛb, aby jednoczeúnie z†ustawieniem flagi OCFx wartoúÊ rejestru licz¹cego timera by³a zerowana. Istnieje rÛwnieø moøliwoúÊ wyboru takiego trybu pracy, dziÍki ktÛremu automatycznie, w†momencie
77
K U R S a)
b)
Rys. 1. Poglądowy schemat połączeń pomiędzy preskalerem i multiplekserem dla Timerów 0 i 1 (a) oraz 2 (b) Uwagi: 1. Preskaler pracuje nieprzerwanie - równie¿ podczas wprowadzania nastaw timerów. W przypadkach gdy wymagane jest bardzo dok³adne odmierzanie czasu, nale¿y samemu zadbaæ o to, aby timer zosta³ zatrzymany i preskaler zacz¹³ podzia³
od wartoci 0. W mikrokontrolerach nie przeprowadzaj¹cych zerowania preskalera mo¿e ono zostaæ przeprowadzone przez detekcjê przepe³nienia preskalera przez aplikacjê oraz inicjalizacjê rejestru TCNTx po tym zdarzeniu.
2. W nowszych mikrokontrolerach posiadaj¹cych preskaler dzielony pomiêdzy kilka timerów, przeprowadzenie sekwencji reset w taki sam sposób wp³ywa na wszystkie pod³¹czone urz¹dzenia, inicjuj¹c je i przeprowadzaj¹c odliczanie od wartoci 0.
spe³nienia warunku porÛwnania, odpowiednim wyprowadzeniom mikrokontrolera moøe zostaÊ przypisany stan niski, wysoki lub zanegowany. Funkcja ta jest bardzo uøyteczna podczas budowy generatorÛw sygna³u prostok¹tnego o†rÛønej czÍstotliwoúci. Oferuj¹c szeroki zakres generowanych czÍstotliwoúci umoøliwia na przyk³ad budowÍ prostych przetwornikÛw cyfrowo - analogowych, jakkolwiek do tego zastosowania bardziej w³aúciwym wydaje siÍ wykorzystanie trybu generatora o†modulowanej szerokoúci impulsu (PWM). Input Capture (przechwyt wartoúci) Mikrokontrolery AVR posiadaj¹ wejúcie nazywane Input Capture (IC). Zmiana stanu na tym wejúciu powoduje, øe aktualna wartoúÊ timera jest odczytywana i†zapamiÍtywana w†rejestrze ICRx (Input Capture Register). Jednoczeúnie ustawiana jest flaga ICFx (Input Capture Flag) w†rejestrze TIFR. Funkcja ta najczÍúciej wykorzystywana jest do pomiaru czasu trwania impulsu. Kaødy z†wyøej wymienionych bitÛw moøe wywo³ywaÊ odpowiedni wektor przerwania. Przerwaniami oraz ich obs³ug¹ zajmiemy siÍ w†dalszej czÍúci artyku³u.
1. Kontrolowanie stanÛw bitÛw statusu (flag) w†czasie pracy programu poprzez ich testowanie metod¹ odpytywania (pooling - odpytywanie) i†podejmowanie akcji odpowiedniej dla danej ich kombinacji. 2. Odpowiednie ustawienie rejestru kontroluj¹cego przerwania a†nastÍpnie automatyczne przerywanie pracy programu g³Ûwnego i†wykonywanie programÛw obs³ug przerwaÒ. 3. SprzÍtowa i†ca³kowicie automatyczna zmiana stanu odpowiedniego wyprowadzenia mikrokontrolera. Kontrola statusu flag korzysta z†faktu, øe wewnÍtrzne uk³ady mikrokontrolera ustawiaj¹ okreúlone bity powoduj¹ce przejúcie do procedury obs³ugi przerwania o†ile ta nie zosta³a zabroniona. Oczywiúcie warunkiem korzystania z†tej metody jest wy³¹czenie obs³ugi przerwania, bo inaczej odpytywanie nie mia³oby sensu. Kontrola stanu bitÛw flag, jakkolwiek chyba naj³atwiejsza do wykonania, jest jednoczeúnie ma³o efektywn¹ bo zajmuje czas mikrokontrolera. Naleøy rÛwnieø liczyÊ siÍ z†pewnym opÛünieniem przy podejmowaniu akcji, poniewaø CPU zanim zacznie kontrolowaÊ stan flag, moøe byÊ zaangaøowane w†realizacjÍ zupe³nie innej czÍúci kodu zwi¹zanej z†obs³ug¹ ca³kowicie innych funkcji mikrokontrolera. Poniøszy fragment programu w†asemblerze ilustruje uøycie tej metody wykorzystanej do kontroli Timera 0:
in r16,TIFR ;załadowanie rejestru TIFR ;do r16
Kontrola stanu timera S¹ trzy podstawowe metody kontrolowania zdarzeÒ generowanych przez timer a†tym samym powodowania reakcji mikrokontrolera w†zaleønoúci od stanu timera:
78
loop: ;główna pętla programu .........
sbrs r16,TOV0 ;omiń następną instrukcję, ;jeśli bit 0 w r16 jest ;ustawiony rjmp loop ;wykonaj skok do początku ;pętli głównej programu ;jeśli bit przepełnienia ;Timera 0 nie był ustawiony event: ......... ;tu rozpoczyna się obsługa ;zdarzenia “przepełnienie ;Timera 0” Linie te powinny byÊ umieszczone w†pÍtli g³Ûwnej wykonywanego programu a†stan flag musi byÊ kontrolowany tak czÍsto, jako tylko jest to moøliwe. Najlepszym - moim zdaniem - sposobem kontroli stanu timera jest wykorzystanie systemu przerwaÒ. Jak wczeúniej wspomnia³em, okreúlone zdarzenia zwi¹zane ze stanem timera powoduj¹ ustawianie flag w†rejestrze TIMSK. Powodem ustawienia flagi moøe byÊ przepe³nienie rejestru licz¹cego, spe³nienie warunku porÛwnania czy teø zakoÒczenie dzia³ania przez funkcjÍ pomiaru czasu trwania impulsu zwi¹zan¹ z†wejúciem ICP. Tyle gwoli przypomnienia. O†ile wykonywanie funkcji obs³ug przerwaÒ jest
Elektronika Praktyczna 7/2003
K U R S dozwolone, CPU mikrokontrolera przerywa wykonywanie bieø¹cego programu lub wychodzi ze stanu uúpienia i†wykonuje skok pod úciúle okreúlony adres zwi¹zany z†danym powodem przerwania. Jednoczeúnie zapamiÍtany zostaje stan licznika rozkazÛw tak, øe jest moøliwe jego odtworzenie w†momencie powrotu do programu g³Ûwnego. Jest to metoda bardzo efektywna oszczÍdza czas mikrokontrolera angaøuj¹c CPU tylko wÛwczas, gdy to jest naprawdÍ potrzebne, chociaø nastrÍcza pewne trudnoúci przy implementacji. Program g³Ûwny jest bowiem przerywany w†momencie, ktÛry trudno przewidzieÊ i†to programista musi zadbaÊ o†to, aby przy wejúciu do procedury obs³ugi przerwania i†po jej opuszczeniu program nadal wykonywany by³ normalnie. Odpowiednie przerwania za³¹czane s¹ przez nastawy bitÛw w†rejestrze TIMSK (Timer Interrupt Mask). Poniøszy przyk³ad w†asemblerze ilustruje w†jaki sposÛb w³¹czyÊ procedurÍ obs³ugi przerwania na skutek przepe³nienia Timera 2:
siÍtn¹ 32). Zawiera on teø sposÛb ustawienia wartoúci porÛwnywanej. Konfiguracja timera jest dokonywana przy pomocy ustawienia bitÛw COMx0 i†COMx1 w†rejestrze TCCRx - w†przypadku uøycia Timera 2†s¹ to bity COM20 i†COM21 w†rejestrze TCCR2. Naleøy jednak pamiÍtaÊ o†tym, øe wybÛr trybu pracy timera nie wp³ywa na ustawienie kierunku linii portu w³aúciwej dla OC2. Aby zezwoliÊ na ustawianie wartoúci wyprowadzenia OC2, odpowiedni bit konfiguracji kierunku bitu portu musi byÊ ustawiony w†taki sposÛb aby wyprowadzenie to pracowa³o jako wyjúciowe.
Opcje nastaw zegara Generator zegarowy AVR zawiera preskaler pod³¹czony do multipleksera. Preskaler to dzielnik czÍstotliwoúci zegara. Zosta³ on zaimplementowany jako licznik z†kilkoma wyjúciami o†rÛønych stopniach podzia³u. W†przypadku AT90S8535 jest to 10bitowy licznik uøywany do wytworzenia czterech (w przypadku Timera 2†szeúciu) rÛønych czÍstotliwoúci taktuj¹cych timery, wynikaj¹cych z†po-
dzia³u czÍstotliwoúci generatora zegarowego. Multiplekser uøywany jest do wyboru ktÛra z†czterech (szeúciu) czÍstotliwoúci uøywana jest jako podstawa czasu timera. Alternatywnie multiplekser moøe byÊ uøyty do ominiÍcia preskalera oraz konfiguracji zewnÍtrznego wyprowadzenia jako wejúciowego dla timera. Timery 0†i†1†s¹ timerami synchronicznymi i†uøywaj¹ zegara systemowego CPU jako ürÛd³a sygna³u zegarowego. Asynchroniczny Timer 2†wymaga w³asnego preskalera co czyni go niezaleønym od zegara systemowego. Na rys. 1 pokazano po³¹czenia pomiÍdzy preskalerem i†multiplekserem. Danych na temat konkretnej konfiguracji dla danego mikrokontrolera AVR naleøy szukaÊ w†jego karcie katalogowej. W†tab. 1 zawarto listÍ moøliwych nastaw preskalera. I†tu rÛwnieø naleøy odwo³aÊ siÍ do danych zawartych w†konkretnej karcie katalogowej, gdzie prawdopodobnie bÍd¹ one opisane dok³adniej i†powi¹zane z†konkretnym modelem mikrokontrolera. Jacek Bogusz, AVT [email protected]
ldi r16,1<
Elektronika Praktyczna 7/2003
79
K U R S
Sterowanie graficznych wyświetlaczy z telefonów komórkowych firmy Nokia, część 3 W†ostatniej czÍúci cyklu przedstawiamy procedury umoøliwiaj¹ce wyúwietlanie na wyúwietlaczu graficznym znakÛw alfanumerycznych, bargrafÛw, prostych grafik oraz linii. Z†myúl¹ o†najbardziej niecierpliwych Czytelnikach przedstawiamy takøe sposÛb sterowania wyúwietlacza za pomoc¹ komputera PC z†zainstalowanym odpowiednim oprogramowaniem. Pisanie na ekranie Jeúli mamy juø za sob¹ procedurÍ inicjalizacji wyúwietlacza, moøemy przyst¹piÊ do wyúwietlania informacji. Zaczniemy od wyúwietlania tekstÛw. Jak juø wczeúniej sygnalizowa³em, do tego celu bÍdzie potrzebny tzw. generator znakÛw. W†przypadku mikrokontrolerÛw bÍdzie to po prostu obszar pamiÍci ROM (Flash) mikrokontrolera z†zapisanymi wzorcami poszczegÛlnych znakÛw ASCII. Stosuj¹c znaki o†wielkoúci 5x7 pikseli, zapisanie jednego znaku bÍdzie wymaga³o 5†bajtÛw pamiÍci. Aby poszczegÛlne znaki by³y od siebie oddzielone, naleøy dodaÊ jeszcze jeden - 6†bajt. Zak³adaj¹c moøliwoúÊ wyúwietlania znakÛw ASCII o†kodach od 0†do 127, potrzebujemy 128*6 = 768 bajtÛw pamiÍci Flash. Znaki o†kodach poniøej 32 (32 to spacja) mog¹ byÊ wykorzystane do wyúwietlania dodatkowych symboli lub semigrafiki. W†tym miejscu wyjaúniÍ, dlaczego warto stosowaÊ generator zawieraj¹cy 6†bajtÛw na znak, zamiast 5†bajtÛw i†automatycznego dodawania przerwy po kaødym znaku. OtÛø moøemy
tworzyÊ znaki semigraficzne wiÍksze niø wielkoúÊ jednego znaku - poprzez sk³adanie ich z†kilku znakÛw. Jeúli zastosujemy metodÍ automatycznego dodawania przerwy, to wtedy taka semigrafika bÍdzie poprzedzielana przerwami. Jeúli jednak nie zamierzamy wykorzystywaÊ semigrafiki, to zmieniaj¹c generator znakÛw moøna w†ten sposÛb oszczÍdziÊ 128 bajtÛw pamiÍci. Jeúli wyúwietlacz zosta³ zainicjowany w†trybie adresowania poziomego, wyúwietlenie jednego znaku na ekranie polega na obliczeniu adresu, pod ktÛrym znajduje siÍ jego wzorzec w†generatorze znakÛw, a†nastÍpnie na pobraniu 6†bajtÛw z†obszaru generatora i†wys³aniu ich na wyúwietlacz poprzez SPI. To wszystko. Proste, prawda? No dobrze, ale to tylko jeden znak powiecie. Nie szkodzi, po wys³aniu tego znaku wyúwietlacz jest gotowy do przyjÍcia kolejnych 6†bajtÛw tworz¹cych nastÍpny znak tekstu. Jego pozycjÍ bÍd¹ wyznacza³y liczniki wierszy i†kolumn wyúwietlacza, ktÛre zgodnie z†rys. 3, przy adresowaniu poziomym automatycznie
List. 2. Przykład procedury umożliwiającej wyświetlanie znaków alfanumerycznych zdefiniowanych w pliku ASCII.DEF na graficznym LCD lcd_data: push r30 push r31 sbi DC_PORT,DC_PIN ldi r25,6 mul r24,r25 ldi r30,lo8(ASCIITAB) ldi r31,hi8(ASCIITAB) add r30, r0 adc r31, r1 LCD_CHAR_1: lpm r24,Z+ rcall lcd_wr dec r25 brne LCD_CHAR_1 pop r31 pop r30 ret
; ; ; ; ; ; ;
lcd_gotoXY: cbi DC_PORT,DC_PIN ori r24,0x40 rcall lcd_wr ldi r24,6 mul r24,r22 mov r24,r0 ori r24,0x80 rcall lcd_wr sbi DC_PORT,DC_PIN ret
; ; ; ;
ASCIITAB: #include „ascii.def”
80
wyświetlenie znaku o kodzie w R24 zachowaj rejestr Z - potrzebne aby łatwiej wyświetlać stringi ustawienie trybu DATA 6 bajtów/znak oblicz offset w generatorze znaków adres generatora znaków
; dodaj offset ; ; ; ;
załaduj bajt z generatora wyślij przez SPI (procedura z listingu 1) zmniejsz licznik bajtów kolejny bajt
; koniec
R22 = pozycja X, R24 = pozycja Y ustawienie trybu COMMAND dodaj kod komendy “Set Y address” wyślij do LCD
; pomnóż pozycję X przez 6 ; dodaj kod komendy “Set X address” ; przywrócenie trybu DATA ; koniec
; dołączenie generatora znaków z zewnętrznego pliku.
wskaø¹ na kolejn¹ pozycjÍ znaku lub jeúli dotrzemy do koÒca linii - automatycznie przenios¹ nas do nastÍpnej linii. Pozostaje jeszcze jedna przydatna funkcja gotoXY, umoøliwiaj¹ca rozpoczÍcie wyúwietlania danych w†okreúlonym miejscu wyúwietlacza. Jej realizacja jest rÛwnieø bardzo prosta, bo wystarczy wymagan¹ pozycjÍ X†znaku pomnoøyÊ przez 6, i†komend¹ Set X†address wys³aÊ do licznika kolumn, a†wymagan¹ pozycjÍ Y†wpisaÊ bezpoúrednio do licznika wierszy komend¹ Set Y†address. Na list. 2 przedstawiono przyk³ad owych procedur. Jest to oczywiúcie jeden z†wielu moøliwych sposobÛw wypisywania tekstÛw na wyúwietlaczu - w†miarÍ ubogi w†moøliwoúci, lecz jednoczeúnie jeden z†najprostszych i†wymagaj¹cy niewielu zasobÛw procesora, a†w†szczegÛlnoúci zapotrzebowania na pamiÍÊ RAM. ZawartoúÊ przyk³adowego generatora znakÛw znajduje siÍ na CD-EP7/ 2003B - plik ASCII.DEF. Jest on zapisany w†formacie pseudodefinicji asemblera uøywanego przez kompilator AVR-GCC.
Wyúwietlanie bitmap Kolejn¹ moøliwoúci¹, jak¹ daje nam graficzny wyúwietlacz, jest wyúwietlanie obrazkÛw w†postaci bitmap lub animacji sk³adaj¹cych siÍ z†sekwencji nastÍpuj¹cych po sobie obrazkÛw. Wyúwietlanie pe³noekranowych lub zajmuj¹cych ca³¹ wysokoúÊ ekranu najlepiej jest przeprowadziÊ w†trybie adresowania pionowego. Jeúli chcemy, øeby obrazek zajmowa³ fragment ekranu, lecz mia³ pe³n¹ szerokoúÊ, to lepiej jest zastosowaÊ adresowanie poziome. Samo wyúwietlenie obrazka jest banalne, bo po ustawieniu wymaganej pozycji poprzez zapis licznikÛw kolumn i†wierszy wystarczy wys³aÊ przygotowane wczeúniej dane bitmapy poprzez SPI prosto do pamiÍci obrazu kontrolera. Ze wzglÍdu na objÍtoúÊ kodu preferowane jest tutaj wczeúniejsze przekonwertowanie standardowej bitmapy, tak aby uzyskaÊ plik, ktÛry wysy³amy do LCD bez jakichkolwiek modyfikacji. SposÛb konwersji zaleøy od wybranego trybu adresowania. Przy wyborze adresowania pionowego moøna przekonwertowaÊ obrazek, robi¹c jego odbicie lustrzane i†obrÛt o†90 stopni w†lewo. Tak zapisanej bitmapy niestety nadal nie moøna wys³aÊ bezpoúrednio, poniewaø posiada ona nag³Ûwek charakterystyczny dla plikÛw BMP oraz 86*8 bajtow danych zamiast spodziewanych 84*6. Wiec z†kaødych 8†bajtÛw opisuj¹cych jedn¹ kolumnÍ, pocz¹wszy od offsetu 0x3e (pocz¹tek w³aúciwych danych), wysy³amy tylko 6†bajtÛw, pomijaj¹c nastÍpne 2. Przy wyborze adresowania poziomego przekszta³cenie bitmapy w†prawid³owy ci¹g danych jest nieco bardziej skomplikowane. Nie bÍdÍ dok³adnie opisywa³ algorytmu, lecz pos³uøÍ siÍ gotowym programem, ktÛry napisa³em swego czasu w†Turbo Pascalu na w³asne potrzeby, a†ktÛry wraz z†ürÛd³ami znajduje siÍ na
Elektronika Praktyczna 7/2003
K U R S List. 3. Procedura wysyłająca plik graficzny na LCD lcd_image: cbi DC_PORT,DC_PIN ldi r24,0x40 rcall lcd_wr ldi r24,0x80 rcall lcd_wr sbi DC_PORT,DC_PIN ldi r21, 252
tu wstawiamy ilość bajtów / 2 do wysłania w zależności od wysokości obrazka 8->42, 16->84, 24->126, 32->168, 40->210 48->252 adres danych obrazka w pamięci FLASH
; ; ; ; ; ; ;
pobierz bajt z flash wyślij bajt do LCD zwiększ adres pobierz bajt z flash wyślij bajt do LCD zwiększ adres zmniejsz licznik
; zawartość obrazka
CD-EP7/2003B. Aby przekonwertowaÊ bitmapÍ o†rozmiarach 84 piksele w†poziomie i 8, 16, 24, 32, 40 lub 48 pikseli w†pionie wystarczy uruchomiÊ program bmpconv.exe, podaj¹c jako parametr nazwÍ pliku do konwersji. PamiÍtajmy, øe jest to program DOS-owy, wiÍc d³ugoúÊ nazwy pliku nie moøe przekraczaÊ 8 znakÛw + 3 znaki rozszerzenia. W†wyniku dzia³ania programu otrzymamy plik binarny out.bin, ktÛry moøna za³adowaÊ prosto do pamiÍci wyúwietlacza. Przyk³adow¹ procedurÍ wysy³aj¹c¹ tak przygotowany plik pokazano na list. 3. Na pocz¹tku zerowane s¹ liczniki kolumn i†wierszy poprzez wys³anie do kontrolera komend 0x40 i†0x80 (przy niskim poziomie na D/C), co oznacza, øe bÍdziemy wyúwietlaÊ obraz pocz¹wszy od lewego gÛrnego rogu ekranu. NastÍpnie do licznika pÍtli wpisujemy potrzebn¹ liczbÍ bajtÛw do wys³ania podzielon¹ przez 2, a†to ze wzglÍdu na to, aby licznik mÛg³ siÍ zmieúciÊ w†pojedynczym 8-bitowym rejestrze. Dalej do rejestru Z (R31:R30) wpisujemy adres komÛrki pamiÍci Flash, od ktÛrego rozpoczynaj¹ siÍ dane obrazka. No i†pozosta³a juø tylko pÍtla pobieraj¹ca kolejne bajty z†pamiÍci Flash i†wysy³aj¹ca je do LCD poprzez interfejs SPI. W†kaødym obiegu pÍtli wysy³ane s¹ 2 bajty oraz zwiÍkszany jest wskaünik danych - rejestr Z. Jeúli chcielibyúmy wysy³aÊ obrazek z†pamiÍci RAM, zamiast z†pamiÍci Flash, wystarczy instrukcjÍ LPM r24, Z zamieniÊ na LD r24, Z+; oraz pomin¹Ê instrukcjÍ adiw r30,1 poniewaø moøna tu wykorzystaÊ automatyczne zwiÍkszanie wskaünika w†instrukcji LD r24,Z+.
Bargrafy, czyli paski postÍpu Kolejnym elementem, ktÛry moøemy wyúwietliÊ na naszym LCD, jest pasek postÍpu pokazuj¹cy procent wykonania jakiejú operacji. Pasek ten bÍdzie umieszczony na wyúwietlaczu poziomo, podobnie jak jedna linijka tekstu, wiÍc bÍdziemy pracowaÊ w†trybie adresowania
Elektronika Praktyczna 7/2003
poziomego. Ta procedura jest rÛwnie prosta jak poprzednie. Najpierw musimy okreúliÊ miejsce, gdzie bÍdzie siÍ zaczyna³ nasz pasek postÍpu, czyli standardowo zapisaÊ dane do licznikÛw kolumn i†wierszy. NastÍpnie wywo³ujemy pokazan¹ na list. 4 procedurÍ lcd_bar, podaj¹c w†rejestrze R24 stopieÒ zape³nienia (d³ugoúÊ zape³nionego paska w†pikselach), a†w†rejestrze R22 ogÛln¹ d³ugoúÊ ca³ego bargrafu. Uaktualnienie pozycji paska polega na kolejnym wywo³aniu tej procedury ze zmienion¹ zawartoúci¹ rejestru R24 wraz z†wczeúniejszym ustawieniem pozycji paska na tak¹ jak za pierwszym razem.
pamiÍci wideo wyúwietlacza, operowanie na jego zawartoúci i†pÛüniejsza aktualizacja zawartoúci pamiÍci wideo wyúwietlacza. Kopia pamiÍci wideo zajmuje doúÊ duøo miejsca - 504 bajty pamiÍci RAM mikrokontrolera - czyli prawie ca³¹ dostÍpn¹ wewnÍtrzn¹ pamiÍÊ mikrokontrolera AT90S8515 lub po³owÍ pamiÍci z†ATmega8 czy ATmega161. Oczywiúcie pod³¹czaj¹c do naszego mikrokontrlera zewnÍtrzn¹ pamiÍÊ RAM lub stosuj¹c jeden z†wyøszych modeli ATmega posiadaj¹cy 2†lub 4†kB wewnÍtrznego RAM-u, pozbywamy siÍ tego k³opotu. Pozostaje drugi problem, czyli iloúÊ i†czasoch³onnoúÊ wymaganych do tego celu obliczeÒ. Do datkowo synchronizacja zawartoúci kopii pamiÍci wideo z†zawartoúci¹ pamiÍci kontrolera wyúwietlacza jest rÛwnieø czasoch³onna przy za³oøeniu kaødorazowej aktualizacji zawartoúci ca³ego wyúwietlacza lub skomplikowana przy prÛbie wybiÛrczej aktualizacji fragmentÛw pamiÍci wideo. Najlepszym wyjúciem z†omawianej sytuacji bÍdzie napisanie odpowiednich procedur w†jÍzyku wyøszego poziomu, czyli np. w†C.
Uniwersalny sterownik LCD z†Nokii Jeden z†cz³onkÛw forum dyskusyjnego poúwiÍconemu odtwarzaczom MP3 yampp napisa³ swoj¹ wersjÍ uniwersalnego sterownika wyúwietlaczy LCD z†Nokii, posiadaj¹c¹ moøliwoúÊ zapalania i†gaszenia pojedynczych pikseli, rysowania linii oraz wyúwietlania znakÛw i†ca³ych stringÛw. Program ten przeznaczony jest do skompilowania bezp³at-
Zapalanie pojedynczych pikseli i†rysowanie linii Niestety w†tym miejscu koÒczy siÍ wszystko co krÛtkie, ³atwe i†przyjemne, a†zaczynaj¹ siÍ prawdziwe ìschodyî. I†to z†dwÛch powodÛw. Po pierwsze, aby zapaliÊ pojedynczy piksel, musimy zmieniÊ jeden bit z†bajtu odwzorowuj¹cego 8 pionowych pikseli, a†nie moøemy odczytaÊ z†pamiÍci wideo wyúwietlacza poprzedniej jego zawartoúci. Jedynym wyjúciem z†sytuacji jest przechowywanie w†pamiÍci RAM steruj¹cego mikrokontrolera kopii zawartoúci List. 4. Procedura odpowiadająca za wyświetlenie bargrafu lcd_bar: mov r25,r24 ldi r24,0b01111111 sbi DC_PORT,DC_PIN rcall lcd_wr
; wyświetlenie paska postępu ; wygląd początku paska ; ustaw tryb wysyłania danych ; narysuj początek bargrafu
; wygląd zapełnionego fragmentu paska sprawdź czy rysujemy zapełniony skok jeśli tak załaduj wygląd pustego paska korekta r25 zmniejsz licznik zapełnionych wyślij R24 do LCD zmniejsz licznik długości paska pętla
; wygląd końca paska ; wyślij do LCD i wyjdź z procedury
81
K U R S nym kompilatorem AVR-GCC i†przeznaczony dla mikrokontrolera ATmega8. Oczywiúcie moøe zostaÊ zaadaptowany do umieszczenia w†innym typie mikrokontrolera AVR, byle by posiada³ odpowiedni¹ iloúÊ pamiÍci RAM. Kod ürÛd³owy tego sterownika publikujemy na CD-EP7/2003B. Postaram siÍ pokrÛtce przedstawiÊ jego moøliwoúci i†sposÛb wywo³ywania zawartych w†nim funkcji. Sterownik sk³ada siÍ z†pliku nag³Ûwkowego NokiaLCD.h, zawieraj¹cego deklaracje kilku wymaganych sta³ych, definicjÍ sposobu pod³¹czenia wyúwietlacza do mikrokontrolera - czyli deklaracjÍ wykorzystanych pinÛw mikrokontrolera, oraz prototypy dostÍpnych funkcji. W³aúciwy kod programu znajduje siÍ w†pliku NokiaLCD.c i†zawiera wszystkie procedury niezbÍdne do obs³ugi wyúwietlacza wraz z†inicjalizacj¹ i†obs³ug¹ interfejsu SPI oraz tablicÍ generatora znakÛw. Oto opis dostÍpnych funkcji sterownika: - LcdInit() - s³uøy ona do zainicjowania interfejsu SPI mikrokontrolera oraz pod³¹czonego wyúwietlacza. Po zakoÒczeniu dzia³ania tej funkcji wyúwietlacz ma odpowiednio ustawione rejestry wewnÍtrzne, znajduje siÍ w†trybie adresowania poziomego - poniewaø wszystkie funkcje korzystaj¹ w³aúnie z†tego trybu. Inicjalizacja zeruje zawartoúÊ cienia pamiÍci wideo jak rÛwnieø i†sam wideo-RAM wyúwietlacza. Powinna byÊ uruchomiona jako jedna z†pierwszych funkcji ca³ego programu, poniewaø ustawia funkcje pinÛw mikrokontrolera oraz podaje prawid³owy sygna³ RESET do wyúwietlacza. - LcdClear() - wyzerowanie zawartoúci cienia pamiÍci wideo. Aby wyczyúciÊ rÛwnieø zawartoúÊ wyúwietlacza, naleøy po LcdClear() wywo³aÊ funkcjÍ LcdUpdate(). - LcdUpdate() - powoduje aktualizacjÍ zawartoúci pamiÍci wideo wyúwietlacza zgodnie z†zawartoúci¹ cienia w†mikrokontrolerze. Aktualizowany jest tylko obszar, w†ktÛrym by³y dokonane jakiekolwiek zmiany od czasu poprzedniej aktualizacji. - LcdContrast(byte contrast) - ustawienie kontrastu wyúwietlacza. WartoúÊ bajtu contrast musi zawieraÊ siÍ pomiÍdzy 0x00 a†0x7f, lecz jak napisa³em wczeúniej, uøyteczny zakres wynosi od 0x20 do 0x58. - LcdGotoXY(byte x, byte y) - ustawienie pozycji wyúwietlania na LCD.
SCE MISO - nieużywany dla LCD MOSI czyli SDIN wyświetlacza SCLK
LCD_WR: CLR P1.4 MOV R2,#08H SPIL: RLC A MOV P1.6,C SETB P1.7 NOP CLR P1.7 MOV C,P1.5 DJNZ SETB RET
R2,SPIL P1.4
; ; ; ; ;
SCE = L licznik, 8 bitów do wysłania z ACC przesuń bit do carry wystaw carry na pin P1.6 (SDAT) SCLK = L
; ; ; ; ;
SCKL = L Pobranie bitu z magistrali - zbędne w przypadku współpracy z LCD zmniejsz licznik i wróć do pętli SCE = H
Koordynaty bazowane s¹ na czcionce o†podstawowej wielkoúci, czyli zakres X†wynosi od 1†do 14, a†zakres Y†od 1†do 6. Funkcja ta nie zmienia zawartoúci licznikÛw kolumn i†wierszy, a†jedynie ustawia odpowiedni offset aktualnego adresu w†kopii pamiÍci wideo. - LcdChr(LcdFontSize size, byte ch) - wyúwietlenie znaku ASCII o†wielkoúci okreúlonej parametrem size w†miejscu aktualnej pozycji wyúwietlania. Mamy do dyspozycji dwie wielkoúci czcionki. Standardow¹ 5x7 punktÛw, ktÛr¹ okreúla sta³a FONT_1X lub wartoúÊ 1, oraz podwÛjnej wielkoúci, pogrubion¹ czcionkÍ oznaczon¹ sta³¹ FONT_2X lub wartoúci¹ 2. Funkcja ta automatycznie zwiÍksza aktualn¹ pozycjÍ wyúwietlania. Aby zobaczyÊ zmiany, musimy po niej wywo³aÊ funkcjÍ LcdUpdate(). - LcdStr(LcdFontSize size, byte *dataPtr) - wyúwietlenie stringu z†pamiÍci RAM mikrokontrolera zaczynaj¹cego siÍ od adresu dataPtr. Pozosta³e parametry jak dla funkcji LcdChr. - LcdPixel(byte x, byte y, LcdPixelMode mode) - wyúwietlenie pojedynczego piksela. Parametry X i†Y okreúlaj¹ pozycjÍ na wyúwietlaczu, a†mode oznacza tryb pracy. WartoúÊ X musi siÍ mieúciÊ w†przedziale od 0†do 83, a†Y w†przedziale od 0†do 47. W†zaleønoúci od trybu, piksel na danej pozycji moøe zostaÊ zapalony, zgaszony lub zmieniony - czyli jeúli by³ wczeúniej zapalony, to zostanie zgaszony i†na odwrÛt. Sta³e opisuj¹ce tryb to odpowiednio PIXEL_ON, PIXEL_OFF i†PIXEL_XOR. Aby zobaczyÊ zmiany, musimy po niej wywo³aÊ funkcjÍ LcdUpdate(). - LcdLine(byte x1, byte y1, byte x2, byte y2, LcdPixelMode mode) narysowanie linii zaczynaj¹cej siÍ w†punkcie o†wspÛ³rzÍdnych x 1,y 1 i†koÒcz¹cej siÍ w†punkcie o†wspÛ³rzÍdnych x2,y2. Dopuszczalne wartoúci pozycji, jak rÛwnieø tryb mode - tak jak dla funkcji LcdPixel. Aby zobaczyÊ zmiany musimy po niej wywo³aÊ funkcjÍ LcdUpdate(). Pozosta³e funkcje widoczne wewn¹trz pliku NokiaLcd.c s¹ wewnÍtrznymi funkcjami sterownika.
Nokia LCD + PC? Czemu nie! Rys. 10
82
Zapewne wielu CzytelnikÛw zainteresowanych wykorzystaniem opisanych wyúwietlaczy bÍdzie chcia³o szybko
sprawdziÊ jego dzia³anie bez wczeúniejszego budowania i†oprogramowywania ca³ego systemu opartego na mikrokontrolerze. Jest na to prosta, a†przy tym skuteczna metoda. Pod³¹cz swÛj wyúwietlacz bezpoúrednio do z³¹cza drukarkowego w†swoim PC. No prawie bezpoúrednio, poniewaø sygna³y logiczne na z³¹czu LPT komputera s¹ zgodne ze standardem TTL 5V, a†wyúwietlacz potrzebuje napiÍÊ o†wartoúci 3,3 V. Konieczny bÍdzie wiÍc konwerter poziomÛw zbudowany na przyk³ad w†oparciu o†uk³ad 74LVC245 (jego schemat publikujemy na CD-EP7/2003B, w†programie Parallel to SPI). Do tego odpowiednie oprogramowanie, zasilacz 3,3 V†i†juø moøemy podziwiaÊ dzia³aj¹cy wyúwietlacz. Na CD-EP7/2003B publikujemy program napisany przez kolejnego uøytkownika forum dotycz¹cego yamppa (to naprawdÍ jest kopalnia wiedzy), umoøliwiaj¹cy sterowanie takim wyúwietlaczem z†poziomu aplikacji MS Windows (rys. 10). Program ten nie posiada zbyt rozbudowanych funkcji, lecz pozwala na zainicjowanie wyúwietlacza, regulowanie kontrastu, ustawienie odpowiedniego trybu, wyúwietlanie tekstÛw oraz konwersjÍ i†wyúwietlanie obrazkÛw. Dodatkowo pozwala on na tworzenie, edycjÍ i†zapisywanie wzorÛw czcionek generatora znakÛw w†postaci definicji db do pÛüniejszego wykorzystania we w³asnych programach. Kolejn¹ moøliwoúci¹ tego programu jest sterowanie pod³¹czonego w†podobny sposÛb dekodera MP3, jakim jest uk³ad VS1001, a†wiÍc odtwarzanie plikÛw MP3. Schemat pod³¹czenia wyúwietlacza LCD lub VS1001 uzyskamy po wybraniu z†menu View opcji Schematics.... Na zakoÒczenie, øycz¹c wszystkim Czytelnikom udanych eksperymentÛw z†opisywanymi wyúwietlaczami, przedstawiam zapowiedzian¹ wczeúniej procedurÍ obs³ugi programowego interfejsu SPI napisan¹ w†asemblerze mikrokontrolera z†rodziny 8051 - czyli np. na tzw. ìma³egoî AT89C2051 (list. 5). Bajt do wys³ania ³adujemy do akumulatora i†wywo³ujemy funkcjÍ przez ACALL LCD_WR. Jeúli zastosujemy j¹ do obs³ugi innego uk³adu komunikuj¹cego siÍ poprzez SPI, to po powrocie w†akumulatorze otrzymamy bajt odczytany z†tego uk³adu. Poniewaø kontroler naszego LCD nie ma takiej moøliwoúci, zawartoúÊ akumulatora moøemy zignorowaÊ lub nawet usun¹Ê instrukcjÍ MOV C,P1.5. Romuald Bia³y
Elektronika Praktyczna 7/2003
K U R S
Podstawy projektowania systemów mikroprocesorowych, część 5 Miesi¹c temu zapowiedzieliúmy pokazanie multipleksowego sposobu sterowania za pomoc¹ mikrokontrolera '51 wyúwietlaczy LED. Obietnicy dotrzymujemy - zapraszamy do lektury!
Schemat uk³adu wykorzystuj¹cego tÍ zasadÍ sterowania wyúwietlaczami siedmiosegmentowymi pokazano na rys. 19. W†uk³adzie tym wykorzystano wyúwietlacze ze wspÛln¹ anod¹, ktÛrych odpowiadaj¹ce sobie katody po³¹czono wspÛlnie z†odpowiednim wyprowadzeniem mikrokontrolera. Rezystory ograniczaj¹ce pr¹d maj¹ mniejsze wartoúci niø w†uk³adach z†wyúwietlaniem statycznym w†zwi¹zku z†koniecznoúci¹ zapewnienia odpowiednio duøego pr¹du úredniego (tutaj 1/4 natÍøenia pr¹du úwiec¹cego wyúwietlacza) gwarantuj¹cego poø¹dan¹ jasnoúÊ úwiecenia - im wiÍcej grup diod by³oby sterowanych, tym rezystory te powinny
mieÊ mniejsz¹ wartoúÊ, nie naleøy jednak przekraczaÊ dopuszczalnego pr¹du linii portu. Anody wyúwietlaczy do³¹czono oddzielnie do plusa zasilania za poúrednictwem tranzystorÛwkluczy sterowanych przez mikrokontroler. Uk³ad ten dzia³a wed³ug nastÍpuj¹cego algorytmu (dla jednego wyúwietlacza): - ustawienie stanÛw linii portu P1 odpowiadaj¹cych informacji wyúwietlanej przez wyúwietlacz W1 (kod odpowiadaj¹cy kszta³towi wyúwietlanego znaku), - w³¹czenie wyúwietlacza 1 (P3.3=0), - odczekanie czasu, w†trakcie ktÛrego wyúwietlacz úwieci, - wy³¹czenie wyúwietlacza 1 (P3.3=1). Powyøsze kroki naleøy powtÛrzyÊ jeszcze trzykrotnie (dla wyúwietlaczy W2, W3 i†W4), a†nastÍpnie rozpocz¹Ê cykl od pocz¹tku (od wyúwietlacza W1). Czas trwania pojedynczego cyklu powinien byÊ tak dobrany, aby czÍstotliwoúÊ zapalania pojedynczego
wyúwietlacza nie by³a mniejsza niø 30...40 Hz (aby przekroczyÊ moøliwoúci rejestrowania zmian przez ludzkie oko), a†najlepiej oscylowa³a w†okolicach 100 Hz, co pozwoli na wyúwietlanie pozbawione efektu migotania znanego z†ekranÛw monitorÛw i†telewizorÛw. Dalsze zwiÍkszanie czÍstotliwoúci odúwieøania nie poprawia juø jakoúci wyúwietlanej informacji, powoduje za to wzrost iloúci zak³ÛceÒ radioelektrycznych generowanych przez wyúwietlacz oraz niepotrzebnie marnuje moc obliczeniow¹ mikrokontrolera. Warto zauwaøyÊ, øe w†takim uk³adzie moøna ³atwo sterowaÊ jasnoúci¹ úwiecenia poszczegÛlnych wyúwietlaczy - wystarczy dobraÊ odpowiednio czasy trwania úwiecenia danego wyúwietlacza - im d³uøszy ten czas, tym jaúniejsze úwiecenie. Czytelnicy zaznajomieni z†urz¹dzeniami wykonywanymi np. w†technice TTL zauwaø¹, øe brak pomiÍdzy wyprowadzeniami mikrokontrolera a†wyúwietlaczem uk³a-
Rys. 19. Schemat 4−cyfrowego wyświetlacza LED sterowanego multipleksowo wprost z programowym generowaniem kształtu wyświetlanego znaku
Elektronika Praktyczna 7/2003
83
K U R S List. 1. Przykładowy program sterujący działaniem 4−cyfrowego wyświetlacza LED ;komórki pamięci od adresu 030h do 033h zawierają kombinację stanów ;segmentów wyświetlacza: 0 - oznacza segment zapalony
MOV P1,030H CLR P3.3 LCALL CZEKAJ SETB P3.3
;przesłanie danej do portu P1 ;włączenie pierwszego wyświetlacza ;wywołanie procedury opóźniającej ;wyłączenie pierwszego wyświetlacza
MOV P1,031H CLR P3.2 LCALL CZEKAJ SETB P3.2
;przesłanie danej do portu P1 ;włączenie drugiego wyświetlacza ;wywołanie procedury opóźniającej ;wyłączenie drugiego wyświetlacza
MOV P1,032H CLR P3.1 LCALL CZEKAJ SETB P3.1
;przesłanie danej do portu P1 ;włączenie trzeciego wyświetlacza ;wywołanie procedury opóźniającej ;wyłączenie trzeciego wyświetlacza
MOV P1,033H CLR P3.0 LCALL CZEKAJ SETB P3.0
;przesłanie danej do portu P1 ;włączenie czwartego wyświetlacza ;wywołanie procedury opóźniającej ;wyłączenie czwartego wyświetlacza
;koniec podprogramu wyświetlającego
List. 2. Procedura realizująca opóźnienie wykorzystywane przez program z list. 1 CZEKAJ: MOV R6,#0FFH DJNZ R6,$
;ustawienie początkowej wartości rejestru ;pozostanie w pętli do chwili wyzerowania R6
RET
du dekodera, np. BCD/7-segmentowego wykorzystywanego w†urz¹dzeniach zbudowanych z†klasycznych uk³adÛw cyfrowych. Zgodnie z†regu³¹ maksymalnego upraszczania sprzÍtu operacjÍ dekodowania informacji wykonuje tutaj mikrokontroler. Pozwala to jednoczeúnie na zmniejszenie komplikacji uk³adu, jak i†na wiÍksz¹ liczbÍ moøliwych do wyúwietlenia znakÛw. Przyk³adowy program steruj¹cy dzia³aniem wyúwietlacza zgodnego ze schematem z†rys. 19 przedstawiono na list. 1. ProcedurÍ realizuj¹c¹ opÛünienie pokazano na list. 2. Powyøsza procedura opÛüniaj¹ca dla systemu taktowanego czÍstotliwoúci¹ 12 MHz zapewnia
czÍstotliwoúÊ odúwieøania wyúwietlacza oko³o 480 Hz. WydawaÊ siÍ moøe, øe jest to wartoúÊ zbyt duøa, jednak naleøy uwzglÍdniÊ fakt, øe oprÛcz obs³ugi wyúwietlania w†g³Ûwnej pÍtli programowej bÍd¹ wykonywane teø inne zadania powierzone mikrokontrolerowi, co spowoduje obniøenie czÍstotliwoúci odúwieøania. W†zaleønoúci od konfiguracji programu wartoúÊ opÛünienia moøe byÊ dobrana w†celu uzyskania okreúlonych parametrÛw odúwieøania. Dobrym sposobem jest rÛwnieø umieszczenie obs³ugi wyúwietlacza w†podprogramie obs³ugi przerwania licznikowego. SytuacjÍ tak¹ przedstawiono na list. 3.
Rys. 20. Sposób tworzenia kształtów wyświetlanych znaków
84
Program ten zapewnia dla czÍstotliwoúci taktowania 12 MHz odúwieøanie wyúwietlacza z†czÍstotliwoúci¹ oko³o 60 Hz. CzÍstotliwoúÊ ta jest niezaleøna od sposobu dzia³ania programu g³Ûwnego, co pozwala na precyzyjne jej okreúlenie. W†obu przypadkach za³oøono, øe dane przeznaczone do wyúwietlenia zosta³y juø odpowiednio przygotowane za pomoc¹ innego podprogramu. W†zasadzie nic nie stoi na przeszkodzie, aby na wyúwietlaczu zapaliÊ dowoln¹ kombinacjÍ segmentÛw - najczÍúciej jednak chcemy, aby wyúwietlacz siedmiosegmentowy wyúwietla³ cyfry - odpowiednie przekodowanie umoøliwi nam program pokazany na list. 4. Przedstawiony program korzysta z†tablicy, w†ktÛrej zapisano stan poszczegÛlnych wyprowadzeÒ portu P1 koniecznych do uzyskania na wyúwietlaczu siedmiosegmentowym odpowiednich cyfr. Podane wartoúci liczbowe odpowiadaj¹ sytuacji, w†ktÛrej wyprowadzenia segmentÛw wyúwietlacza (a, b, c, d, itd.) pod³¹czone s¹ kolejno do linii portu P1.0, P1.1 do P1.6. Wyprowadzenie kropki wyúwietlacza (oznaczane jako h lub dp) do³¹czone jest do linii P1.7. Oczywiúcie nic nie stoi na przeszkodzie, aby linie mikrokontrolera by³y po³¹czone z†innymi segmentami wyúwietlacza (np. w†sposÛb upraszczaj¹cy projektowanie p³ytki drukowanej) - zmieni siÍ jedynie reprezentacja liczbowa wyúwietlanych znakÛw (koniecznoúÊ innego zakodowania). SposÛb uzyskania odpowiednio zakodowanych liczb pokazano na rys. 20. Kodowanie polega na umieszczeniu w†tablicy zera w†przypadku zapalenia segmentu i†jedynki w†przypadku jego zgaszenia - otrzymany w†ten sposÛb ci¹g zer i†jedynek jest oúmiobitow¹ liczb¹ dwÛjkow¹, ktÛrej najm³odszy bit odpowiada wyprowadzeniu P1.0. Przekszta³cenie na postaÊ szesnastkow¹ jest tylko formalnoúci¹ skracaj¹c¹ i†zwiÍkszaj¹c¹ czytelnoúÊ zapisu. Tak otrzyman¹ liczbÍ naleøy wpisaÊ na odpowiedni¹ pozycjÍ w†tablicy kodÛw umieszczon¹ w†programie. OprÛcz cyfr na wyúwietlaczu sied-
Elektronika Praktyczna 7/2003
K U R S
Rys. 21. Multipleksowe sterowanie wyświetlaczy LED z wykorzystaniem rejestru 74164 miosegmentowym moøna uzyskaÊ takøe wyúwietlanie niektÛrych liter alfabetu oraz wielu znakÛw umownych - w†zaleønoúci od zaistnia³ych potrzeb. W†sytuacji, gdy nie jest moøliwe wykorzystanie ca³ego portu mikrokontrolera do sterowania wyúwietlaczem LED (np. z†powodu braku wolnych linii lub zbyt ma³ej ich obci¹øalnoúci), dobrym sposobem na zbudowanie uk³adu wyúwietlaj¹cego jest zastosowanie rejestru szeregowo-rÛwnoleg³ego. Schemat takiego uk³adu przedstawiono na rys. 21. Wykorzystano w†nim scalony rejestr szeregoworÛwnoleg³y 74164, ktÛry wraz z†dwoma tranzystorami i†dziesiÍcioma rezystorami steruje linijk¹ úwietln¹ zbudowan¹ z†diod LED. Ogromn¹ zalet¹ tego uk³adu jest fakt, øe do sterowania szesnastu diod LED potrzeba zaledwie 4†linii mikrokontrolera! Dodatkowo poprzez szeregowe po³¹czenie kilku rejestrÛw '164 moøemy sterowaÊ kolejn¹ grup¹ 16 diod przypadaj¹cych na kaødy do³¹czony uk³ad bez koniecznoúci wykorzystywania kolejnych wyprowadzeÒ mikrokontrolera. Niewielka liczba wykorzystywanych linii portu wi¹øe siÍ jednak z†nieco bardziej rozbudowan¹ czÍúci¹ programow¹ w†stosunku do zwyk³ego wyúwietlacza multipleksowanego z†bezpoúrednim sterowaniem diod z†linii portu. ChoÊ ogÛlna zasada programowania nie zmienia siÍ - nadal jest to wyúwietlacz multipleksowany - to nieco inaczej przebiega procedura wystawiania sygna³Ûw odpowiedzialnych za zaúwiecenie siÍ lub
Elektronika Praktyczna 7/2003
List. 3. Listing programu, w którym obsługę wyświetlacza umieszczono w podprogramie obsługi przerwania licznikowego ;POZYCJA - zmienna bajtowa przechowująca numer wyświetlanej pozycji ;komórki pamięci 030H do 033H przechowują dane do wyświetlenia {program główny - część inicjująca} MOV POZYCJA,#1
;pozycja 1 będzie wyświetlana jako pierwsza
MOV TMOD,#0 MOV TL0,#0FFH MOV TL1,#00FH
;ustawienie trybu pracy licznika ;i wpisanie wartości początkowych
SETB EA SETB ET0 SETB TR0
;włączenie przerwań ;zezwolenie na przerwanie od licznika T0 ;włączenie licznika 0
;sprawdzenie, czy wyświetlić pozycję pierwszą ;jeśli tak, to gasi wyświetlacz 4 ;przepisuje do portu daną dla wys. 1 ;włącza wyświetlacz 1 ;następną pozycją będzie 2 ;skok do końca procedury
;jeśli nie pierwsza, to sprawdza, czy druga ;jeśli tak, to gasi wyświetlacz 1 ;przepisuje daną dla wys. 2 ;włącza wyświetlacz 2 ;następną pozycją będzie 3 ;skok do końca procedury
;jeśli nie druga, to sprawdza, czy trzecia ;jeśli tak, to gasi wyświetlacz 2 ;przepisuje daną dla wys. 3 ;włącza wyświetlacz 3 ;następną pozycją będzie 4 ;skok do końca procedury
;jeśli nie trzecia, to musi być czwarta ;gasi wyświetlacz 3 ;przepisuje daną dla wys. 4 ;włącza wyświetlacz 4 ;następną pozycją będzie 1
KONIEC:
;koniec procedury wyświetlającej
{inne rozkazy wykonywane w przerwaniu} POP ACC POP PSW RETI
;pobranie akumulatora ;i rejestru stanu ze stosu ;powrót z przerwania
85
K U R S
K U R S List. 4. Program odpowiadający za przekodowanie liczb BCD na kody znaków wyświetlacza LED ;komórki 040H do 043H - wartości liczbowe z zakresu od 0 do 9 przeznaczone ;do wyświetlenia na odpowiednich pozycjach wyświetlacza ;komórki 030H do 033H - przekodowane dane, gotowe do wyświetlenia
;wpisanie do rejestru DPTR adresu tablicy kodów ;wpisanie do rejestru liczby pozycji (4 pozycje) ;przesłanie danej do akumulatora ;pobranie odpowiednich kodów z tablicy ;przesłanie informacji do komórki wyniku ;zwiększenie adresu komórki danych ;i wyniku ;pozostanie w pętli w celu czterokrotnego wykonania ;powrót do programu głównego
KODY: DB DB DB DB DB DB DB DB DB DB
;wpisanie do rejestrów adresów pierwszej danej ;i pierwszego wyniku przekodowania
;przesuń akumulator w lewo - najstarszy bit w C ;wystaw bit na linię danych rejestru ;generacja impulsu ;zegarowego ;pozostanie w pętli do czasu wysłania wszystkich bitów
;tutaj można już włączyć zasilanie danej grupy diod, np. CLR P1.7
zgaúniÍcie wybranej diody - zamiast prostego wywo³ania pojedynczego rozkazu MOV konieczna staje siÍ sekwencja przes³aÒ (zak³ada-
86
my, øe po w³¹czeniu zasilania linie portu P1 pozostaj¹ w†stanie wysokim) pokazana na list. 5. Pawe³ Hadam
Elektronika Praktyczna 7/2003
PROJEKTY CZYTELNIKÓW Dział „Projekty Czytelników” zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich laboratoryjnie, chociaż sprawdzamy poprawność konstrukcji. Prosimy o nadsyłanie własnych projektów z modelami (do zwrotu). Do artykułu należy dołączyć podpisane oświadczenie, że artykuł jest własnym opracowaniem autora i nie był dotychczas nigdzie publikowany. Honorarium za publikację w tym dziale wynosi 250,− zł (brutto) za 1 stronę w EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie prawo do dokonywania skrótów.
Programowany sterownik zegarowy Urz¹dzenie przedstawione w†artykule pozwala programowaÊ w†trybie rocznym pracÍ czterech urz¹dzeÒ. DziÍki wbudowanej nieulotnej pamiÍci nastaw, konsekwencje awarii zasilania zosta³y ograniczone do minimum. Rekomendacje: urz¹dzenie szczegÛlnie przydatne dla úpiochÛw lubi¹cych celebrowaÊ wczesnoranne wstawanie...
Projekt
111 lejnym jego atutem. Osobiúcie wiele razy spotka³em siÍ z†urz¹dzeniami, ktÛrych nie sposÛb by³o obs³uøyÊ bez tytu³u doktora nauk technicznych. Ponadto urz¹dzenie jest odporne na wszelkie zaniki napiÍcia, poniewaø praca zegara jest podtrzymywana za pomoc¹ akumulatora. Uk³ad dzia³a niezawodnie od ponad roku. Ani razu nie spÛüni³ siÍ z†zaparzeniem herbatki (tylko by sprÛbowa³...).
Z†dnia na dzieÒ stajÍ siÍ coraz bardziej leniwy. Takie czasy. OtÛø kiedy uczÍszcza³em jeszcze do szko³y úredniej, mieszka³em w†internacie. Co rano w³¹cza³ siÍ szczerze znienawidzony przeze mnie budzik, ktÛry bezlitoúnie dzwoni¹c, skaka³ po blacie mojego biurka. KoÒczy³o siÍ zawsze tak samo. Budzik obrywa³ w†ìczapÍî, a†ja powoli zwleka³em siÍ z†³Ûøka, ubiera³em i†po toalecie w†lodowatej wodzie, z†paskudnym humorem, kierowa³em siÍ w†stronÍ internackiej sto³Ûwki. Tak by³o do czasu, kiedy to postanowi³em podnieúÊ sobie komfort mÍcz¹cej egzystencji. Lekarstwem na codzienne niewygody okaza³ siÍ projekt prezentowany w†artykule. Od momentu jego opracowania wszystko zmieni³o siÍ nie do poznania. Codziennie rano najpierw w³¹cza siÍ zaparzacz do herbaty, po kilku minutach w³¹cza siÍ radio, a†po chwili w†pokoju robi siÍ jasno. Po wypiciu szklanki gor¹cej herbaty, od razu nabiera³o siÍ si³ i†ochoty do øycia... Zapewne kaødy Czytelnik znajdzie jeszcze wiele innych zastosowaÒ dla prezentowane-
Elektronika Praktyczna 7/2003
go urz¹dzenia. W†kaødym b¹dü razie zapotrzebowanie na domow¹ automatykÍ istnieje i†nic nie wskazuje na zmianÍ tej sytuacji. Na naszym rynku dostÍpnych jest wiele zegarÛw steruj¹cych, jednak w†wiÍkszoúci przypadkÛw s¹ to urz¹dzenia przystosowane do pracy z†jednym odbiornikiem. Opracowany przeze mnie sterownik nie ma tej wady, umoøliwia bowiem sterowanie aø czterema niezaleønymi urz¹dzeniami (kaøde o†mocy do 600 W), bazuj¹c przy tym na jednym elektronicznym kalendarzu. Ponadto urz¹dzenie zapewnia niezwykle ³atw¹ i†przejrzyst¹ obs³ugÍ, co jest ko-
Opis uk³adu ìSercemî urz¹dzenia jest mikrokontroler 89C4051 firmy Atmel (rys. 1). Ma on wbudowane 4†kB nieulotnej, reprogramowalnej pamiÍci Flash. W†omawianym projekcie jest ona wykorzystana prawie w†ca³oúci - program zajmuje 4095 bajtÛw tej pamiÍci. Kolejnymi waønymi uk³adami s¹ tutaj zegar PCF8583 oraz pamiÍÊ EEPROM 24C04, komunikuj¹ce siÍ z†procesorem za poúrednictwem magistrali I2C. Do komunikacji uøytkownika z†urz¹dzeniem s³uøy wyúwietlacz numeryczny (znakowy) LCD 16*2 oraz klawiatura
Prezentowany w artykule sterownik wyposażono w programowalny zegar czasu rzeczywistego oraz kalendarz, co daje możliwość zaprogramowania pracy urządzenia w trybie rocznym. Ponadto urządzenie wyposażone jest w awaryjne źródło zasilania, co pozwala na zachowanie prawidłowego czasu i daty, nawet po odłączeniu sterownika od sieci. Informacje dotyczące załączeń/wyłączeń odbiorników przechowywane są w nieulotnej pamięci zewnętrznej typu EEPROM. W podstawo− wej wersji urządzenia pozwala ona na zachowanie 25 cykli załącz/wyłącz. Pamięć ustawień według producenta może być przeprogramowywana co najmniej 100000 razy, a więc urządzenie zapewnia trwałość i niezawodność oraz komfortową obsługę i eksploatację.
87
PROJEKTY CZYTELNIKÓW
Rys. 1. Schemat elektryczny sterownika
zbudowana z†trzech mikroprzyciskÛw. Program g³Ûwny (napisany w†Bascomie) nie jest skomplikowany. Ogranicza siÍ on do podstawowych operacji wykonywanych w†nieskoÒczonej pÍtli. Do operacji tych naleø¹: - odczyt danych z†zegara (uk³adu RTC), - prezentacja danych na wyúwietlaczu, - sprawdzenie stanu klawiatury. Jeøeli na ostatnim etapie nie wykryto wciúniÍcia øadnego z†przyciskÛw, to program wraca do pocz¹tku. W†przeciwnym wypadku bÍd¹ realizowane poszczegÛlne podprogramy, po czym mikrokontroler wrÛci do pÍtli g³Ûwnej. ZarÛwno zasilanie awaryjne, jak i†podúwietlanie wyúwietlacza moøna pod³¹czaÊ lub od³¹czaÊ za pomoc¹ jumperÛw (odpowiednio JP2 i†JP3). Uk³ad wyjúciowy wykonano standardowo - elementami wykonawczymi s¹ triaki BT136/600. Mikrokontroler steruje nimi poprzez optotriaki MOC3020 zapewniaj¹ce separacjÍ galwaniczn¹
88
sterownika od sieci zasilaj¹cej. Zasilacz rÛwnieø nie jest zbyt oryginalny. Zastosowano w†nim transformator TS2/16, mostek prostowniczy, stabilizator 7805 i†kilka kondensatorkÛw filtruj¹cych.
Montaø i†uruchomienie Montaø uk³adu jest prosty i†jedyny problem, zw³aszcza dla niecierpliwych wyznawcÛw lutownicy, moøe stanowiÊ sztywne umieszczenie nad sob¹ dwÛch p³ytek drukowanych (schematy montaøowe pokazano na rys. 2 i†3), z†ktÛrych sterownik siÍ sk³ada oraz umieszczenie ich w†obudowie. Poza tym montaø nie powinien sprawiÊ øadnych k³opotÛw. Jak zwykle zaczynamy od montowania podstawek, a†koÒczymy na elementach wyøszych. Pod wszystkie uk³ady scalone zalecam stosowanie podstawek, a†zw³aszcza pod procesor, gdyø jak znam øycie, uøytkownicy wielokrotnie bÍd¹ jeszcze modyfikowali jego program. Wyúwietlacz najlepiej zamontowaÊ w†taki sposÛb, by moøna by³o pÛüniej go wymieniÊ. Najproúciej uczyniÊ to lutuj¹c do wyúwietlacza lis-
twÍ goldpinÛw, a†na p³ytce drukowanej sterownika odpowiednie gniazdo. Dwie p³ytki zastosowano w†celu zminimalizowania wymiarÛw urz¹dzenia. Z†tego teø powodu podj¹³em decyzjÍ o†zastosowaniu laminatu dwustronnego. Na jednej z†p³ytek znajduje siÍ zasilacz i†uk³ad wykonawczy, na drugiej umieúci³em ca³¹ ìinteligencjÍî urz¹dzenia, czyli mikrokontroler wraz z†jego peryferiami. PomiÍdzy p³ytkami naleøy w†koÒcowej fazie montaøu wykonaÊ kilka po³¹czeÒ krÛtkimi odcinkami dowolnego przewodu. NastÍpnie
ìposk³adaneî (z wlutowanymi elementami) p³ytki naleøy po³¹czyÊ trzema d³uøszymi úrubami, przy czym p³ytka zasilacza znajduje siÍ niøej, a†nad ni¹ p³ytka procesora, do ktÛrej to z†kolei do³¹czamy wyúwietlacz. Naleøy zauwaøyÊ, øe na p³ytce uk³adu wykonawczego nie przewidziano miejsca na bezpieczniki dla sterowanych urz¹dzeÒ. Nie jest to jednak niedopatrzenie konstruktora (gdzieøby tam znowu...), ale dzia³anie celowe. Dla wygody uøytkowania urz¹dzenia bezpieczniki te naleøy umieúciÊ w†gniazdach, ktÛre powinny
znaleüÊ siÍ na úciance obudowy. Na triaki zalecam za³oøenie radiatora. Jeøeli chcemy uøyÊ wyúwietlacza z†podúwietlaniem, konieczne jest zastosowanie radiatora rÛwnieø przy stabilizatorze. Tak naprawdÍ wystarczy kawa³ek aluminiowej b¹dü miedzianej blaszki.
wszystkich 25 ustawieÒ, zajmuje procesorowi trochÍ czasu, dlatego teø za³¹czanie/wy³¹czanie odbywaÊ siÍ moøe z†lekkim opÛünieniem (kilka sekund). Niemniej jednak, moøe bardziej zaawansowani ode mnie programiúci poradz¹ sobie z†tym w†inny, szybszy i†bardziej wydajny sposÛb?
Procedura obs³ugi cykli za³¹cz/wy³¹cz
Programowanie sterownika
Jak juø wspomniano, dane dotycz¹ce cykli za³¹cz/wy³¹cz przechowywane s¹ w†nieulotnej pamiÍci EEPROM. Wykorzystano tutaj 250 bajtÛw tej pamiÍci. Dziel¹c tÍ liczbÍ przez dziesiÍÊ, otrzymamy wynik 25 moøliwych cykli za³¹cz/wy³¹cz. Dlaczego tak? OtÛø do prawid³owego obs³ugiwania cykli (zdarzeÒ) potrzebne s¹ nastÍpuj¹ce dane: 1. Godzina w³¹czenia 2. Minuta w³¹czenia 3. Godzina wy³¹czenia 4. Minuta wy³¹czenia 5. DzieÒ zdarzenia 6. Miesi¹c zdarzenia 7. Numer sterowanego urz¹dzenia £atwo wiÍc zauwaøyÊ, øe dane jednego cyklu zajmuj¹ 7†bajtÛw. Dziel¹c pamiÍÊ na 25 zdarzeÒ, otrzymamy 10 bajtÛw, gdzie pozosta³e trzy pozostaj¹ wolne. Moøe je wykorzystaÊ dociekliwy konstruktor, rozbudowuj¹c urz¹dzenie o†np. obs³ugÍ dni tygodnia itp. Za obs³ugÍ zdarzeÒ odpowiedzialna jest pÍtla g³Ûwna programu, a†zw³aszcza fragment przedstawiony na list. 1. Poniewaø procedura ta wykonywana jest w†pÍtli, wszystkie dane sprawdzane s¹ na bieø¹co. Jeøeli wszystkie warunki naszego ustawienia odpowiadaj¹ aktualnej godzinie i†dacie, dochodzi do wykonania odpowiedniego zdarzenia. Niestety sprawdzenie tych wszystkich warunkÛw, dla
Teraz nadszed³, zapewne wyczekiwany przez wielu konstruktorÛw, moment uruchomienia naszego cacka. Po pod³¹czeniu poprawnie zmontowanego uk³adu na wyúwietlaczu pojawi siÍ powitalny komunikat w†postaci mojego adresu email. NastÍpnie uk³ad przejdzie do wykonywania g³Ûwnego programu. Na wyúwietlaczu pojawi siÍ informacja o†czasie oraz dacie i†o†ile nie za³oøyliúmy jeszcze odpowiedniego jumpera akumulatorka, bÍdzie to godzina 00:00:00 oraz data 01.01. Po tej niezwykle upojnej chwili wpatrywania siÍ w†wyúwietlacz dobieramy siÍ do klawiatury! Wszelkich manipulacji dokonujemy za pomoc¹ trzech przyciskÛw: TIME, DATE, SET. Po naciúniÍciu przycisku TIME (<-) sterownik zapyta nas, czy chcemy zmodyfikowaÊ godzinÍ. Analogicznie po naciúniÍciu przycisku DATE - zapyta, czy chcemy ustawiÊ datÍ. Aby dokonaÊ zmiany czasu albo daty, naleøy na zadane pytanie odpowiedzieÊ klawiszem SET (->). Moøna rÛwnieø odpowiedzieÊ negatywnie i†wrÛciÊ do pÍtli g³Ûwnej programu (opcja ESC) klawiszem: <-. Przy ustawianiu zegara licznik sekund zostanie wyzerowany. Teraz moøemy przejúÊ do ustawiania godzin i†minut. S³uø¹ do tego w†tym momencie odpowiednio przyciski TIME i†DATE. Po ustawieniu prawid³owej
Elektronika Praktyczna 7/2003
informacji dokonujemy zapisu za pomoc¹ przycisku SET. Analogicznie postÍpujemy podczas wprowadzania daty. Przed dokonywaniem jakichkolwiek ustawieÒ zalecam skasowanie pamiÍci. Dokonujemy tego poprzez rÛwnoczesne wciúniÍcie klawiszy TIME i†DATE w†trybie g³Ûwnym programu (podczas prezentacji godziny i†daty). NastÍpnie naciskamy SET (->). Po skasowaniu zawartoúci pamiÍci urz¹dzenie przejdzie do trybu g³Ûwnego. Aby przejúÊ do trybu ustawiania zdarzeÒ, naleøy pozytywnie odpowiedzieÊ na pytanie postawione przez sterownik po naciúniÍciu klawisza SET (->). Kiedy na wyúwietlaczu pojawi siÍ napis ìNastÍpne...î, to oznacza, øe w†pamiÍci nie znajduj¹ siÍ dalsze/øadne ustawienia. Naleøy wÛwczas nacisn¹Ê klawisz SET (->), po czym urz¹dzenie przejdzie do trybu pobierania danych okreúlonych przez nas zdarzeÒ. Naleøy teraz wpisaÊ dane, o†ktÛre poprosi sterownik. Po zakoÒczeniu tej operacji pojawi siÍ napis ì*** OK! ***î. Teraz moøemy przejúÊ do trybu g³Ûwnego. Od teraz nasze urz¹dzenie (np. AGD) bÍdzie obs³ugiwane przez nasz sterownik. Moøemy rÛwnieø dopisywaÊ kolejne cykle za³¹cz/wy³¹cz (po naciúniÍciu klawisza SET (->)). Tak wygl¹da tryb programowania urz¹dzenia. Proste? Jeøeli zdecydujemy siÍ ponownie przejúÊ do trybu ustawieÒ, nie przywita nas juø napis ìNastÍpne...î. Zamiast niego pojawi siÍ tam godzina za³¹czenia pierwszego wprowadzonego przez nas cyklu za³¹cz/wy³¹cz, a†przed ni¹ stosowny numerek kolejnoúci wprowadzenia. Teraz moøemy dokonaÊ korekty wpro-
wadzonych przez nas uprzednio danych (klawisz SET (->)). Wybieraj¹c opcjÍ NEXT (klawisz DATE), moøemy natomiast przejúÊ do trybu wprowadzania kolejnych zapisÛw. Teraz jeszcze jedna bardzo waøna sprawa odnoúnie wpisywania cykli za³¹cz/wy³¹cz. Mianowicie bardzo czÍsto za pomoc¹ nieskomplikowanego triku programistycznego moø-
List. 1. Obsługa cykli załącz wyłącz Licznik = Licznik + 10 X = Licznik + 1 : Call Read_eeprom(x, Value) If Minuty = Value Then X = Licznik + 2 : Call Read_eeprom(x, Value) If Godziny = Value Then X = Licznik + 3 : Call Read_eeprom(x, Value) If Dni = Value Or Value = 32 Then X = Licznik + 4 : Call Read_eeprom(x, Value) If Miesiace = Value Or Value = 13 Then X = Licznik + 9 : Call Read_eeprom(x, Value) Call Wlacz_urzadzenie End If End If End If End If X = Licznik + 5 : Call Read_eeprom(x, Value) If Minuty = Value Then X = Licznik + 6 : Call Read_eeprom(x, Value) If Godziny = Value Then X = Licznik + 9 : Call Read_eeprom(x, Value) Call Wylacz_urzadzenie End If End If If Licznik = 250 Then Licznik = 0
89
PROJEKTY CZYTELNIKÓW na w†znaczny sposÛb rozszerzyÊ funkcjonalnoúÊ danego urz¹dzenia mikroprocesorowego. Tak teø sta³o siÍ i†tym razem. Tryb roczny pozwala na bardzo precyzyjne sterowanie urz¹dzeniami. Jednak przyznacie, øe w†przypadku, gdy chcemy, aby dane zdarzenie zachodzi³o codziennie o†takiej samej godzinie, bezcelowym i†zapewne bardzo mÍcz¹cym by³oby wprowadzanie wszystkich dni roku. Zreszt¹ dni mamy 365, a†ustawieÒ tylko 25. Ponadto moøe rÛwnieø zaistnieÊ koniecznoúÊ w³¹czania danego urz¹dzenia takiego samego dnia kaødego miesi¹ca albo odwrotnie, kiedy chcemy, aby urz¹dzenie w³¹cza³o siÍ codziennie podczas wybranego miesi¹ca. Nasz sterownik umoøliwia takie triki! ByÊ mo-
90
øe podczas wprowadzania cykli za³¹cz/wy³¹cz natkn¹³eú siÍ, Czytelniku, na dwa plusy ì++î, ktÛre pojawiaj¹ siÍ po przekroczeniu dnia 31 oraz po przekroczeniu 12 miesi¹ca. Te plusy oznaczaj¹, øe ten argument bÍdzie ignorowany. £atwo wiÍc zauwaøyÊ, øe w†przypadku ignorowania dni oraz ignorowania miesiÍcy zdarzenie odbywaÊ siÍ bÍdzie codziennie, w†przypadku ignorowania dni - cykle wykonywane bÍd¹ codziennie, oraz w†przypadku ignorowania miesiÍcy - co miesi¹c danego dnia.
gdzie zamieszczane bÍd¹ kolejne wersje oprogramowania (wraz z†danymi o†autorach oczywiúcie). Jasnym jest chyba fakt, øe ca³a ìinteligencjaî zaleøy od programu procesora. SprzÍt nie gra tu wi¹ø¹cej roli, zw³aszcza jeøeli chodzi o†przeznaczenie uk³adu. BÍdÍ wiÍc czeka³ na wszelkie propozycje i†rozwi¹zania programowe nowych zastosowaÒ urz¹dzenia. Niestety z†bÛlem serca muszÍ stwierdziÊ, øe te 4†kB pamiÍci to trochÍ ma³o (dla mnie i†Bascoma). Moøe uda Wam siÍ znacznie ograniczyÊ d³ugoúÊ kodu poprzez wykorzystanie innego kompilatora (np. jÍzyka C, ewentualnie ASM)? PrzyznajÍ, øe program, ktÛry udostÍpni³em, to nie jest artystyczne dzie³o, ale wystar-
cza do prawid³owego funkcjonowania urz¹dzenia. Jednak ca³¹ zabawÍ zwi¹zan¹ z†sortowaniem pozostawiam Wam, drodzy Czytelnicy. Mi³ej zabawy! Mariusz Ciszewski [email protected]
Od redakcji: przygotowane przez autora projektu p³ytki drukowane wymagaj¹ modyfikacji polegaj¹cej na pogrubieniu úcieøek doprowadzaj¹cych pr¹d do obci¹øenia, warto takøe pogrubiÊ do co najmniej 20...30 milsÛw pozosta³e úcieøki - u³atwi to wykonanie p³ytek w†warunkach domowych. Tak zmodyfikowane wzory p³ytek publikujemy na wk³adce i†na CD-EP7/ 2003B.
W „Bibliotece EP” prezentujemy książki dotyczące zagadnień związanych z różnymi dziedzinami techniki, jednak zawsze przydatne w pracy elektronika lub pomocne w uprawianiu elektronicznego hobby. Nasza opinia jest oczywiście subiektywna, ale wynika z wieloletniego doświadczenia zawodowego i chyba jest zgodna z oczekiwaniami tych, którzy chcą z książek korzystać, a nie przyozdabiać nimi półki. Aby nie marnować miejsca w EP, nie będziemy publikować recenzji książek ocenianych na jedną lub dwie „lutownice”. Przyjęliśmy szeroką skalę ocen, aby ułatwić Czytelnikom orientację w potencjalnej przydatności książki. Uwaga! Większość prezentowanych książek można zamówić w Dziale Handlowym AVT (patrz str. 121). Chcemy w ten sposób udostępnić je Czytelnikom EP.
Friedrich L. Bauer, “Sekrety kryptografii”, Helion 2003
Jest to ksi¹øka niezwyk³a: erudycja autora doskonale wspÛ³gra z†przejrzystym wyk³adem, dziÍki czemu czytelnicy bez trudu mog¹ zag³ÍbiÊ siÍ w†tajniki kryptografii, ktÛra jest dziedzin¹ na wskroú przesi¹kniÍt¹ - zazwyczaj nielubian¹ - matematyk¹. Ksi¹økÍ podzielono na dwie czÍúci, z†ktÛrych pierwsz¹ poúwiÍcono zagadnieniom bezpoúrednio zwi¹zanym z†metodami i†algorytmami kryptograficznymi, natomiast drug¹ kryptoanalizie. Jak siÍ okazuje, mog¹ to byÊ zagadnienia fascynuj¹ce nie tylko dla matematykÛw (po³owÍ prezentowanej ksi¹øki - liczy ona ponad 500 stron - przeczyta³em w†ci¹gu trzech wieczorÛw), a†jest to moim zdaniem zas³uga dojrza³ego podejúcia autora do prezentowanych zagadnieÒ. Dojrza³oúÊ ta polega m.in. na przedstawieniu historii kryptografii na starannie dobranych przyk³adach, ktÛre krok po kroku pokazuj¹ drogÍ jej rozwoju i†ewolucjÍ pomys³Ûw, na ktÛrych opierano metody ukrywania przesy³anych wiadomoúci. Rys historyczny zosta³ pokazany z†niezwyk-
³ym - jak na publikacje tego typu - nerwem, co czyni z†ksi¹øki wartoúciow¹ pozycjÍ beletrystyczn¹. Zgodnie z†tytu³em, wiÍksz¹ czÍúÊ ksi¹øki autor poúwiÍci³ objaúnianiu i†przybliøaniu tajnikÛw szyfrowania/deszyfrowania oraz kryptoanalizy, w†tym nowoczesnych algorytmÛw RSA, DES i†IDEA. Niezwykle interesuj¹ca jest takøe prezentacja metod kryptoanalizy (oczywiúcie takøe wzbogaconych o†podbudowÍ historyczn¹), zw³aszcza øe autor zwrÛci³ w†tej czÍúci ksi¹øki uwagÍ na zjawiska zazwyczaj ignorowane, jak np. wp³yw ìczynnika ludzkiegoî na jakoúÊ zabezpieczenia informacji czy wp³yw specyficznych cech jÍzyka (a†raczej jego statystyki), w†ktÛrym zapisana jest oryginalna wiadomoúÊ na jakoúÊ szyfrowania za pomoc¹ niektÛrych algorytmÛw. Prezentowana ksi¹øka, w†odrÛønieniu od wiÍkszoúci poúwiÍconych tej tematyce dostÍpnych na rynku, nie ma ambicji byÊ ìsuchymî podrÍcznikiem akademickim, st¹d ogromna liczba ilustracji (takøe kolorowych zdjÍÊ), niezwykle trafnie - przemawiaj¹ce takøe do mniej wprawnych czytelnikÛw (sprawdzi³em!) - dobrane przyk³ady, a†takøe ograniczanie ìczystejî matematyki do sensownego minimum. Tak podana wiedza úwietnie smakuje!
Autor nie pomin¹³ w†swoim opracowaniu dorobku polskich matematykÛw, ktÛrzy przys³uøyli siÍ z³amaniu mocnego kryptograficznie algorytmu s³ynnej niemieckiej Enigmy, co jest dla nas mi³ym akcentem (w s³ynnym brytyjskim filmie o†Enigmie to w³aúnie Brytyjczycy ìz³amaliî EnigmÍ). Niebagatelnym atutem ksi¹øki jest doskona³a szata graficzna, wydanie jej w†twardej oprawie oraz bardzo dobre t³umaczenie. Zas³uøone 5†lutownic! Andrzej Gawryluk
Jacek Majewski, Krzysztof Kardach, ìProgramowanie mikrokontrolerÛw z†serii 8x51 w†jÍzyku Cî, Oficyna Wydawnicza Politechniki Wroc³awskiej 2002, zawiera CD-ROM
Programowanie mikrokontrolerÛw, pomimo stosunkowo ³atwej dostÍpnoúci
kompilatorÛw rÛønych jÍzykÛw wysokiego poziomu, jest nadal ìsztuk¹î. Dotyczy to zw³aszcza programÛw pisanych w†jÍzyku C, ktÛry sprawia sporo problemÛw pocz¹tkuj¹cym. Inwestowanie w†naukÍ tego jÍzyka jest coraz bardziej uzasadnione, poniewaø rÛønorodnoúÊ mikrokontrolerÛw i†mikroprocesorÛw dostÍpnych na rynku powoduje, øe nie jest moøliwe poznanie asemblerÛw kaødej z†dostÍpnych rodzin, a†programy napisane w†C†(zw³aszcza ANSI C) s¹ stosunkowo ³atwo przenoúne.
Prezentowana ksi¹øka powsta³a z†myúl¹ o†studentach Wydzia³u Elektroniki Politechniki Wroc³awskiej jako pomoc do przedmiotu ìPodstawy mikroprocesorÛwî. KrÛtki wstÍp poúwiÍcony przybliøeniu architektury mikrokontrolerÛw '51 (ze szczegÛlnym uwzglÍdnieniem T89C51RD2 firmy Atmel) oraz jego programowaniu (³¹cznie z†obs³ug¹ kompilatora), a†takøe prezentacja prostego zestawu ewaluacyjnego, przygotowuj¹ mniej wprawnych czytelnikÛw do zaznajomienia
Elektronika Praktyczna 7/2003
bibliot.p65
119
119 04-02-12, 12:48
B I B L I O T E K A
E P
B I B L I O T E K A
E P Legenda:
ksi¹øka wybitna, polecamy!
ksi¹øka o†duøych walorach praktycznych, polecamy!
moøe siÍ przydaÊ
daleka od doskona³oúci
siÍ z†dalsz¹ czÍúci¹ ksi¹øki. PoúwiÍcono j¹ w†ca³oúci (cztery ostatnie rozdzia³y) przedstawieniu przyk³adÛw programowania mikrokontrolera, a†zw³aszcza programowej obs³ugi typowych peryferii wbudowanych w†mikrokontrolery '51 oraz wybranych peryferii zewnÍtrznych. Ksi¹øka jest niezbyt gruba (nieco poniøej 150 stron) i†- niestety - klejona, co powoduje, øe nie nadaje siÍ do czytania ìw†wannieî. Do ksi¹øki jest do³¹czany CD-ROM zawieraj¹cy przyk³adowe programy, oprogramowanie narzÍdziowe (w tym kompilator Keil 6.2), dokumentacje najpopularniejszych mikrokontrolerÛw i†inne materia³y przydatne podczas realizacji ÊwiczeÒ opisanych w†ksi¹øce. Miko³aj Andrus
nie warto kupowaÊ
Z†punktu widzenia elektronikÛw w†ksi¹øce brakuje informacji o†gotowych modu³ach Bluetooth (tzw. wersji OEM) - bo w†wiÍkszoúci wspÛ³czesnych urz¹dzeÒ wyposaøonych w†ten interfejs s¹ stosowane gotowe modu³y obs³uguj¹ce sprzÍtowo najniøsze warstwy protoko³u.
Brent A. Miller, Chatschik Bisdikian, ìUwolnij siÍ od kabli - Bluetoothî, Helion 2003
Bluetooth wchodzi do naszej codziennoúci ma³ymi kroczkami, ale ksi¹øki takie jak prezentowana mog¹ ten ìpochÛdî znacznie przyspieszyÊ. Jest to bardzo przystÍpny opis ìtechnologicznychî tajnikÛw systemu Bluetooth, ktÛry ze wzglÍdu na swoj¹ sieciow¹ naturÍ z†moøliwoúciami Plug&Play ma niezwykle rozbudowany protokÛ³. Autorzy zawarli w†ksi¹øce m.in. szczegÛ³owy opis wszystkich warstw protoko³u, profile zastosowaÒ Bluetooth, pokazali takøe sposoby jego wspÛ³pracy z†interfejsami IrDA, HomeRF oraz klasycznym Ethernetem.
Bez w¹tpienia ksi¹øka przyda siÍ tym spoúrÛd czytelnikÛw, ktÛrym zaleøy na dog³Íbnym poznaniu zasady dzia³ania Bluetooth. Miko³aj Andrus
Elektronika Praktyczna 7/2003
120 bibliot.p65
120
04-02-12, 12:48
A U T O M A T Y K A
Enkodery i czujniki do detekcji drogi firmy Baumer Systemy pozycjonuj¹ce s¹ coraz czêœciej stosowane we wspó³czesnych urz¹dzeniach elektronicznych i systemach automatyki. Jednym z najwiêkszych producentów enkoderów - najwa¿niejszych elementów w systemach pozycjonowania jest firma Baumer, której fragment oferty przedstawiamy w artykule. Produkowane przez firmê Baumer czujniki do pomiaru przesuniêæ k¹towych, mo¿na podzieliæ ze wzglêdu na zasadê dzia³ania na optyczne i magnetyczne, a ze wzglêdu na sposób wyprowadzania informacji na przyrostowe (inkrementalne) i absolutne. Najczêœciej u¿ywane s¹ optyczne czujniki przyrostowe. W uproszczeniu sk³adaj¹ siê one z nadajnika i odbiornika œwiat³a oraz wiruj¹cej miêdzy nimi tarczy z napylonymi zas³onkami. Baumer produkuje takie enkodery o œrednicach korpusu od 18 do 92 mm, o œrednicach wa³ka od 4 do 12 mm lub z otworem pod wa³ek od 4 do 27 mm. Liczba impulsów na obrót mo¿e wynosiæ, w zale¿noœci od typu, od 10 do 72000. Najmniejsze enkodery o œrednicy 18 mm (z wa³kiem lub bez) maj¹ zastosowanie w ró¿nego rodzaju sprzêcie elektronicznym jak plotery, rejestratory itp. Ze wzglêdu na bardzo ma³¹ obudowê, zastosowano w nich nieco inny sposób przekazywania informacji o obrocie. W klasycznym enkoderze nadajnik œwiat³a znajduje siê po drugiej stronie tarczy ni¿ odbiornik.
W enkoderach serii BSM i BHM nadajnik i odbiornik znajduje siê po jednej stronie tarczy. Zastosowano tarczê o zmienionej zasadzie dzia³ania, która nie przepuszcza promieniowania, a odbija padaj¹cego promienie na zasadzie podobnej jak w p³ycie CD-ROM. Czêœæ elektroniczn¹, wraz z elementami optycznymi zintegrowano w pojedynczej strukturze ASIC. Oprócz czujników przyrostowych Baumer produkuje ca³¹ gamê enkoderów absolutnych, tak¿e wieloobrotowych, których asortyment poszerzono ostatnio o nowe konstrukcje, dzia³aj¹ce zarówno na zasadzie optycznej jak i magnetycznej. Na szczególn¹ uwagê zas³uguj¹ te ostatnie, poniewa¿ posiadaj¹ kilka unikalnych cech. Przyk³adem enkodera absolutnego jest enkoder serii MagRes. Zasada dzia³ania jest prosta: miniaturowy magnes zamontowany w wirniku oddzia³uje na magnetorezystory umieszczone na p³ytce z elektronik¹. Sygna³ z magnetorezystorów jest obrabiany w procesorze DSP, a nastêpnie przetwarzany na postaæ zrozumia³¹ dla urz¹dzeñ wspó³pracuj¹cych (rys. 1). Wyeliminowane szklanej tarczy wp³ynê³o korzystnie na wytrzyma³oœæ mechaniczn¹. Nieco zmodyfikowana wersja MagRes Kit Set nie posiada wirnika ³o¿yskowanego w korpusie enkodera (rys. 2). Wirnik wraz z magnesem jest montowany na zewn¹trz i oddzia³uje poprzez szczelinê powietrzn¹ i aluminiow¹ obudowê na magnetorezystory. Uzyskano w ten sposób nastêpuj¹ce cenne w³asnoœci: wysoki stopieñ szczelnoœci IP68 od strony wirnika, redukcjê wp³ywu temperatury na uk³ady elektroniczne enkodera (wa³ek, na którym jest zamontowany wirnik mo¿e mieæ wysok¹ temperaturê), brak koniecznoœci stosowania sprzêgie³, wysoka odpor-
Rys. 1
Elektronika Praktyczna 7/2003
123
A U T O M A T Y K A Tab. 1. Podstawowe dane enkoderów produkowanych przez firmę Baumer
Fot. 2 noœæ na wibracje, niewielkie wymiary - œrednica 42 mm, wysokoœæ 15,5 mm. Firma Baumer ci¹gle poszerza zakres produkcji enkoderów absolutnych, równie¿ wieloobrotowych. Do nowych rozwi¹zañ nale¿¹ wymienione wczeœniej MagRes oraz oparte na zasadzie optycznej enkodery serii Procoder i Dignalizer. Podstawowe dane dotycz¹ce rozdzielczoœci i dok³adnoœci odczytu k¹ta przedstawiono w tab. 1. Enkodery wielo- i jednoobrotowe komunikuj¹ siê ze œwiatem zewnêtrznym za pomoc¹ protoko³ów takich jak SSI, CANopen, Profibus lub DeviceNet. W aplikacjach s³u¿¹cych do pomiaru prêdkoœci i kierunku obrotów przek³adni zêbatych mo¿na zastosowaæ ca³¹ gamê produktów Baumer Electric. S¹ to czujniki zbudowane na magnetorezystorach lub na czujnikach Halla. W pierwszej grupie czujników pole magnetyczne magnesu trwa³ego jest zaburzane przez przesuwaj¹ce siê zêby przek³adni, co wprowadz¹ zmianê wartoœci rezystancji elementów mostka pomiarowego. Niestety, w wielu przypadkach, obecnoœæ magnesu nie jest wskazana ze wzglêdu na szybkie przyklejanie siê do niego opi³ków metalu. W takim przypadku mo¿na zastosowaæ czujniki wykorzystuj¹ce zjawisko Halla (czujniki IHRM, MHRM). Dodatkow¹ ich zalet¹ jest to, ¿e czujniki wraz z czêœci¹ czo³ow¹ s¹ wykonane ze stali nierdzewnej i mo¿na bez obaw stosowaæ przy doœæ wysokich temperaturach i ciœnieniach, np. wewn¹trz korpusów silników spalinowych itp. Innym rozwi¹zaniem bezstykowego pomiaru przesuniêæ jest pomiar za pomoc¹ czujnika wspó³pracuj¹cego z taœm¹ b¹dŸ pierœcieniem magnetycznym. Aktualnie dostêpne s¹ czujniki MDFK wspó³pracuj¹ce z pierœcieniem oraz MLFK wspó³pracuj¹ce z elastyczn¹ taœm¹ magnetyczn¹ o dowolnej d³ugoœci. Takie rozwi¹zanie pozwala relatywnie tanio i ³atwo zbudowaæ system pomiaru drogi lub prêdkoœci np. dla bram przesuwnych, obrabiarek, suwnic itp. Czujniki te do-
124
Typ enkodera
Rozdzielczoœæ naobrót
Rozdzielczoœæ Dok³adnoœæ pe³na odczytu
Podstawowe cechy
MagRes
12 bit/obr.
30 bit (multiturn CANopen) 25bit (multiturn SSI)
± 0,5o
Enkoder magnetyczny, niewielkie wymiary, du¿a wytrzyma³oæ mechaniczna
Procoder
13 bit/obr.
29 bit
± 0,05 o
Enkoder optyczny, modu³owa budowa (enkoder bazowy, bus cover)
Enkoder optyczny, ci¹g³a diagnostyka zaawansowana konfiguracja przez SSI, niewielkie wymiary
stêpne s¹ zarówno z wyjœciami typu push-pull, jaki i komplementarnymi RS422, co pozwala na stosowanie w silnie zak³óconych œrodowiskach. Pomimo niewielkich rozmiarów (45 x 15 x 8,5 mm), w³asnoœci prezentowanych czujników s¹ dobre: temperatura pracy mieœci siê w przedziale -25 do +85oC, obudowa ma stopieñ ochrony IP67. Maksymalna liczba impulsów na obrót (dla pierœcienia o 32 parach biegunów) wynosi 256 lub 512, a dla taœmy magnetycznej 8 impulsów przypada na 2 mm drogi. Maksymalna czêstotliwoœæ wyjœciowa wynosi 160 kHz, a w najnowszej wersji nawet 3,2 MHz. Szczelina powietrzna pomiêdzy rotorem a czujnikiem mo¿e wynosiæ maksymalnie 0,5 mm bez pogorszenia dok³adnoœci, a pomiêdzy taœm¹ a czujnikiem a¿ 1 mm. Wyeliminowanie czêœci ruchomych w czujniku podwy¿sza trwa³oœæ ca³ego wyrobu. Ostatnim charakterystycznym produktem s¹ magnetyczne czujniki k¹ta, które mog¹ byæ wykorzystane jako bezstykowe potencjometry. Zewnêtrznie nie ró¿ni¹ siê od czujnika indukcyjnego, jednak maj¹ tê cenn¹ w³aœciwoœæ, ¿e napiêcie na wyjœciu zmienia siê w zale¿noœci od k¹ta przebiegu linii pola magnetycznego powsta³ego z miniaturowego magnesu zamocowanego na rotorze. Istniej¹ dwie wersje: z sygna³em proporcjonalnym do k¹ta ±80o oraz z dwoma sygna³ami sinusoidalnymi przesuniêtymi w fazie. Czujniki te mog¹ byæ wykorzystywane do odczytu ma³ych k¹tów uk³adów mechanicznych, gdzie ze wzglêdu na dok³adnoœæ nie jest konieczne stosowanie drogich enkoderów absolutnych, np. czujniki z wyjœciem liniowym s¹ stosowane w modernizowanych czeskich tramwajach do detekcji po³o¿enia dŸwigni przyspieszenia. Tomasz Œliwakowski, Amtek Dystrybutorem firmy Baumer jest Amtek spol. s r.o., tel. (22) 874-02-34, [email protected], www.amtek.cz.
Elektronika Praktyczna 7/2003
P R O G R A M Y
Nowości Nowości w w pakiecie pakiecie LabView, LabView, część część 11 Najnowsz¹ wersjÍ LabView moøna bez trudu zakwalifikowaÊ do grona awangardowych narzÍdzi, ktÛre kreuje nowe trendy i†wyznacza szlaki, ktÛrymi z†pewnoúci¹ pod¹ø¹ takøe inni producenci. O†kilku najbardziej spektakularnych nowoúciach wprowadzonych do LabView 7†piszemy w†artykule.
7
LabView Czytelnicy znaj¹cy LabView wiedz¹, øe wykonanie za pomoc¹ tego programu zaawansowanej aplikacji s³uø¹cej do gromadzenia, obrÛbki i†prezentacji danych nie wymaga zbyt d³ugiego czasu, a†uøytkownik j¹ tworz¹cy nie musi byÊ wysokiej klasy programist¹, znaj¹cym tajniki API ìna wylotî. Po wprowadzeniu w†roku 2000 do sprzedaøy wersji LabView 6i, ktÛra charakteryzowa³a siÍ obs³ug¹ rÛønych systemÛw sieciowych (w tym oczywiúcie szeroko rozumianego Internetu), wydawa³o siÍ, øe w†nastÍpnych wersjach trudno bÍdzie coú radykalnie udoskonaliÊ, ale...
Do czego służy i co może LabView? LabView jest pakiet oprogramowania służący do projektowania graficznych aplikacji do akwizycji, obróbki i prezentacji danych. Jest to narzędzie zapewnia− jące elastyczność porówny− walną z narzędziami programistycznymi, a łatwość projektowania aplikacji porównywalną z budowaniem najbardziej zaawansowanych konstrukcji z klocków Lego.
LabView i†rekonfigurowalny sprzÍt Jedn¹ z†bardziej spektakularnych nowoúci wprowadzonych do LV 7†jest modu³ LabView FPGA, ktÛry odpowiada za wspÛ³pracÍ z†wyspecjalizowanymi kartami PXI-7831R zawieraj¹cymi rekonfigurowalne uk³ady FPGA (fot. 1). W†úrodowisku LabView zintegrowano kompilator jÍzyka opisu sprzÍtu (z nieoficjalnych informacji wynika, øe
126
Fot. 1. Konfigurowanie układu FPGA za pomocą LabView 7 nie wy− maga specjalistycznej wiedzy o układach programowalnych
Elektronika Praktyczna 7/2003
P R O G R A M Y
Elektronika Praktyczna 7/2003
127
P R O G R A M Y
Fot. 2. LabView 7 PDA pozwala budować oprogramowanie do akwizycji, obróbki i prezentacji danych na ekranach palmtopów
sowany uk³ad FPGA ma 11520 konfigurowalnych blokÛw logicznych (co odpowiada ok. 1†mln bramek przeliczeniowych). W†uk³adzie FPGA zintegrowano takøe 16 kB szybkiej pamiÍci SRAM, ktÛr¹ moøna powiÍkszyÊ (kosztem rekonfigurowalnych zasobÛw wewnÍtrznych) do 80 kB. Standardowo uk³ad FPGA jest taktowany sygna³em zegarowym o†czÍstotliwoúci 40 MHz (jest ürÛd³o o†dok³adnoúci ±100 ppm), ale dopuszczalne jest takøe stosowanie sygna³Ûw zegarowych o†czÍstotliwoúciach 80/120/160 lub 200 MHz. OprÛcz rekonfigurowalnej czÍúci cyfrowej, karta PXI-7831R zawiera takøe przetworniki A/C (8 kana³Ûw, rozdzielczoúÊ 16 bitÛw, czas konwersji 4,3 µs) i†C/A (8 wyjúÊ, rozdzielczoúÊ 16 bitÛw, czas konwersji 1†µs), co pozwala traktowaÊ j¹ jako uniwersalny interfejs I/O.
LabView i†PDA VHDL) oraz edytor schematÛw z†bibliotekami zawieraj¹cymi predefiniowane bloki funkcjonalne rÛønego typu. Uøytkownik pakietu nie musi znaÊ zasad projektowania i†konfiguracji uk³adÛw FPGA, wszystkie problemy ìniskiego poziomuî rozwi¹zuje za niego system projektowy. Projektowanie konfiguracji FPGA sprowadza siÍ do wy³¹cznie narysowania schematu (przyk³ad pokazano na fot. 1), podobnie jak ma to miejsce w†pozosta³ych modu³ach LabView. Wiele wskazuje na to, øe w†LabView 7†FPGA zintegrowano kompilator ISE firmy Xilinx (jednoczesna praca ISE i†LV7 FPGA na jednym komputerze nie jest moøliwa). Zastosowanie rekonfigurowalnego sprzÍtu pozwala wykorzystaÊ pojedyncz¹ kartÍ jako np. programowany generator sygna³Ûw wyzwalaj¹cych, konfigurowanych przez uøytkownika modu³Ûw decyzyjnych, a†takøe jako bardzo elastyczne liczniki, timery, interfejsy enkoderÛw, generatory PWM i†innych sygna³Ûw cyfrowych, sprzÍtowe interfejsy szeregowe itp. KartÍ wyposaøono w†96 programowanych linii I/O (zgodnych ze standardem TTL), a†zasto-
Drug¹ nowoúci¹, na ktÛr¹ chcieliúmy zwrÛciÊ uwagÍ, jest moøliwoúÊ wspÛ³pracy LabView 7†z†komputerami klasy palmtop (PDA - Personal Digital Assistant - fot. 2). W†tym celu opracowano zmodyfikowan¹ funkcjonalnie wersjÍ pakietu, ktÛra nosi oznaczenie LabView PDA. Jednym z†jej elementÛw charakterystycznych jest obs³uga interfejsÛw komunikacyjnych Bluetooth oraz IrDA oraz ³atwoúÊ budowania zdalnych, wirtualnych przyrz¹dÛw i†terminali do akwizycji i†prezentacji danych. Oczywiúcie LV 7†PDA pozwala takøe na tworzenie samodzielnych aplikacji dla PDA, jedynym warunkiem jest wyposaøenie ich w†system operacyjny PalmOS lub PocketOS.
Za miesi¹c... Przedstawione w†artykule dwie nowoúci zawarte w†najnowszej wersji LabView uznaliúmy za najbardziej spektakularne z†punktu widzenia elektronikÛw i†dlatego przedstawiliúmy je jako pierwsze. Pozosta³ymi nowoúciami zintegrowanymi w†LabView 7†zajmiemy siÍ za miesi¹c. Andrzej Gawryluk, AVT
LV 7 Eval na CD−EP Za miesiąc, na płycie CD−EP8/2003 opublikujemy najnowszą wersję ewaluacyjną pakietu LabView 7.