Menu English Ukrainian Russo Casa

Libreria tecnica gratuita per hobbisti e professionisti Libreria tecnica gratuita


ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA
Libreria gratuita / Schemi di dispositivi radioelettronici ed elettrici

Microcontrollore PIC16C84. Breve descrizione. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Libreria tecnica gratuita

Enciclopedia della radioelettronica e dell'elettrotecnica / microcontrollori

Commenti sull'articolo Commenti sull'articolo

Questa descrizione non pretende di essere completa e contiene una serie di errori ed errori di battitura. La documentazione completa può essere ottenuta presso i distributori Microchip, i cui indirizzi sono riportati alla fine del file.

Introduzione

PIC16C84 appartiene alla famiglia dei microcontrollori CMOS. Si differenzia per il fatto che ha una EEPROM interna da 1K x 14 bit per programmi, dati a 8 bit e EEPROM da 64 byte di memoria dati. Allo stesso tempo, sono caratterizzati da basso costo e alte prestazioni. Gli utenti che hanno familiarità con la famiglia PIC16C5X possono visualizzare un elenco dettagliato delle differenze tra i controller nuovi e quelli prodotti in precedenza. Tutte le istruzioni sono una parola (larghezza 14 bit) ed eseguite in un ciclo (400 ns a 10 MHz), tranne le istruzioni di salto, che vengono eseguite in due cicli (800 ns). Il PIC16C84 ha un interrupt a quattro sorgenti e uno stack hardware a otto livelli.

Le periferiche includono un timer/contatore a 8 bit con un prescaler programmabile a 8 bit (in realtà un timer a 16 bit) e 13 linee I/O bidirezionali. L'elevata capacità di carico (25 mA max sink, 20 mA max sink) delle linee I/O semplifica i driver esterni e quindi riduce i costi complessivi del sistema. Lo sviluppo basato sui controller PIC16C84 è supportato da assemblatore, simulatore software, emulatore in-circuit (solo Microchip) e programmatore.

La serie PIC16C84 è adatta per un'ampia gamma di applicazioni, dai circuiti di controllo di motori elettrici ed automobilistici ad alta velocità a ricetrasmettitori remoti economici, strumenti di indicazione e processori di comunicazione. La presenza della ROM permette di regolare i parametri nei programmi applicativi (codici trasmettitori, regimi motore, frequenze riceventi, ecc.).

Le dimensioni ridotte del contenitore, sia convenzionali che a montaggio superficiale, rendono questa serie di microcontrollori adatta per applicazioni portatili. Il prezzo contenuto, l'economia, la velocità, la facilità d'uso e la flessibilità I/O rendono il PIC16C84 attraente anche in aree in cui i microcontrollori non sono stati utilizzati prima. Ad esempio, i timer, che sostituiscono la logica rigida nei sistemi di grandi dimensioni, i coprocessori.

Va aggiunto che il programmatore EEPROM integrato del PIC16C84 semplifica la personalizzazione del programma e dei dati per requisiti specifici anche dopo il completamento dell'assemblaggio e del test. Questa possibilità può essere utilizzata sia per la replica che per inserire i dati di calibrazione dopo il test finale.

Panoramica delle funzionalità

- solo 35 comandi semplici;

- tutti i comandi vengono eseguiti in un ciclo (400ns), ad eccezione dei comandi di transizione -2 cicli;

- frequenza di funzionamento 0 Hz ... 10 MHz (ciclo di comando min 400 ns)

- comandi a 14 bit;

- dati a 8 bit;

- Memoria di programma 1024 x 14 riprogrammabile elettricamente su chip (EEPROM);

- 36 x 8 registri di uso generale;

- 15 registri hardware speciali SFR;

- Memoria EEPROM 64 x 8 riprogrammabile elettricamente per i dati;

- stack hardware a otto livelli;

- indirizzamento diretto, indiretto e relativo di dati e comandi;

- quattro fonti di interruzione:

. ingresso esterno INT

. Overflow del timer RTCC

. interrompere al cambio di segnale sulle linee della porta B

. al termine della scrittura dei dati nella memoria EEPROM

Periferiche e I/O

- 13 linee I/O con impostazioni individuali;

- Sink/sink di corrente per pilotare i LED

. corrente massima in ingresso - 25 mA

. massima corrente di flusso - 20 mA

- Timer/contatore RTCC a 8 bit con prescaler programmabile a 8 bit;

- ripristino automatico all'accensione;

- il timer di inclusione al reset;

- timer di avviamento del generatore;

- Timer Watchdog WDT con il proprio generatore integrato che fornisce una maggiore affidabilità;

- Bit di sicurezza EEPROM per la protezione del codice;

- modalità SLEEP economica;

- bit selezionabili dall'utente per impostare la modalità di guida dell'oscillatore integrato:

- Generatore RC: RC

- risonatore al quarzo convenzionale: XT

- risonatore al quarzo ad alta frequenza: HS

- cristallo economico a bassa frequenza: LP

- memoria EEPROM del dispositivo di programmazione integrato, programmi e dati; vengono utilizzate solo due gambe.

Tecnologia CMOS

- tecnologia economica CMOS EPROM ad alta velocità;

- principio statico in architettura;

- ampia gamma di tensioni e temperature di alimentazione:

. commerciale: 2.0 ... 6.0 V, 0...+70°C

. industriale: 2.0 ... 6.0 V, -40...+70С

. automotive: 2.0 ... 6.0 V, -40...+125°C

- basso consumo

. 3 mA tipico per 5 V, 4 MHz

. 50 µA tipico per 2V, 32kHz

. 26µA tipico per la modalità SLEEP a 2V.

Schema strutturale PIC16C84

Microcontrollore PIC16C84. Breve descrizione

L'architettura si basa sul concetto di bus separati e aree di memoria per dati e comandi (architettura Harvard). Il bus dati e la memoria dati (RAM) hanno una larghezza di 8 bit e il bus di programma e la memoria di programma (ROM) sono larghi 14 bit. Questo concetto fornisce un set di istruzioni semplice ma potente progettato in modo che le operazioni di bit, byte e registro operino ad alta velocità e si sovrappongano nel recupero delle istruzioni e nei tempi del ciclo di esecuzione. La larghezza della memoria del programma a 14 bit consente di recuperare un'istruzione a 14 bit in un ciclo. La pipeline a due stadi fornisce il recupero e l'esecuzione simultanei di un'istruzione.Tutte le istruzioni vengono eseguite in un ciclo, escluse le istruzioni di salto. Il PIC16C84 ha una memoria di programma 1K x 14 situata su chip. Il programma eseguibile può risiedere solo nella ROM incorporata.

Differenze tra PIC16C84 e PIC16C5x

1. Lunghezza del comando aumentata a 14 bit. Ciò consente di organizzare ROM e RAM con una dimensione della pagina maggiore: (2K byte invece di 512 byte), (128 byte invece di 32 byte), rispettivamente.

2. Il registro alto del contatore di programma (PCLATH) controlla il cambio di pagina nella memoria di programma. I bit di selezione della pagina PA2, PA1, PA0, utilizzati a questo scopo nel cristallo PIC16C5X, vengono rimossi dal registro STATUS.

3. Sono stati modificati il ​​paging della memoria e il registro STATUS.

4. Aggiunti quattro nuovi comandi: RETURN, RETFIE, ADDLW, SUBLW. I due comandi TRIS e OPTION non sono più necessari, ma vengono mantenuti per la compatibilità software con il PIC16C5X.

5. I registri OPTION e TRIS sono resi indirizzabili per numero.

6. Aggiunta la possibilità di lavorare sugli interrupt. Vettore=0004h.

7. La dimensione della pila è aumentata a otto livelli.

8. L'indirizzo di ripristino all'accensione è stato modificato in 0000h.

9. Vengono riconosciuti cinque diversi tipi di reset (uscita dalla modalità SLEEP). Inizializzazione del registro modificata. Sono impostati in modo diverso, a seconda del tipo di ripristino.

10. Aggiunta uscita dalla modalità SLEEP tramite interrupt.

11. Per un avvio più affidabile, sono stati aggiunti i seguenti ritardi hardware: timer di avvio (OST) e timer di accensione (PWRT). Questi timer possono essere utilizzati in modo selettivo per evitare inutili ritardi, sia all'accensione che all'uscita dalla modalità SLEEP.

12. La porta B ha carichi attivi e un'interruzione quando i segnali di ingresso cambiano.

13. La gamba RTCC è allineata con la gamba di babordo (RA4).

