GigaDevice mikrokontrollerek - a GPIO és az ADC programozása
A GigaDevice GD32ARM Cortex RISC MCU sorozat architektúrájának, valamint a mikrokontroller családhoz kapható kiértékelő és kezdőkészlet ismertetése után most bemutatjuk, hogy miként lehet ezekkel az eszközökkel megkezdeni a munkát a CrossStudio for ARM 4.1. fejlesztőrendszer használatával.

 

A GD32 egy új, ARM Cortex-M3 vagy Cortex-M4 32 bites RISC magokkal ellátott, alacsony fogyasztású, univerzális, nagy teljesítményű mikrovezérlő-család, mely integrálja a tervezés egyszerűsítéséhez és a költségtakarékos, mégis innovatív termék előállításához elvárt funkciókat. A GigaDevice szabadalmaztatott „gFlash” memóriatechnológiával kiegészítve egy komoly mikro vezérlő vonal áll a tervezőmérnökök rendelkezésére.

Az M3-család minden mikro vezérlője az ARM Cortex-M3 RISC processzormag köré szerveződik, mely a108 MHz maximális órajelével és a beépített flash-memória azonnali elérhetőségével (Zero-Wait-State) maximális hatékonyságot biztosít. A GD32 sorozatú mikrokontroller használata nemcsak a fejlesztők, de a felhasználók számára is sok előnnyel szolgál. Az MCU maximális sebessége a versenytársakénál 50%-kal többet nőtt.

A kódfuttatás hatásfoka ugyanolyan órajel mellett 30-40%-kal nagyobb. Az áramfogyasztás ugyanolyan frekvencia esetén 20–30%-kal csökkent. Ezek a tulajdonságai teszik lehetővé, hogy a GD32 sorozatú GigaDevice MCU-kat alkalmazások széles spektrumán lehessen használni. A GD32 sorozatú mikrokontrollerek teszteléséhez és a fejlesztés megkönnyítéséhez a GigaDevice különböző tudásszintű kiértékelő kártyákat és kezdőkészleteket kínál az egyszerű programozó és hibakereső moduloktól a maximális hardverkiépítésű teszt alaplapokig, ahogy azt cikksorozatunk előző részében részletesen tárgyaltuk.

GD32 Kezdőkészlet

A GigaDevice kezdőkészlet az MCU kivezetéseihez illeszkedő csatlakozó felületeket (Extension Header) kínál a felhasználó számára a gyors prototípus csatlakoztatáshoz és teszteléshez. Minden ilyen eszköz tartalmazza a GigaDevice saját GD-Link programozói és hibakereső interfészét is, melyen keresztül USB kábel segítségével kapcsolódhatunk a személyi számítógéphez, ezzel biztosítva a kártya tápellátását és az adatkapcsolatot is a mikrokontroller programozásához és a szoftver hibakereséshez.

Fejlesztőeszközök - CrossWorks for ARM 4.1

A GD32 család integrálja azokat az MCU jellemzőket, amelyek lehetővé teszik a gyors, könnyű és professzionális beágyazott rendszer-tervezést, és a fejlesztők kezébe ad egy megfizethető és bizonyítottan innovatív, komplex félvezető-gyártási technológián alapuló MCU eszközt. A GigaDevice számos jól ismert ARM fejlesztőrendszerhez kínál kiterjedt eszköztámogatást, így például a KEIL, az IAR vagy a „Rowley CrossWorks for ARM” platformfüggetlen integrált fejlesztői környezethez a mikrokontrollerek programozásához, hibakereséshez és ellenőrzéshez.

