
Przetaktowywanie Arduino z wykorzystaniem ch³odzenia ciek³ym azotem. Cel 20 MHz ⇒ 65,3 MHz @ -196°C
Przed opisem projektu autor odpowiada na dwa podstawowe pytania, które i tak zosta³yby zadane, wiêc mo¿e warto od tego zacz±æ?
1) Dlaczego? Bo mogê. Aby nauczyæ siê jak dzia³a elektronika w warunkach kriogenicznych i z czystej ciekawo¶ci, ile mocy obliczeniowej da siê wycisn±æ z zwyk³ego AVRa, je¶li odpowiednio mocno siê postaramy. Eksperyment ten jest tak¿e poniek±d analogiczny do podobnych eksperymentów przeprowadzonych z wykorzystaniem procesorów komputerów osobistych.
2) Dlaczego Arduino UNO (ATmega328P)? Oczywi¶cie, istnieje wiele szybszych mikrokontrolerów, jednak¿e ten model Arduino zdaje siê byæ najpopularniejszy po¶ród amatorów programowania i mikrokontrolerów. Z punktu widzenia praktycznego ³atwiej by³oby wykorzystaæ ARMu (na przyk³ad Cortex M3 lub M4) albo uk³ad FPGA.
Przetaktowywanie mikrokontrolerów z wykorzystaniem ciek³ego azotu wydaje siê byæ trudniejsze ni¿ taki sam zabieg z wykorzystaniem procesora komputera osobistego - nie istniej± ¿adne znane testery wydajno¶ci, AVRy nie posiadaj± wewnêtrznego programowalnego generatora czêstotliwo¶ci ani ¼ród³a zasilania. Ponadto podczas zamra¿ania p³ytki prototypowej tak¿e inne jej elementy by³y ch³odzone, czêsto by³o to ¼ród³em ich awarii. Na szczê¶cie uda³o siê pokonaæ wszystkie problemy napotkane podczas realizacji projektu.
Ciek³y azot (LN2)
Autor ju¿ od dawna chcia³ wykorzystaæ do czego¶ ciek³y azot (LN2). Okazuje siê ¿e w okolicach Moskwy, gdzie mieszka, istnieje szereg firm sprzedaj±cych LN2 osobom fizyczny. Najbli¿ej jego miejsca zamieszkania znajduje siê NII KM, gdzie litr ciek³ego azotu mo¿na kupiæ ju¿ za $1,5. Oczywi¶cie ceny wahaj± siê i czasami dochodz± a¿ do $8.
Ciek³y azot jest - dos³ownie - robiony z powietrza. Jest ono skraplane, a nastêpnie sk³adniki s± separowane od siebie w kolumnie frakcjonuj±cej. Innym sposobem jest oddzielenie najpierw azotu od innych gazów sk³adaj±cych siê na powietrze, a nastêpnie skroplenie go. Do oddzielania innych gazów od azotu u¿ywa siê najczê¶ciej filtrów zeolitowych. Maszyny do wytwarzania ciek³ego azotu dostêpne s± komercyjnie, a koszt elektryczno¶ci potrzebnej do wytworzenia jednego litra LN2 to oko³o $0,15 - $0,30... wiadomo ju¿ o co prosiæ ¶w. Miko³aja

