Nieuwe chipfamilie van Microchip met configureerbare logische blokken

De nieuwe familie PIC16F131xx microcontrollers van Microchip is gericht op de evolutie en steeds verdergaande miniaturisatie van elektronische apparaten. Hun functionaliteit maakt kosteneffectief energiebeheer mogelijk, alsmede het bouwen van controllers met voorspelbare reactietijden.

Eén van de belangrijkste eisen voor ontwerpers van hedendaagse ingebouwde (of embedded) systemen is het bereiken van tijdvoorspelbaar circuitgedrag. In de praktijk betekent dit het verkorten van de reactietijd op veranderingen in beheerde processen: onmiddellijke reactie op ingang van sensoren, communicatiepoorten of de gebruikersinterface. Dit effect kan worden bereikt door de rekenkracht van de circuits te vergroten, maar deze methode is suboptimaal omdat er dan grote hoeveelheden energie worden verspild. Om te voorkomen dat core-processen door software worden ondersteund, gebruikt Microchip kernonafhankelijke randapparatuur (Core Independent Peripherals). Een innovatie in deze technologie is het programmeerbaar logische poort circuit (Configurable Logic Block), dat is geïntegreerd in de nieuwe familie 8-bits microcontrollers van de producent, de PIC16F131xx chip.
 

Parameters en randapparatuur

In de volgende sectie van de test worden CIP- en CLB oplossingen besproken en hoe ze circuits in staat stellen rekenkracht te behouden voor applicatiebeheer terwijl ze zelf eenvoudigere taken overnemen (bediening van knoppen, sommige displays, omrekening van waarden afkomstig van transducers). Het is echter de moeite waard om eerst de specificatie en het ontwerp van de PIC16F131xx microcontrollers te bekijken.

De desbetreffende chips zijn gebaseerd op de klassieke 8-bits Harvard-architectuur. De systemen zijn verkrijgbaar in zowel doorvoergat- (THT) als oppervlaktemontage- (SMD) formaten, en in DIP, DFN, SSOP, TSSOP, SOIC en VQFN vormfactoren – met 6, 12 of 18 pinnen I/O. Een groot voordeel van de chips is het brede bereik van aanvaardbare voedingsspanningen: van 1,8 V tot 5,5 V DC. De kloksnelheid is 32 MHz en de minimale instructietijd is 125 ns. De chips bieden van 256 B tot 1024 B SRAM en tot 14 kB programmageheugen (FLASH).

Ontwerpers kunnen gebruik maken van een uitgebreide selectie van hardware-randapparatuur, zoals PWM-signaalgeneratoren, 8- en 16-bits tellers/timers, EUSART seriële buscontroller, MSSP (Host Synchronous Serial Port) die kan werken in I2C of SPI interface-ondersteuningsmodus, configureerbare comparatoren met gereduceerde reactietijd (50 ns), een 8-bits digitaal-naar-analoog omzetter (DAC) en een 10-bits berekenbare analoog-naar-digitaal omzetter (ADCC), hardwareverwerking van ontvangen waarden. Op dit punt is het belangrijk om de CIP-randapparatuur in de gepresenteerde circuits op te merken.

Core Independent Peripherals

Kernonafhankelijke randapparatuur, of CIP's (Core Indpendent Peripherals) zijn reeds geruime tijd opgenomen in Microchip producten, zowel in de PIC® en AVR® families. Hiermee kunnen bepaalde taken (bijv. communicatie met sensoren) op de achtergrond worden uitgevoerd, zonder de rekenkracht van de CPU te verbruiken, die volledig beschikbaar is voor de uitvoering van het hoofdprogramma, wat leidt tot minder energieverbruik en vereenvoudiging van het programma zelf. Er kunnen specifieke randapparaten worden gebruikt voor gegevensoverdracht (I2C, CAN, USB), timing (timers), het genereren van PWM-signalen of het werken met analoge signalen (ADC, OP-AMP, DAC).
 
 

CLB Periferie

