Home
Accesso / Registrazione
 di 

Quarzo 4Mhz <-> 8Mhz

4 risposte [Ultimo post]
ritratto di Connect
Offline
Ultima visita:
3 anni 3 settimane fa
Utente dal: 15/06/2011
Messaggi: 1

Ciao a tutti,

Se programmassi un uC AVR e il quarzo nel programmatore e a 4Mhz lo potrei utilizzare in un'applicazione dove il quarzo è a 8Mhz?

ritratto di Mino_73
Offline
Titolo: User++
Utente++
Ultima visita:
4 settimane 6 giorni fa
Utente dal: 27/06/2008
Messaggi: 66
Con attenzione!!

In genere il programma può funzionare senza problemi per quanto riguarda il controllo delle porte di IO. Discorso a parte per tutto ciò che è legato al clock, come i timer e le varie interfaccie di comunicazione SPI RS232 ecc. Durante la fase di init del micro si impostano i prescaler per i timer e le porte di comunicazione in base alle velocità ed hai tempi necessari. Se mandi il micro ad una velocità doppia avrai tutti i tempi dimezzati per i timer e velocità doppie nelle comunicazioni. Si può ovviare a questo se hai a disposizione un riferimento fisso e noto di frequenza diverso dal clock!!
Durante la fase di init ed inpostazione dei prescaler devi fare una misura del clock del micro comparandolo con il riferimento noto e in base al risultato programmi correttamente i prescaler. Altra soluzione è ricompilare il progetto, ovviamente. Ma anche in questo secondo caso dipende da come hai scritto il tuo codice sorgente. L'utilizzo delle "macro" in c e fortemente consigliato proprio per evitare di rincorrere nel codice tutte le dichiarazioni di costanti e variabili utilizzate durante il setup del micro al boot. Partendo dalla macro che definisce il clock del micro e dai valori desiderati per i timer e le interfacce, calcoli in modo simbolico i valori da assegnare hai registri di configurazione, magari aggiungendo un controllo su eventuali risultati inconsistenti con le caratteristiche del micro. Con questo sistema è sufficente riassegnare la frequenza di clock nel progetto e tutto torna a funzionare correttamente dopo una compilazione del progetto.

ritratto di lucagiuliodori
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
2 giorni 18 ore fa
Utente dal: 21/03/2011
Messaggi: 191
Se ho capito bene "Connect"

Se ho capito bene "Connect" sta chiedendo: "se ho un programmatore che ha un quarzo a 4 MHz, posso usarlo per programmare un microcontrollore che lavorerà con un quarzo a 8 MHz?"

Se è questa la domanda la risposta è SI: la fase di programmazione è scorrelata dalla fase di funzionamento del microprocessore, puoi quindi programmare il tuo microcontrollore con un programmatore che ha un quarzo a 4 MHz e farlo funzionare per un'applicazione che ha un quarzo differente da quello del programmatore. La frequenza del quarzo influisce solo sulla frequenza di lavoro del dispositivo (quindi del programmatore o dell'applicazione che stai implementando).

ritratto di Mino_73
Offline
Titolo: User++
Utente++
Ultima visita:
4 settimane 6 giorni fa
Utente dal: 27/06/2008
Messaggi: 66
Boh!!

Boh!! Io ho capito che vuole utilizzare una applicazione sviluppata per un frequenza di clock a 4MHz e metterla su un micro che gira a 8MHz. L'altro modo di vedere la cosa non mi sembrava molto sensata. Ma forse ho dato per scontato il fatto che la programmazione è una operazione scorrelata dal funzionamento del micro, magari "Connect" non era a conoscenza di questo fatto. "Connect" non ha più risposto magari ha già risolto, in fondo bastava provarci!! :-)

ritratto di lucagiuliodori
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
2 giorni 18 ore fa
Utente dal: 21/03/2011
Messaggi: 191
Infatti hai ragione, se non

Infatti hai ragione, se non ha più risposto evidentemente ha risolto. Dal suo post sembrava che il programmatore fosse a 4 MHz e la sua applicazione a 8 MHz...mah!

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 3 utenti e 106 visitatori collegati.

Utenti online

Ultimi Commenti