Home Forum Scrivi una domanda di elettronica Quarzo 4Mhz <-> 8Mhz

Questo argomento contiene 4 risposte, ha 3 partecipanti, ed è stato aggiornato da Luca Giuliodori Luca Giuliodori 3 anni, 5 mesi fa.

Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #57841

    Connect
    Membro

    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?

    #69378

    Mino_73
    Partecipante

    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.

    #69430
    Luca Giuliodori
    Luca Giuliodori
    Partecipante

    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).

    #69433

    Mino_73
    Partecipante

    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!! :-)

    #69447
    Luca Giuliodori
    Luca Giuliodori
    Partecipante

    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!

Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.