Help: Max freq. Timer0 PIC 18F4550
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
Si prega Accedi o Crea un account a partecipare alla conversazione.
- RobertoPoz
- Autore della discussione
- Visitatori
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
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Mauro Laurenti
- Moderator
Diciamo che più che conti ho ragionato (probabilmente non nel modo corretto), a pag 30 del testo C18 Step-by-Step ho letto:
Ho quindi supposto che non utilizzando il postscaler in uscita avrei dovuto avere gli 8MHz originari dell'oscillatore interno."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)[...]
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
- Autore della discussione
- Visitatori
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.
Per meglio comprendere, la frequenza pari a un quarto è dovuto a quanto riporto qui sotto?
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 3MHzLe 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)
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
- Autore della discussione
- Visitatori
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.