14. L'indirizzo del registro 07h (porta C) non esiste e non è un registro di uso generale.

15. Il registro FSR (f4), che memorizza il puntatore con indirizzamento indiretto, ha una larghezza di otto bit.

16. Macchina di programmazione EEPROM integrata implementata. L'utente può programmare il PIC16C84 utilizzando solo cinque pin: Vdd, Vss, /MCLR/Vpp, RB6(clock), RB7(data in/out).

Passaggio da PIC16C5x a PIC16C84

Per convertire il codice scritto per PIC16C5X in codice per PIC16C84, l'utente deve eseguire i seguenti passaggi:

1. Sostituire le operazioni di selezione delle pagine della memoria di programma (bit PA2, PA1, PA0) con i comandi CALL, GOTO.

2. Rivedere tutte le operazioni di salto calcolate (scrittura su PC o aggiunta a PC, ecc.) e assicurarsi che anche i bit di pagina siano impostati correttamente per il nuovo chip.

3. Elimina il cambio di pagina della memoria dati. Ridefinire le variabili e riallocare la memoria per esse.

4. Controllare la voce nei registri STATUS, OPTION, FSR, perché sono leggermente modificati.

5. Modificare il vettore di ripristino all'accensione su 0000h.

6. Si noti che l'indirizzo 07h è un indirizzo di memoria dati inesistente.

Tipi e versioni di custodia

Designazioni della confezione per cristalli PIC16C8x. Il tipo di confezione è indicato nella marcatura al momento dell'ordine dei microcircuiti. Le custodie sono dotate di soli 18 pin. PDIP - Custodia a due file in plastica semplice. Utilizzato per le versioni OTP EPROM di cristalli. SOIC - Pacchetto di montaggio superficiale DIP piccolo

I design dei chip sono di tre tipi: commerciali, industriali e automobilistici. La loro principale differenza è nell'intervallo di temperatura e nella tensione di esercizio.

Esecuzione commerciale

Temperatura di esercizio 0 ... +70 C

Tensione di esercizio 3.0 ... 5.5 V

Versione industriale

Temperatura di esercizio -40 .... +85 C

Tensione di esercizio 3.0 ... 5.5 V

Versione veicolo

Temperatura di esercizio -40 ... +125 C

Tensione di esercizio 3.0 ... 5.5 V

Contrassegno al momento dell'ordine

La designazione dei microcircuiti consiste nei seguenti campi:

<Numero azienda>-<Frequenza generatore><Gamma di temperatura>/<Corpo><Nota>

<numero azienda può essere>: PIC16C84 - Intervallo Vdd 4...6 V

PIC16LC84 Gamma Vdd 2...6 V

<Frequenza di origine>: 04 ---> 4 MHz

10 ---> 10 MHz

L'intervallo di temperatura è:

- da 0С a +70С

Io da -40С a +85С

E da -40С a +125С

Il corpo è contrassegnato:

P - DIP in plastica normale

SO-300 mil SOIC

ESEMPI:

PIC16C84-04/Pxxx 4 MHz, versione commerciale in package PDIP, range normale Vdd, mask ROM con programma xxx

PIC16LC84-04I/SO 4 MHz, versione industriale, range di potenza esteso, case=SOIC

PIC16C84-10E/P versione per auto, 10 mHz, PDIP, tip. cibo

Disposizione delle gambe

Per la funzione dei pin, vedere "Denominazioni pin" o lo schema a blocchi. Per i tipi di custodia PDIP, ecc., vedere Contenitori.

Microcontrollore PIC16C84. Breve descrizione

Lo scopo delle gambe

Designazioni delle gambe e loro scopo funzionale.

Microcontrollore PIC16C84. Breve descrizione

Valori massimi dei parametri elettrici

Parametri al di fuori di questi limiti possono danneggiare il chip. Il funzionamento prolungato del cristallo ai suoi valori limite ne influenzerà l'affidabilità.

Microcontrollore PIC16C84. Breve descrizione

Osservazioni:

1. La potenza dissipata totale non deve superare gli 800 mW per ogni custodia. La potenza dissipata si calcola con la seguente formula:

Pdis= Vdd(Idd - Sum(Ioh)) + Sum ((Vdd - Voh)Ioh) + Sum (Vol Iol)

2. La caduta della tensione sul pin /MCLR al di sotto di Vss(terra) provoca correnti elevate, superiori a 80 mA, e può danneggiare questa linea. Pertanto, si consiglia di applicare i segnali al pin /MCLR tramite una resistenza di terminazione da 50-100 ohm.

Panoramica dei registri e della RAM

L'area RAM è organizzata come 128 x 8. Le celle RAM possono essere indirizzate direttamente o indirettamente tramite il registro del puntatore FSR (04h). Ciò vale anche per la EEPROM della memoria dati costante.

Microcontrollore PIC16C84. Breve descrizione

Il registro di stato (03h) contiene bit di selezione della pagina che consentono l'accesso a quattro pagine di revisioni future di questo chip. Tuttavia, per il PIC16C84, la memoria dati esiste solo fino all'indirizzo 02Fh. I primi 12 indirizzi vengono utilizzati per inserire registri per scopi speciali.

I registri con indirizzi 0Ch-2Fh possono essere utilizzati come registri per uso generale, che sono RAM statica. Alcuni registri per scopi speciali sono duplicati su entrambe le pagine e alcuni si trovano separatamente a pagina 1. Quando è impostata la pagina 1, l'accesso agli indirizzi 8Ch-AFh indirizza effettivamente la pagina 0. I registri possono essere indirizzati direttamente o indirettamente. In entrambi i casi si possono indirizzare fino a 512 registri.

Indirizzamento diretto

Quando viene eseguito l'indirizzamento diretto a 9 bit, i 7 bit inferiori vengono presi come indirizzo diretto dal codice operativo e i due bit di puntatore di pagina (RP1,RP0) dal registro di stato (03h).

Microcontrollore PIC16C84. Breve descrizione

indirizzamento indiretto

f4 - Puntatore di indirizzo indiretto

Qualsiasi istruzione che utilizza f0 (indirizzo 00) come registro accede effettivamente a un puntatore memorizzato nell'FSR (04h). La lettura indiretta di f0 risulterà in 00h. La scrittura nel registro f0 assomiglierà implicitamente a Nop, ma i bit di stato possono essere modificati. L'indirizzo a 9 bit richiesto è formato combinando il contenuto del registro FSR a 8 bit e il bit IRP del registro di stato.

Microcontrollore PIC16C84. Breve descrizione

Si noti che alcuni registri di funzioni speciali si trovano a pagina 1. Per indirizzarli, è necessario impostare ulteriormente il bit RP0 nel registro di stato su uno.

Timer/contatore RTCC

Lo schema a blocchi di abilitazione RTCC è mostrato di seguito. Contiene l'elemento "MUX": questo è un interruttore elettronico.

Microcontrollore PIC16C84. Breve descrizione

La modalità timer viene selezionata azzerando il bit RTS nel registro OPTION. In modalità timer, RTCC verrà incrementato dalla sorgente di frequenza INTERNA - ogni ciclo di comando (nessun prescaler).

Dopo aver scritto le informazioni in RTCC, inizierà ad aumentare dopo due cicli di istruzioni. Questo accade con tutte le istruzioni che scrivono o leggono-modificano-scrivono f1 (es. MOVF f1, CLRF f1). Questo può essere evitato scrivendo un valore rettificato in RTCC. Se è necessario controllare RTCC per zero senza interrompere il conteggio, utilizzare l'istruzione MOVF f1,W.

La modalità contatore viene selezionata impostando il bit RTS nel registro OPTION su uno. In questa modalità, RTCC verrà incrementato di un fronte di salita o di discesa sul pin RA4/RTCC da eventi EXT. La direzione del fronte è determinata dal bit di controllo RTE nel registro OPTION. Con RTE=0 verrà selezionato un fronte di salita. Il limitatore può essere utilizzato con il timer RTCC o Watchdog. L'opzione di connessione del divisore è controllata dal bit PSA nel registro OPTION. Con PSA=0, il divisore sarà connesso all'RTCC. Il contenuto del divisore non è disponibile per il programma. Fattore di divisione - programmabile. Viene generato un interrupt RTCC quando il timer/contatore RTCC va in overflow durante la transizione da FFH a 00h. Viene quindi impostato il bit di richiesta RTIF nel registro INTCON<2>. Questo interrupt può essere mascherato dal bit RTIE nel registro INTCON<5>. Il bit di richiesta RTIF deve essere cancellato dal software durante la gestione dell'interrupt. Un interrupt RTCC non può riattivare il processore da SLEEP perché il timer non funziona in questa modalità.