De belangrijkste innovatie die in de microcontrollers PIC16F131xx is geïntroduceerd, is de opname van onafhankelijke, configureerbare logische elementen in hun structuur (vanwege de manier waarop ze werken, wordt deze schakeling geclassificeerd als een CIP-randapparaat). Deze technologie wordt afgekort tot CLB van de uitdrukking Configurable Logic Block. De bedoeling is om functionele veiligheid en onmiddellijke reactietijd te bieden. CLB is gebaseerd op structuren die bekend zijn van FPGA's, en biedt dus de snelste verwerkingstijd voor ingangssignalen. De CLB werkt met logische basispoorten, die door de ontwerper naar wens geconfigureerd kunnen worden om aan de behoeften van een specifieke toepassing te voldoen. Bovendien maakt het miniaturisatie van doelapparaten mogelijk door externe componenten uit te sluiten en de PCB-afmetingen te verkleinen. Een belangrijk voordeel van CLB is de mogelijkheid om precies de tijd te bepalen waarbinnen taken zullen worden voltooid. Dit komt omdat, zelfs als deze taken de vorm aannemen van relatief complexe procedures, ze altijd in hardware geïmplementeerd zullen worden.

Beschikbare soorten logische poorten

In de microcontrollers PIC16F131xx bestaat de CLB-structuur uit discrete componenten die 32 identieke cellen vormen, elk een zogenaamd Basic Logic Element (afgekort BLE). Ze worden allemaal voorzien van een klok door de opgaande rand van het CLBCLK-signaal. Afhankelijk van de behoeften simuleert een cel één logische schakeling die in de programmeerfase is gedefinieerd. Dit kan zijn:
 
  • AND-poort (max. 4 ingangen);
  • NAND-poort (2 ingangen);
  • OR-poort (max. 4 ingangen);
  • NOR-poort (2 ingangen);
  • XOR-poort (max. 4 ingangen); * XNOR-poort (2 ingangen);
  • XNOR-poort (2 ingangen);
  • negator of buffer (1 ingang en uitgang);
  • D- of JK-type flip-flop;
  • configureerbare LUT (Lookup Table, max. 4 ingangen).
Belangrijk is dat de gebruiker een ruime keuze heeft aan ingangs- en uitgangssignalen. Voorwaardelijke waarden kunnen afkomstig zijn van een 32-bits register dat toegankelijk is vanaf het programmaniveau, de toestand op de I/O-lijnen van de microcontroller vertegenwoordigen, of afkomstig zijn van een PWM-generator, timer/teller of zelfs een SPI seriële busbuffer. Dit is ook het geval voor de uitgangen van de geconfigureerde poorten, die in de programmeerfase verbonden kunnen worden met de converter, timer, fysieke uitgangslijnen (pinnen) van de chip. Optioneel: elk van de 4 groepen cellen kan een interrupt genereren die door het programma wordt afgehandeld. Ook moet hier vermeld worden dat de uitgangen van de BLE-cellen 3-statig zijn.
 
Beschikbare celconfiguraties van de CLB-structuur.
Samenvattend: De ontwerper beschikt over een volledig configureerbare FPGA-achtige structuur die geïmplementeerd is in een moderne 8-bits microcontroller. Er zijn 102 bytes intern geheugen voor het opslaan van instellingen. De vraag blijft dus – hoe wordt de configuratie uitgevoerd?

Configuratie en programmering

De configuratie van FPGA's wordt vaak beschouwd als een strikte specialisatie die uitgebreide kennis vereist. De hulpmiddelen voor het werken met de producten van de PIC16F131xx zijn zo gemaakt dat het gebruik ervan niet al te moeilijk is. Zelfs niet-geavanceerde programmeurs kunnen in korte tijd de basis onder de knie krijgen en de gewenste resultaten behalen.

Ten eerste wordt het configuratieproces van de CLB uitgevoerd met behulp van speciale software genaamd CLB Synthesizer, die gebaseerd is op een grafische interface. Het gebruik ervan komt overeen met de voorbereiding van een blokschema, zodat het programma leesbaar blijft, zelfs voor degenen die niet bekend zijn met de volledige functionaliteit van de omgeving.

Het programma is beschikbaar als een plug-in in Microchips eigen IDE, de MPLAB® X. Het hulpprogramma kan ook in een gewone browser worden gebruikt omdat het beschikbaar is als een webtoepassing. Het resultaat van het werken in CLB Synthesizer is een configuratiebestand, dat vervolgens in het project geïmporteerd moet worden, of een bronbestand in VERILOG-taal (extensie.clb).
 