Pomimo bardzo niskiej temperatury ciek³ego azotu (-196 °C ) mo¿na go normalnie transportowaæ z wykorzystaniem zwyk³ych stalowych pojemników (szklane s± wykluczone - stres termiczny w szkle spowoduje ich pêkniêcie). Po dodaniu niewielkiej izolacji termicznej - 1 cm piankowego materia³u plus warstwa folii) LN2 móg³ byæ przechowywany przez oko³o 30 godzin. Dla porównania - w dedykowanych pojemnikach na ciek³y azot o pojemno¶ci 5 L (naczynia Dewara - przyp. t³um.) LN2 mo¿na przechowywaæ nawet przez 25 dni. Pamiêtaæ nale¿y ¿e naczyñ z skroplonym gazem nie mo¿na szczelnie zamykaæ! paruj±cy gaz wytworzy ci¶nienie zdolne rozerwaæ pojemnik. Ka¿dy pojemnik.
Testy mikrokontrolera
Autor zmuszony by³ napisaæ odpowiednie oprogramowanie testuj±ce do AVRa. Testuje ono zapis i odczyt z pamiêci SRAM, odczyt pamiêci flash a tak¿e wykonuje operacje arytmetyczne i monitoruje przebieg programu. Pomys³ testu jest bardzo prosty - ka¿dy krok niemal¿e losowo zmienia sumê kontroln±, ale po pewnej licznie cykli suma kontrolna zbiega do ustalonej warto¶ci. Program da siê pobraæ z strony autora.
Rezultaty analizy wy¶wietlane s± na standardowym LCD (HD44780) pod³±czonym do mikrokontrolera szyn± 4 bitow±. W drugiej linijce wy¶wietlacza znajduj± siê wszystkie istotne dane - numer iteracji oraz suma kontrolna. Je¶li wszystko jest w porz±dku suma kontrolna powinna wynosiæ 12345678. Pierwsze dwie cyfry odpowiadaj± za test SRAM, nastêpne za flash, test arytmetyki i dzia³ania programu. B³êdy w sumie kontrolnej siê kumuluj±, zatem ¿aden b³±d nie pozostanie niezauwa¿ony, nawet je¶li wydarzy siê tylko raz.
Rezultaty badania stabilno¶ci programu s± tak¿e podawane na mrugaj±ce pomarañczowe LEDy na p³ytce. Równomierne mrugania oznacza ¿e wszystko jest OK. Jedno krótkie mrugniêcie odpowiada za b³±d SRAM, dwa za flash etc.
Przy testach w temperaturze oko³o -100 °C najczêstszymi b³êdami by³y b³êdy wynikaj±ce z ci±g³o¶ci programu, przy temperaturze LN2 (-196 °C) najczê¶ciej zawodzi³a pamiêæ SRAM. Wy¶wietlanie b³êdów na LEDach zosta³y zaimplementowane z powodu potencjalnych trudno¶ci z implementacj± obs³ugi wy¶wietlacza spowodowanych podwy¿szonym napiêciem pracy. Jednak¿e w rzeczywisto¶ci okaza³o siê inaczej - w³a¶ciwo¶ci diod LED drastycznie zmieni³y siê po sch³odzeniu. Najpierw zmieni³y one kolor, a nastêpnie przesta³y w ogóle ¶wieciæ. Wszystko wskazuje na to ¿e pod wp³ywem zmiany temperatury przerwa energetyczna pó³przewodnika zwiêkszy³a siê na tyle ¿e napiêcie przy³o¿one do diody by³o niedostateczne. Poni¿ej dok³adniej opisano ten efekt.
Generator zegara taktuj±cego
Arduino zazwyczaj taktowane jest z wykorzystaniem generatora kwarcowego. Fundamentalne czêstotliwo¶ci tego typu generatorów zazwyczaj wynosz± 30 MHz lub mniej, co oznacza ¿e nie jeste¶my w stanie wykorzystaæ tego rozwi±zania do porz±dnego przetaktowania uk³adu, musimy wykorzystaæ zewnêtrzny generator. Aby nie zmieniaæ nic w samej p³ytce prototypowej po prostu odgiêto dwa piny mikrokontrolera i pod³±czono jest do zewnêtrznego generatora zegarowego. Oczywi¶cie fuse bity zosta³y odpowiednio ustawione aby mikrokontroler korzysta³ z zewnêtrznego zegara, co wymaga³o wykorzystania zewnêtrznego programatora równoleg³ego. (TL866CS MiniPro). Na zdjêciu poni¿ej, oprócz programatora, widaæ zewnêtrzny modu³ przetwornicy DC-DC opaty o LM2596, który zosta³ wykorzystany do zasilania uk³adu.
Autor niestety nie posiada generatora laboratoryjnego o zakresie do 100 MHz, a jako ¿e nie jest to tanie urz±dzenie samodzielnie skonstruowa³ prosty generator do taktowania tego uk³adu. Za³o¿enia by³y proste - czêstotliwo¶æ od 16 MHz do 100 MHz, wype³nienie impulsów 50%, przebieg oczywi¶cie prostok±tny. Po pewnych problemach uda³o mu siê skonstruowaæ taki uk³ad. Okaza³o siê ¿e wiêkszo¶æ dostêpnych aktualnie popularnych uk³adów TTL nie radzi sobie za dobrze z tak du¿ym zakresem czêstotliwo¶ci lub dzia³a niestabilnie. Schemat generatora poni¿ej.
Opornik R1 s³u¿y tutaj do terminacji szeregowej uk³adu, a tak¿e ogranicza nadmierne napiêcie na wyj¶ciu. Przy zasilaniu 8V szpilki napiêcia mog³y by dochodziæ nawet do 16 V, co jest niebezpieczne dla mikrokontrolera. Do jego skonstruowania mo¿na wykorzystaæ uk³ady AC, LVC oraz VHC. Uk³ady HC s± zbyt wolne (maks 50 MHz). Odradza siê równoleg³e ³±czenie wyj¶æ uk³adów, gdy¿ z uwagi na ró¿ny ich czas za³±czania czasami na wyj¶ciu, na kilka nanosekund, pojawia siê sygna³ o amplitudzie 0,5 V.
Co dzieje siê z elementami elektronicznymi w temperaturach kriogenicznych?
Po sch³odzeniu do temperatury ciek³ego azotu rezystancja metali znacznie spada. Na przyk³ad opór cewki wynosi 56,3 Ω w temperaturze pokojowej, a jedynie 6,6 Ω w temperaturze LN2 - spadek o czynnik 8,5. W przypadku kondensatorów sprawy s± znacznie bardziej skomplikowane. Pojemno¶æ kondensatorów spada o 5..6 rzêdów wielko¶ci - w zasadzie do zera. Ceramiczne kondensatory zachowuj± siê zale¿nie od u¿ytego dielektryka - Y5V spada do zera, dro¿sze X7R spada do oko³o 2/3 pojemno¶ci natomiast w przypadku kondensatorów z dielektrykiem NP0 spadek to tylko 1%, jednak¿e te ostatnie da siê zakupiæ tylko do oko³o 1000 pF. Zatem je¶li do odsprzêgania zasilania w uk³adzie wykorzystano kondensatory z dielektrykiem Y5V uk³ad mo¿e nie dzia³aæ stabilnie w temperaturze LN2. W przypadku podgrzewania kondensatorów, do oko³o 100 - 150 °C efekt jest podobny, mo¿na je zatem testowaæ w takich warunkach. Aby zapewniæ stabilne dzia³anie mikrokontrolera autor zalutowa³ kondensatory X7R i NP0 bezpo¶rednio na wyprowadzenia zasilaj±ce AVRa.
W przypadku pó³przewodników niska temperatura poszerza przerwê energetyczn± i zwiêksza ruchliwo¶æ no¶ników (dziur i elektronów), jednak¿e nie jest to proces liniowy. W praktyce w ciek³ym azocie spadek napiêcia na diodzie krzemowej wynosi 1,1 V zamiast 0,6 V znanego z temperatury pokojowej. Efekt ten powa¿nie wp³ywa na dzia³anie analogowej czê¶ci uk³adu. Drug± konsekwencj± zwiêkszenia siê przerwy energetycznej jest zmiana koloru emisji diod LED. Poszerzenie przerwy energetycznej powoduje przesuniêcie siê emisji w stronê krótkofalow± (ku niebieskiemu). Efekt ten widaæ najlepiej dla diod ¿ó³tych i czerwonych - ¶wiec± na zielono. Jednocze¶nie wzrasta zapotrzebowanie na napiêcie.
Czemu uk³ady CMOS dzia³aj± szybciej w niskiej temperaturze?
Prêdko¶æ dzia³ania uk³adów wykonanych w technice CMOS zale¿y g³ównie od tego jak szybko tranzystory s± w stanie na³adowaæ paso¿ytnicz± pojemno¶æ (pojemno¶æ z³±cza plus pojemno¶æ bramki) poprzez paso¿ytniczy opór i induckyjno¶æ (po³±czenia pomiêdzy tranzystorami). Gdy zmniejszymy temperaturê spada opór po³±czeñ, co powoduje ¿e ca³o¶æ dzia³a szybciej. Zatem - LN2 pomaga w przetaktowywaniu uk³adu nie dlatego ¿e pomaga w odprowadzaniu ciep³a z uk³adu, ale dlatego ¿e zmienia - na lepsze - parametry elektryczne uk³adów CMOS.
Niech przetaktowywanie siê rozpocznie!
Po wszystkich opisanych powy¿ej przygotowaniach mo¿na by³o przyst±piæ do samego eksperymentu. W³±czony uk³ad umieszczono w kuwecie i zaczêto wlewaæ LN2. Po chwili od wlania azotu... pod¶wietlenie LCD zagas³o, a sama p³yta siê zawiesi³a. Gigantyczna pora¿ka. Jednak¿e po podniesieniu p³ytki lekko powy¿ej poziomu cieczy, co spowodowa³o jej podgrzanie, p³yta dzia³a³a poprawnie i stabilnie z zegarem do 45 MHz. Jednak¿e sam rezultat nie by³ stabilny, gdy¿ temperatura uk³adu p³ywa³a.
Po dok³adniejszej analizie tego efektu okaza³o siê ¿e winnym tego zachowania mo¿e byæ detektor zapadu napiêcia (ang. brown-out - spadek napiêcia poni¿ej pewnego progu, wy¿szego ni¿ black-out, czyli totalny zanik zasilania - przyp. t³um.). Po wy³±czeniu detektora zapadu napiêcia zasilaj±cego p³ytka dzia³a³a w pe³ni poprawnie w czasie zanurzenia w LN2. Jednak¿e problem zwi±zany z pod¶wietleniem LCD nadal by³ aktualny. Pod¶wietlenie zasilane by³o z p³ytki wyposa¿onej w liniowy stabilizator napiêcia. Okazuje siê ¿e w temperaturach kriogenicznych uk³ad ten nie dzia³a³ lub napiêcie by³o zbyt ma³e aby zapaliæ diodowe pod¶wietlenie LCD.
Stabilny zegar uk³adu wyniós³ w tych warunkach oko³o 50 MHz. Na tym etapie autor zacz±³ zwiêkszaæ napiêcie zasilania, a¿ do 8 V. Powy¿ej tego napiêcia mikrokontroler przestawa³ dzia³aæ stabilnie. Przy napiêciu oko³o 7,5 V - 8 V uda³o siê osi±gn±æ stabiln± pracê przy zegarze 65,3 MHz. Dla porównania w temperaturze pokojowej przy zasilaniu 5V maksymalny zegar wyniós³ 32,5 MHz, a przy zasilaniu 8 V 37 MHz. Przeprowadzono godzinn± próbê stabilno¶ci na 65 MHz - nie zosta³y wykryte ¿adne b³êdy podczas pracy Arduino. W trakcie tego eksperymentu zu¿yto 3 litry ciek³ego azotu.
Po wyjêciu Arduino z ciek³ego azotu natychmiastowo pokrywa siê ono szronem
Podsumowanie
* Arduino UNO wyposa¿one w ATmega328P jest stabilne przy zasilaniu 8 V do czêstotliwo¶ci taktowania 65,3 MHz w temperaturze ciek³ego azotu.
* Uda³o siê eksperymentalnie sprawdziæ jak elementy elektroniczne zmieniaj± swoje w³a¶ciwo¶ci w temperaturach kriogenicznych - metal zmniejsza opór, kondensatory trac± pojemno¶æ, przerwa energetyczna pó³przewodników poszerza siê (diody LED zmieniaj± kolor, uk³ady analogowe dzia³aj± inaczej)
* Podczas sch³adzania uk³adów poni¿ej 0 °C nale¿y pamiêtaæ o ogrzewaniu kondensatorów. W innym razie uk³ad nie bêdzie stabilny z uwagi na brak odsprzêgania zasilania.
* ¯adne Arduino nie zosta³o skrzywdzone w trakcie eksperymentu

¬ród³a:
http://3.14.by/en/read/arduino-liquid-nitrogen-overclocking
Cool? Ranking DIY