Jste zde

Mikrokonvertor ADuC812 - Procesor nebo analogová součástka?

Firma Analog Devices před nedávnem představila nový obvod, který obsahuje 12-ti bitový A/D

převodník, 8x51 procesor s rozšířením a 8 kB FLASH. Obvod je již běžně k dostání za přijatelnou cenu cca 700,- Kč

bez DPH. Tento článek se podrobně věnuje novinkám v tomto obvodu.

Vlastnosti obvodu :

  • Rozšířené 8x51 jádro
  • 8-mi kanálový 12-ti bitový A/D převodník s možností DMA přístupu
  • Dva 12-ti bitové D/A převodníky
  • Teplotní senzor na čipu
  • 8K bytů programové paměti
  • 640 bytů paměti dat
  • Až 16 MB externí paměťový prostor
  • Duplexní UART
  • WDT a PWM
    SPI a I2C
Vnitřní blokové schéma mikrokonvertoru ADuC812

Obvod ADuC812 je výsledkem dlouhodobého vývoje firmy a podporuje trend současné doby, tj.spojování několika bloků s velmi rozdílnou technologií výroby na jeden čip. Sama firma jej nazývá mikrokonvertor namísto standardního mikroprocesor.Vnitřní blokové schéma je uvedeno na obrázku. Z důvodů rušení uvnitř čipu a přesnosti výroby se jedná svým způsobem o husarský kousek. Dosud nabízené A/D převodníky nabízené na jednom čipu s procesorovým jádrem měly přesnost pouze 8-10 bitů.

A/D a D/A převodník
Analogová část mikrokonvertoru představuje z větší části „prim“ v konstrukci. Právě z důvodu snížení rušení je zcela tato část HW oddělena od jádra 8051. Jak napájecí, tak i zemnící vývod je samostatný a při jejich zapojování je vhodné (pro maximální využití vlastností obvodu) jejich připojení podle doporučeného zapojení.
 
 

Ekvivalentní obvod analogových vstupů

V mikrokonvertoru ADuC812 je k dispozici 8-mi kanálový multiplexovaný 12-ti bitový A/D převodník umožňující maximální vzorkovací kmitočet 200 kSPS (200000 vzorků za sekundu) pro jeden vybraný kanál. Vlastní převod je realizován metodou postupné aproximace a zpracovává unipolární signály v rozsahu napětí 0V až +Vref. Vnitřní zapojení analogových vstupů A/D převodníku je uvedeno na obrázku. Spínače SW1 a SW2 představují funkci vzorkovacího zesilovače (S/H).
A/D převodník se programově konfiguruje pomocí 3 konfiguračních registrů (ADCCON1, ADCCON2, ADCCON3) v paměťové oblasti SFR. Lze nastavit následující režimy činnosti A/D převodníku:

  • trvalé kontinuální vzorkování spouštěné programově nebo externím HW signálem,
  • jednorázový převod spustitelný programově nebo externím HW signálem,
  • trvalé kontinuální vzorkování s výběrem měřeného kanálu a s ukládáním výsledků převodu do paměti RAM, tzv. DMA přístup do paměti.
Doporučené ošetření analogových vstupů

Možnost nastavení A/D převodníku do DMA módu, kdy výsledné vzorky jsou ukládány do externí paměti RAM, je výborná vlastnost obvodu. Tento režim totiž nezatěžuje výkon vlastního výpočetního jádra procesoru 8051 a proto je možné procesor použít na jiné výpočetní úkoly.

Pro průmyslové nasazení procesoru doporučuje výrobce na ochranu analogových vstupů předřadit před mikrokonvertor operační zesilovač se ziskem 1 a výstupním filtrem podle obrázku. Výběr OZ je omezen na typy, které jsou použitelné pro nesymetrické napájecí napětí. Při použití základního rozsahu 0 až 2,5V pro A/D převodník, je možné tento OZ napájet přímo napětím +5V.

Způsob obsluhy v DMA modu

Význam bitů pro A/D převodník

Adresace zvoleného kanálu v analogovém multiplexeru je provedena zápisem adresy 0 až 7 do bitů 4 až 6 v registru ADCDATAH, tedy horní poloviny tohoto registru, přičemž adresa vestavěného teplotního senzoru je číslo 8, tedy  „1“ v bitu 7 ADCDATAH. Na obrázku "Příklad přípravy adres pro mód DMA A/D převodníku"  je naznačen způsob adresace a zároveň i dosažený výsledek po A/D převodu. Dolních 8 bitů je v registru ADCDATAL a zbylé 4 bity v dolní polovině registru ADCDATAH udávají horní 4 bity 12-ti bitového čísla.

Na základě tohoto principu adresace je postaveno i ovládání a volba měřeného kanálu při DMA modu A/D převodníku. Do paměti RAM se připraví adresy na ty místa, která budou při obsluze patřit adresám analogového MUXu. Důležité je zapsat jako poslední adresu příkaz STOP pro mód DMA, tj. 1111 v horní polovině ADCDATAH. Na obrázku je uveden příklad umístnění dat - adres AMUXu v paměti RAM.
 

Příklad přípravy adres pro mód DMA A/D převodníku

Vlastní mód DMA se spustí zápisem „L“ do bitu konfiguračního registru ADCCON2.6

Obsah paměti RAM po ukončení módu DMA
Výsledek všech převodů je v paměti RAM našeho příkladu zobrazen na obrázku. Je vhodné si všimnout stavu, že v paměti RAM se po ukončení převodu adresace měřených kanálů nezměnila, čehož je možné velmi výhodně použít pro další zpracování dat, případně při opětovném spuštění módu DMA, kdy se adresy kanálů nezměnily.

D/A převodník
Vestavěný 2 kanálový 12-ti bitový D/A převodník s napěťovým výstupem je ovládán, obdobně jako A/D převodník, přes SFR registry. Tyto dva kanály jsou plné (nejsou multiplexovány) a je možné programově nastavit, zda „obnova“ výstupního napětí z obou kanálů má být prováděna synchronně nebo nezávisle po zápisu dat do SFR registru.

Odporová síť pro realizaci A/D převodníku
Programově je možné, s použitím jednoho konfiguračního registru (DACCON), nastavit následující režimy činnosti A/D převodníku:
  • 8-mi nebo 12-ti bitový převod,
  • rozsah výstupního napětí 0 až Vref nebo 0 až Vdd,
  • simultánní nebo obyčejný výstup,
  • samostatné zapnutí/vypnutí každého D/A převodníku.
Vlastní data pro D/A převod se zapisují do dvojic datových registrů ADC0L, DAC0H resp. DAC1L a DAC1H. V „L“ registrech je dolních 8 bitů a v dolní polovině „H“ registrů pak 4 horní bity pro 12-ti bitový převod.

Zdroj referenčního napětí
Mikrokonvertor ADuC812 má vestavěné referenční napětí na čipu s nízkým driftem (40 ppm/°C) a výstupním napětím +2,5V. Vnitřní odpor tohoto zdroje je cca 50kW a proto se moc nedoporučuje jeho použití i mimo obvod. Je to však možné s použitím operačního zesilovače. Taktéž je možné na stejný pin obvodu připojit jiný zdroj referenčního napětí o hodnotě napětí v rozsahu +2,3V až napájecí napětí analogové části obvodu. Pro správnou činnost zdroje je nutné dodržet požadavek výrobce a připojit k pinům Cref a Vref externí kondenzátory o kapacitě 100nF.


Princip použití vnitřního a vnějšího zdroje referenčního napětí

Mikroprocesorové jádro 8051
Výpočetní jádro mikrokonvertoru ADuC812 je plně kompatibilní s originálem 8x51. Frekvence oscilátoru je maximálně 16 MHz. Pro ovládání a komunikaci s analogovou částí a všemi ostatními vestavěnými periferními obvody je instrukční sada rozšířena o doplňkovou řadu instrukcí, které umožní jejich obsluhu přes SFR registry prostým zápisem nebo čtením z registru.

