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

12 Anni 2 Mesi fa #1 da Giorgik

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • Giorgik
  • New Member
  • New Member
Di più
12 Anni 2 Mesi fa - 12 Anni 2 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 2 Mesi fa da pier.

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

  • pier
  • Avatar di pier
  • Senior Member
  • Senior Member
Di più
12 Anni 2 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 Accedi o Crea un account a partecipare alla conversazione.

  • Giorgik
  • New Member
  • New Member
Di più
12 Anni 2 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 Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 2 Mesi fa - 12 Anni 2 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 2 Mesi fa da Giorgik.

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

  • Giorgik
  • New Member
  • New Member
Di più
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.

Login