Jste zde

Mikrokontroléry PIC16 s FPGA: nová řada systémů Microchip s konfigurovatelnými logickými bloky

Nová rodina mikrokontrolérů PIC16F131xx firmy Microchip je reakcí na vývoj a stále větší miniaturizaci elektronických zařízení. Jejich funkce umožňují hospodařit s energií šetrně a také vytvářet řídicí jednotky s předvídatelnou dobou odezvy.

Jedním z klíčových požadavků moderních konstruktérů vestavěných systémů (tedy embedded) je dosažení časově předvídatelného chování obvodu. V praxi se jedná o zkrácení doby odezvy na změny, ke kterým dochází v řízených procesech: okamžitá odezva na vstupní data pocházející ze senzorů, komunikačních portů nebo uživatelského rozhraní. Tohoto efektu lze dosáhnout zvýšením výpočetního výkonu systémů, což však není optimální metoda, protože vede k plýtvání velkým množstvím energie. Aby se vyhnula programování základních procesů jádra, používá společnost Microchip ve svých mikrokontrolérech periferie pracující nezávisle na jádře. (Core Independent Peripherals) Novinkou v této technologii je programovatelný systém logických hradel (Configurable Logic Block), který byl integrován do nové řady 8bitových mikrokontrolérů výrobce, a to systémů PIC16F131xx.

V tomto článku se věnujeme následujícím tématům:

  • Základní parametry a specifikace rodiny PIC16F131xx
  • Periferie pracující nezávisle na jádru
  • Funkce FPGA v jednom pouzdře s mikrokontrolérem
  • Použití CLB k nahrazení externích logických komponent
  • Autorský software CLB Synthetizer
  • Učení a prototypování se sadou Curiosity Nano
  • Kombinace mikrokontroléru PIC16F13145 s moduly Click značky Mikroe

Parametry a periferie

Následující část textu pojednává o řešeních CIP a CLB a o tom, jak umožňují zachovat výpočetní výkon systémů pro potřeby správy aplikací, zatímco samy přebírají jednodušší úkoly (ovládání tlačítek, některých displejů, převod hodnot stažených z převodníků). Nejprve však stojí za to se podívat na specifikaci a konstrukci mikrokontrolérů PIC16F131xx.

Uvedené systémy jsou založeny na klasické, osmibitové harvardské architektuře. Jsou k dispozici ve formátech pro montáž osazováním (THT) a povrchovou montáž (SMD), k dispozici jsou také pouzdra DIP, DFN, SSOP, TSSOP, SOIC a VQFN  – nabízejí 6, 12 nebo 18 pinů  vstupů/výstupů. Velkou výhodou těchto systémů je široký rozsah přijatelných napájecích napětí: od 1,8 V do 5,5 V DC. Taktování se provádí pomocí signálu s frekvencí 32 Mhz a minimální doba provedení příkazu je 125 ns. Systémy mají od 256 B do 1024 B operační paměti SRAM a až 14 kB programové paměti (FLASH).

Konstruktéři mají k dispozici bohatý výběr hardwarových periferií, jako jsou generátory signálů PWM, 8 a 16bitové čítače/časovače, kontrolér sériové sběrnice EUSART, MSSP port (Host Synchronious Serial Port), který může pracovat v režimu podpory rozhraní I2C nebo SPI, konfigurovatelné komparátory se zkrácenou dobou odezvy (50 ns), osmibitový digitálně-analogový převodník (DAC) a desetibitový analogově-digitální převodník s možností komputace (ADCC), tedy hardwarového zpracování načtených hodnot. Zde je třeba upozornit na periferní zařízení CIP, která jsou součástí prezentovaných systémů.

Core Independent Peripherals

Periferní zařízení pracující nezávisle na jádru, tedy CIP (angl. Core Indpendent Peripherals) jsou již dlouhou dobu součástí výrobků Microchip, a to jak rodin PIC, tak AVR. Umožňují provádět určité úlohy (např. komunikaci se senzory) na pozadí, bez využití výpočetního výkonu procesoru, který je plně k dispozici pro provádění hlavního programu, což vede ke snížené spotřebě energie a zjednodušení samotného programu. Speciální periferie lze použít pro podporu přenosu dat (I2C, CAN, USB), měření času (časovače), generování PWM signálu či práci s analogovými signály (ADC, OP-AMP, DAC).

