Témakör:
Külső eszközök a mikrovezérlők be- és kimeneteinek bővítésére
Megjelent: 2019. április 25.
A tervezők gyakorta szembesülnek a mikrovezérlők két be- és kimenetekkel kapcsolatos problémájával. Az első, amikor az eszközbe legjobban illő mikrovezérlő nem rendelkezik a kellő számú be- és kimenettel. A második akkor jelentkezik, amikor a már elindított terméksornál további be- és kimenetekre lenne szükség.
Az első esetben a fejlesztőknek gyakran drágább, jobb képességű mikrovezérlőt kell beszerezniük. A második esetben az új mikrovezérlőre váltást és a hozzá való szoftver átemelését a költségek és az időtényező korlátozzák.
Egy lehetséges megoldás mindkét problémára a külső be- és kimenetbővítő eszközök használata, amelyek gyakran a mikrovezérlő SPI-illesztőfelületéhez vagy I2C-sínjére kapcsolódnak. Ezekkel elkerülhető, hogy túlzott követelményt állítsunk a mikrovezérlő lábszámát, esetleg a teljesítményt és a helyigényt illetően. Ugyanakkor ez a megoldás időtállóvá teszi a termék kialakítását a funkcióváltozással, a célpiac bővülésével, a vásárlók funkcióigényeivel és a túl gyenge mikrovezérlő választásával (ilyen is előfordul) szemben.
1. ábra Az STM32L011D4P7 egy ARM® Cortex®-M7 processzor, amely tizenegy be- és kimeneti láb használatára van korlátozva (A kép forrása: STMicroelectronics)
Ez a cikk a mikrovezérlők be- és kimeneteivel kapcsolatos jellegzetes követelményeket tárgyalja, és bemutat néhány használható külső bővítőeszközt. Ezt követően bemutatja, hogyan lehet használni ezeket a lapkán kívüli erőforrásokat, amelyek további általános célú bemeneteket és kimeneteket, tárhelyet és impulzusszélesség-modulációt (PWM), sőt még felügyeletidőzítő (watchdog timer) funkciót is kínálnak.
A bővítőfelület kiválasztása
A mikrovezérlőknek több különböző, lapkán elhelyezett perifériaillesztő felületük is van, amelyek segítségével kommunikálni tudnak a külső eszközökkel. A mikrovezérlőtől függően ezek az illesztőfelületek lehetnek többek között:
-
Soros perifériaillesztő felület (SPI)
-
Integrált áramkörök közötti (I2C) sín
-
Egyetemes soros sín (USB)
-
Egyetemes aszinkron adó-vevő (UART)
-
Controller area network (vezérlők helyi hálózata, CAN)
-
Wi-Fi
2. ábra Az NXP cég PCA8574 jelű eszköze egy 8 bites, I2C sínt használó, látszólag kétirányú be- és kimenetbővítő. Mindössze egy I2C regisztert tartalmaz a lábain megjelenő be- és kimeneti funkciók olvasására és írására, ami nagyon egyszerű és jól használható eszközzé teszi (A kép forrása: NXP Semiconductors)
A külső bővítőeszközökkel való kommunikációra legalkalmasabb illesztőfelület az I2C és az SPI.
Az I2C egy kétvezetékes sín, amely hagyományosan 100 kilobit/s (kb/s) vagy 400 kb/s átviteli sebességgel működik, bár léteznek gyorsabb, 1 Mb/s és annál nagyobb sebességet támogató eszközök is. Az egyik vezeték egy kitüntetett órajelláb, míg a másik a mester- és a szolgaegység (master és slave) közötti kétirányú kommunikációra szolgál. A mikrovezérlő jellemzően a mester, míg a külső eszközök a szolgák szerepét töltik be. A szolgák egy 7 vagy 10 bites címsémával címezhetők.
Az SPI egy háromvezetékes sínű illesztőfelület, amely 1 Mb/s és 12 Mb/s közötti átviteli sebességen működik. Az SPI sínnek van egy kitüntetett mester kimeneti vonala, egy szolga kimeneti vonala és egy órajelvonala. A mikrovezérlő mestereszközként egy „szolgakiválasztó” vonalon át kommunikál a szolgaeszközökkel. A mikrovezérlőhöz kapcsolt minden szolgaeszköznek egy kitüntetett kimeneti lábra van szüksége ahhoz, hogy ki lehessen választani kommunikációra. Könnyű elképzelni, hogy ha egy fejlesztőnek sok külső eszközhöz kell csatlakoznia, hamar kifogyhat a szolgaeszközök kiválasztására szolgáló be- és kimeneti vonalakból.
Ha például egy fejlesztő az STMicroelectronics cég STM32L011D4P7 jelű eszközét használja, tizenegy be- és kimeneti vonal áll a rendelkezésére (1. ábra). Három be- és kimeneti vonal szükséges csak az SPI adatai és órajele számára, így marad nyolc, amelyeken át a szolgaeszközökkel kommunikálhat, és a rendszer által megkövetelt minden egyéb funkciót végrehajthat. Ez sok eszköz esetében tökéletesen elegendő, de néhány esetben a tervezőnek bővítenie kell a be- és kimenetek számát.
Általában véve az ökölszabály meglehetősen egyszerű: az I2C sín használata, kiegészítve az alábbi képességekkel:
-
be- és kimenetek
-
impulzusszélesség-moduláció (PWM)
-
EEPROM
-
felügyeletidőzítő
Az SPI sín használható olyan képességekkel való bővítésre, mint az SD-kártyákhoz való nagy sebességű memória-hozzáférés.
3. ábra A Schurter cég RGB-nyomógombja egy piros, egy zöld és egy kék LED-et tartalmaz a nyomógombon belül, ami színsémák alkalmazását teszi lehetővé a fejlesztők számára. Az ilyen jellegű eszközök esetében tökéletes megoldás valamilyen PWM-bővítő IC használata (A kép forrása: Schurter)
Az általános célú be- és kimenetek bővítése
Jó néhány olyan integrált áramkör létezik, amely lehetővé teszi a be- és kimenetek I2C illesztőfelületen át történő bővítését. Néhány érdekesebb ezek közül:
-
A Texas Instruments cég TCA9534PWR jelű eszköze
-
Az NXP Semiconductors cég PCA8574 jelű eszköze
-
A Semtech Corporation cég SX1520I087TRT jelű eszköze
A PCA8574 kimondottan érdekes, mert mindössze egy regisztert tartalmaz a be- és kimenetek közös kezelésére. Az egy regiszter rendkívüli mértékben leegyszerűsíti az eszköz beállításához, valamint a lábak olvasásához és írásához szükséges szoftvermennyiséget (2. ábra). A mikrovezérlő az I2C sínen át kommunikál a PCA8574 eszközzel, és attól függően címezi meg az eszközt, hogy hogyan vannak kiosztva az A0 – A2 lábak. Ez nagy rugalmasságot kínál a tervezésben, így a fejlesztő választhatja ki a PCA8574 szolgacímét, és több ilyen eszközt is elhelyezhet egy készüléken belül.
Alapértelmezés szerint a P0 – P7 láb bemenetként van beállítva bekapcsoláskor. Az egyetlen belső regiszter olvasása adja meg, hogy mi az eszköz egyes lábainak állapota, be- vagy kimenetként van-e az adott láb beállítva. A PCA8574 lehetővé teszi, hogy az egyes lábak egyszerre be- és kimenetként is funkcionáljanak, így a regiszterbe írás állítja be a megfelelő bit kimeneti értékét is.
A kimenetmeghajtót egy gyenge belső ellenállás húzza fel, amelyet a bemeneti érték könnyedén felülbírálhat. Bármely bemeneti állapot megváltozása esetén az INT láb alacsony értékre vált, jelezve a mikrovezérlőnek, hogy az egyik bemenet állapota megváltozott. A mikrovezérlő ezután indíthat egy I2C-hívást, hogy kiolvassa az új értéket.
4. ábra A Maxim cég MAX7315 jelű impulzusszélesség-moduláció szabályozójának nyolc kimeneti portja van, amelyeknek van LED-fényerőszabályozó funkciójuk is. Az eszköz regiszterkiosztása egyszerű, és módot ad a fejlett impulzusszélesség-modulációs (PWM) funkciók egyszerű elérésére (A kép forrása: Maxim Integrated)
Az impulzusszélesség-moduláció (PWM) bővítése
Nagyon hasznos bővítőeszköz az impulzusszélesség-moduláció-bővítő (PWM-bővítő). Ez az eszköz kifejezetten hasznos LED-ek vezérlése esetén. Amikor a mikrovezérlő nem csinál semmit, alvó állapotba lehet állítani, és ilyenkor a PWM-bővítő felel a LED megfelelő állapotba állításáért.
A PWM-bővítő használatára gyakran látható tökéletes példa az olyan RGB-nyomógombáramkörökben, amelyek az E-Switch cég PV6F240SSG jelű RGB-nyomógombját vagy a Schurter Electronic Components cég 3-101-399 jelű SPST RGB-nyomógombját használják (3. ábra).
A Schurter cég RGB-nyomógombja egy piros, egy zöld és egy kék LED-et tartalmaz egy SPST (egysarkú egy áramkörös) nyomógombon belül, ami színsémák alkalmazását teszi lehetővé a fejlesztők számára. Az ilyen jellegű alkalmazások tökéletesek PWM-bővítő integrált áramkörökhöz.
Az I2C sínnel való használatra alkalmas PWM-bővítő IC a Maxim Integrated cég MAX7315 jelű eszköze. A MAX7315 nyolc PWM (impulzusszélesség-modulációs) porttal van ellátva, és van LED-fényerő-szabályozó funkciója is. Ez könnyedén kielégíti az RGB-kapcsoló vezérléséhez szükséges három csatornát, lehetővé téve, hogy egy eszköz több kapcsolót és néhány önálló LED-et is vezéreljen. Van még egy kilencedik port is, amely használható átmenetérzékelési megszakításként vagy általános célú kimenetként.
A MAX7315 eszköz I2C illesztőfelülete egy kissé bonyolultabb, mint az NXP cég PCA8574 jelű eszközéé, mivel egynél több regisztert tartalmaz. A fejlesztőknek ebből következően meg kell címezniük a szolgaeszközt, meg kell adniuk az írásban és az olvasásban érdekelt memóriacímet, majd végre kell hajtaniuk az írást vagy olvasást. A MAX7315 memória-hozzárendeléseit a 4. ábra mutatja.
A MAX7315 regiszterkiosztása egyszerű, és módot ad a fejlett impulzusszélesség-modulációs (PWM) funkciók egyszerű elérésére.
A bővítők ötvözése felügyeletidőzítővel (WDT), EEPROM-mal és impulzusszélesség-modulációval (PWM)
Amint látható, az I2C sínt használó be- és kimenetbővítők rendkívül hatékonyak önálló eszközként használva. Azaz csak olyan különleges funkciókat tartalmaznak, mint a be- és kimenetek vagy az impulzusszélesség-moduláció. Az olyan bővítők, mint a Cypress Semiconductor cég CY8C9520A jelű többportos be- és kimenetbővítője több perifériabővítést tartalmaznak egy integrált áramköri tokban. A CY8C9520A háromféle változatban kapható: 20 bites, 40 bites és 60 bites bővítőként. Ezek a lábak beállíthatók bemenetként, kimenetként vagy impulzusszélesség-modulátorként (5. ábra).
A be- és kimenetbővítés mellett a CY8C9520 tartalmaz egy EEPROM-ot is, amely használható az eszköz olyan lényeges adatainak tárolására, mint a gyári szám, valamint a fontos beállítási paraméterek.
Ha jobban megnézzük az 5. ábrát, láthatjuk a GPort 2 porton a WD6 lábat. Ez egy felügyeletidőzítő kimeneti láb, amelyet a mikrovezérlő újraindítására lehet használni, ha az nem kommunikál a CY8C9529 felügyeletidőzítőjével. A felügyeletidőzítő paraméterei teljes mértékben beállíthatók, ami használható arra, hogy még stabilabb legyen az alkalmazáskód.
5. ábra A Cypress Semiconductor cég CY8C9520 jelű terméke 20 bites, 40 bites vagy 60 bites be- és kimenetbővítő EEPROM-mal. A bővítőlábak beállíthatók bemenetként, kimenetként vagy impulzusszélesség-modulátorként (A kép forrása: Cypress Semiconductor)
Tanácsok és trükkök a mikrovezérlők képességeinek bővítéséhez
Sok olyan technikai megoldás létezik, amelyek segítségével bővíthetők a mikrovezérlők képességei. Alább néhány olyan tanács és trükk olvasható, amelyek segítséget nyújthatnak:
-
Használjon I2C sínt a külső eszközök illesztőfelületeként. Ennek az illesztőfelületnek csak két lábra van szüksége, és több szolgaeszköz kiszolgálására képes.
-
Mielőtt betervezné az alkatrészt valamilyen hardvereszközbe, vásároljon valamilyen fejlesztői kártyát, vagy forrassza az IC-t egy bővítőkártyára, és ellenőrizze, hogy megfelel-e a rendszer minden igényének.
-
Használjon I2C sínt használó eszközöket a bővítőeszköz illesztésére, és tanulja meg, hogyan működik. Ez jelentős mértékben felgyorsítja a szoftverfejlesztést.
-
A szoftverfejlesztés során figyelje sínelemző segítségével a külső eszközzel való kommunikációt, hogy minimálisra csökkentse a hibakeresés idejét.
-
Amikor csak lehetséges, válasszon olyan eszközt, amelyben van külső felügyeletidőzítő. Ez olyan eszköz lehet, amely még stabilabbá teheti a létrehozott rendszert.
-
Ha a beállítási adatokon túli adatokat az IC-n kívüli memóriába menti, használjon nagy sebességű illesztőfelületet, amilyen például az SPI.
-
Ügyeljen arra, hogy a mikrovezérlő I2C-vezérlője kezelni tudja, ha egy eszköz negatív visszaigazolást (NAK) ad vissza, vagy ha a sín működési hibát produkál. Ezeknek a vezérlőknek az esetében nem szokatlan, hogy figyelmen kívül hagyják a hibákat, és végtelen hurokba kerülnek, ha nem várt választ kapnak.
Következtetés
Amikor a tervezés arra a pontra ér, hogy a mikrovezérlőnek nincs több be- vagy kimenete, a fejlesztőknek nem kell kukába dobniuk a tervet, és a nulláról újrakezdeniük. Ehelyett használhatnak külső perifériaintegrált áramköröket, amelyek lehetővé teszik, hogy további képességekkel ruházzák fel a tervezett rendszert.
Szerző: Rich Miron – Digi-Key Electronics
Digi-Key Electronics
Angol/német nyelvű kapcsolat
Hermann W. Reiter
Director, Global Strategic Business Development
Digi-Key Electronics Germany
Tel.: +49 151 6286 5934
E-mail: Ez az e-mail-cím a szpemrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.
www.digikey.hu
Még több Digi-Key Electronics