Problemi con il timer

Possono sorgere problemi durante il conteggio dei segnali esterni. Questi segnali sono controllati da un segnale di clock interno, vedere il diagramma SYNC. C'è un certo ritardo tra il fronte di salita del segnale di ingresso e il tempo di incremento RTCC. Il gating viene eseguito dopo il limitatore. L'uscita del limitatore viene interrogata due volte durante ogni ciclo di comando per determinare i fronti di salita e di discesa del segnale di ingresso. Pertanto, il segnale Psout deve essere alto e basso per almeno due periodi di clock.

Quando il limitatore non viene utilizzato, Psout ripete il segnale di ingresso, quindi i requisiti per esso sono i seguenti:

Trth= tempo massimo RTCC >= 2tosc+20ns

Trtl= Tempo basso RTCC >= 2tosc+20ns.

Quando si utilizza il limitatore, l'ingresso RTCC viene diviso per il numero impostato nel contatore divisore. Il segnale dopo il limitatore è sempre simmetrico.

Psout tempo alto = Psout tempo basso = NTrt/2,

dove Trt è il periodo di input RTCC,

N è il valore del contatore divisore (2,4...256).

In questo caso, i requisiti per il segnale di ingresso possono essere espressi come segue:

NTrt/2 >= 2tosc +20ns o

Trt >= (4tosc + 40ns)/N.

Quando viene utilizzato un limitatore, i livelli di segnale basso e alto al suo ingresso devono essere di almeno 10 ns. Pertanto, i requisiti generali per un segnale esterno quando è collegato un divisore sono i seguenti:

Trt= periodo RTCC >= (4tosc + 40ns)/N

Trth = tempo massimo RTCC >= 10ns

Trtl = tempo basso RTCC >= 10ns.

Poiché l'uscita del limitatore è sincronizzata dall'orologio interno, c'è un leggero ritardo tra il fronte di salita dell'orologio esterno e il tempo di incremento RTCC effettivo. Questo ritardo è compreso tra 3tosc e 7tosc. Pertanto, la misurazione dell'intervallo tra gli eventi verrà eseguita con una precisione di 4tosc (+-400ns a 10 MHz di quarzo).

Registro di stato

Il registro (f3) contiene i flag aritmetici dell'ALU, lo stato di ripristino del controller e i bit di selezione della pagina per la memoria dati. (f3) è disponibile per qualsiasi comando come qualsiasi altro registro. Tuttavia, i bit TO e PD sono impostati dall'hardware e non possono essere scritti in uno stato dal software. Questo dovrebbe essere tenuto a mente quando si esegue un comando utilizzando il registro di stato. Ad esempio, il comando CLRF f3 imposterà tutti i bit su 1 ad eccezione dei bit TO e PD, quindi imposterà Z=3 bit. Dopo aver eseguito questo comando, il registro di stato potrebbe non avere un valore zero (a causa dei bit TO e PD) f000=100??XNUMX. Pertanto, si consiglia di utilizzare solo i comandi di impostazione dei bit BCF, BSF, MOVWF per modificare il registro di stato, che non modificano il resto dei bit di stato. L'effetto di tutti i comandi sui bit di stato è visibile nella "Descrizione dei comandi".

Flag di stato del software

La posizione dei flag nel registro di stato è la seguente:

Microcontrollore PIC16C84. Breve descrizione

Per i comandi ADDWF e SUBWF. Questo bit viene impostato se l'operazione di bit più significativa risulta in un riporto. La sottrazione si effettua sommando il codice addizionale del secondo operando. Quando si eseguono le istruzioni di spostamento, questo bit viene sempre caricato dall'LSB o dall'MSB della sorgente che viene spostata.

Microcontrollore PIC16C84. Breve descrizione

Per i comandi ADDWF e SUBWF. Questo bit viene impostato se l'operazione del quarto bit risulta in un riporto. Il meccanismo per impostare il bit di riporto decimale "DC" è lo stesso, tranne per il fatto che viene monitorato il riporto dal quarto bit.

Z - Flag risultato zero:

Impostato se il risultato di un'operazione aritmetica o logica è zero.

PD - Power Down (modalità di archiviazione dati):

Impostare su "1" all'accensione o al comando CLRWDT. Reimpostare a "0" con il comando SLEEP.

TO - Time out. Flag di attivazione del timer watchdog:

Impostare su "1" all'accensione e ai comandi CLRWDT, SLEEP. Reimposta su "0" allo scadere del timer WDT.

RP1, RP0 - Bit di selezione della pagina della memoria dati per l'indirizzamento diretto:

RP1,RP0:

00= Pagina 0 (00h-7Fh)

01= Pagina 1 (80h-FFh)

10= Pagina 2 (100h-17Fh)

11= Pagina 3 (180h-1FFh)

Ogni pagina contiene 128 byte. Il chip PIC16C84 utilizza solo RP0. In questo chip, RP1 può essere utilizzato semplicemente come bit di lettura/scrittura generico. Tuttavia, va ricordato che negli sviluppi successivi verrà utilizzato.

IRP - Bit di selezione della pagina della memoria dati per l'indirizzamento indiretto:

PIR0:

0= Pagine 0,1 (00h-FFh)

1= Pagina 2,3 (100h-1FFh)

Questo bit nel cristallo PIC16C84 non ha senso da usare. Pertanto, può essere utilizzato come bit di lettura/scrittura generico. Tuttavia, dobbiamo ricordare che negli sviluppi successivi verrà utilizzato.

Flag di stato hardware

Bit di stato hardware TO (Time Out) e PD (Power Down). Lo stato dei bit del registro di stato "TO" e "PD" può determinare cosa ha causato il "Reset":

- semplicemente accendendo l'alimentazione,

- attivazione del watchdog timer,

- uscita dalla modalità di sospensione a seguito dell'attivazione del timer watchdog,

- da segnale esterno /MCLR.

Solo i seguenti eventi possono influenzare lo stato di questi bit:

Microcontrollore PIC16C84. Breve descrizione

Nota: i bit TO e PD rimangono aggiornati finché non si verifica uno degli eventi elencati nella tabella. "0" - Un impulso di basso livello all'ingresso del cristallo /MCLR non cambia lo stato dei bit TO e PD.

Organizzazione della ROM integrata

Il contatore del programma nel PIC16C84 è largo 13 bit e può indirizzare 8Kx14 bit di memoria del programma. Tuttavia, fisicamente c'è solo 1Kx14 di memoria sul chip (indirizzi 0000h-03FFh). L'indirizzamento di indirizzi superiori a 3FFh sta effettivamente indirizzando lo stesso primo kilobyte. Il vettore di reset si trova all'indirizzo 0000h, il vettore di interrupt si trova all'indirizzo 0004h.

La EEPROM del PIC16C84 è progettata per un numero limitato di cicli di cancellazione/scrittura. Per scrivere nella memoria di programma, il cristallo deve essere messo in una modalità speciale in cui la tensione di programmazione Vprg viene applicata al pin /MCLR e l'alimentazione Vdd deve essere compresa tra 4.5V ... 5.5V. Il PIC16C84 non è adatto per applicazioni in cui il programma viene modificato frequentemente. La scrittura nella memoria del programma viene eseguita un po' alla volta, utilizzando in sequenza solo due pin.

Indirizzamento PC e ROM

(f2). Contatore di programma

La larghezza del contatore del programma è di 13 bit. Il Program Counter Low Byte (PCL) è in lettura/scrittura e si trova nel registro 02h. Il byte alto del contatore di programma (PCH) non può essere letto o scritto direttamente. Il byte alto del contatore del programma può essere scritto tramite il registro PCLATH, il cui indirizzo è 0Ah. A seconda che un nuovo valore venga caricato nel contatore del programma durante le istruzioni CALL, GOTO o che venga scritto il byte basso del contatore del programma (PCL), i bit alti del contatore del programma vengono caricati da PCLATH in modi diversi, come mostrato in figura.

Caso di comandi GOTO, CALL

Microcontrollore PIC16C84. Breve descrizione

Stack e restituisce da subroutine

Il cristallo PIC16C84 ha uno stack hardware largo 13 bit a otto livelli. L'area dello stack non appartiene né all'area del programma né all'area dei dati e il puntatore dello stack non è accessibile all'utente. Il valore corrente del contatore del programma viene inserito nello stack quando viene eseguita un'istruzione CALL o viene elaborato un interrupt. Quando un'istruzione RETLW, RETFIE o RETURN viene eseguita da una subroutine), il contenuto dello stack viene inserito nel contatore del programma. Il registro PCLATH (0Ah) non viene modificato dalle operazioni di stack.

Dati in EEPROM

Memoria dati EEPROM non volatile.

La memoria dati EEPROM consente di leggere e scrivere un byte di informazioni. Quando un byte viene scritto, il valore precedente viene automaticamente cancellato e vengono scritti nuovi dati (cancella prima di scrivere). Tutte queste operazioni vengono eseguite dal writer EEPROM integrato. Il contenuto di questa memoria viene conservato allo spegnimento dell'alimentazione. Il cristallo PIC16C84 dispone di una memoria dati EEPROM a 64x8 bit che consente la scrittura e la lettura durante il normale funzionamento (su tutto il range della tensione di alimentazione). Questa memoria non appartiene all'area del registro RAM. Vi si accede attraverso due registri: EEDATA <08h>, che contiene dati a otto bit per la lettura/scrittura e EEADR <09h>, che contiene l'indirizzo della cella a cui si accede. Inoltre, sono disponibili due registri di controllo: EECON1 <88h> e EECON2 <89h>.

Durante la lettura dei dati dalla memoria EEPROM, scrivere l'indirizzo desiderato nel registro EEADR e quindi impostare il bit RD EECON1<0> su uno. I dati appariranno nel prossimo ciclo di comando nel registro EEDATA e potranno essere letti. I dati nel registro EEDATA sono bloccati.

Quando si scrive nella memoria EEPROM, è necessario prima scrivere l'indirizzo richiesto nel registro EEADR e i dati nel registro EEDATA. Quindi esegui una sequenza speciale di comandi che produce la registrazione diretta:

film 55h

movwf EECON2

movlv AH

movwf EECON2

bsf EECON1,WR ;imposta il bit WR, avvia la registrazione

Durante l'esecuzione di questa sezione del programma, tutti gli interrupt devono essere disabilitati per eseguire con precisione il diagramma temporale. Tempo di registrazione -

circa 10 ms. Il tempo di scrittura effettivo varia a seconda della tensione, della temperatura e delle proprietà dei singoli cristalli. Al termine della scrittura, il bit WR viene automaticamente azzerato e viene impostato il flag di completamento della scrittura EEIF, che è anche una richiesta di interruzione.

Per evitare scritture accidentali nella memoria dati, nel registro EECON1 è previsto uno speciale bit WREN. Si consiglia di mantenere il bit WREN disattivato, tranne quando è necessario aggiornare la memoria dei dati. Inoltre, i segmenti di codice che impostano il bit WREN e quelli che eseguono la scrittura devono essere archiviati a indirizzi diversi per evitare di eseguirli entrambi accidentalmente in caso di crash del programma.

Gestione EEPROM

Registri di controllo per EEPROM

Microcontrollore PIC16C84. Breve descrizione

Registri EECON1 e EECON2

Il registro EECON1 (indirizzo 88h) è un registro di controllo largo cinque bit. I cinque bit inferiori sono fisicamente presenti, mentre i tre bit superiori vengono sempre letti come "0".

Registro EECON1 Indirizzo 88h

Reset all'accensione - 0000X000

Microcontrollore PIC16C84. Breve descrizione

I bit di controllo RD e WR attivano rispettivamente le letture e le scritture. Possono essere impostati solo a livello di codice. Cancellato dall'hardware al termine delle operazioni di lettura/scrittura. La disabilitazione del reset software del bit WR impedisce che la scrittura termini prematuramente.

RD - Leggi il bit.

RD =1 : Inizia la lettura della memoria dati EEPROM. La lettura richiede un ciclo. Installato dal software. Ripristino tramite hardware.

WR - Scrivi bit.

WR =1 : Inizia la scrittura nella memoria dati EEPROM.

Installato dal software. Ripristino tramite hardware.

WREN - Bit di abilitazione scrittura EEPROM.

WREN = 1: scrittura abilitata.

WREN = 0: scrittura disabilitata.

Dopo l'accensione, WREN viene azzerato.

Il flag di errore WRERR viene impostato quando il processo di scrittura viene interrotto dal segnale di ripristino /MCLR o dal segnale di ripristino del timer WDT. Ti consigliamo di controllare questo flag WRERR e, se necessario, di sovrascrivere i dati i cui dati e indirizzo sono memorizzati nei registri EEDATA e EEADR.

WRERR - Scrivere flag di errore.

WRERR = 1: il flag viene impostato quando un'operazione di scrittura viene interrotta dal segnale di ripristino /MCLR (durante la modalità normale o SLEEP) o dal segnale di ripristino WDT durante la modalità normale.

Il flag EEIF viene impostato quando l'automa incorporato completa la scrittura nella memoria dati. Deve essere ripristinato dal software.

EEIF - Flag di completamento scrittura.

EEIF = 1: il flag viene impostato al termine della scrittura. Il bit di abilitazione interrupt corrispondente è EEIE nel registro INTCON.

Organizzazione degli interrupt

Gli interrupt nel PIC16C84 possono provenire da quattro fonti:

- interrupt esterno dal pin RB0/INT,

- Interruzione di overflow contatore/timer RTCC,

- interruzione al termine della scrittura dei dati in EEPROM

- interrompere la modifica dei segnali sui pin della porta RB<7:4>.

Tutti gli interrupt hanno lo stesso vettore/indirizzo - 0004h. Tuttavia, nel registro di controllo degli interrupt INTCON è scritto: - da quale sorgente è stata ricevuta la richiesta di interrupt. Scritto dal corrispondente bit-flag. Tale interruzione può essere mascherata individualmente o da un bit comune. L'unica eccezione è l'interrupt di fine scrittura EEPROM. Questa bandiera è in un altro registro EECON1.

Il bit GIE General Interrupt Enable/Disable (INTCON <7>) abilita (se=1) tutti gli interrupt non mascherati singolarmente o li disabilita (se=0). Ciascun interrupt può essere ulteriormente abilitato/disabilitato impostando/cancellando il bit corrispondente nel registro INTCON. Il bit GIE viene impostato a zero al ripristino. Quando viene elaborato un interrupt, il bit GIE viene impostato su zero per disabilitare ulteriori interrupt, l'indirizzo di ritorno viene inserito nello stack e l'indirizzo 0004h viene caricato nel contatore del programma. Il tempo di risposta all'interruzione per eventi esterni, come un'interruzione dal pin INT o dalla porta B, è di circa cinque cicli. Questo è un ciclo in meno rispetto agli eventi interni come un interrupt di overflow dal timer RTCC. Il tempo di reazione è sempre lo stesso. In un gestore di interrupt, la sorgente dell'interruzione può essere determinata dal bit corrispondente nel registro dei flag. Questo bit flag deve essere resettato dal software all'interno di una subroutine. I flag di richiesta di interruzione sono indipendenti dai corrispondenti bit di maschera e dal bit di maschera generale GIE.

L'istruzione di ritorno di interrupt RETFIE termina la routine di interrupt e imposta il bit GIE per abilitare nuovamente gli interrupt.

Registro delle query e delle maschere

Registro di controllo dell'interruzione e suoi bit

Microcontrollore PIC16C84. Breve descrizione

Indirizzo: 0bh

Valore al ripristino= 0000 000?

RBIF - Modifica flag di interruzione sulla porta RB.

Il flag viene impostato quando il segnale all'ingresso RB<7:4> cambia.

Il flag viene reimpostato a livello di codice.

INTF - Flag di interruzione INT.

Il flag viene impostato quando il pin INT riceve un segnale da una sorgente di interruzione esterna. Ripristino tramite software.

RTIF - Flag di interruzione di overflow RTCC.

Il flag viene impostato in caso di overflow di RTCC.

Il flag viene reimpostato a livello di codice.

RBIE - Bit di abilitazione/disabilitazione interrupt RBIF.

RBIE = 0: disabilita l'interrupt RBIE

RBIE = 1: abilita l'interrupt RBIE

INTE - Bit abilita/disabilita l'interrupt INT.

INTE = 0 : disabilita l'interrupt INT

INTE = 1 : abilita l'interrupt INT

Bit di abilitazione/disabilitazione interrupt RTIE RTIF.

RTIE = 0 : disabilita l'interrupt RTIE

RTIE = 1 : abilita l'interrupt RTIE

EEIE - Bit di abilitazione/disabilitazione interruzione di scrittura EEPROM.

EEIE = 0 : disabilita l'interruzione EEIF