CLB periferie

Nejdůležitější inovací zavedenou v mikrokontrolérech PIC16F131xx je jejich začlenění do struktury nezávislých, konfigurovatelných logických prvků (vzhledem ke způsobu, jakým fungují, je tento systém klasifikován jako periferie CIP). Tato technologie se označuje zkratkou CLB, odvozenou od fráze Configurable Logic Block. Jejím účelem je zajistit funkční bezpečnost a okamžitou reakční dobu. CLB je založen na strukturách známých z FPGA, tedy nabízí nejkratší možnou dobu zpracování vstupních signálů. CLB pracuje s využitím základních logických hradel, která může konstruktér libovolně konfigurovat pro potřeby konkrétní aplikace. Kromě toho umožňuje miniaturizaci cílových zařízení vyloučením externích komponent a zmenšením rozměrů PCB. Důležitou výhodou CLB je možnost přesně určit čas, za který budou úkoly provedeny. Je to proto, že i když tyto úkoly mají podobu relativně složitých postupů, budou vždy prováděny pomocí hardwaru.

Dostupné typy logických hradel

V mikrokontrolérech PIC16F131xx se struktura CLB skládá z diskrétních součástek tvořících 32 identických buněk, z nichž každá je takzvaným základním logickým prvkem (zkráceně BLE z angl.). Basic Logic Element). Všechny jsou taktovány náběžnou hranou signálu CLBCLK. V závislosti na potřebách buňka simuluje jeden logický obvod definovaný ve fázi programování. Může to být:

  • hradlo AND (max. 4 vstupy);
  • hradlo NAND (2 vstupy);
  • hradlo OR (max. 4 vstupy);
  • hradlo NAND (2 vstupy);
  • hradlo OR (max. 4 vstupy);
  • hradlo XNOR (2 vstupy);
  • negátor nebo vyrovnávací paměť (1 vstup a výstup);
  • klopný obvod typu D nebo JK;
  • konfigurovatelná tabulka LUT (Lookup Table, až 4 vstupy).

Důležité je, že uživatel má k dispozici široký výběr vstupních a výstupních signálů. Podmiňující hodnoty mohou pocházet z 32bitového registru přístupného na programové úrovni, mohou prezentovat stav na I/O linkách mikrokontroléru nebo pocházet z generátoru PWM, časovače/čítače, nebo dokonce z vyrovnávací paměti sériové sběrnice SPI. Totéž platí pro vývody nakonfigurovaných hradel, které lze ve fázi programování připojit k převodníku, časovači, fyzickým výstupním linkám (pinům) systému. Volitelně: každá ze 4 skupin buněk může generovat přerušení zpracovávané programem. Za zmínku stojí také to, že výstupy BLE buněk jsou třistavové.

Dostupné konfigurace buněk struktury CLB.

Když to shrneme: konstruktér má k dispozici plně konfigurovatelnou strukturu podobnou FPGA implementovanou v moderním osmibitovém mikrokontroléru. Pro ukládání nastavení je k dispozici 102 bajtů vnitřní paměti. Otázkou tedy zůstává – jak se konfigurace provádí?

Konfigurace a programování

Konfigurace FPGA systémů je často považována za úzkou specializaci, která vyžaduje rozsáhlé znalosti. Nástroje pro práci s výrobky PIC16F131xx jsou připraveny tak, aby jejich použití nezpůsobovalo větší potíže. Dokonce i nepokročilí programátoři si mohou v krátkém čase osvojit základy a dosáhnout požadovaných výsledků.

Proces konfigurace CLB se provádí především pomocí specializovaného softwaru s názvem CLB Synthetizer, který je založen na grafickém rozhraní. Jeho použití se rovná přípravě vývojového diagramu, takže program zůstává čitelný i pro osoby, které nejsou obeznámeny s plnou funkčností prostředí.

Program je k dispozici v podobě plug-inu k autorskému IDE firmy Microchip, tedy MPLAB X. Nástroj lze také použít v běžném prohlížeči, protože je k dispozici jako webová aplikace. Výsledkem práce v CLB Synthetizeru je konfigurační soubor, který je pak třeba importovat do projektu, nebo zdrojový soubor v jazyce VERILOG (přípona .clb).