Voorbeeldconfiguratie met behulp van de CLB Synthesizer-omgeving
De bouw van het schema vindt plaats door symboolblokken te tekenen en deze aan elkaar en aan voorgedefinieerde in-/uitgangslijnen te koppelen. Het werken in MPLAB® kan in zeven stappen worden beschreven:
  1. Instellen van de kloksignalen.
  2. Instellen van digitale blokken zoals UART, I2C, TMR en andere.
  3. Toevoegen van analoge randapparatuur zoals ADCC, DAC.
  4. Toevoegen van de CLB-periferie aan het ontwerp door een blokschema te maken met de componenten in de BLE-cellen en het definiëren van de verbindingen tussen deze componenten en de ingangssignalen.
  5. Synthese (aanmaken van configuratiebestand).
  6. Bepaal en wijs als laatste functionaliteit toe aan de ingangen/uitgangen van de microcontroller die in het project worden gebruikt.
  7. Uiteindelijk wordt de Melody-code gegenereerd.
Voor educatieve doeleinden heeft Microchip een aantal praktische voorbeelden opgesteld van het gebruik van CLB's om verschillende taken uit te voeren. Deze omvatten:
 
  • ondersteuning van het schuifregister van de programmeerbare WS2812 LED's;
  • hardware debouncing signalen afkomstig van knoppen;
  • coderen/decoderen van Manchester modulatie;
  • multiplexen van een 4-bit waarde in signalen die een 7-segment display aansturen;
  • frequentieconversie.
Eén van deze applicaties, het maken van een 7-segment LED-display stuurprogramma, wordt getoond in de onderstaande video. Hierbij moet worden benadrukt dat het resultaat van een dergelijke CLB-configuratie een programma is dat volledig onafhankelijk van de microcontroller-kern draait. In de praktijk zou het de specifieke drivercircuits vervangen, waardoor de circuits van het apparaat dat ontworpen wordt vereenvoudigd en verkleind worden, en waardoor er minder stroom nodig is.
 
 

Curiosity Nano development kit

Dit Curiosity Nano-platform is ontwikkeld om Microchip-klanten starterspakket te bieden die de mogelijkheden van de nieuwste microcontrollers van de producent demonstreren. De printplaten zijn voorbereid in een handig formaat: met geïntegreerde debugger, programmer en toegang tot microcontrollerpennen. Dit maakt ze tot een uitstekend opleidings- en trainingstool. Natuurlijk is er ook een speciaal Curiosity Nano printplaat ontwikkeld voor de PIC16F131xx familie.
 
Met behulp van pinconnectors kan de printplaat worden aangesloten op het prototypecircuit.
Het EV06M52A model is een starterspakket met een PIC16F13145 microcontroller. Het circuit bevat een USB C connector voor voeding en programmering. De spanning voor de microcontroller wordt geleverd door de LDO MIC5353 stabilisator. Optioneel kan een kwartsresonator voor de RTC klok (32,768 kHz) in de schakeling worden geplaatst. De voedings- en programmeerstatus wordt aangegeven met een groene LED. Een andere, gele LED is bevestigd aan een van de uitgangen van de microcontroller en kan door de microcontroller worden bediend. De printplaat heeft ook een knop.
 
Indeling van onderdelen en pin-out van de EV06M52A-printplaat.

Adapters

De functionaliteit van het starterspakket kan worden uitgebreid met adapters speciaal voor de Curiosity Nano-printplaten.

De bovenstaande producten hebben een universele pinconnector (vrouwelijk) voor het inbouwen van het Curiosity Nano-printplaat. De AC164162 heeft een aantal interessante eigenschappen, zoals 3 connectoren die voldoen aan de MicroBUS™ standaard die gebruikt wordt in Click modules van de producent Mikroe. Het is de moeite waard om hier op te merken dat er meer dan duizend verschillende modellen van dergelijke printplaten beschikbaar zijn in de TME-catalogus. Op de printplaat zit ook de extensie Xplained Pro connector. Verder kan het geheel worden gevoed door oplaadbare batterijen, aangezien de adapter een geïntegreerd oplaad- en voedingsbeheercircuit heeft compatibel met lithium-ion- en lithium-polymeercellen.
 
AC164162 adapter
De tekst is opgesteld door Transfer Multisort Elektronik Sp. z o.o.
https://www.tme.eu/nl/news/about-product/page/60236/microcontrollers-pic16-met-fpga-functionaliteit/