Vnitřní zapojení portů
Všechny porty mikrokonvertoru ADuC812 mají totožné funkce jako originální 8x51 a jsou slučitelné s CMOS rozhraním. S vyjímkou portu P1 jsou všechny ostatní porty obousměrné. Avšak z důvodů sdílení některých pinů s vestavěnými periferními obvody, jsou vybrané piny portů upraveny a je možné je používat také jiným způsobem. Proto je port P1 pouze vstupní, neboť je současně vstupním portem 8 kanálů analogového multiplexeru pro A/D převodník.

Čtení a zápis je ovládán přes odpovídající SFR registry. Jednotlivé piny portu P0, P2 a P3 mhou být nezávisle konfigurovány jako digitální výstupy nebo digitální vstupy nastavením odpovídajících bitů SFR registrů. Port 1 může být nastaven na analogové nebo digitální vstupy.

  • Port P0 - je standardně určen pro datovou sběrnici a dolní polovinu adresové sběrnice. V případě jiného použití je nutné zapojit externí „pull up“ odpory cca 10kW.
  • Port P1 - je pouze vstupní, pro funkci analogových vstupů není potřebné po Resetu nic nastavovat, pro případ použití jako analogového vstupu se musí zapsat do patřičného bitu portu „L“.
  • Piny P1.0 a P1.1 mohou být navíc použity jako vstupy pro časovač T2.
  • Pin P1.5 pak jako vstup   - Slave select input při použití SPI komunikace.
  • Port P2 - je standardně určen pro horní polovinu adresové sběrnice. Při adresování vnější paměti RAM nad 64 kB pak i multiplexně pro adresy A16 - A24. V případě jiného použití je nutné zapojit externí „pull up“ odpory cca 10kW.
  • Port P3 - je standardní jako u 8x51 a něco málo navíc, tedy:
  • P3.0 - RxD pro UART,
  • P3.1 - TxD pro UART,
  • P3.2 a P3.3 - externí HW vstup při vnější přerušení,
  • P3.3 - ještě navíc pro vstup MISO - při použití SPI komunikace,
  • P3.4 a P3.5 - vstupy časovačů T0 a T1,
  • P3.5 navíc vstupní signál pro vnější spuštění A/D převodu,
  • P3.6 -   a  P3.7 -  - signály pro obsluhu vnějších pamětí RAM a ROM.
Vnitřní zapojení portu P1

 
Vnitřní zapojení portu P0
Vnitřní zapojení portu P3
Vnitřní zapojení portu P2

Přerušovací systém
Mikrokonvertor ADuc812 má, oproti 8x51, celkem 9 zdrojů přerušení se dvěmi prioritními úrovněmi. Veškerá konfigurace přerušovacího systému se provádí přes dva konfigurační registry, registr IE - známý z klonů 8x51, který je však rozšířen a registr IE2. Priorita přerušovacích signálů je pak nastavována v registru IP - Interrup Priority. V tabulce je přehledně uvedena priorita a adresy vektorů přerušení. Lze z ní vyčíst to, že všechny standardní vektory přerušení z 8x51 jsou shodné a na další paměťová místa se přidaly doplňkové vektory, specifické pro mikrokonvertor ADuC812. To samo o sobě umožňuje použítí již vyvinutých programových modulů z rodiny 8x51 u tohoto procesoru bez úpravy.
 

Blokové schéma přerušovacího systému mikrokonvertoru ADuC812

 
Přerušení
Název typu přerušení
Adresa vektoru přerušení
Úroveň priority
PSMI
Power Supply Monitor
43H
1.
IE0
External INT0
03H
2.
ADCI
End of ADC Conversion
33H
3.
TF0
Timer 0 Overflow
0BH
4.
IE1
External INT1
13H
5.
TF1
Timer 1 Overflow
1BH
6.
I2CI/ISPI
Seriál Interupt
3BH
7.
RI/TI
UART Interupt
23H
8.
TF2/EXF2
Timer 2 Interupt 
2BH
9.

Funkce a nastavování obvodu watchdog a monitoru napájecího napětí je uvedena v kapitole Watch Dog Timer (WDT) a Power Supply Monitor (PSM).

Organizace vnitřní paměti
Hardwarská struktura mikrokonvertoru odděluje prostor pro data a program do dvou oddělených paměťových polí.

