Pitanje:
Mogu li se mikrokontroleri pokretati na proizvoljno niskim frekvencijama takta?
endolith
2009-12-16 09:58:52 UTC
view on stackexchange narkive permalink

U tablici podataka za ATTiny13A, na primjer, navedena je minimalna frekvencija od 0 MHz. Znači li to da sat može raditi na bilo kojoj proizvoljno niskoj frekvenciji bez štetnih učinaka? Pretpostavljam da crpi manju struju pri nižim taktovima? Znači li 0 MHz da možete potpuno zaustaviti sat i dok god se napaja, on će pamtiti svoje stanje neograničeno?

Želio bih dodati, ovo je izvrsno pitanje. Većina starijih EE ne uzima vremena da zapravo pročita i razmisli o tablicama podataka, što je ili dodatak za vas ili uvreda za njih, želio bih implicirati oboje.
Nisam potpuno siguran da je unutarnji RC oscilator isključen, osim ako mu to posebno ne naložite (kroz razne opcije uštede energije). Nisam siguran za što se koristi, ali barem za EEPROM i vjerojatno ADC.
@jippie koji interni RC govoriš? ATMegaX, na primjer, ima interni RC za sistemski sat (obično 8 MHz, s opcijskim dijelivačem 8), ima oscilator čuvara. Sistemski sat je odabran osiguračem i vjerojatno je isključen kada se koristi vanjski sat. Ostale, kao što ste rekli, mogu onemogućiti načini uštede energije, ali sumnjam da će zaustaviti sistemski sat.
Pet odgovori:
#1
+75
todbot
2009-12-16 10:07:32 UTC
view on stackexchange narkive permalink

Da. Ako na podatkovnom listu stoji "potpuno statičan rad", možete ga taktirati pri bilo kojoj brzini, čak i 0 Hz. "Dinamični" čip mora imati sat s određenom brzinom ili gubi svoje stanje.

