Conoscere Fosc nel PIC18F4550 per Timer0, ADC, ecc...

  • Giorgik
  • Autore della discussione
  • Nuovo Utente
  • Nuovo Utente
Di più
12 Anni 6 Mesi fa #1 da Giorgik
Ciao a tutti, ho un problema di comprensione sulla frequenza di clock usata dal PIC18F4550.
Uso un quarzo XTAL da 20MHz collegato ai OSC1 (pin 13) OSC2 (pin 14) e il circuito è un clone di PICDEM_FSUSB. Faccio uso del USB ed impiego il codice scritto per C18 fornito dalla Microchip "Device - HID - Custom Demos" che funziona bene. Proprio in questo codice si hanno le seguenti direttive di configurazione del PIC:
Code:
#pragma config PLLDIV = 5 #pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 2 // Clock source from 96MHz PLL/2 #pragma config FOSC = HSPLL_HS
Volendo usare il Timer0, il modulo ADC ecc... devo usare delle formule per impostarli ed in particolare devo sapere la frequenza di clock o Fosc che uso nel mio circuito.
La mia domanda è quindi quale è questo valore (dovrebbe essere definito in HSPLL_HS ma quanto vale) ?
Da dove lo vedo ?
In generale da dove si ricava questo valore ?
Il PLL mi fa cambiare valore di Fosc o riguarda solo le formule di Prescaler/Postscaler, mentre la frequenza di clock Fosc è sempre la stessa di quella detta nelle precedenti domande ?

Grazie a tutti

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • pier
  • Anziano Utente
  • Anziano Utente
Di più
12 Anni 6 Mesi fa - 12 Anni 6 Mesi fa #2 da pier
Prova a ripassare il manuale di Mauro C18 Step by Step, in particolare quando parla dell'oscillatore nel secondo capitolo. E guardati anche il configuration setting del C18 per il PIC18F4550: ww1.microchip.com/downloads/en/DeviceDoc/51537a.pdf

In generale comunque il clock dipende dal quarzo utilizzato. infine ricordati che i PIC completano una istruzione ogni 4 cicli di clock.

EDIT: detto così sembra fuorviante, il clock dipende dal quarzo ma poi viene diviso in base alle necessità, infine "arriva" alla CPU che compie una istruzione ogni 4 cicli.
Ultima Modifica 12 Anni 6 Mesi fa da pier.

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Giorgik
  • Autore della discussione
  • Nuovo Utente
  • Nuovo Utente
Di più
12 Anni 6 Mesi fa #3 da Giorgik
Grazie Pier per la risposta, ma la mia confusione nasce dal fatto che nell'elenco delle direttive pragma config (vedi FOSC = HS, ec...) non si sa a quale range di frequenze corrispondano; inoltre sono riferiti (credo) alla frequenza del cristallo XTAL esterno in uso (nel mio caso 20MHz) ?
Tutto ciò per sapere se è la frequenza XTAL quella definita in FOSC che poi si usa nelle varie formule per calcolare il tempo nel Timer0, A/D ecc... .

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
12 Anni 6 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Conoscere Fosc nel PIC18F4550 per Timer0, ADC, ecc...
Come ha detto Pier, tieni conto del fatto che una istruzione viene eseguita in 4 cicli di clock.



Come mostra l'immagine, il modulo USB lavora con il clcok nominato con USB Peripheral, mentre il clock che va ai Timer come anche alla CPU ed altre periferiche, e' quello nominato Peripheral (CPU).
Non necessariamente il clock delle periferiche e' pari a quello del quarzo. Normalmente se fai uso del PLL puoi avere valori piu' alti, mentre se fai suo di pre e post scaler puoi avere valori minori.
Segui il percorso del clock sull' immagine che ho postato.
Il percorso viene a dipendere dal valore delle direttive pragma ma anche dal valore dei relativi registri in cui si impostano i multiplexer.

Saluti,

Mauro
Allegati:

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Giorgik
  • Autore della discussione
  • Nuovo Utente
  • Nuovo Utente
Di più
12 Anni 6 Mesi fa - 12 Anni 6 Mesi fa #5 da Giorgik
Grazie Mauro, sei stato abbastanza esaudiente, ... abbastanza perchè non mi hai ancora detto invece a quali range di valori di frequenza corrsipondono le direttive pragma config come:
FOSC = HS
HSPLL_HS
ecc... . :)
Ultima Modifica 12 Anni 6 Mesi fa da Giorgik.

Si prega Accesso o Crea un account a partecipare alla conversazione.

Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Forum - Ultimi messaggi