EEIE = 1 : abilita l'interruzione EEIF

GIE Tutti i bit di abilitazione/disabilitazione degli interrupt.

GIE = ​​​​0 : disabilita gli interrupt

GIE = ​​1 : abilita gli interrupt

Si ripristina automaticamente nelle seguenti circostanze:

- accensione.

- da segnale esterno /MCLR durante il normale funzionamento.

- da segnale esterno /MCLR in modalità SLEEP.

- al termine del ritardo del timer WDT durante il normale funzionamento.

- al termine del tempo di ritardo WDT in modalità SLEEP.

Interruzione esterna

Un interrupt esterno sul pin RB0/INT viene attivato su un fronte di salita (se bit6 INTEG=1 nel registro OPTION) o su un fronte di discesa (se INTEDG=0). Quando viene rilevato un fronte di salita sul pin INT, viene impostato il bit di richiesta INTF (INTCON <1>). Questo interrupt può essere mascherato impostando il bit di controllo INTE a zero (INTCON <4>). Il bit di richiesta INTF deve essere cancellato dal programma di interrupt prima che l'interrupt possa essere nuovamente abilitato. Un interrupt INT può riattivare il processore dalla modalità SLEEP se il bit INTE è stato impostato su uno prima di entrare in questa modalità.

Lo stato del bit GIE determina anche se il processore salterà alla routine di interrupt dopo essersi svegliato dalla modalità SLEEP.

Interruzione RTCC

Un overflow del contatore RTCC (FFh->00h) imposterà il bit di richiesta RTIF (INTCON<2>). Questo interrupt può essere abilitato/disabilitato impostando/cancellando il bit della maschera RTIE (INTCON<5>). Il ripristino della richiesta RTIF spetta al programma di elaborazione.

Interruzione della porta RB

Qualsiasi modifica ai segnali sui quattro ingressi della porta RB<7:4> imposterà il bit RBIF (INTCON<0>). Questo interrupt può essere abilitato/disabilitato impostando/cancellando il bit della maschera RBIE (INTCON<3>). Il ripristino della richiesta RBIF spetta al programma di elaborazione.

Interruzione EEPROM

Il flag di richiesta di interruzione di fine scrittura della EEPROM, EEIF (EECON1<4>), viene impostato quando la scrittura automatica dei dati nella EEPROM è completata. Questo interrupt può essere mascherato resettando il bit EEIE (INTCON<6>). Il ripristino della richiesta EEIF spetta al gestore.

Panoramica dei registri/porte

Il cristallo ha due porte: una porta RA a 5 bit e una porta RB a 8 bit con impostazione individuale bit per bit per input o output.

Diagramma a linee della porta A

La porta A è una porta larga 5 bit, corrispondente ai pin del chip RA<4:0>. Le linee RA<3:0> sono bidirezionali e la linea RA4 è un'uscita open-drain. L'indirizzo del registro della porta A è 05h. Il registro di controllo TRISA della porta A si trova nella prima pagina dei registri all'indirizzo 85h. TRISA<4:0> è un registro largo 5 bit. Se un bit nel registro di controllo TRISA è impostato su uno, la riga corrispondente verrà impostata su input. Zero commuta la linea in uscita e contemporaneamente trasmette ad essa il contenuto del registro latch corrispondente. Di seguito è riportato lo schema delle porte RA0..RA3

Microcontrollore PIC16C84. Breve descrizione
Microcontrollore PIC16C84. Breve descrizione

Microcontrollore PIC16C84. Breve descrizione

Diagramma a linee della porta B

La porta B è una porta bidirezionale, larga otto bit (indirizzo di registrazione 06h). Relativamente alla porta B, il registro di controllo TRISB si trova nella prima pagina dei registri all'indirizzo 86h. Se il bit di controllo TRISB del registro è impostato su uno, la riga corrispondente verrà impostata su input. Zero commuta la linea in uscita e contemporaneamente trasmette ad essa il contenuto del registro latch corrispondente. Ciascun pin della porta B ha un piccolo carico resistivo (circa 100µA) sulla linea di alimentazione. Viene automaticamente disabilitato se questo pin è programmato come uscita. Inoltre, il bit di controllo RBPU OPTION<7> può disattivare (RBPU=1) tutti i carichi. Un reset all'accensione spegne anche tutti i carichi.

Le quattro linee della porta B (RB<7:4>) hanno la capacità di attivare un'interruzione quando il valore del segnale cambia su una di esse. Se queste linee sono configurate per l'input, vengono interrogate e bloccate nel ciclo di lettura Q1. Il nuovo valore del segnale di ingresso viene confrontato con il vecchio valore in ogni ciclo di istruzione. Se il valore del segnale sulla gamba e nel latch non corrisponde, viene generato un livello alto. Le uscite dei rivelatori di "mismatch" RB4, RB5, RB6, RB7 sono in OR e generano un interrupt RBIF (memorizzato in INTCON<0>). Qualsiasi linea configurata come uscita non partecipa a questo confronto. Un'interruzione può riattivare il cristallo dalla modalità SLEEP. Nel gestore degli interrupt, reimpostare la richiesta di interrupt in uno dei seguenti modi:

1) Disabilitare gli interrupt cancellando il bit RBIE INTCON<3>.

2) Leggi la porta B. Questo terminerà lo stato di confronto.

3) Cancellare il bit RBIF INTCON<0>.

Gli interrupt di mancata corrispondenza e i carichi attivi interni impostabili dal software su queste quattro linee possono fornire un'interfaccia semplice, come una tastiera, con la riattivazione dei tasti dalla modalità SLEEP. La gamba RB0 è combinata con l'ingresso di interrupt esterno INT.

Nome

Microcontrollore PIC16C84. Breve descrizione

Problemi di porto

Problemi nell'organizzazione delle porte bidirezionali

-Alcuni comandi vengono eseguiti internamente come lettura+scrittura. Ad esempio, le istruzioni BCF e BSF leggono l'intera porta, modificano un bit e restituiscono il risultato. È qui che è necessaria cautela. Ad esempio, l'istruzione BSF per il bit 5 del registro f6 (porta B) legge prima tutti gli otto bit. Il bit 5 viene quindi manipolato e l'intero nuovo valore del byte viene scritto nei latch di uscita. Se un altro bit del registro f6 utilizza i come I/O bidirezionale (diciamo bit 0) ed è attualmente definito come input, l'input su quel pin verrà letto e riscritto nel latch di uscita di quel pin, sovrascrivendo il suo stato precedente.

Finché questo pin rimane in modalità di input, non si verificano problemi. Tuttavia, se la riga 0 passa successivamente alla modalità di uscita, il suo stato non sarà definito.

Le sorgenti di corrente esterne ("montaggio AND", "montaggio OR") non devono "appoggiarsi" sulla gamba operante nella modalità di uscita. Le grandi correnti risultanti possono danneggiare il cristallo.

Accesso seriale alle porte I/O

La scrittura sulla porta di uscita avviene al termine del ciclo di comando. Ma durante la lettura, i dati devono essere stabili all'inizio del ciclo di istruzioni. Fai attenzione alle letture immediatamente successive alle scritture sulla stessa porta. Qui è necessario tenere conto dell'inerzia di stabilire la tensione ai terminali. Potrebbe essere necessario un ritardo software per consentire alla tensione sul pin (a seconda del carico) di stabilizzarsi prima che venga eseguito il comando di lettura successivo.

Panoramica di comandi e simboli

Ogni comando PIC16C84 è una parola di 14 bit, che è divisa per significato nelle seguenti parti: - 1. codice operazione, -2. un campo per uno o più operandi che possono o meno partecipare a questa istruzione. Il set di istruzioni PIC16C84 include istruzioni orientate ai byte, istruzioni orientate ai bit, operazioni costanti e istruzioni di trasferimento del controllo.

Per i comandi orientati ai byte, "f" indica il registro su cui agire; "d" - il bit determina dove mettere il risultato. Se "d"=0 allora il risultato sarà posto nel registro W, con "d"=1 il risultato sarà posto nella "f" indicata nel comando. Per le istruzioni a bit, "b" indica il numero del bit coinvolto nell'istruzione e "f" è il registro in cui si trova questo bit.

Per i comandi di trasferimento e le operazioni costanti, "k" indica una costante di otto o undici bit.

Tutti i comandi vengono eseguiti all'interno di un ciclo di comando. In due casi, l'esecuzione dell'istruzione richiede due cicli di istruzione: -1. controllo delle condizioni e salto, come risultato -2.cambia il contatore del programma

