Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem

ghost666 25 Sep 2013 15:05 11574 7
Optex
  • Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem

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

    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem
    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem


    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.

    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem


    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.

    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem


    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.

    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem


    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.

    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem


    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.

    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem


    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.

    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem


    Po wyjêciu Arduino z ciek³ego azotu natychmiastowo pokrywa siê ono szronem

    Przetaktowanie Arduino z ch³odzeniem ciek³ym azotem




    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 ;). P³ytka prototypowa po ca³ym eksperymencie nadal jest w pe³ni funkcjonalna.
    ¬ród³a:
    http://3.14.by/en/read/arduino-liquid-nitrogen-overclocking

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    ghost666
    Translator, editor
    Offline 
    Fizyk z wykszta³cenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszed³ do sektora prywatnego, gdzie zajmuje siê projektowaniem urz±dzeñ elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku cz³onek zespo³u redakcyjnego.
    ghost666 wrote 11100 posts with rating 9413, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • Optex
  • #2
    dondu
    Moderator on vacation ...
    Wprawdzie temat dotyczy³ przetaktowania, ale szkoda, ¿e autor nie zg³êbi³ tematu wp³ywu temperatury na czê¶æ analogow± (wspomnia³ jedynie, ¿e jest ogromny), wszak to jeden z najistotniejszych elementów mikrokontrolerów.
  • Optex
  • #4
    shg
    Level 35  
    Chcia³bym zaprzeczyæ doniesieniom, jakoby nie mo¿na by³o wlewaæ ciek³ego azotu do szklanych pojemników. Mo¿na, ale pojemnik musi byæ wykonany z odpowiedniego szk³a. Nadaje siê np. Duran, czyli szk³o borokrzemianowe 3.3 (wspó³czynnik rozszerzalno¶ci cieplnej 3.3e-6 1/K). Bez problemu mo¿na kupiæ szklane dewary (obudowane jakim¶ plastikiem / metalem) przeznaczone do przechowywania LN2. Sam takiego u¿ywam.

    Ca³y czas mam w planie sprawdzenie jak zachowa siê ca³y zestaw LED (ró¿ne kolory) przy takim ch³odzeniu. My¶la³em te¿ o zrobieniu superniskoszumnego wzmacniacza mikrofonowego, niestety to nie CCD i ch³odzenie do -40°C zmniejsza szum tylko nieznacznie.
  • #5
    NdYAG
    Level 16  
    shg wrote:
    Chcia³bym zaprzeczyæ doniesieniom, jakoby nie mo¿na by³o wlewaæ ciek³ego azotu do szklanych pojemników. Mo¿na, ale pojemnik musi byæ wykonany z odpowiedniego szk³a. Nadaje siê np. Duran, czyli szk³o borokrzemianowe 3.3 (wspó³czynnik rozszerzalno¶ci cieplnej 3.3e-6 1/K). Bez problemu mo¿na kupiæ szklane dewary (obudowane jakim¶ plastikiem / metalem) przeznaczone do przechowywania LN2. Sam takiego u¿ywam.
    .


    Tutaj chodzi o co innego: zabrudzony pojemnik szklany jest niebezpieczny, bo inna jest rozszerzalno¶æ szk³a a inna pokrywaj±cego szk³o brudu (czy innej obecnej substancji, np. wody). Poniewa¿ s± to naczynia z w±skimi szyjami trudno obejrzeæ wnêtrze takiego pojemnika i wyczy¶ciæ. Je¶li pojemnik jest czysty to ok.
  • #6
    jacynka84
    Level 26  
    Co te ludzie z ta atmeg±...Niech Xmega siê wreszcie spopularyzuje SMD i niskie napiêcia.
    Co rusz to dziadowska atmega8 siê gdzie¶ przewija.

    Choæ rozumiem ¿e to akurat na cele eksperymentu.
    Co do przetaktowania to Xmega 32a4 dzia³a mi na 64Mhz, (org 32Mhz), ale prefyreia nie podzielaj± jej zapa³u i taki Lcd ILI9341 na SPI siada powy¿ej 48Mhz o ile pamiêtam, jednak ledy itp proste rzeczy dzia³a³y przy 64Mhz co znaczy³o ¿e sama xmega te¿, zobaczê czy da siê jej pocisn±æ 72Mhz+.
  • #7
    ghost666
    Translator, editor
    jacynka84 wrote:
    Co te ludzie z ta atmeg±...Niech Xmega siê wreszcie spopularyzuje SMD i niskie napiêcia.
    Co rusz to dziadowska atmega8 siê gdzie¶ przewija.

    Choæ rozumiem ¿e to akurat na cele eksperymentu.
    Co do przetaktowania to Xmega 32a4 dzia³a mi na 64Mhz, (org 32Mhz), ale prefyreia nie podzielaj± jej zapa³u i taki Lcd ILI9341 na SPI siada powy¿ej 48Mhz o ile pamiêtam, jednak ledy itp proste rzeczy dzia³a³y przy 64Mhz co znaczy³o ¿e sama xmega te¿, zobaczê czy da siê jej pocisn±æ 72Mhz+.


    (nie)stety AVRy to nowe 8051 i ATmega bêdzie ¿y³a jeszcze bardzo d³ugo w¶ród hobbystów, tak jak rdzeñ '51 egzystuje nadal w wielu aplikacjach embedded.
  • #8
    jacynka84
    Level 26  
    No niestety.
    Teraz Xmega krêci³em na 3,3V rzecz jasna na wew. oscylatorze, na 64Mhz chodzi³ normalnie choæ na Lcd 320x240 pojawia³y siê rzadko artefakty, ale zasadniczo dzia³a³ niemal normalnie, z tym lcd przy 72Mhz nie startowa³a, ale bez lcd startowa³a ale robi³a b³êdy nawet przy b³yskaniu ledami.
    Mo¿e w celach takich jak w artykule podwy¿szê napiêcie ale to nie teraz, tym bardziej ¿e lcd nie mogê traktowaæ za wysokim napiêciem bo ryzykowne.