Paměť pro program
 

Princip mapování programové paměti

 
Způsob připojení externí paměti EPROM pro program
Velikost vnitřní programové paměti je 8kB a její použití je definováno logickou úrovní na vstupu  /EA=1. V případě delšího programového úseku, jsou další instrukce čteny z externí paměti pro program. Vnější programová paměť může být veliká až 64KB a je plně adresována (od 0000H) při signálu  /EA=0. Na obrázku. je zobrazen princip mapování programové paměti. Je-li potřeba pro pro-gram větší rozsah než 8kB je možné připojit vnější paměť EEPORM podle obrázku. Protože toto připojení je dosti podobné, jako připojení vnější paměti RAM, je vhodné upozornit na signál /PSEN, jehož úroveň „0“ udává přístup do externí paměti EEPROM a úroveň „1“ pak do externí paměti RAM.

Naprogramování  interní paměti EEPROM pro program je možné dvěma způsoby. Standardním jako u novějších klonů 8x51 nebo zcela jinak. Tzv. In Circuit Programming  využívá sériovou  linku a režim „download“ k zavedení programu do vnitřní programové paměti, bez nutnosti vyjímat mikrokonvertor z aplikace. K nastavení režimu „download“ slouží pin PSEN, který se spojí přes odpor 1kW na GND a následně se provede RESET. Po spuštění programu DLOAD812 s patřičným přeloženým souborem HEX se programová paměť obvodu ADuC812 nejprve vymaže a následně naprogramuje novým obsahem. Po ukončení „downloadu“ se odstraní zkrat odporu 1KW na GND a provede se opět RESET. V tomto okamžiku začne ADuC812 vykonávat program podle nového obsahu programové paměti.

Datová paměť RAM
Mikrokonvertor ADuC812 má vestavěnou vnitřní paměť RAM o velikosti 256B s tím, že její horní polovina (od 80H výše) je dostupná pouze přes nepřímé adresování (@R0, @R1). Její obsluha je tedy stejná jako u standardu 8x51. Pokud se připojí vnější paměť (přístupná přes příkaz MOVX ...) je možné adresovat až 16MB paměťového prostoru.
Na obrázku je naznačeno principiální připojení externí paměti do adresového prostoru 64kB. Dolní polovina adresy je, v době aktivního signálu ALE, přístupna na portu P0, horní polovina na portu P2.
 

Princip připojení a adresace externí paměti 64kB

Jiná situace nastává při adresaci většího prostoru paměti (nad 64kB). Mikrokonvertor ADuC812 je vybaven dalším 8-mi bitovým registrem (DPP - DATA POINTER - PAGE BYTE), který provádí stránkování připojené externí paměti RAM. Na obrázku je zobrazeno připojení takto velké paměti ke konvertoru. Obsah registru DPP je k dispozici na portu P2 v době aktivního signálu ALE, tedy obdoba jako u portu P0. S využitím dalšího záchytného obvodu je tedy možné „připravit“ plnou 24 bitovou adresu pro následnou práci s externí pamětí RAM.

Obdobný případ adresace je externí paměti RAM je v režimu DMA, kde se však o adresování starají tři 8-mi bitové registry DMAL, DMAH a DMAP.
 

Princip připojení a adresace externí paměti až 16MB

Datová paměť flash EEPROM
 

Organizace Flash EEPROM paměti