A népszerű ARM IDE a CrossWorks for ARM termékhez a gyártó speciális próba licencet ajánl, a felhasználó döntheti el, hogy (30 napos) időkorlátos teljes verziót, vagy 16 kB kódméretre korlátozott, egyébként teljes funkciós korlátlan ideig használható próbaváltozatot telepít. (A Keil MDK-ARM Lite Edition próbaváltozatként szintén rendelkezésre áll, itt 32 Kbyte a méretkorlát). A CrossWorks for ARM egy komplett C/C++ és Assembly nyelvű fejlesztőrendszer, ami sok más mellett a Cortex-M mikrokontrollerekre való fejlesztést is messzemenőkig támogatja. A CrossStudio integrált fejlesztői környezet egy natív módon felépített IDE, mellyel szerkeszthetjük, fordíthatjuk, a mikrokontroller Flash memóriájába tölthetjük a kódot és lehetőség van a hibakeresésre is az SWD/JTAG interfészen keresztül.

Általános célú I/O portok (GPIO)

A GD32F170C8T6 GigaDevice GD32 ARM Cortex-M3 mikrokontrollerben 55 általános célú I/O port áll rendelkezésre, melyek 16-os blokkokba szerveződve a PA0 ~ PA15, PB0 ~ PB15, PC0 ~ PC15 lábakon, illetve a PD2, PF0/PF1, PF4 ~ PF7 lábakon érhetők el és biztosítanak a külvilág felé logikai kapcsolatot a hozzájuk rendelt vezérlő- és konfigurációs regisztereken keresztül. A GPIO portok által használt lábak megosztva más alternatív funkciókkal is rendelkezhetnek (AF - I2C, SPI, USART, CCP, PWM, Clock, ADC) és egyenként beállíthatók digitális kimenetként (kimenet választó regiszteren keresztül „push pull” vagy „open drain” módban), digitális bemenetként („pull up/down”, vagy lebegtetett), valamelyik alternatív periféria funkcióra (pl. SPI MISO vagy MOSI), vagy analóg bemenetként (ADC) is.

 

Az általános célú I/O bit felépítése

 

A portok maximális kommunikációs sebessége a kimeneti sebesség-regiszterek írásával változtatható, míg a „pull up/down” regiszterekkel kiválasztható, hogy a beépített „pull up” és „pull down” ellenállások legyenek-e használva, amikor pl. közvetlenül egy kapcsolót kötünk az digitális bemenetre, vagy egyik sem, ha a GPIO-t lebegtetett módban kívánjuk használni (pl. külső felhúzó vagy lehúzó ellenállás alkalmazásakor). Ez utóbbi lebegtetett input mód az alapértelmezett beállítás, miközben az alternatív funkciók ki vannak kapcsolva. Az analóg bemeneti mód alkalmazása kivételével a GPIO portok nagy árammal terhelhetők.

Amikor a GPIO bemenetként konfigurált:

• A Schmitt Trigger bemenet aktivált

• A beépített pull up és a pull down ellenállások választhatók

• Minden AHB2 órajel ciklusban az I/O lábon megjelenő adat a bemeneti regiszterből kiolvasható (Data Input Register)

• A kimeneti puffer (Output Buffer) le van tiltva

GPIO port bemenetként konfigurálva

 

Amikor a GPIO kimenetként konfigurált:

• A Schmitt Trigger bemenet aktivált

• A beépített pull up és a pull down ellenállások választhatók

• A kimeneti puffer (Output Buffer) engedélyezett: 

     • Open Drain mód: A logikai “0” a kimeneti regiszterben aktiválja az N-MOS-t, míg a logikai “1” szint a portot nagyimpedanciás állapotba hozza. 

     • Push-Pull mód: A logikai “0” a kimeneti regiszterben aktiválja az N-MOS-t, míg a logikai “1” a P-MOS-t aktiválja. 

• Push-Pull módban a kimeneti adatregiszter olvasásakor az utolsó kiírt adathoz férünk hozzá 

• Open Drain módban a kimeneti adatregiszter olvasásakor az I/O aktuális állapota tér vissza

GPIO port kimenetként konfogurálva

 

GPIO analóg konfigurációban:

• A beépített pull up és a pull down ellenállások kiválasztása le van tiltva 