Příklad konfigurace pomocí prostředí CLB Synthetizer.

Schéma je vytvořeno metodou přetažení symbolických bloků a jejich propojením mezi sebou a s předdefinovanými vstupně-výstupními linkami. Práci v MPLABu lze popsat v sedmi krocích:

  1. Nastavení taktovacích (hodinových) signálů.
  2. Nastavení digitálních bloků, jako jsou UART, I2C, TMR a další.
  3. Přidání analogových periferií, jako jsou ADCC, DAC.
  4. Přidání periferie CLB do projektu vytvořením vývojového diagramu s komponentami, které jsou součástmi buněk BLE, a definováním spojení mezi nimi a vstupními signály.
  5. Provedení syntézy (vytvoření konfiguračního souboru)
  6. Nakonec je třeba definovat a přiřadit funkce k použitým vstupům/výstupům mikrokontroléru v projektu.
  7. Nakonec dojde k vygenerování kódu Melody.

Za zmínku stojí, že pro vzdělávací účely připravila společnost Microchip řadu praktických příkladů použití CLB pro provádění různých úkolů. Patří mezi ně mimo jiné:

  • podpora posuvného registru programovatelných LED diod WS2812;
  • hardwarový debouncing signálů přicházejících z tlačítek;
  • kódování/dekódování modulace Manchester;
  • multiplexování 4-bitové hodnoty na signály ovládající sedmisegmentový displej;
  • zpracování frekvence.

Jedna z těchto aplikací, vytvoření ovladače pro 7" LED displeje, je ukázána ve videu níže. A zde je třeba zdůraznit, že výsledkem takové konfigurace CLB je program, který pracuje zcela nezávisle na jádru mikrokontroléru. V praxi by nahradil vyhrazený systém ovladače, čímž by se zjednodušil a zredukoval obvod projektovaného zařízení a snížila by se jeho energetická náročnost.


 

Vývojový kit Curiosity Nano

Platforma Curiosity Nano byla vytvořena s cílem poskytnout zákazníkům společnosti Microchip přístup k vývojovým kitům demonstrujícím možnosti nejnovějších mikrokontrolérů výrobce. Desky jsou připraveny v praktickém formátu: s integrovaným debuggerem, programátorem a přístupem k pinům mikrokontroléru. Díky tomu jsou vynikajícím školicím a vzdělávacím nástrojem. Pro rodinu PIC16F131xx byla samozřejmě vyvinuta i speciální deska Curiosity Nano.

S použitím kolíkových konektorů lze desku připojit k prototypovému obvodu.

Model EV06M52A je vývojový kit vybavený mikrokontrolérem PIC16F13145. V obvodu je umístěn konektor USB C pro napájení a programování. Napětí dodávané do mikrokontroléru pochází ze stabilizátoru MIC5353 LDO. Volitelně lze do obvodu umístit krystalový rezonátor pro RTC hodiny (32,768 kHz). Stav napájení a programování je indikován zelenou LED diodou. Další žlutá LED dioda je připojena k jednomu z výstupů mikrokontroléru a může být ovládána mikrokontrolérem. Na desce je také tlačítko.

Umístění komponent a popis vývodů desky EV06M52A.

Adaptéry

Funkčnost vývojového kitu lze rozšířit pomocí adaptérů určených pro desky Curiosity Nano.

Adaptér AC164162

Výše uvedené výrobky mají univerzální kolíkový konektor (samice) pro osazení desky Curiosity Nano. V případě AC164162 je obvod vybaven několika zajímavými prvky, jako jsou například 3 konektory kompatibilní se standardem mikroBUS™, který se používá v modulech Click od výrobce Mikroe. Zde je třeba zmínit, že katalog TME obsahuje více než tisíc různých modelů těchto desek. Na PCB je také konektor rozšíření Xplained Pro. Celé to lze navíc napájet akumulátory, protože adaptér má integrovaný systém nabíjení a správy napájení kompatibilní s lithium-iontovými a lithium-polymerovými články.

Text připravila společnost Transfer Multisort Elektronik Sp. z o.o. 
Článek byl publikován v originále ne webu TME.eu: https://www.tme.eu/cz/news/about-product/page/60236/mikrokontrolery-pic16-s-funkci-fpga/

Hodnocení článku: