Help: Max freq. Timer0 PIC 18F4550

12 Anni 5 Mesi fa - 12 Anni 5 Mesi fa #1 da RobertoPoz
Help: Max freq. Timer0 PIC 18F4550 è stato creato da RobertoPoz
Salve,
ho un problema nella generazione di una frequenza con il timer0 del PIC18f4550, usando l'oscillatore interno.
Il PIC è montato su PICDEM 2 PLUS Demo Board (2006) della Microchip.
Attualmente ho provato, prendendo esempio dal testo C18 Step by Step, a non usare il prescaler e far lavorare il timer a 8 bit, cercando di ottenere la frequenza max che, sulla base dei miei ragionamenti, doveva essere intorno a 8MHz.
Purtroppo però non supero mai i 4,5KHz.
Non sono interessato al lampeggio del led, il segnale lo rilevo con un oscilloscopio dal pin RD0(anche perchè a queste freq. è impossibile vederlo lampeggiare).
Non capisco inoltre perchè si abbia una differenza così sensibile facendo lavorare il timer0 del pic a 8 o 16 bit nelle stesse condizioni di lavoro.
Sarei molto grato a chi mi fornisse la soluzione al problema e la risposta al quesito. Grazie già da ora per la disponibilità!

ALLEGATO: Codice da me utilizzato per il timer0, con tale codice raggiungo max 4,5KHz
Gli schematici sono reperibili qui : ww1.microchip.com/downloads/en/devicedoc/51275d.pdf
Allegati:
Ultima Modifica 12 Anni 5 Mesi fa da RobertoPoz.

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

  • RobertoPoz
  • Visitatori
  • Visitatori
12 Anni 5 Mesi fa - 12 Anni 5 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Help: Max freq. Timer0 PIC 18F4550
Ciao,

potresti spiegare che conti hai fatto.
Ho dato una lettura al codice e non imposti il timer ad un valore predefinito, quindi lavori sempre in overflow, ovvero dividi sempre per 256 (timer impostato ad 8 bit).

Saluti,

Mauro
Ultima Modifica 12 Anni 5 Mesi fa da Mauro Laurenti.

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 5 Mesi fa #3 da RobertoPoz
Risposta da RobertoPoz al topic Re: Help: Max freq. Timer0 PIC 18F4550
Salve e grazie per la risposta.
Diciamo che più che conti ho ragionato (probabilmente non nel modo corretto), a pag 30 del testo C18 Step-by-Step ho letto:

"Oltre a questi due oscillatori, è presente l'oscillatore interno ad 8MHz. Quando
abilitato può essere utilizzato per generare il clock del microcontrollore. E' possibile notare
che la sua uscita è collegata ad un postscaler (divisore di frequenza)[...]

Ho quindi supposto che non utilizzando il postscaler in uscita avrei dovuto avere gli 8MHz originari dell'oscillatore interno.
Non essendo riuscito suppongo che il ragionamento non sia giusto. Come dovrei fare per avere i fatidici 8MHz?

Chiedo scusa se commetto errori grossolani ma è da pochissimo che ho iniziato a lavorare con i PIC ed incontro ancora numerose difficoltà.
Grazie già da ora per il supporto!

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

  • RobertoPoz
  • Visitatori
  • Visitatori
12 Anni 5 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Help: Max freq. Timer0 PIC 18F4550
Ciao,

sebbene imposti la frequenza ad 8MHz le istruzioni vengono eseguite ad una frequenza pari a un quarto.
Dove vorresti avere gli 8MHz?
Per quale applicazione necessiti tale frequenza?

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 5 Mesi fa #5 da RobertoPoz
Risposta da RobertoPoz al topic Re: Help: Max freq. Timer0 PIC 18F4550
Salve,
Per meglio comprendere, la frequenza pari a un quarto è dovuto a quanto riporto qui sotto?

Le due fasi di Fetch ed Execute sono eseguite per mezzo di una pipeline ovvero sono eseguite in parallelo, dunque anche se si carica un'istruzione e si esegue l'istruzione precedente, a tutti gli effetti si ha l'esecuzione di un'istruzione completa ogni 4 cicli del clock principale ovvero ad ogni ciclo di clock istruzione
(C18 Step-by-step pag 23)

Attualmente è di mio interesse cercare di ottenere una frequenza in uscita in un intervallo tra 1MHz e 3MHz in modo da fare oscillare alcuni piezoelettrici. In realtà quindi non necessito di 8MHz ma mi accontenterei anche di 3MHz :)
Ovviamente tale frequenza la vorrei prelevare da un piedino del pic e vorrei fosse modificabile, eventualmente dovrei riuscire col prescaler.
Grazie per l'attenzione

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

  • RobertoPoz
  • Visitatori
  • Visitatori
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