• A kimeneti puffer (Output Buffer) le van tiltva 

• A Schmitt Trigger bemenete deaktivált 

• A bemeneti adatregiszter olvasásakor „0” értéket kapunk

GPIO port analógként konfigurálva

 

Analóg / Digital átalakítók (ADC)

A 12 bit felbontású A6D átalakító a fokozatos közelítés módszerét (successive approximation) használja az ADC lábon mért feszültségérték digitalizálására, két mintavétel között maximálisan 1μs idővel (sebesség=1MS/s). A GD32F170xx és felette a konverziós sebesség ennek a duplája, és minél kisebb felbontást választunk (10 vagy 6 bit) a mintavételi sebességet növelhetjük. Az A/D konverter 19 multiplexelt csatornája 16 külső és 3 kitüntetett belső forrás feszültségét mérheti. Ez utóbbiak a beépített hőmérséklet szenzor (NTC), a referencia feszültség és az elemfeszültség monitorozás céljára vannak fenntartva. Az ún. Analog watchdog funkció lehetővé teszi a felhasználó által definiált alsó és felső feszültség határértékekkel definiált tartományból való kilépés detektálását és kezelését egy automatikusan induló interrupt (IRQ) szoftveres feldolgozásával.

Az A/D konverzió folyatható egyes csatornánként, vagy csoportosan folyamatos illetve szakaszos módon. A konverzió eredményét egy 16 bites regiszterben balra, illetve jobbra zárt módon kapjuk meg, vagy DMA segítségével időveszteség nélkül a processzormag megkerülésével közvetlenül a memóriába juttathatjuk a maximális mintavételi sebesség eléréséhez, hiszen ekkor nem kell annyit várni az előző eredmény feldolgozására az új mintavételhez. Az A/D konverter tápfeszültsége 2.6V – 3.6V, és így a közvetlenül mérhető feszültségtartomány VSSA≤VIN≤VDDA.

Lehetőségek a kezdőkészlet használatával

A mikrokontroller GPIO-i és az A/D konverterei használatának bemutatásához egy egyszerű mintaprogramot készítettünk. A bemutatáshoz szükségünk van a kezdőkészlet két felhasználói LED-jére (LED1&LED2), melyek egyben a mikrokontroller PF6 és PF7 GPIO portjaihoz is kapcsolódnak, melyek az ábra jobb oldalán található csatlakozósoron is hozzáférhetők. Ide csatlakoztattuk egy kétszínű LED anódjait, míg közös katódját a GND kivezetéshez illesztettük. Ez a piros/zöld LED a kezdőkészlet LED1 és LED2 világító diódáival párhuzamosan működik majd.

A felhasználói interakció biztosítására a panel K1 felhasználói nyomógombját fogjuk használni, mely megnyomás esetén az 5V tápfeszültséget egy felhúzó ellenálláson keresztül a PA1 GPIO bemenetre kapcsolja. Az 5V megjelenése egy megszakítást (IRQ) generál, melyet a szoftverben kezelünk le, és használjuk fel a két LED alternatív be- és kikapcsolására. Többszöri gombnyomás esetén a LED1, a LED2, és a kétszínű LED piros illetve zöld chipje felváltva gyullad ki és alszik el.

 

A GD32170C-START starter kit áramköri elemeinek magyarázata

 

• LED1&LED2 – kezdőkészlet felhasználói LED-ek

• K1– kezdőkészlet felhasználói kapcsoló

• Kétszínű LED – a PF6 és PF7 GPIO és GND lábakra kötve

 

 

GD32170C-START Starter Kit – Ismételt gombnyomásra a LED-ek felváltva működnek

 

A következő kódrészlet bemutatja a GPIO portok bemenetként (kapcsoló) és kimenetként (LED) való használatát.

 

 

 

 

Az A/D konverter használatának bemutatásához a beépített NTC hőmérséklet szenzor szolgáltatta – hőmérséklettel arányos – elektronikus jel mintavételezését végezzük el. A termisztor ellenállása a hőmérséklet változásával ellentétesen alakul, így azt egy feszültségosztóban – egy precíz állandó ellenállás mellé kötve – felhasználhatjuk egy hőmérséklettel arányos feszültségérték szolgáltatására. Ezt a feszültséget fogjuk az A/D konverter segítségével (annak kitüntetett ADC0 csatornáján keresztül) mérni. A kódrészlet a következő (a kódot angol nyelvű magyarázatokkal láttam el):

 

A fenti mintaprogramok és a hozzájuk tartozó rövid magyarázatok a teljesség igénye nélkül ugyan, de alkalmasak a GigaDevice GD32 ARM Cortex-M3/M4 mikrokontrollerek GPIO és ADC perifériáinak használatáról képet adni. Bármely jól ismert beágyazott ARM fejlesztőrendszer (KEIL, IAR vagy CrossWorks IDE), és magas szintű programnyelv (C/C++) használatával szinte bármilyen feladatra alkalmazhatók ezek a kontrollerek. Mivel a GigaDevice 32 Bit mikrokontroller funkcióiban, kivitelében nagyon hasonlít az ST / Freescale STM32 családjához, sokan váltanak manapság ezekre az eszközökre.

Az elektronikával hobbiszerűen foglalkozó szakemberek ma az Arduino világban használt IDE megtartásával már ARM alapú eszközöket is alkalmazhatnak és pl. STM32DUINO projekteken dolgozhatnak, ráadásul mostanra az online piactereken Gigadevice GD32 alapú “DUINO” modelleket is találhatnak. A professzionális felhasználók számára azonban továbbra is javasoljuk a cikksorozatunkban bemutatott valamelyik kiértékelő vagy kezdőkészlet beszerzését, melyekkel ipari applikációk készíthetők, tesztelhetők és fejleszthetők.

 

Cikkünk az Endrich Bauelemente Vertriebs GmbH közreműködésével készült. Szerzője Kiss Zoltán Kelet-Európai értékesítési vezető, kiemelt nemzetközi ipari kapcsolatokért felelős vezető.
 
Értékesítési iroda: H-1188 Budapest, Kölcsey u. 102/A.
 
E-mail: z.kiss@endrich.com
 
Web: www.endrich.com
 
További konzultációért és mintákért, adatlapokért keresse Kiss Zoltánt!

 

Az Emerson befejezte az Aventics akvizícióját
A felvásárlásnak köszönhetően az Emerson tovább bővíti hatókörét a fluidtechnikai és pneumatikai eszközök piacán.
Mindenkit meghekkeltek már, csak nem tud róla
Fontos, hogy a kibervédelmi fejlesztéseket már az üzleti stratégia kialakításánál figyelembe kell venni. Az alapvető nehézséget azonban nem feltétlenül az új biztonsági irányelvek bevezetése okozza, hanem azok megfelelő integrálása a szervezetbe.
Robotok irányítják az önvezető drónokat
Biológiai motivációjú algoritmusokat és az evolúció elvét használták az új csoportos drónvezérlés megalkotásához az ELTE kutatói.
Meghatározták a legfontosabb innovációs irányokat
Az Európai Unió és tagállamai versenyképessége szempontjából a mesterséges intelligencia terén is az ipari vállalati innovációra érdemes összpontosítani a közös erőfeszítéseket.
Emberi tudás az ipar 4.0-s siker záloga
Egyre nagyobb kihívással szembesülnek napjainkban a szakemberek, amikor a folyamatosan gyorsuló technológiai fejlődéssel kell lépést tartaniuk. Megoldást jelenthet a célirányos, gyakorlatorientált képzés, amely koncentrált módon biztosítja a friss tudást. Interjú Siszer Tamással, a Festo Kft. Didactic oktatási üzletágának vezetőjével.