esecuzione del comando. Un ciclo di comando è costituito da quattro periodi del generatore. Pertanto, per un oscillatore a 4 MHz, il tempo di esecuzione del ciclo di comando sarà di 1 µs.

Comandi orientati ai byte

Microcontrollore PIC16C84. Breve descrizione

Comandi orientati ai bit

Microcontrollore PIC16C84. Breve descrizione

Transizioni

Microcontrollore PIC16C84. Breve descrizione

Note e spiegazioni

Nota 1: I comandi TRIS e OPTION sono stati inseriti nell'elenco dei comandi per compatibilità con la famiglia PIC16C5X. Il loro uso non è raccomandato. Sul PIC16C84, i registri TRIS e OPTION vengono letti/scritti come normali registri numerati. Tieni presente che questi comandi potrebbero non essere supportati nei futuri sviluppi di PIC16CXX. Nota 2: Quando si modifica un registro I/O, come MOVF 6,1, il valore utilizzato per la modifica viene letto direttamente dai pin del chip. Se il valore di blocco dell'uscita per un pin programmato per l'uscita è "1", ma il segnale esterno su quel pin è "0" a causa del "rigonfiamento" esterno, verrà letto "0". Nota 3: Se l'operando di questa istruzione è il registro f1 (e d=1 se consentito), il divisore, se connesso a RTCC, verrà impostato a zero.

Ripristina le condizioni

In PIC16C84, ci sono differenze tra le opzioni di ripristino:

1) Reset all'accensione.

2) Reset esterno /MCLR durante il normale funzionamento.

3) Reset esterno /MCLR in modalità SLEEP.

4) Reset al termine del ritardo del timer WDT durante il normale funzionamento.

5) Reset al termine del ritardo del timer WDT in modalità SLEEP.

Alcuni dei registri speciali non vengono inizializzati durante il ripristino. Hanno uno stato casuale all'accensione e non cambiano con altri tipi di reset. L'altra parte dei registri speciali viene inizializzata allo "stato di ripristino" per tutti i tipi di ripristino, ad eccezione del ripristino al termine del ritardo del timer WDT in modalità SLEEP. È solo che questo ripristino è considerato un ritardo temporaneo nel normale funzionamento. Ci sono alcune altre eccezioni. Il contatore del programma viene sempre azzerato (0000h). I bit di stato TO e PD vengono impostati o cancellati a seconda dell'opzione di ripristino. Questi bit vengono utilizzati dal software per determinare la natura del ripristino. I loro valori dopo il ripristino sono mostrati nella tabella. Lo stato dei registri dopo il reset è presentato nella tabella. Le notazioni sono accettate lì: i-non cambia, x - sconosciuto, - non eseguito, letto come `0`. ? - sarà impostato al termine della scrittura su EEPROM

Microcontrollore PIC16C84. Breve descrizione

Algoritmo di ripristino all'accensione

Il cristallo PIC16C84 ha un rilevatore di accensione integrato. Il timer di avvio inizia a contare il ritardo dopo che la tensione di alimentazione ha superato il livello di circa 1,2...1,8 Volt. Dopo un ritardo di circa 72 ms si considera che la tensione abbia raggiunto il valore nominale e si inizia un altro tempo parziale per stabilizzare l'oscillatore al quarzo. Un bit di configurazione programmabile consente di abilitare o disabilitare il ritardo dal timer di avvio integrato. Il tempo di avvio varia in base alle istanze del cristallo, alla potenza e alla temperatura. Vedere le specifiche CC.

Il timer di stabilizzazione del generatore conta 1024 impulsi dal generatore che ha iniziato a funzionare. Si ritiene che l'oscillatore al quarzo sia entrato in modalità durante questo periodo. Quando si utilizzano generatori RC, l'esposizione alla stabilizzazione non viene eseguita.

Il timer di attesa per il ripristino esterno /MCLR viene quindi abilitato. Ciò è necessario nei casi in cui è necessario mettere in funzione in modo sincrono più controller PIC attraverso un segnale /MCLR comune per tutti. Se tale segnale non viene ricevuto, dopo il tempo Tost viene generato un segnale di reset interno e il controller inizia a eseguire il programma. Il tempo Tost è programmato dai bit di configurazione nella EEPROM. C'è un problema qui dove Vdd aumenta troppo lentamente e tutti i ritardi sono all'avvio e la potenza non ha ancora raggiunto il suo valore minimo di salute Vdd(min). In questi casi, si consiglia di utilizzare catene RC esterne per ripristinare /MCLR. Sotto c'è una catena

Microcontrollore PIC16C84. Breve descrizione

Qui puoi utilizzare un diodo per scaricare rapidamente il condensatore quando l'alimentazione viene interrotta. Si consiglia una resistenza R < 40 kΩ, quindi non cadrà più di 0,2 V su di essa. Resistenza da 100 ohm

Watch Dog timer

Il watchdog timer è un generatore RC integrato completamente indipendente che non richiede circuiti esterni. Funzionerà anche se l'oscillatore principale è fermo, come nel caso di un'istruzione SLEEP. Il timer genera un segnale di reset. La generazione di tali reset può essere disabilitata scrivendo uno zero su un bit di configurazione WDTE speciale. Questa operazione viene eseguita nella fase di masterizzazione dei microcircuiti.

Ritardo WDT

Il ritardo WDT nominale è di 18 ms (senza divisore). Dipende dalla temperatura, dalla tensione di alimentazione, dalle caratteristiche dei tipi di microcircuito. Se sono necessari grandi ritardi, è possibile collegare al WDT un divisore integrato con un rapporto di divisione fino a 1:128; che si programma scrivendo nel registro OPTION. Qui è possibile realizzare esposizioni fino a 2.5 secondi.

I comandi "CLRWDT" e "SLEEP" azzerano il WDT e il divisore se è collegato al WDT. Questo avvia il ritardo dall'inizio e impedisce la generazione del segnale di reset per un po'. Se si verifica il segnale di reset dal WDT, il bit "TO" nel registro di stato (f3) viene resettato contemporaneamente. Nelle applicazioni ad alto rumore, i contenuti del registro OPTION sono soggetti a guasti. Pertanto, il registro OPTION deve essere aggiornato ad intervalli regolari.

Va notato che la combinazione peggiore è: Vdd=min, temperature=max e max fattore di divisione - questo porta al ritardo più lungo, può arrivare fino a diversi secondi.

Tipi di generatori

I cristalli PIC16C84 possono funzionare con quattro tipi di oscillatori integrati. L'utente può programmare due bit di configurazione (FOSC1 e FOSC0) per selezionare una delle quattro modalità: RC, LP, XT, HS.

I cristalli PIC16... possono anche essere sincronizzati da sorgenti esterne. Un oscillatore costruito su risonatori al quarzo o in ceramica richiede un periodo di stabilizzazione dopo l'accensione. Per fare ciò, il timer di avvio dell'oscillatore integrato mantiene il dispositivo nello stato di ripristino per circa 18 ms dopo che il segnale sul pin del chip /MCLR ha raggiunto l'uno logico. Pertanto, in molti casi non è richiesta una catena RC esterna associata a /MCLR.

I generatori incorporati funzionano a determinati valori nominali della tensione di alimentazione:

Microcontrollore PIC16C84. Breve descrizione

ATTENZIONE! A frequenze inferiori a 500 kHz, l'oscillatore interno può generare un impulso armonico difettoso quando viene commutato il bit 0 della porta A. Ciò non accade quando si utilizza un oscillatore esterno o con l'oscillatore RC integrato.

Generatore al quarzo

PIC16C84-XT, -HS o -LP richiedono un risuonatore in cristallo o ceramica da collegare ai pin OSC1 e OSC2.

Microcontrollore PIC16C84. Breve descrizione

I contrassegni sono i seguenti: XT - oscillatore a cristallo standard, HS - oscillatore a cristallo ad alta frequenza, LP - oscillatore a bassa frequenza per applicazioni economiche. Il resistore Rs potrebbe essere necessario per l'oscillatore "HS", specialmente al di sotto di 20 MHz per smorzare le armoniche. Potrebbe anche essere richiesto in modalità XT con un risonatore AT strip-cut. La scelta dei condensatori per un risonatore ceramico.

Microcontrollore PIC16C84. Breve descrizione

Una capacità maggiore aumenterà la stabilità del generatore, ma aumenterà anche il tempo di avvio. I valori sono solo indicativi. Nelle modalità HS e XT, potrebbe essere necessario un resistore in serie Rs per evitare le armoniche.

generatore rc.

