Stai navigando sul sito web per i clienti provenienti da: Italia. In base ai dati sulla posizione, la versione suggerita della pagina è USA / US

+1 300 000 prodotti nell’offerta

6000 pacchi giornalmente

+300 000 clienti da 150 paesi

Quick Buy Preferiti
Carrello

Microcontroller PIC16 con funzionalità FPGA

Data di pubblicazione: 02-07-2024 🕒 9 min di lettura

La nuova famiglia di microcontroller PIC16F131xx del marchio Microchip è la risposta all'evoluzione e alla sempre maggiore crescente miniaturizzazione dei dispositivi elettronici. Le loro funzionalità consentono di gestire l'energia con parsimonia, nonché di costruire controller con tempi di risposta prevedibili.

Uno dei requisiti chiave dei progettisti dei moderni sistemi embedded (es. embedded) è quello di ottenere un comportamento del circuito prevedibile in temini di tempi di risposta. In pratica, si tratta di ridurre i tempi di risposta ai cambiamenti che si verificano nei processi gestiti: risposta immediata ai dati di ingresso provenienti da sensori, porte di comunicazione o interfaccia utente. Questo effetto può essere ottenuto aumentando la potenza di calcolo dei chip, tuttavia questo metodo non è ottimale, in quanto porta allo spreco di grandi quantità di energia. Per evitare il supporto software dei processi principali, il marchio Microchip usa nei propri microcontroller periferiche indipendenti dal core (Core Independent Peripherals) Una novità di questa tecnologia è il sistema dei gate logici programmabili (Configurable Logic Block), che è stato integrato nella nuova famiglia di microcontroller a 8 bit del produttore, i circuiti PIC16F131xx.

Microcontroller PIC16F131xx

In questo articolo ci occuperemo di temi quali:

Parametri e periferiche

Di seguito sono state illustrate le soluzioni CIP e CLB e il modo in cui queste preservano la potenza di calcolo dei chip per la gestione delle applicazioni, mentre le stesse si occupano di compiti più semplici (gestione di pulsanti, alcuni display, conversione di valori acquisiti da convertitori). Tuttavia, prima di tutto, vale la pena dare un'occhiata alle specifiche e alla struttura dei microcontroller PIC16F131xx.

I circuiti presentati si basano sulla classica architettura Harvard a 8 bit. Sono disponibili nei formati a foro passante (THT) e a montaggio superficiale (SMD) e sono disponibili in alloggiamenti DIP, DFN, SSOP, TSSOP, SOIC e VQFN –offrono 6, 12 o 18 pin per ingressi/uscite. Il grande vantaggio dei circuiti è un'ampia gamma di tensioni di alimentazione: da 1,8 V a 5,5 V DC. La velocità di clock viene eseguita utilizzando un segnale con una frequenza di 32MHz e il tempo minimo di esecuzione dell'istruzione è di 125 ns. Sono stati previsti da 256B a 1024B di memoria operativa SRAM e fino a 14kB di memoria di programma (FLASH).

Ai progettisti viene offerta un'ampia gamma di periferiche hardware, come ad es. generatori di segnale PWM, contatori/timer a 8 e 16 bit, controller per bus seriale EUSART, una porta MSSP (Host Synchronious Serial Port) che può funzionare in modalità di supporto dell'interfaccia I2C o SPI, comparatori configurabili con tempo di risposta ridotto (50ns), convertitore digitale-analogico (DAC) a 8 bit e convertitore analogico/digitale con possibilità di computazione (ADCC) a 10 bit, ovvero l'elaborazione hardware dei valori acquisiti. A questo punto è necessario prestare attenzione alle periferiche CIP incluse nei sistemi presentati.

Periferiche indipendenti dal core

