Quarzo 4Mhz <-> 8Mhz
- Login o registrati per inviare commenti
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?
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).
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!! :-)
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 o registrati per inviare commenti



















24 settimane 3 giorni fa
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.