Come funziona una MCU ARM più veloce del cristallo esterno?


12

Quindi prima ho lavorato solo con semplici MCU Atmel a 8 bit e ho realizzato sui miei schemi della scheda di sviluppo che ha solo un cristallo da 12 MHz, ma l'MCU funziona fino a 100 MHz. (Penso che il valore predefinito sia 80 MHz. L'ho fatto aumentare una volta sola per divertimento. È solo una semplice riga nel codice.)

Come lo fa? Perché un Atmega328, ad esempio, funziona alla velocità del cristallo usata?


5
1) mHz significa milli Hertz, quindi 1/1000 di Hertz, usa MHz (maiuscola M) quando intendi Mega Hertz. 2) quale MCU a 8 bit? 3) Quale scheda di sviluppo? 4) ATMega 328 non deve funzionare alla velocità del cristallo, leggi la sezione relativa al clock nel foglio dati per vedere cosa è possibile. 5) Alcuni circuiti integrati hanno un PLL che può essere utilizzato per moltiplicare la frequenza di clock esterna.
Bimpelrekkie,

1
@Bimpelrekkie: la maggior parte di quel commento è la risposta. Vorresti dare una risposta?
JRE,

Il divisore VCO da confrontare con 12 MHz finisce per moltiplicarsi f. Ecco cosa fa un synth freq PLL.
Tony Stewart Sunnyskyguy EE75,

@Bimpelrekkie sembra che qualcuno l'abbia già riparato. Ho già citato Atmel e atmega328. ma non importa in quanto è un esempio. afaik atmega328p non ha una PPL? Ero principalmente curioso di sapere come puoi semplicemente moltiplicarlo. per fortuna Marcus Muller lo ha già spiegato molto bene.
user3033693

il processore nel computer su cui stai leggendo questo sta probabilmente usando un clock di riferimento di 100 Mhz o più lento ma il core gira nel ghz.
old_timer

Risposte:


28

Questo non ha nulla a che fare con il core che è un processore ARM; riguarda il funzionamento dei circuiti di clock:

In molti sistemi come microcontrollori, chip RF, chip audio, ... è necessario generare un clock più veloce che sia un multiplo esatto di un clock di riferimento (ad esempio un cristallo esterno).

Puoi farlo avendo un oscillatore controllato in tensione (VCO) che puoi regolare in frequenza inserendo o diminuendo una tensione di controllo.

Ora, semplicemente impostando qualsiasi tensione di controllo, è possibile far oscillare questa frequenza approssimativamente nel giusto "ballpark", ma non ad un multiplo esatto della frequenza di ingresso. Soprattutto, i VCO possono essere un po 'lenti, quindi anche la frequenza "vagherà" continuamente in tutto il luogo. È necessario controllare quell'oscillatore confrontandolo con l'oscillatore di riferimento.

Il modo per farlo è utilizzando un loop a fase bloccata . L'idea è semplice:

  1. N
  2. fVCO/Nfref

Quanto sopra è un circuito di controllo, bloccato nella fase di - da qui il nome.

Per i microcontrollori "ricchi", che hanno molte periferiche e quindi traggono vantaggio dall'avere più clock internamente, è normale avere almeno 1 PLL. ATMega328 è un po 'strano al riguardo: è un microcontrollore relativamente assetato di energia e relativamente ricco di periferiche che non ha ancora un PLL.


1
Grazie :) questo lo spiega molto bene! Invece di prendermi in giro o concentrarmi sui miei sciocchi errori, mi hai appena detto quello che sto ovviamente chiedendo. Alcune cose sono MOLTO difficili per me prestare attenzione con la mia dislessia. Anche se leggo il mio post 2-3 volte mi manca un sacco di marche o metto accidentalmente lettere maiuscole dove non ne ho bisogno. Per non parlare dell'inglese non è la mia prima lingua.
user3033693,

7
@AmyGamble il tuo inglese è molto buono, tuttavia! Penso che il primo commento che hai ricevuto sotto il tuo post sia stato perché molti giovani ingegneri hanno semplicemente dimenticato la capitalizzazione delle unità - che può diventare molto problematica in seguito :) Spero che non ti scoraggerai mai!
Marcus Müller,

9

Alcuni dispositivi hanno un PLL che può moltiplicare la frequenza dei cristalli a frequenze più alte. ATMega328 non ha un PLL, utilizza direttamente il cristallo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.