imate li primjer mikrofona koji to dopušta?
Mikrokontroleri koji sadrže bljeskalicu na čipu mogu odrediti minimalnu (i maksimalnu) brzinu takta bljeskalice prilikom upisivanja u bljeskalicu. Međutim, kada čitate s bljeskalice, to se ne odnosi.
MrEvil, Atmel AVR ATtiny serija spomenuta u pitanju potpuno je statična, kao što mislim da i većina svih Atmel AVR čipova. I mislim da najviše svi mikročipovi PIC mikrokontroleri.
Želio bih dodati MSP430s na todbotov popis. Većina modernih mikrokontrolera to čini, dinamična vrsta je glavobolja za dizajn, tako da većina to ne čini.
Zapravo, mislim da ADC u ATTiny13A ne radi na niskim frekvencijama, možda zbog propadanja kondenzatora za uzorkovanje i zadržavanje? "Prema zadanim postavkama, uzastopni aproksimacijski sklop zahtijeva ulaznu taktnu frekvenciju između 50kHz i 200 kHz da bi se postigla maksimalna razlučivost. ... ADC modul sadrži pretcjepač koji generira prihvatljivu ADC frekvenciju takta iz bilo koje frekvencije CPU-a iznad 100 kHz."
endolit - Slažem se, ADC-ovi obično ne rade na niskim frekvencijama. Koliko vidim, sve ostalo na praktički svim modernim mikrokontrolerima i dalje radi u redu sve do "0 Hz", odnosno "pauza na neodređeno vrijeme". Konkretno, mnogi mikrokontroleri imaju način rada "mirovanja" koji zaustavlja sve satove, sve dok ga nešto - obično osoba koja pritisne tipku - ne probudi i ono nastavi tamo gdje je stalo. Https://en.wikipedia .org / wiki / Static_logic_ (digital_logic)
RCA 1802 (http://en.wikipedia.org/wiki/RCA_1802) bio je, AFAIK, prvi mikro uređaj koji je omogućio statički rad, još 1976. godine.
Međutim, ADC se može smatrati perifernim uređajem iz perspektive takta za CPU jezgru. Čini se da statična operacija nije velika stvar. Možete kombinirati sekvencijalni krug pomoću TTL čipova i on će raditi sve do proizvoljno niskih brzina. Stvari poput prisutnosti DRAM-a kojem je potrebno osvježavanje stvaraju izazove.
@Kaz: Kada izrađujete NMOS uređaj, učinkovitije je energiju bezuvjetno povući sabirnicu visoko u jednoj polovici ciklusa, a zatim je uvjetno povući nisko u drugoj polovici ciklusa, nego koristiti pasivnu vuču koja mora biti dovoljno jaka dapovucite autobus visoko unutar ciklusa.Prvi će pristup trošiti struju proporcionalnu * stvarnoj * kapacitivnosti sabirnice u svakom ciklusu, dok će drugi trošiti struju proporcionalnu stvarnoj izvornoj struji kruga čija najgora (najmanja) sposobnost strujnog napajanja mora biti dovoljna da napaja najgore-kapacitivnost sabirnice kućišta (maksimalna).
@Kaz: Mnogi NMOS uređaji poput 6502 tako su koristili dinamičku logiku za stvari poput vožnje autobusom, a ne samo dinamičku "memoriju".Korištenje dinamičke vožnje autobusom znači da treba osigurati omjere kapacitivnosti / propuštanja, ali inače omogućuje mnogo izdašnije marže za mnoge druge parametre izrade nego što bi to bilo moguće u potpuno statičnom dizajnu.
#2
+23
Kortuk
2009-12-16 10:41:34 UTC
view on stackexchange narkive permalink

Objavljujem drugi odgovor, samo zato što na posljednje pitanje na koje prije niste dobili odgovor.

Todbot je potpuno točan. Također će crpiti nižu snagu pri nižim brzinama. To također znači ako, na primjer, sat isporučite iz drugog procesora, možete ga zaustaviti u bilo kojem trenutku, a zatim ga početi taktirati kasnije, sve dok ne idete brže od maksimalne brzine, bit ćete dobro.

Čipovi koje imam dobivaju redoslijed veličine između 32768Hz oscilatora i 1MHz oscilatora. Imao sam aplikacije u kojima mi nije trebala brzina, samo mi je trebao još jedan mali momak koji je za mene radio neke osnovne podatke.

Nadam se da ovo pomaže.

Oduvijek sam želio pokretati liniju sata mikrokontrolera tipkom. Neka čovjek bude sat. :) Ozbiljno napominjem, zaista su lijepe stvari kod ovih statičnih dizajna njihova potrošnja energije linearna sa taktom: usporite sat i potrošite manje energije. Ovo može biti vrlo zgodno.
Da, ali volim napomenuti, potrošnja energije je linearna funkcija s pomakom, čak i bez sata i dalje troše energiju, posebno s bilo kojim izlazima koji se pokreću. Upravo smo dobili nove pripravnike na mom poslu, predložit ću da upotrijebimo tipku i vidimo što će se dogoditi.
@todbot Lijepa ideja. :-) Ali pobrinite se da opozovete tipku.
Pokušajte s "mljevenom radilicom" (kao što u žargonu znači: http://www.jargon.net/jargonfile/g/grindcrank.html): -)) (i da, prije mnogo godina napravio sam jedan korak preko koda kad sam u školi koristio Turbo Pascal :-)
@todbot Nije stvarno pretjerano ili teško ako možete prihvatiti grubu apstrakciju. Postoji nekoliko primjera ljudi koji koriste takve uređaje kako bi podučavali kako računala rade. Myke Predko ima stvarno dobru knjigu, a dolazi čak i s PCB-ima (iako ne za računalni projekt): http://www.amazon.com/Digital-Electronics-Guidebook-Michael-Predko/dp/0071377816/ref=sr_1_1 ? ie = UTF8 & qid = 1260970753 & sr = 8-1
-1
@Axeman - žargonska datoteka tvrdi da je "brušenje ručice" mitsko. Evo dokaza koji govore suprotno: http://www.computerhistory.org/babbage/. Pokret s desne strane pokreće računalo; onaj s lijeve strane pokreće pisač. Možete dobiti bolji osjećaj za veličinu stvari gledajući video na toj stranici; visok je oko osam metara.
@PeteBecker: Kalkulator Curta također je imao ručicu koja se zapravo mogla povući gore ili dolje za odabir zbrajanja ili oduzimanja.
#3
+18
supercat
2011-04-09 22:11:49 UTC
view on stackexchange narkive permalink

Većina modernih dizajna mikrokontrolera radit će s bilo kojim uzorkom na ulazu takta, pod uvjetom da nijedan visoki impuls nije ispod određene minimalne duljine, nijedan impuls nije ispod određene minimalne duljine i nema niskog-visokog-niskog ili visokog par nisko-visokih impulsa ispod je određene duljine. U osnovi se događa da nakon što čip izvrši sve radnje povezane s određenim rubom sata, čip će biti u stanju da ne radi ništa drugo nego čeka sljedeći rub sata. Ako sljedeći rub sata ne stigne deset dana (osim ako čip ima neki vanjski čuvar), čip će biti u istom stanju kao da je rub stigao onog trenutka kada je čip za to spreman.

Imajte na umu da će općenito pauziranje sata na mikrokontroleru znatno smanjiti trenutnu potrošnju, ali ne toliko kao korištenje značajke "mirovanja". Potrošnja struje većine mikrokontrolera u načinu rada "run" može se prilično dobro procijeniti kao konstantna struja mirovanja plus određena količina struje po ciklusu u sekundi (što bi moglo biti "prirodnije" izraženo kao naboj po ciklusu). Na primjer, čip može imati struju mirovanja od 10uA, plus struju od 0,1mA / MHz (100pC / ciklus). Pokretanje takvog čipa na 10MHz rezultiralo bi strujom od 1,01mA. Pokretanje na 1MHz rezultiralo bi 0,11mA. Pokretanje na 100KHz rezultiralo bi 0,02mA. Ako se radi na 1Hz, dobiva se 0,0100001mA. S druge strane, čip može ponuditi struju mirovanja od 1uA. Općenito, ulazak u način mirovanja u potpunosti će isključiti područja čipa koja neće činiti ništa korisno dok čip spava, čime će se izbjeći struja curenja koja takva područja mogu imati. U nekim će slučajevima također smanjiti napon na područja poput datoteka registra do razine na kojoj datoteke registra mogu sadržavati svoj sadržaj, ali im neće pristupiti vrlo brzo (jer im uopće neće biti pristup, brzina pristupa nije bitna) .

Neki stariji mikroprocesori, mikrokontroleri i drugi uređaji imali su maksimalno vrijeme najvećeg i / ili nižeg vremena. Takvi procesori koristili su dinamičku logiku za spremanje sklopova. Kao primjer dinamičke logike, razmotrite pomični registar: tipični bit statičkog registra zahtijeva dvotranzistorski krug da zadrži vrijednost, dok dinamički bit registra drži vrijednost na ulazu očitavajućeg tranzistora. Dvofazni taktni dinamički pomični registar može se realizirati u NMOS-u pomoću četiri NFET-a i dva otpora po bitu. Za statički registar pomaka bilo bi potrebno osam NFET-ova i četiri otpora po bitu. Pristupi dinamičkoj logici danas nisu ni približno toliko česti. Natrag u 1970-ima, kapacitet ulaza je bio znatan i nije se mogao riješiti. Stoga nije bilo posebnog razloga da se to ne iskoristi. Danas je kapacitivnost ulaza općenito mnogo manja, a proizvođači čipova je aktivno pokušavaju dodatno smanjiti. Pouzdan rad dinamičke logike često bi trebao namjerno raditi na povećanju kapacitivnosti vrata. U većini slučajeva, dodatno područje čipa potrebno za povećanje kapacitivnosti moglo bi se jednako učinkovito koristiti za dodavanje više tranzistora kako bi se kapacitet učinio nepotrebnim.

Spominjete NMOS i IIRC, postoji veza između popularnosti dinamičke logike i komplementarnog MOS-a (CMOS) koji još nije dostupan.
@jpc: Ispitao sam sheme različitih NMOS čipova - neke vrlo detaljno, uključujući Atari 2600 TIA koji je stvarno genijalno djelo - ljudi još uvijek pronalaze nove stvari s tim tri desetljeća kasnije. Mislim da je jedna prednost NMOS-a u odnosu na CMOS sa stajališta pogodnosti dizajna u tome što "pucanje" (slučajno istovremeno aktiviranje pogona visoke i niske strane) nije faktor, iako ću priznati znatiželju zašto CMOS se ne pokreće na dovoljno niskom naponu da bi točka prijelaza na ulazu ostavila isključene visoke i niske bočne upravljačke programe, umjesto da aktivira oba.
@jpc: U NMOS-u je moguće implementirati XOR vrata s dva tranzistora i dva otpora, ako su ulazi dovoljno "jaki". Čak i ako na oba ulaza treba dodati pretvarače, xor vrata s četiri tranzistora i četiri otpora bila bi bolja od mnogih drugih pristupa. Nikad nisam vidio pristup koji se koristio, iako sam sličan sklop dizajnirao koristeći BJT-ove oko 1978. (koncept dizajna bolje bi funkcionirao s MOSFET-ovima, ali o njima nisam znao ništa).
+1 - Osjećam da je pravi dragulj koji ste ovdje spomenuli to što niže brzine takta štede energiju, ali ne toliko kao režimi mirovanja koji su posebno dizajnirani za optimizaciju uštede energije. Moja mi crijeva govore da ćete uštedjeti više energije radeći brzi oscilator u kombinaciji s razumnom upotrebom načina mirovanja, pri neprestanom radu na jako niskoj frekvenciji.
@JoelB: To ovisi o mnogim čimbenicima. Na mnogim procesorima postoji kašnjenje između uključivanja brzog sata i mogućnosti njegove stvarne upotrebe; za to vrijeme čovjek će trošiti energiju. Kad bi se netko morao probuditi na pr. 100x / sekundu, možda je bolje kontinuirano lagano trčati nego neprestano startati i zaustavljati se. S druge strane, ako će netko pokretati i zaustavljati brzi sat, možda bi bilo dobro minimalizirati količinu vremena koje on teče u mjeri u kojoj to može učiniti bez gubljenja dodatne energije. Na primjer...
... ako CPU ima "način napona visoke jezgre" koji može raditi do 16 MHz i "način rada niskog napona jezgre" koji može raditi do 4 MHz, prebacivanje između načina "zaustavljanja" i "4 MHz" može biti bolje od prebacivanja između načina "stop" i "1MHz" ako bi za prvo bilo potrebno provesti manje vremena budno; čak i ako bi prelazak na način rada od 16 MHz dodatno smanjio vrijeme buđenja, vjerojatno ne bi bio vrijedan dodatnih troškova energije.
@supercat - Apsolutno ovisi o brojnim čimbenicima (neke koji se ne mogu izmjeriti). Na kraju je energija najvažnija i morali biste prilagoditi svoju shemu sata uz znanje svoje aplikacije / procesora i koliko će se često obrađivati. Samo sam htio ukazati na perspektivu "šuma za drveće" koju ste donijeli spominjući način mirovanja u ovoj raspravi. Moja mi crijeva govore da još uvijek postoji puno proizvodnog koda s 'while (1) {_ nop;}' za koji dobronamjerni inženjeri misle da štede najviše energije radeći na sporijim brzinama, umjesto da pravilno implementiraju način mirovanja.
@JoelB: Vaš komentar podsjetio me na problem koji su neki kolege inženjeri imali neko vrijeme unazad: audio izlaz sustava ponekad bi dosadno zazujao. Ispostavilo se da bi ga, kad god OS otkrije da CPU nema što raditi, uspavao. To je smanjilo potrošnju energije, omogućujući VDD-u da lagano poraste. Svakih 10 ms CPU bi se probudio da vidi ima li još što za napraviti. Problem je riješen dodavanjem nečega poput: "do {} while (audio_powered_on ());" prije izjave "sleep ()" u neaktivnom zadatku, jer u toj situaciji štednja energije * nije bila * kralj.
@supercat - Zvuči kao da ova priča dokazuje upravo suprotno. Pravilno specificirano / regulirano / filtrirano / nevezano napajanje trebalo je biti dizajnirano tako da ne bi imalo vidljive učinke na audio tijekom očekivanog operativnog opterećenja procesora. Stoga se čini da je snaga (ili preciznije _ dizajn napajanja_) i dalje glavna stvar. Inače, izvrstan popravak!
Što mislite pod tim da san ima manje snage od zaustavljanja sata?Na primjer, kod atmela, jedina stvar koja se razlikuje između spavanja i trčanja je to koji se satovi zaustavljaju.Spavanje ne može ništa drugo učiniti?Osim ako ne prekida napajanje dijelova?
@JoelB: Filtriranje napajanja ima tri aspekta: (1) sprečavanje izlaska smeća iznutra;(2) spriječiti ulazak smeća izvana;(3) spriječiti promjene u povlačenju struje od promjene unutarnjeg napona.Optimizacija za # 1 općenito će negativno utjecati na # 3.Da je uređaj koristio potpuno odvojene potrepštine za audio i CPU, to bi izbjeglo problem, ali zahtijevalo bi više elektronike za napajanje;problem je bio u tome što su se CPU i audio sklop nalazili na istoj strani istog filtra.
@SectoKia: Alternativa nije bila između zaustavljanja sata i spavanja, već između spavanja u praznom hodu i izvršavanja beskorisnih uputa kako bi se osiguralo ujednačenije crpanje energije.Iako mnogi procesori smanjuju snagu na značajnim dijelovima u svojim režimima mirovanja manje snage.
#4
+12
flup
2013-12-19 15:28:24 UTC
view on stackexchange narkive permalink

Da, možete potpuno zaustaviti sat i kasnije ga ponovno pokrenuti bez posljedica. Možete čak i sat zamijeniti tipkom i proći kroz vaš program doslovno korak po korak (frekvencija: oko 0,1 Hz).

Snaga je gotovo linearna s frekvencijom: na 10 MHz mikrokontroler će potrošiti 10 puta više mnogo snage kao na 1 MHz. To ne znači da je pri 0 Hz potrošnja potpuno nula. Uvijek postoji statično rasipanje, ali to je vrlo malo, obično 1 uA ili manje.

PS: primijetite da ADC ima minimalnu radnu frekvenciju. Ako je frekvencija preniska, kondenzator na kojem se mjeri napon ispraznit će se previše i vaše će mjerenje biti pogrešno.

Tipkalo?Što je s debounkingom?
Debouncing je potreban.
#5
+10
Buzby
2013-04-17 15:08:18 UTC
view on stackexchange narkive permalink

Kasno na ovo pitanje podsjetilo me na projekt koji sam vidio neko vrijeme.

To je detektor šišmiša koji većinom koristi PIC koji radi na nuli Hz, a zatim se taktira samim signalom koji otkriva.

http://www.micro-examples.com/public/microex-navig/doc/077-picobat.html

U [ovom projektu] (http://scanlime.org/2008/09/using-an-avr-as-an-rfid-tag/) signal je i sat * i snaga čipa *. :)


Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 2.0 licenci pod kojom se distribuira.
Loading...