David Matoušek PRÁCE S MIKROKONTROLÉRY ATMEL AT89S8252 2 díl Praha 2002
Komerèí využití stavebích ávodù je povoleo je s písemým souhlasem autora a akladatelství Soubory a doprovodém CD ROM ejsou volì šiøitelé David Matoušek PRÁCE S MIKROKONTROLÉRY ATMEL AT89S8252 2 díl Receze: Jiøí Kopelet Bez pøedchozího písemého svoleí akladatelství esmí být kterákoli èást kopírováa ebo rozmožováa jakoukoli formou (tisk, fotokopie, mikrofilm ebo jiý postup), zadáa do iformaèího systému ebo pøeášea v jié formì èi jiými prostøedky Autor a akladatelství epøejímají záruku za správost tištìých materiálù Pøedkládaá zapojeí a iformace jsou zveøejìy bez ohledu a pøípadé patety tøetích osob Nároky a odškodìí a základì zmì, chyb ebo vyecháí jsou zásadì vylouèey Veškerá práva vyhrazea Ig David Matoušek, 2002 Nakladatelství BEN techická literatura, Vìšíova 5, Praha 10 David Matoušek: Práce s mikrokotroléry Atmel AT89S8252 2 díl BEN techická literatura, Praha 2002 1 vydáí ISBN 80-7300-066-0
OBSAH CO NAJDETE NA DOPROVODNÉM CD 7 1 ÚVOD 11 1 1 Základí pojmy termiologie 12 1 2 Stadardí registry a jejich výzam 15 2 ZÁKLADNÍ VLASTNOSTI AT89S8252 17 2 1 Popis vývodù 21 2 2 Programováí zabudovaé pamìti 25 2 2 1 Zamykací bity 26 2 2 2 Paralelí programovaí Flash a E 2 PROM 26 2 2 3Sériový dowload 26 2 3 Charakteristické a mezí údaje 30 2 4 Zaèeí a pouzdra 32 2 5 Problém s revizí S 32 3 PROGRAMÁTOR A VÝVOJOVÝ KIT PRO AT89S8252 33 3 1 SDK8252 Programátor a vývojový kit v jedom! 34 3 1 1 Schéma zapojeí 34 3 1 2 Výkres desky plošých spojù 36 3 1 3 Testovací a oživovací program SDK8252 EXE 38 3 1 4 Propojovací kabel 41 3 1 5 Propojovací kablíky 42 3 2 Oživeí desky SDK8252 42 3 3 Komplexí programátor AT8252 43 3 4 Nabídka pro zaèáteèíky 43 4 PROGRAMÁTORSKÝ MODEL AT89S8252 45 4 1 Rozdìleí pamì ového prostoru 46 4 2 Základí registry 51 4 3 Baky registrù R0 až R7 54 5 INSTRUKÈNÍ SOUBOR 55 5 1 Operady istrukcí 56 5 2 Typy skokù 57 5 3 Zavedeé symboly 58 A D MATOUŠEK: Práce s mikrokotroléry Atmel AT89S8252 2 díl 3
5 4 Pøesuy dat 59 5 5 Bitové operace 61 5 6 Skoky a vìtveí programu 61 5 7 Istrukce pro podporu podprogramù 62 5 8 Logické operace 63 5 9 Aritmetické operace 65 5 10 Prázdá istrukce èasováí 70 5 11 Istrukce versus porty 70 5 12 Vedlejší efekty istrukcí 70 6 ASSEMBLER ASM51 A VÝVOJOVÉ PROSTØEDÍ AT8252 73 6 1 Základí pojmy pøi práci s ASM51 74 6 1 1 Symboly 74 6 1 2 Návìští 75 6 1 3Bitové adresováí 75 6 1 4 ASCII literály 75 6 1 5 Kometáø 75 6 1 6 Lokaèí èítaè $ 75 6 1 7 Èísla a operátory 76 6 2 Direktivy (pseudoistrukce) ASM51 78 6 3 Programy ASM51, HEX2BIN, SIM51ENG 83 6 4 Ovládáí vývojového prostøedí AT8252 83 7 ZÁKLADY POUŽÍVÁNÍ PORTÙ P0 AŽ P3 87 7 1 Vitøí zapojeí portù 88 7 2 AT8LEDR Buzeí osmi LED 89 7 3 ATDIPSW Èteí stavu spíaèù 93 7 4 AT16VV 16 vstupù a výstupù øízeých sériovou sbìricí 96 8 OBVODY SE SBÌRNICÍ I 2 C 103 8 1 Základí iformace o sbìrici I 2 C 104 8 2 SAA1064 budiè LED displeje pro 2/4 segmetovky 110 8 2 1 Schéma zapojeí 111 8 2 2 Èteí stavového bitu PR 113 8 2 3Zápis øídicích a datových bitù 113 8 2 4 Diskuze výkoové ztráty 115 8 2 5 Pøípravek ATSAA1064 117 4 D MATOUŠEK: Práce s mikrokotroléry Atmel AT89S8252 2 díl A
8 3 TDA8444 8kaálový 6bitový D/A pøevodík 124 8 3 1 Schéma zapojeí 124 8 3 2 Zápis datových bitù 126 8 3 3 Pøípravek ATTDA8444 127 8 4 PCD3312 DTMF/modem/geerátor tóù 133 8 4 1 Schéma zapojeí 133 8 4 2 Zápis datových bitù 134 8 4 3 Pøípravek ATPCD3312 136 8 5 PCF8591 8bitový A/D a D/A pøevodík 141 8 5 1 Schéma zapojeí 141 8 5 2 Zápis do D/A pøevodíku 144 8 5 3 Èteí z A/D pøevodíku 145 8 5 4 Pøípravek ATPCF8591R 145 9 PØERUŠOVACÍ SYSTÉM A JEHO POUŽITÍ 155 9 1 Pøerušeí (iterrupt) 156 9 2 ATIBMKBD pøipojeí klávesice PC 162 10 ÈÍTAÈE/ÈASOVAÈE A JEJICH POUŽITÍ 179 10 1 Popis èítaèù/èasovaèù 0 a 1 180 10 2 Èítaè/èasovaè 2 183 10 2 1 Registry èítaèe/èasovaèe 2 183 10 2 2 Režimy èítaèe/èasovaèe 2 185 10 3 Použití èítaèù/èasovaèù 0 resp 1 190 10 3 1 Multiplexí displej øízeý èasovaèem 0 (pøípravek ATSDYNR) 191 10 3 2 Levý 2kaálový 8bitový D/A pøevodík realizovaý èasovaèem 0 (pøípravek AT2DAC8) 200 10 4 Použití èítaèe/èasovaèe 2 v rùzých režimech 206 10 4 1 Pøeladitelý zdroj kmitoètu v rozsahu 91 Hz až 6 MHz; Programovatelý hodiový výstup 206 10 4 2 8bitová PWM regulace otáèek stejosmìrého motoru (pøípravek ATMOTOR); 16bitový auto-reload 208 10 4 3 Levý 8bitový A/D pøevodík (pøípravek ATADC8R); Záchytý režim 212 10 4 4 Geerátor pøeosové rychlosti pro sériový kaál 216 10 5 Èítaè/èasovaè 0 a 1 eí zastaralý! 216 11 SÉRIOVÝ KANÁL A JEHO POUŽITÍ 221 11 1 Režimy sériového kaálu (portu) 222 A D MATOUŠEK: Práce s mikrokotroléry Atmel AT89S8252 2 díl 5
11 2 Èasovaè 2 jako geerátor pøeosové rychlosti pro sériový kaál 224 11 3 Pøípravek ATRS232R 225 11 4 Sériový port a PC 227 11 5 Ovláváí sériového portu v operaèím systému Widows 227 11 6 Pøíklady použití 229 11 6 1 Napájecí zdroj øízeý poèítaèem pøípravek ATZDROJ 229 11 6 2 Impulzí geerátor do 600 khz pøípravek ATIMPGEN 247 11 6 3 Èítaè do 16 MHz pøípravek ATCIT16M 255 12 ZBÝVAJÍCÍ RYSY AT89S8252 269 12 1 PCON registr øízeí spotøeby 270 12 1 1 Úsporý režim 270 12 1 2 POF pøízak pøipojeí apájeí 271 12 2 Registr WMCOM ovládáí obvodu Watchdog a pamìti E 2 PROM 272 12 3 Sériový kaál SPI 273 12 3 1 SPCR øídicí registr SPI kaálu 276 12 3 2 SPSR stavový registr SPI kaálu 277 12 3 3 SPDR datový registr SPI kaálu 277 12 4 Pøípravek SPI8252 278 12 5 Pøíklady použití 280 12 5 1 Idikace zovupøipojeí apájeí (pøízak POF) 280 12 5 2 Pøechod do režimu Power-dow a procitutí pøes pøerušeí 281 12 5 3 Použití obvodu Watchdog 283 12 5 4 Zápis do pamìti E 2 PROM 285 12 5 5 Použití SPI kaálu 286 PØEHLED PØÍPRAVKÙ ATMEL 289 PLOŠNÉ SPOJE 289 LITERATURA 290 INZERCE 291 KNIHY BEN techická literatura 298 6 D MATOUŠEK: Práce s mikrokotroléry Atmel AT89S8252 2 díl A
CO NAJDETE NA DOPROVODNÉM CD-ROM Doprovodé CD-ROM obsahuje všechy iformace potøebé pro sadou práci s kihou Tyto iformace lze rozdìlit do logických celkù, které se acházejí v oddìleých adresáøích: adresáø AT8252 obsahuje pøedevším program AT8252 EXE pro øízeí vývojového kitu SDK8252 Dále obsahuje ladicí program pro oživeí kitu SDK8252 EXE a další pomocé programy pro pøeklad zdrojových kódù, adresáø BEN obsahuje off-lie verzi www stráek akladatelství BEN techická literatura (aktualizováo ke koci záøí 2002), jejichž souèástí je poèítaèová verze tištìého katalogu Edièího pláu podzim 2002, adresáø DATASHEET obsahuje dokumetaci vybraých itegrovaých obvodù, které jsou v kize používáy, ve formátu PDF Najdete zde též samorozbalitelý archiv programu Adobe Acrobat Reader verze 5 0, který slouží k prohlížeí PDF souborù, adresáø FOTO obsahuje, jak sám ázev apovídá, fotografie hotových pøípravkù Každý byl afoce z ìkolika pohledù, aby byla lépe dokumetováa jejich možá stavba, adresáø INCLUDE obsahuje dva INC soubory s defiicemi pomocých ruti pro práci se sbìricí MicroWare a I 2 C, adresáø KATALOG obsahuje elektroický ceík firmy GM Electroic stažeý z Iteretu (z koce záøí 2002) a poèítaèovou podobu tištìého katalogu v PDF Aktualizovaou verzi lze získat a URL: http://www gme cz Orietaèí cey všech souèástek byly bráy z tohoto katalogu Navíc byly a CD umístìy iformace o programátorech XELTEK, adresáø OBECNICE je off-lie podoba www stráek (vèetì ceíku) pøedího èeského prodejce obvodù (Zásilková služba ELEKTRONIC OBECNICE), programovacích kitù a programátorù Atmel adresáø PROGRAMY obsahuje zdrojové i pøeložeé formy všech programù realizovaých v kize, adresáø SPOJE obsahuje klišé plošých spojù všech pøípravkù popsaých v kize ve formátu TIF a avíc ve zdrojovém formátu BRD programu EAGLE je verze 2 6, aby si èteáøi pøípadì mohli plošé spoje upravit podle vlastích pøedstav Nìkteré spoje jsme ještì v redakci dodateèì upravovali (zvìtšováí úchytých plošek pro souèástky, ), takže fiálí verze je uložea pouze ve formátu TIF (je shodá s klišé otištìými v kize) A D MATOUŠEK: Práce s mikrokotroléry Atmel AT89S8252 2 díl 7
O KNIZE Kiha je zamìøea a popis mikroøadièe AT89S8252 vèetì tøí desítek zajímavých aplikací Øada iformací je použitelá i pro jié mikroøadièe, pøedevším pro typ AT89C2051 V úvodu jsou krátce vysvìtley základí pojmy mikroprocesorové techiky Následuje druhá kapitola, která uvádí základí vlastosti mikroøadièe AT89S8252 vèetì popisu sériového dowloadu (programováí pøímo v avrhovaém systému) Tyto pozatky jsou zužitkováy ve tøetí kapitole, která popisuje kostrukci programátoru spojeého s vývojovým kitem (pro programováí a testováí postaèí jediá deska plošých spojù) Souèástí kihy je i komplexí oživovací program tohoto programátoru Takže oživeí zvláde i zaèáteèík! Ètvrtá kapitola vysvìtluje pojmy spojeé s vitøí a vìjší pamìtí programu resp dat a popisuje základí registry mikroøadièe Pátá kapitola uvádí istrukèí soubor a šestá kapitola uvádí možosti assembleru Je zde uvede i popis programu AT8252 EXE, který slouží k pohodlému vývoji a programováí aplikací pro mikroøadiè AT89S8252 Sedmá kapitola popisuje chováí portù P0 až P3 a uvádí základí aplikace (pøipojeí osmi LED, pøipojeí osmi spíaèù, pøipojeí šestácti LED a šestácti spíaèù pomocí sériové sbìrice Microware) Osmá kapitola je vìováa obvodùm se sbìricí I 2 C Pro popis byly vybráy obvody: SAA1064 (budiè 4místého LED displeje s regulací jasu), PCD3312 (DTMF geerátor), TDA8444 (8kaálový 6bitový D/A pøevodík) a PCF8591 (4kaálový 8bitový A/D pøevodík spojeý s 8bitovým D/A pøevodíkem) V této kapitole je uvedeo moho pøíkladù použití Devátá kapitola popisuje pøerušovací systém mikroøadièe Jeho použití je ukázáo a dvou pøíkladech pøipojeí klasické klávesice IBM PC k mikroøadièi AT89S8252 Desátá kapitola uvádí vlastosti èítaèù/èasovaèù 0 až 2 a doplòuje velmi zajímavé pøíklady jejich použití (ovládáí 4místého displeje s èasovým multiplexem pomocí èasovaèe, elektroické stopky, levý D/A pøevodík, pøesý pøeladitelý zdroj kmitoètu, PWM regulátor, dvì variaty levého A/D pøevodíku) Jedeáctá kapitola se vìuje použití zabudovaého sériového portu Je uvedeo jedoduché a levé pøipojeí mikroøadièe k sériovému portu poèítaèe (bez utosti použít obvod MAX232) Nejdøíve je uvedea zajímavá kostrukce poèítaèem øízeého stabilizovaého zdroje s regulací apìtí v rozsahu 0 až 10 V, ásleduje impulzí geerátor pracující do 600 khz se støídou astavitelou v rozsahu 1 : 9 až 9 : 1 Nakoec je uvede èítaè pracující do kmitoètu 16 MHz Dvaáctá kapitola uvádí pokroèilé schoposti mikroøadièe AT89S8252 jako jsou: øízeí spotøeby, SPI sbìrice, ovládáí zabudovaé pamìti E 2 PROM a použití obvodu Watchdog Kiha rovìž obsahuje popis kostrukce pøípravkù (vèetì desek plošých spojù) pro všech 30 publikovaých pøíkladù Doprovodé CD ROM obsahuje klišé plošých spojù pøípravkù a zdrojové kódy všech publikovaých pøíkladù 8 D MATOUŠEK: Práce s mikrokotroléry Atmel AT89S8252 2 díl A
POZNÁMKA KE KNIZE PRÁCE S MIKROKONTROLÉRY ATMEL AT89C2051 1 díl V [1] byl provede popis mikroøadièù typu AT89C2051 vèetì istrukèího souboru, možostí zápisu programu a úrovi assembleru a velmi zajímavých aplikací Vzhledem k tomu, že mikroøadiè AT89S8252 vychází z jádra procesoru 8052 (je odvoze z procesoru 8051), je øada iformací stejých jako v [1] Jedá se pøedevším o istrukèí soubor Také ìkteré základí pøípravky (AT8LED, ATDIPSW, ATPCF8591) byly z [1] pøejaty ebo pouze epatrì upravey Buï se jedá o uiverzálì použitelé pøípravky ebo jsou uvedey ové aplikace Naproti tomu je v kize publikováo moho ových pøípravkù a pøíkladù Dále jsou uvedey klíèové vlastosti mikroøadièe AT89S8252, programováí pomocí sériového dowloadu, použití èítaèe/èasovaèe 2, použití dalších obvodù se sbìricí I 2 C Iformace, které jsem pøejal z [1], byly uté proto, aby èteáø emusel souèasì listovat obìma kihami A D MATOUŠEK: Práce s mikrokotroléry Atmel AT89S8252 2 díl 9
10 D MATOUŠEK: Práce s mikrokotroléry Atmel AT89S8252 2 díl A