Vestavěná paměť flash EEPROM je určená pro ukládání dat. Její velikost je 640 bytů. Vzhledem k požadavku přístupnosti k údajům pouze přes SFR registry, je její organizace rozdělena do 160 stránek (00H až 9FH) po 4 bytech. Adresa požadované stránky se zapisuje do SFR registru EADRL. Řídící příkazy pro činnost (mazání, zápis, čtení stránky, mazání celé paměti) do registru ECON a data jsou k dispozici nebo se ukládají do registru EDATA1 až EDATA4. Tato organizace přístupu do paměti flash EEPROM je výhodná právě tím, že nespotřebuje žádné jiné příkazy, než jen zápis nebo čtení do/z registru. Háček tu však přece je. Flash paměti musí být před zápisem nových dat vymazány. Mazání se provádí elektricky, ale nelze vymazat jen jeden byte. V dané organizaci je nutné vymazat všechny 4 byty, které jsou naadresovány registrem EADRL. Pro zamezení ztráty údajů, které není potřebné opětovně ukládat, navrhla firma Analog Devices postup, který je schématicky uveden na obrázku. Nejprve se adresuje paměťové místo flash EEPROM prostým zápisem adresy do registru EADRL. Následně se provede čtení, prostým zápisem údaje 01H do registru ECON. Tak se data z flash EEPROM přesunou do SFR registrů EDATA1 až EDATA4. Nyní se prostým zápisem údaje 03H do registru ECON vymaže naadresovaná paměťová stránka. Požadovaná změna v datech se zapíše do vybraného registru EDATA1 až EDATA4 a prostým zápisem 02H do registru ECON se stránka (4 byty) „zapíše“ do Flash EEPROM.

Z hlediska časování trvají všechny zápisy nebo čtení z registrů SFR jeden programový cyklus, zápis jedné stránky (4 byty) cca 250us a mazání jedné stránky paměti nebo celé Flash EEPROM paměti 20ms. Systém programového čítače je přitom nastaven tak, že „automaticky“ počká s vykonáváním programových příkazů po zápis příkazu k mazání paměti Flash EEPROM právě oněch 20 ms. Programátor tak nemusí vytvářet nějaké čekací smyčky. Nevýhodou však je skutečnost, že se tak může znatelně zpozdit vykonávání programu. Při sestavování programovacího algoritmu si proto musí programátor dávat pozor na to, aby některá přicházející data nebyla ztracena právě z důvodu tohoto  zpoždění.
 

Ukázka obsluhy - zápisu byte do interní paměti flash EEPROM

Vestavěné periferie
Vestavěných periferních obvodů je u mikrokonvertoru poměrně dost a jejich využití je velmi všestranné.
 

Sériové rozhraní UART
Pro sériovou komunikaci je mikrokontroler osazen plně duplexním UART portem, shodné konfigurace jako standard 8x51. Jeho programová obsluha je tedy shodná, pro definování přenosové rychlosti je využíván časovač TIMER0 nebo lze použít i časovač TIMER2. Pro víceprocesorové systémy je možné nastavit i 9-ti bitovou komunikaci, ale případný paritní bit je nutné spočítat programem. Pro použití přenosu dat na standardních komunikačních rychlostech je nutné použít i odpovídající krystal oscilátoru, tedy  největší možný je 11,0592 MHz. Pak je možné používat normalizovaných přenosových rychlosti až do 38400Bd.

Sériové rozhraní SPI a I2C
Mikrokontroler ADuC812 je vybaven dvěma průmyslovými rozhraními, synchronním SPI a I2C. Obě tato rozhraní lze konfigurovat do režimu MASTER nebo SLAVE. Protože se piny konvertoru pro vstup a výstup dat na těchto rozhraních vzájemně sdílí, lze v jedné aplikaci použít buď SPI nebo I2C rozhraní. Vnitřní blokové zapojení zdroje hodinového signálu SCLOCK je na obrázku.
Vnitřní blokové zapojení datového kanálu SDATA/MOSI je na obrázku.

Synchronní SPI rozhraní

Vnitřní zapojení SCLOCK

Rozhraní používá pinů MISO, MOSI, SCLOCK a při módu Slave i . S pomocí jediného konfiguračního registru SPICON je možné nastavit všechny režimy činnosti:
 

Vnitřní zapojení SDATA/MOSI
  • MASTER nebo SLAVE,
  • led dat vůči hodinovému signálu (CPHA=1 nebo 0),
  • povolení přerušení po příjmu dat,
  • nastavení 4 „rychlostí“ hodinových impulsů na pinu SCLOCK pro spolupráci s pomalejšími obvody.
Rozhraní je připraveno pro synchronní obousměrný přenos 8-mi bitových údajů. Je však možné je programově přizpůsobit na asynchronní přenos a případně s využitím vybavovacích signálů (CE) pro periferie, které tento CE signál potřebují.
 