Quando non sono richieste velocità e precisione di temporizzazione, un cristallo OTP come il PIC16C84-RC consente di risparmiare denaro e implementa un semplice oscillatore RC.

Microcontrollore PIC16C84. Breve descrizione

La frequenza è una funzione della tensione di alimentazione, del resistore Rext, del condensatore Cext e della temperatura. Inoltre, la frequenza dell'oscillatore varierà leggermente da lotto a lotto. La frequenza di generazione è influenzata dalla capacità intrinseca del corpo di cristallo, la sua influenza è evidente per piccoli valori di Cext. Si deve anche tenere conto della deriva degli elementi R e C. Per valori Rext inferiori a 2.2 kΩ, il generatore potrebbe essere instabile o non avviarsi. A valori molto elevati di Rext (es. 1 MΩ) il generatore diventa sensibile ai disturbi, all'umidità e alla dispersione di corrente dell'impianto.

Il valore Rext consigliato è compreso tra 5 kΩ e 100 kΩ. Sebbene l'oscillatore funzioni senza un condensatore esterno (Cext = 0), si consiglia di utilizzare una capacità superiore a 20 pF per aumentare la stabilità. Con poco o nessun Cext, la frequenza dell'oscillatore dipende fortemente dalle capacità di montaggio. La dispersione sarà tanto maggiore quanto maggiore sarà il valore di R (e minore sarà il valore di C (poiché in questo caso l'effetto del montaggio delle capacità è più pronunciato).

La frequenza dell'oscillatore divisa per 4 segnali è presente sul pin OSC2/CLKOUT e può essere utilizzata per scopi di test o temporizzazione per altri circuiti.

eccitazione esterna

Microcontrollore PIC16C84. Breve descrizione

REGISTRAZIONE OPZIONE

Il registro OPTION (indirizzo 81h) è disponibile per la lettura e la scrittura e contiene vari bit di controllo che determinano la configurazione del limiter, dove è collegato: a RTCC o WDT, il segno del fronte dell'interrupt esterno INT e il segnale esterno per RTCC , connessione di carico attiva sulla porta RB.

Registrati OPZIONE Indirizzo 81h

Valore di accensione = FFH

Microcontrollore PIC16C84. Breve descrizione

PSA - Bit che collega il divisore a: 0 - RTCC

1-WDT

RTE - Fronte del segnale RTCC esterno:

0 - incremento del fronte di salita sul pin RTCC

1 - incremento del fronte negativo sul pin RTCC

RTS - Sorgente del segnale per RTCC

0 - segnale dal generatore interno

1 - Segnale esterno sul tratto RTCC

INTDG - Fronte del segnale INT:

0 - interruzione su un fronte negativo sul pin INT

1 - interruzione del fronte positivo sul pin INT

/RBPU - Bit di connessione del carico attivo invertito alla porta B.

/RBPU = 0: i carichi attivi verranno collegati in base all'algoritmo della porta RB

/RBPU = 1: i carichi attivi della porta B sono sempre disabilitati

Collegamenti del divisore di frequenza

Lo stesso contatore a otto bit può essere abilitato prima dell'RTCC o dopo il timer Watchdog. Si noti che il divisore funziona solo con uno di questi dispositivi. Ripetiamo, se il divisore funziona con RTCC, significa che al momento non funziona con il timer Watchdog e viceversa. Schema di abilitazione del contatore (vedere la sezione RTCC:RTCC}. I bit PSA e PS0-PS2 nel registro OPTION determinano con quale dispositivo funziona il divisore e l'impostazione del fattore di divisione. Quando il divisore è collegato a RTCC, tutti i comandi che scrivono in RTCC ( ad esempio, CLRF 16 MOVWF 1, BSF 1,x... ecc.) azzererà il divisore. Quando è collegato al Watchdog timer, il limitatore insieme al Watchdog timer azzererà il comando CLRWDT. controllabile Di seguito è riportato un frammento del programma per il passaggio da RTCC a WDT

1. MOVLW B`xx0x0xxx` ;selezionare l'orologio interno e un nuovo ;valore per divisore. Se il nuovo valore di ; divisore è

2. OPZIONE ;`000` o `001`, quindi è necessario selezionare temporaneamente ;un altro valore di divisore.

3. CLRF 1 : reimposta RTCC e divisore.

4. MOVLW B`xxxx1xxx` ;selezionare WDT senza modificare il valore del divisore.

5. OPZIONE

6. CLRWDT: ripristina WDT e divisore.

7. MOVLW B`xxxx1xxx` ;selezionare un nuovo valore per il divisore.

8. OPZIONE

Gli elementi 1 e 2 sono necessari solo quando una sorgente di impulsi esterna è stata collegata all'RTCC. Gli articoli 7 e 8 sono obbligatori quando il coefficiente

la divisione dovrebbe essere impostata su "000" o "001".

Commutazione dello splitter da WDT a RTCC

1. CLRWDT: ripristina WDT e divisore.

2. MOVLW B`xxxx0xxx` ;selezionare RTCC, nuovo valore per divisore ;sorgente del segnale.

3. OPZIONE Questi programmi dovrebbero essere utilizzati anche se WDT è disabilitato.

Parola di configurazione

Il cristallo PIC16C84 ha cinque bit di configurazione che vengono memorizzati in EEPROM e vengono impostati durante la fase di programmazione del chip. Questi bit possono essere programmati (letti come `0`) o lasciati non programmati (letti come `1`) per selezionare l'opzione di configurazione del dispositivo appropriata. Questi bit si trovano nella memoria EEPROM all'indirizzo 2007h. L'utente deve ricordare che questo indirizzo è sotto l'area del codice e non è disponibile per il programma. Configurazione cella EEPROM.

Microcontrollore PIC16C84. Breve descrizione

CP - Bit di protezione del codice.

CP = 1: Codice di sicurezza disabilitato

CP = 0: codice di sicurezza abilitato

I bit rimanenti nella parola non vengono utilizzati e vengono letti come tali.

etichetta individuale

Il cristallo PIC16C84 ha quattro parole situate in (2000h-2003h) Queste vengono utilizzate per memorizzare il codice di identificazione dell'utente (ID), il checksum o altre informazioni. Come la parola di configurazione, possono essere lette o scritte solo dal programmatore. Non c'è nessun programma di accesso a loro. Se il cristallo è protetto, si consiglia all'utente di utilizzare solo i sette bit inferiori di ogni ID parola per l'identificazione e di scrivere `0` sul bit alto. Quindi la parola ID può essere letta anche in versione protetta.

Protezione dei programmi dalla lettura

Il codice di programma scritto nel chip può essere protetto in lettura impostando a zero il bit di protezione (CP) nella parola di configurazione. Il contenuto del programma non può essere letto in modo tale da poterlo lavorare. Inoltre, quando il bit di protezione è impostato, diventa impossibile modificare il programma. Lo stesso vale per il contenuto della memoria dati EEPROM.

Se è impostata la protezione, il bit CP può essere cancellato solo insieme al contenuto del cristallo. La memoria di programma EEPROM e la memoria dati verranno cancellate prima e infine il bit di protezione del codice CP.

Controllo di un cristallo con protezione installata. Quando si legge un chip protetto, la lettura di qualsiasi indirizzo di memoria darà un risultato simile a 0000000XXXXXXX (binario), dove X è 0 o 1. Per verificare l'integrità della memoria in un chip protetto, seguire le regole:

1) programmare e verificare il funzionamento di un cristallo funzionante.

2) impostare la protezione del codice del programma e leggere il contenuto della memoria del programma nel file di riferimento.

3) testare qualsiasi cristallo protetto confrontando la sua memoria di programma con il contenuto di questo riferimento.

Non è possibile controllare la memoria dati EEPROM dopo aver impostato il bit di sicurezza.

Modalità a basso consumo

La modalità SLEEP viene attivata dal comando SLEEP. Con questo comando, se il WDT è abilitato, viene resettato e inizia a cronometrare, viene resettato il bit "PD" nel registro di stato (f3), viene impostato il bit "TO" e l'oscillatore interno viene spento. Le porte I/O mantengono lo stato che avevano prima di entrare in modalità SLEEP. Per ridurre il consumo di corrente in questa modalità, i pin devono essere impostati in modo che non scorra corrente tra il cristallo e i circuiti esterni. I pin di ingresso devono essere collegati con resistori alti o bassi esterni per evitare correnti di commutazione causate da ingressi fluttuanti ad alta resistenza. Lo stesso vale per RTCC. La gamba /MCLR deve essere alimentata da Vihmc.

