Kysymys:
Kuinka ARM MCU toimii nopeammin kuin ulkoinen kide?
user3033693
2019-05-26 16:55:24 UTC
view on stackexchange narkive permalink

Joten ennen tätä työskentelin vain yksinkertaisten 8-bittisten Atmel-keskusyksiköiden kanssa ja tajusin kehityskorttikaaviossa, että siinä on vain 12 MHz: n kide, mutta MCU toimii jopa 100 MHz: n taajuudella.(Luulen, että oletus on 80 MHz. Tein sen korkeammaksi vain kerran huvin vuoksi. Se on vain yksinkertainen rivi koodissa.)

Kuinka se tekee sen?Miksi esimerkiksi Atmega328 toimii käytetyllä kristallinopeudella?

1) mHz tarkoittaa millihertsiä eli 1/1 000 hertsia, käytä MHz (iso M), kun tarkoitat megahertsiä.2) mikä 8-bittinen MCU?3) Mikä kehityskortti?4) ATMega 328: n ei tarvitse toimia kristallinopeudella, lue taulukkokellon osa nähdäksesi mikä on mahdollista.5) Joillakin IC-yksiköillä on PLL, jota voidaan käyttää ** kertomaan ** ulkoinen kellotaajuus.
@Bimpelrekkie: Suurin osa tästä kommentista on vastaus.Haluatko vastata siihen?
VCO-jakaja, jota verrataan 12 MHz: iin, johtaa kertomiseen f.Se mitä PLL-taajuussyntikka tekee.
@Bimpelrekkie näyttää siltä, että joku on jo korjannut sen minulle.Mainitsin jo Atmelin ja atmega328: n.mutta sillä ei ole merkitystä, koska se on esimerkki.afaik atmega328p: llä ei ole PPL: tä?Olin enimmäkseen utelias siitä, kuinka voit yksinkertaisesti kertoa sen.onneksi Marcus Muller selitti sen jo hyvin.
prosessori tietokoneessa, jolla luet tätä, käyttää todennäköisesti 100 MHz: n viitekelloa tai hitaampaa, mutta ydin toimii kuitenkin Ghz: ssä.
@JRE, ATmega328: n isot kirjaimet ovat edelleen väärät.
Kaksi vastused:
Marcus Müller
2019-05-26 17:37:14 UTC
view on stackexchange narkive permalink

Tällä ei ole mitään tekemistä sen kanssa, että ydin on ARM-prosessori; kyse on siitä, kuinka kellopiiri toimii:

Monissa järjestelmissä, kuten mikro-ohjaimissa, RF-siruissa, äänisiruissa,… sinun on luotava nopeampi kello, joka on tarkalleen jonkin verran viitekelloa (esimerkiksi ulkoinen kide).

Teet sen hankkimalla jänniteohjatun oskillaattorin (VCO), jonka taajuutta voidaan säätää syöttämällä tai pienentämällä ohjausjännitettä.

Nyt vain asettamalla mikä tahansa ohjausjännite, voit saada sen värähtelemään taajuudella karkeasti oikealla "pallokentällä", mutta ei tarkalla tulotaajuuden kerrannaisella. Erityisesti VCO: t voivat olla vähän kuivia, joten myös taajuus "vaeltaa" jatkuvasti kaikkialle. Sinun on ohjattava oskillaattoria vertaamalla sitä vertailuoskillaattoriin.

Se voidaan tehdä käyttämällä vaihelukittua silmukkaa . Idea on yksinkertainen:

  1. Jaa VCO: sta tuleva taajuus kertoimella \ $ N \ $ ; se on tekijä, jonka haluamme VCO: n olevan nopeampi kuin vertailu. Se on helppoa: Voit esimerkiksi käyttää vain digitaalista laskuria, joka laskee N: n ja muuttaa vasta sitten lähtöä.
  2. Vertaa \ $ f_ \ text {VCO} / N \ $ -kelloa viitekelloon \ $ f_ \ text {ref} \ $ . Jos toinen on nopeampi kuin toinen, säädä taajuus vastaavasti. Voit tehdä sen digitaalisella tavalla vain XOR'uttamalla molempia kelloja - ihannetapauksessa, jos ne ovat identtiset, tulos on vakio 0, mutta jos toinen on nopeampi kuin toinen, niin kasvaa määrä kertoja, jolloin Molempien kellojen XOR on 1; hidasta tai nopeuta VCO: ta vastaavasti.

Edellä on ohjauspiiri, joka on lukittu vaiheeseen - tästä syystä nimi.

"Rikkaille" mikro-ohjaimille, joilla on paljon oheislaitteita ja jotka hyötyvät siten siitä, että niissä on useita kelloja sisäisesti, on yleensä vähintään 1 PLL.ATMega328 on tässä suhteessa hieman outo: Se on suhteellisen voimanhimoinen, suhteellisen ohut oheislaitteiden mikrokontrolleri, jolla ei vieläkään ole PLL: ää.

Kiitos :) tämä selittää sen hyvin!Sen sijaan, että tönäisit hauskaa tai keskittyisit typeriin virheihini, kerroit minulle vain mitä ilmeisesti kysyn.Joitakin asioita on minulle erittäin vaikea kiinnittää huomiota dysleksiani kanssa.Vaikka luen viestini läpi 2-3 kertaa, kaipaan monia merkkejä tai laitan vahingossa isoja kirjaimia sinne, mitä minun ei tarvitse.Puhumattakaan englannista, ei ole ensimmäinen kieleni.
@AmyGamble englannin kielesi on kuitenkin erittäin hyvä!Luulen, että ensimmäinen kommenttisi, jonka sait postisi alle, johtui siitä, että hyvin monet nuoret insinöörit yksinkertaisesti unohtavat yksiköiden isojen kirjainten käytön - josta voi myöhemmin tulla hyvin ongelmallista :) Toivon, ettet koskaan masennu!
Justme
2019-05-26 17:13:49 UTC
view on stackexchange narkive permalink

Joissakin laitteissa on PLL, joka voi kertoa kidetaajuuden korkeampiin taajuuksiin.ATMega328: lla ei ole PLL: ää, se käyttää kristallia suoraan.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 4.0-lisenssistä, jolla sitä jaetaan.
Loading...