Le periferiche che funzionano indipendentemente dal core ossia CIP (ing. Core Indpendent Peripherals) sono state incluse nei prodotti Microchip da molto tempo, sia nella famiglia PIC, che AVR®. Consentono di eseguire determinati operazioni (ad es. la comunicazione con i sensori) in background, senza utilizzare la potenza di calcolo del processore, che è disponibile nella sua interezza per il programma principale, consentendo un minor consumo energetico e la semplificazione del programma stesso. Periferiche dedicate possono essere utilizzate per supportare la trasmissione dei dati ((I2C, CAN, USB), temporizzazione (timer), generazione di segnali PWM o utilizzo di segnali analogici (ADC, OP-AMP, DAC).

Explore the PIC16F13145 MCU Family - A Quick Overview

Periferica CLB

L'innovazione più importante introdotta nei microcontroller PIC16F131xx è il posizionamento nella loro struttura di elementi logici indipendenti e configurabili (per via del loro metodo di funzionamento, questo sistema è classificato come periferica CIP). Questa tecnologia è denominata con l'abbreviazione CLB dalla frase Configurable Logic Block. Il suo scopo è quello di garantire la sicurezza funzionale e tempi di risposta immediati. Il CLB si basa su strutture note dai circuiti FPGA, ovvero offrono il tempo più breve possibile per l'elaborazione dei segnali di ingresso. Il CLB funziona con l'utilizzo di porte logiche base, che possono essere configurate liberamente dal progettista per le esigenze di una specifica applicazione. Inoltre, consente di miniaturizzare i dispositivi di destinazione escludendo componenti esterni e riducendo le dimensioni del PCB. Un importante vantaggio dei CLB è la possibilità di una determinazione precisa del tempo in cui le operazioni saranno completate. Questo poiché anche se queste attività assumono la forma di procedure relativamente complesse, verranno sempre eseguite con l'hardware.

Tipi disponibili di porte logiche

Nei microcontroller PIC16F131xx, la struttura CLB è costituita da componenti discreti che formano 32 celle identiche, ognuna delle quali è il cosiddetto elemento logico di base (abbreviato BLE dall'ing. Basic Logic Element). Tutti sono sincronizzati con il fronte di salita del segnale CLBCLK. A seconda delle esigenze, la cella ne simula un fronte specificato in fase di programmazione del circuito logico. Può trattarsi di:

  • porta AND (max. 4 ingressi);
  • porta NAND (2 ingressi);
  • porta OR (max. 4 ingressi);
  • porta NOR (2 ingressi);
  • porta XOR (max. 4 ingressi);
  • porta XNOR (2 ingressi);
  • negatore o buffer (1 ingresso e 1 uscita);
  • flip-flop tipo D o JK;
  • tabella LUT configurabile (Lookup Table, fino a 4 ingressi).

È importante sottolineare che l'utente ha un'ampia scelta di segnali di ingresso e di uscita. I valori condizionali possono essere ricavati da un registro a 32 bit accessibile dal programma, possono rappresentare lo stato sulle linee I/O del microcontroller e provenire da un generatore PWM, da un timer/contatore o anche da un buffer del bus seriale SPI. Lo stesso vale per i pin delle porte configurate, che in fase di programmazione possono essere collegate al convertitore, al timer, alle linee fisiche di uscita (pin) del circuito. Opzionalmente: ciascuno dei 4 gruppi di celle può generare un interrupt supportato dal programma. Inoltre vale la pena ricordare che le uscite delle celle BLE sono a 3 stati.

Configurazioni di celle disponibili nella struttura CLB.

Riassumendo: il progettista riceve una struttura completamente configurabile simile a un FPGA implementato in un moderno microcontroller a 8 bit. Sono disponibili 102 byte di memoria interna per la memorizzazione delle impostazioni. Pertanto la domanda rimane: Come avviene la configurazione?

Configurazione e programmazione

La configurazione degli FPGA è spesso considerata una specializzazione rigorosa che richiede conoscenze approfondite. Gli strumenti per lavorare con i prodotti PIC16F131xx sono stati preparati in modo tale che il loro utilizzo non presenti grosse difficoltà. Anche programmatori non esperti possono apprendere le basi in breve tempo e ottenere i risultati desiderati.

Innanzitutto, il processo di configurazione del CLB viene effettuato utilizzando un software dedicato denominato CLB Synthetizer, basato su un'interfaccia grafica. Il suo utilizzo è simile alla preparazione di un diagramma di flusso, grazie al quale il programma rimane leggibile anche per le persone che non hanno familiarità con la piena funzionalità dell'ambiente.

Il programma è disponibile sotto forma di plug-in dell'IDE proprietario dell'azienda Microchip, ossia MPLAB® X. Lo strumento può essere utilizzato anche in un normale browser, in quanto è disponibile in forma di applicazione web. Il risultato del lavoro nel CLB Synthetizer è un file di configurazione, che deve poi essere importato nel progetto, o un file sorgente in linguaggio VERILOG (estensione .clb).

Esempio di configurazione con l'utilizzo dell'ambiente CLB Synthetizer.

La preparazione del diagramma viene effettuata trascinando i blocchi simbolici e collegandoli tra loro e alle linee I/O predefinite. Il lavoro nel programma MPLAB® può essere descritto in sette fasi:

  1. Impostazione dei segnali di clock.
  2. Impostazione dei blocchi digitali come ad es. UART, I2C, TMR e altri.
  3. Aggiunta di periferiche analogiche come ADCC, DAC.
  4. Aggiunta di una periferica CLB al progetto creando un diagramma di flusso con i componenti che compongono le celle BLE e definizione dei collegamenti tra questi e i segnali di ingresso.
  5. Esecuzione della sintesi (creazione di un file di configurazione)
  6. Infine è necessario definire e assegnare funzionalità agli ingressi/uscite del microcontroller utilizzato nel progetto.
  7. Infine, viene generato il codice Melody.

Vale la pena notare che per scopi didattici il marchio Microchip ha preparato una serie di esempi pratici di applicazioni CLB per una varietà di compiti. Questi sono ad es.:

  • gestione del registro a scorrimento per LED WS2812 programmabili;
  • hardware debouncing di segnali provenienti dai pulsanti;
  • codifica/decodifica della modulazione Manchester;
  • multiplexing di valori a 4 bit in segnali di controllo del display a 7 segmenti;
  • elaborazione della frequenza.

Una di queste applicazioni, la creazione di un driver per display a LED da 7", è mostrata nel video qui sotto. Va sottolineato qui che l'effetto di tale configurazione CLB è un programma che funziona in modo completamente indipendente dal core del microcontroller. In pratica sostituirebbe un chip di controllo dedicato, semplificando e riducendo il perimetro del dispositivo progettato, oltre a ridurne il fabbisogno di energia.

Chiptorials - CLB Synthesizer Quick Start Guide – Driving a 7-segment Display

Kit di sviluppo Curiosity Nano

La piattaforma Curiosity Nano è stata creata per fornire ai clienti Microchip l'accesso ai kit di sviluppo che presentano le funzionalità dei più recenti microcontrollori del produttore. Le schede sono preparate in un formato comodo: con debugger integrato, programmatore e accesso ai pin del microcontroller. Questo li rende eccellenti strumenti di formazione ed educazione. Naturalmente è stata sviluppata anche una speciale scheda Curiosity Nano per la famiglia PIC16F131xx.

Utilizzando connettori pin, la scheda può essere collegata al circuito prototipato.

Il modello EV06M52A è un kit di sviluppo dotato di un microcontroller PIC16F13145. Il circuito è dotato di un connettore USB C per l'alimentazione e la programmazione. La tensione fornita al microcontrollore proviene dal regolatore MIC5353 LDO. Opzionalmente, un risonatore al quarzo può essere posizionato nel circuito per l'orologio RTC (32,768 kHz). Lo stato dell'alimentazione e della programmazione è indicato mediante un LED verde. Un altro LED giallo è collegato a una delle uscite del microcontroller può essere gestito dal microcontroller. Sulla scheda inoltre è stato posizionato un pulsante.

Disposizione dei componenti e descrizione dei pin della scheda EV06M52A.

Adattatori

Le funzionalità del kit di sviluppo possono essere estese utilizzando adattatori dedicati per le schede Curiosity Nano.

Adattatore AC164162

I prodotti sopra descritti dispongono di un connettore pin universale (femmina) da incorporare la scheda Curiosity Nano. Nel caso del modello AC164162 il circuito è dotato di alcuni elementi interessanti, come 3 connettori compatibili con lo standard microBUS™ utilizzato nei moduli Click del marchio Mikroe. Vale la pena notare che il catalogo della TME comprende oltre un migliaio di modelli diversi di tali schede. . Sul PCB inoltre è stato predisposto un connettore per estensioni Xplained Pro. Inoltre, il tutto può essere alimentato a batterie, poiché l'adattatore ha un sistema di ricarica e gestione dell'alimentazione integrato compatibile con le celle agli ioni di litio e ai polimeri di litio.

Kit di sviluppo EV06M52A

Scarica
Se desideri utilizzare l'articolo, ti preghiamo di indicare la TME come fonte e di aggiungere un link al testo originale quando questo verrà ripubblicato online.

rightColumnPicture rightColumnPicture