L'uscita dalla modalità SLEEP avviene a seguito dei seguenti eventi:

1. Ripristino esterno - impulso di basso livello sul pin /MCLR.

2. Ripristina quando viene attivato WDT (se abilitato)

3. Interruzioni. (Interruzione sul pin INT, interruzione al cambio della porta B, interruzione al completamento della scrittura dei dati EEPROM).

Il primo evento ripristina l'intero dispositivo. Gli altri due eventi suggeriscono che il programma continua a funzionare. Il bit "PD" nel registro di stato (f3), che è impostato all'accensione ma resettato dal comando "SLEEP", può essere utilizzato per determinare lo stato del processore prima del "risveglio": o il processore era in la modalità "SLEEP" (avvio a caldo), oppure era semplicemente spento (avvio a freddo). Il bit "TO" consente di determinare cosa ha causato l'uscita dalla modalità SLEEP: un segnale esterno sul pin /MCLR o il funzionamento del WDT.

Affinché un dispositivo si riattivi dalla modalità SLEEP tramite un'interruzione, l'interruzione deve essere abilitata impostando l'apposita maschera nel registro INTCON. Quando si esce dalla modalità SLEEP, il programma in background verrà eseguito se la maschera generale disabilita tutti gli interrupt (GIE=0). Se GIE=1, verrà eseguita la routine di interrupt.

Valori massimi dei parametri elettrici

Parametri al di fuori di questi limiti possono danneggiare il chip. Il funzionamento prolungato del cristallo ai suoi valori limite ne influenzerà l'affidabilità.

Microcontrollore PIC16C84. Breve descrizione

Osservazioni:

1. La potenza dissipata totale non deve superare gli 800 mW per ogni custodia. La potenza dissipata si calcola con la seguente formula:

Pdis= Vdd(Idd - Sum(Ioh)) + Sum ((Vdd - Voh)Ioh) + Sum (Vol Iol)

2. La caduta della tensione sul pin /MCLR al di sotto di Vss(terra) provoca correnti elevate, superiori a 80 mA, e può danneggiare questa linea. Pertanto, si consiglia di applicare i segnali al pin /MCLR tramite una resistenza di terminazione da 50-100 ohm.

parametri DC

Specifiche CC: PIC16C84-04, PIC16C84-10.

(Per prestazioni commerciali, industriali, automobilistiche).

MEMEC BALTIC Ltd. è membro del Memec International Components Group e del Raab Karcher Electronics Group. Questo gruppo di distributori di componenti elettronici è leader nella distribuzione della più recente tecnologia elettronica e componenti a semiconduttore.

MEMEC BALTIC Ltd. rappresenta il gruppo di società MEMEC ed è il distributore ufficiale di Microchip e Raychem in Russia, Ucraina, Bielorussia e paesi baltici.

MEMEC BALTICO Ltd.

Pubblicazione: N. Bolshakov, rf.atnn.ru

Vedi altri articoli sezione microcontrollori.

Leggere e scrivere utile commenti su questo articolo.

<< Indietro

Ultime notizie di scienza e tecnologia, nuova elettronica:

Macchina per diradare i fiori nei giardini 02.05.2024

Nell'agricoltura moderna si sta sviluppando il progresso tecnologico volto ad aumentare l'efficienza dei processi di cura delle piante. Presentata in Italia l'innovativa macchina per il diradamento dei fiori Florix, progettata per ottimizzare la fase di raccolta. Questo attrezzo è dotato di bracci mobili, che permettono di adattarlo facilmente alle esigenze del giardino. L'operatore può regolare la velocità dei fili sottili controllandoli dalla cabina del trattore tramite joystick. Questo approccio aumenta significativamente l'efficienza del processo di diradamento dei fiori, offrendo la possibilità di adattamento individuale alle condizioni specifiche del giardino, nonché alla varietà e al tipo di frutto in esso coltivato. Dopo due anni di test della macchina Florix su diverse tipologie di frutta, i risultati sono stati molto incoraggianti. Agricoltori come Filiberto Montanari, che utilizza una macchina Florix da diversi anni, hanno riscontrato una significativa riduzione del tempo e della manodopera necessari per diluire i fiori. ... >>

Microscopio infrarosso avanzato 02.05.2024

I microscopi svolgono un ruolo importante nella ricerca scientifica, consentendo agli scienziati di approfondire strutture e processi invisibili all'occhio. Tuttavia, vari metodi di microscopia hanno i loro limiti e tra questi c'è la limitazione della risoluzione quando si utilizza la gamma degli infrarossi. Ma gli ultimi risultati dei ricercatori giapponesi dell'Università di Tokyo aprono nuove prospettive per lo studio del micromondo. Gli scienziati dell'Università di Tokyo hanno presentato un nuovo microscopio che rivoluzionerà le capacità della microscopia a infrarossi. Questo strumento avanzato consente di vedere le strutture interne dei batteri viventi con sorprendente chiarezza su scala nanometrica. In genere, i microscopi nel medio infrarosso sono limitati dalla bassa risoluzione, ma l’ultimo sviluppo dei ricercatori giapponesi supera queste limitazioni. Secondo gli scienziati, il microscopio sviluppato consente di creare immagini con una risoluzione fino a 120 nanometri, ovvero 30 volte superiore alla risoluzione dei microscopi tradizionali. ... >>

Trappola d'aria per insetti 01.05.2024

L’agricoltura è uno dei settori chiave dell’economia e il controllo dei parassiti è parte integrante di questo processo. Un team di scienziati dell’Indian Council of Agricultural Research-Central Potato Research Institute (ICAR-CPRI), Shimla, ha trovato una soluzione innovativa a questo problema: una trappola per insetti alimentata dal vento. Questo dispositivo risolve le carenze dei metodi tradizionali di controllo dei parassiti fornendo dati sulla popolazione di insetti in tempo reale. La trappola è alimentata interamente dall'energia eolica, il che la rende una soluzione ecologica che non richiede energia. Il suo design unico consente il monitoraggio sia degli insetti dannosi che utili, fornendo una panoramica completa della popolazione in qualsiasi area agricola. “Valutando i parassiti target al momento giusto, possiamo adottare le misure necessarie per controllare sia i parassiti che le malattie”, afferma Kapil ... >>

Notizie casuali dall'Archivio

Terapia ad ultrasuoni per il dolore 01.03.2024

I ricercatori della Virginia Tech School of Medicine (USA) hanno introdotto un nuovo metodo per combattere il dolore fisico basato sull'uso degli ultrasuoni.

L'essenza del metodo è l'effetto mirato di densi fasci di onde ultrasoniche sull'insula, l'area del cervello responsabile dell'elaborazione dei segnali del dolore.

L'efficacia del metodo è stata dimostrata su 23 volontari sani affetti da dolore: il dolore, anche se non completamente, è stato significativamente ridotto.

Inoltre, è stato dimostrato che la stimolazione ecografica dell’insula aumenta la variabilità della frequenza cardiaca, il che può contribuire a migliorare il benessere del paziente.

Gli scienziati intendono sviluppare ulteriormente il metodo, poiché rappresenta un'alternativa efficace ai farmaci per alleviare il dolore e può migliorare significativamente la qualità della vita delle persone che soffrono di dolore cronico.

La terapia ad ultrasuoni apre nuove prospettive nel campo dell’alleviamento del dolore fisico senza l’uso di farmaci. La sua efficacia nella pratica indica il potenziale di questo metodo come uno strumento importante per migliorare la qualità della vita delle persone con dolore cronico.

Altre notizie interessanti:

▪ Gli animali percepiscono il campo magnetico grazie ai batteri

▪ Illuminazione stradale su richiesta

▪ Ricarica wireless fino a 30 cm di distanza

▪ Raffreddamento efficiente dei chip 3D

▪ Memoria sui cristalli di Senet

News feed di scienza e tecnologia, nuova elettronica

 

Materiali interessanti della Biblioteca Tecnica Libera:

▪ sezione del sito Tutela del lavoro. Selezione di articoli

▪ Articolo Affari assicurativi. Culla

▪ articolo Chi era Santippe? Risposta dettagliata

▪ Articolo sull'Etna. Miracolo della natura

▪ articolo Termometro per scaldabagno a gas. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

▪ articolo Esecuzione di fori con corrente elettrica. Esperienza chimica

Lascia il tuo commento su questo articolo:

Nome:


E-mail (opzionale):


commento:





Tutte le lingue di questa pagina

Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito

www.diagram.com.ua

www.diagram.com.ua
2000-2024