Dvouvodičové rozhraní I2C
I2C rozhraní je známé tím, že k připojení periferních zařízení je potřebné pouze dvou vodičů. U mikrokontroleru ADuC812 jsou označena SDATA a SCLOCK. Rozlišení připojeného periferního obvodu se provádí adresou, která je součástí přenosového protokolu. Tato adresa je 7-mi bitová, je tedy teoreticky možné připojit až 128 periferií jen na 2 vodiče. S pomocí jediného konfiguračního registru I2CCON lze nastavit toto rozhraní do těchto módů:

  • MASTER nebo SLAVE,
  • povolení přerušení po příjmu dat,
Na rozdíl od rozhraní SPI nemá rozhraní I2C vlastnost synchronního obousměrného přenosu dat, neboť po datovém vodiči mohou data putovat v jednom okamžiku jen jedním směrem.

Watch Dog Timer (WDT) a Power Supply Monitor (PSM)
Pro zajištění bezporuchového chodu programu v mikroprocesoru se používají obvody, které monitorují chod programu tím, že tento program musí „projít“ tzv.kontrolními body. Pokud neprojde, vyvolá tento podpůrný obvod nějaké přerušení, které zajistí návrat programu do „normálního“ stavu. Mikrokontroler ADuC812 je vybaven interním obvodem Watch Dog Timer u něhož je možné programově nastavit délku odezvy pulsu RESET od 16 do 2048 ms.

Pro možnost programového zásahu při poklesu napájecího napětí je mikrokontroler vybaven tzv. monitorem napájecího napětí (PSM). Ten nastaví žádost o přerušení při poklesu napájecího napětí do „1“ podle nastavení v konfiguračním registru PSMCON. Lze vybrat pět uživatelsky nastavitelných úrovní napětí od +2,6 do +4,6V. Žádost o přerušení bude zrušena se zpožděním 256 ms po návratu napájecího napětí nad nastavenou rozhodovací úroveň. Tímto je nepřímo řečeno, že mikrokontroler bude funkční i při napětí menším než 3V. V tomto okamžiku ale nesmí spolupracovat s žádným externím obvodem (paměť, periferní obvod atd.).

Nový přístup k ladění programového vybavení pro ADuC812

Naznačení možností vývoje programového vybavení pro mikrokonvertor ADuC812

Za zcela nový přístup k ladění programového vybavení lze právem považovat možnosti, které nabízí firma Analog Devices. Na obrázku. jsou naznačeny možné varianty, kde se najde i standardní způsob, tj. po překladu zdrojového textu jeho klasické naprogramování do procesoru a běžné testování. Firma však dává k dispozici i variantu pouhého simulování v prostředí windows na simulátoru ADSIM812, kde lze řadu věcí odladit, bez nutnosti fyzické přítomnosti vlastního procesoru a případného zařízení (HW). Další možnost v ladění programů je využít vzdáleného ladění s pomocí programu DEBUG812. Ten umožňuje získávat do patřičného okna ve windows prostředí informace o stavu většiny vestavěných periferií mikrokontroleru ADuC812. Tyto informace získává přes připojenou sériovou linku RS-232. Mezi další podporu využívání mikrokontroleru ADuC812 patří skutečnost, že veškeré vývojové prostředí pro windows dává firma Analog Devices volně k dispozici na svých stránkách http://www.analog.com/industry/microconverter/. To umožňuje potenciálním uživatelům si vše vyzkoušet bez výrazných nákladů. Firma také dodává vývojový kit -Quick Start, který umožňuje zkoušení všech vestavěných periferií na připraveném HW zařízení. Kit navíc obsahuje část externí paměti RAM, čímž je možné si také vyzkoušet režim DMA přístupu do paměti pro A/D převodník.

Závěr - příklady , aplikace
Na www stránkách Analog Devices jsou uvedeny jednoduché aplikace pro využití vlastností všech vestavěných periferií. Vlastnosti mikrokontroleru ADuC182 je předurčují v průmyslu k použití v nepřeberném množství aplikací od malých řídících systémů až po velké víceprocesorové systémy.

Odkazy na internetu:

 
Hodnocení článku: