Ívafin raftækni

From Fab Lab Wiki - by NMÍ Kvikan
Revision as of 14:00, 16 June 2009 by Spm (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This is a translation and adaptation of Beinning Embedded Electronics 1 by Nate, with graceful permission from Sparkfun.com.

Îvafin raftækni (e embedded electronics).

Inngangur að ívafinni raftækni

Þetta er inngangur að ívafinni raftækni ætluð fólki sem er komið með smá bakgrunn í rafmagnsfræi og rafeindatækni. Það er gert ráð fyrir að þú vitir hvað rafmagn er og að þú hafir snert rafíhluti einhverntíman. Allt annað reynum við að útskýra eins og hægt er. Það er farið yfir mjög margt í þessu, þessu, þannig að þú skalt gefa þér góðan tíma! Hér er ætlunin að láta bókmenntaða rafmagnsverkfræðinema og aðra sem hafa fræðilegar undirstöður en enga verklega kunnáttu til að leggja frá sér blýantinn og vasareikninn og stinga díóðu í samband. Mundu: ef það kemur reykur, þá veistu hvað á ekki að gera næst.

Í þessari kennslu verður stuðist við ATmega168 en hægt er að nota ATmega8 og ATmega88 án breytinga.

Hvað er örstýring?

Kannski veistu hvað OR-hlið er. OR-hlið er rökhlið sem hefur tvö inntök og stýrir einu úttaki - það er kveikt á úttakinu EF að það er kveikt á einhverju inntaki, en ANNARS ekki. Þú hefur kannski unnið með þessa tegund hliða, eða kannski DIP-kubb með fjórum OR-hliðum innbyggðum í hann. Svona DIP kubbar þurftu einn pinna þar sem rafmagn fór inn (kallaður VCC) og einn pinna sem tengdist í jörð (GND). Rafmagnið flæddi um kubbinn og lét hann starfa.

Örstýringar eru í rauninni sama hugmyndin. Þú ert með einhvern fjölda inntaka þar sem rafstraumur er "lesinn", og það einhvern fjölda úttaka þar sem rafstraumur er "skrifaður". Það sem gerir örstýringar ólíkar öðrum svona IC kubbum er að þær keyra kóða: vélamál, nánar tiltekið. Til dæmis gætirðu verið að lesa á pinnum A og B, og stýrt pinna C. Til að herma eftir OR hliði:

if (A == 1 || B == 1) {
       C = 1; 
} else { 
       C = 0;
{

Þetta er C kóði! Þú getur forritað hverslags forrit, vistþýtt þau, hlaðið þau yfir á kubbinn, keyrt kubbinn upp, og þá keyrir forritið. Mjög einfalt! Örstýringar eru notaðar í öllum raftækjunum sem þér finnst svo sjálfsagðar, svo sem örbylgjuofninum, sjónvarpsfjarstýringunni, músinni, prentaranum. Það eru meira en 150 örstýringar í nýjum bílum. Það er einn sem bíður eftir að þú ýtir bremsunni niður (BREMSUR == 1) og að hjólin læsist (HJOLLAEST == 1). Þegar þetta tvennt gerist sleppir örstýringin bremsunum, og þá ertu kominn með ABS bremsur (spólvörn).

Í gamla daga voru örstýringar bara forritanlegar einu sinni. Þú bjóst til forritið, prufukeyrðir það á kubbnum, og ef kubburinn virkaði ekki þá var hann ónýtur - þá henti maður honum og prófaði aftur. Nú eru flestar örstýringar með flash minni, sem þýðir að það má skrifa og endurskrifa minnið mörg þúsund sinnum áður en að kubburinn verður ónýtur. Oftast nær skemmir maður örstýringuna fyrir slysni löngu áður en að minnið skemmist.

Örstýringar eru ólíkar venjulegum borðtölvum. Slíkar tölvur þurfa hellings afl og fullt af íhlutum til að þær virki. Þær eru heillengi að fara í gang og þær hitna svakalega. Örstýringar kveikja á sér og byrja að vinna á nokkrum millisekúndum og ef þær eru nógu heitar til að þú finnir fyrir því er eitthvað alvarlegt að og þú hefur sennilega skemmt stýringuna. Og já, vel á minnst - örstýringar kosta sirka 300 kall.

Snúum okkur aftur að dæminu með OR-hliðið. Það voru fjölmargir pinnar á honum, og allir voru þeir annaðhvort inntök eða úttök fyrir hin ýmsu OR hlið í pakkningunni (fjögur hlið í einni pakkningu = 8 inntök, 4 úttök, og svo VCC/GND pinnar). 14 pinnar! Í örstýringum eru flestir pinnar GPIO pinnar - general purpose input/output. Þessir GPIO pinnar geta verið bæði inntök og úttök. Mjög töff. Hvern inntakspinna má lesa og vinna með. Dæmi:

if (PORTC.2 == 1)
       gera eitthvað

Hver úttakspinni getur verið ýmist "í gangi" (hátt eða 1) eða "slökkt" (lágt eða 0). Dæmi:

while(1) {
       RB3 = 1;
       delay_ms(1000);
       RB3 = 0;
       delay_ms(1000);
}

Giskaðu hvað þessi kóði gerir? Hann kveikir á pinna, bíður í sekúndu, slekkur á honum, bíður í sekúndu. Þetta er Hello World örstýringinna. Þetta virðist einfallt, en þegar þú ert búinn að eyða fimm klukkutímum í að rífa úr þér hárið vegna þess að þú færð ekkert til að virka getur það að sjá díóðu blikka í fyrsta skiptið verið alveg frábær tilfinning.

Hverskonar örstýringar eru til og hvernig læt ég þá blikka?

Hér er smá samantekt á mismunandi gerðum örstýringa:

  • PIC - Þetta eru klassísku örstýringarnar frá Microchip. Mjög einfaldir og sannreyndir, en þá skortir marga eiginleika sem aðrir framleiðendur eru að nota. Sumir standa og falla með PIC, aðrir vilja fá fleiri eiginleika.
  • AVR - Þetta eru aðal keppniautar PIC. Framleiddir af norska fyrirtækinu Atmel. Þeir geta allt sem PIC geta, en líka margt annað, og eru yfirleitt ódýrari í þokkabót.
  • MSP - Örstýringar frá Texas Instruments. Ekki jafn kraftmiklir og AVR eða PIC, en henta rosalega vel í hluti sem þurfa að nota lítið afl. Meira um þetta síðar, en ímyndaðu þér að keyra tölvu á einni AA rafhlöðu í fimm ár. Þetta er raunhæft með stýringum sem hafa nanóampera orkuneyslu.
  • ARM - Mjög ungir örgjörvar sem eru ótrúlega öflugir og ótrúlega ódýrir, en þeir eru tiltölulega flóknir samanborið við aðrar örstýringar.
  • 8051 - Þessi örstýring hafði ákveðin greini heillengi: þetta var örstýringin. Intel framleiddi þá á níunda áratugnum, og hann er enn notaður til kennslu. Þetta er mjög gamaldags tækni, en þær eru ennþá þróaðar og hafa núna flash minni og ýmislegt í þeim dúr. Þetta var örstýringin í gömlu Nintendo tölvunum.
  • 68HC08/11 - Önnur algeng örstýring, þessi er frá Motorola. Rosalega vinsæl hér áður fyrr og enn kennd í háskólum.

Það er hægt að finna mjög nákvæmar upplýsingar um allar þessar örstýringar á netinu, en hér verður stuðist við ATmega168. Hvers vegna?

  • 20 MIPs (milljónir aðgerða á sekúndu), sem er nóg til að gera mjög öfluga hluti.
  • Mjög ódýrir.
  • Eru með innbyggða drivera fyrir flest - UART, SPI, I2C, ADC, innbyggður kristall, PWM...
  • 16 KB af forritanlegu minni sem er nóg fyrir flest byrjandaverkefni

Það kostar þig sennilega um 5000 krónur að koma þér af stað í að vinna með örstýringar, plús verkfærin og allt það.

Hvernig byrjarðu?

Allar örstýringar þurfa rafmagn. Það eru tveir pinnar á einföldum örstýringum fyrir rafmagn: VCC og GND. En hvað er VCC? VCC er merkingin fyrir pósitífa spennu. Kvíddu engu, eftir að hafa séð "VCC" nokkrum sinnum fer þér að finnast það venjulegt. GND þýðir Ground, eða jörð. Rafspenna þarf alltaf einhverja leið til að flæða aftur í jörðina.

Það eru til þúsundir tegunda örstýringa, en nánast allar nota 5V spennu. 3.3V er líka algengt en þú getur fundið 2.8V og 1.8V VCC á sumum undarlegari örstýringum. Í bili skaltu bara hugsa um 5V og jörð.

Athugið: Ef þú snýrð tengingunni við þannig að VCC fer í GND og öfugt munu slæmir hlutir gerast. Gættu þess að snúa tengingunni alltaf rétt. Ef þú snýrð þessu öfugt mun ekkert springa, en það er mögulegt að það komi smá reykur, það er líklegt að örstýringin hitni alveg svakalega, og það er nær óhjákvæmilegt að hún skemmist. Þetta mun sennilega koma fyrir þig einhverntíman, en gerðu þitt besta.

En hvar finnurðu 5 volt? Raflagnir í húsinu þínu nota 220V AC. AC er riðstraumur, sem þýðir að straumurinn sveiflast, en það er ekki gott fyrir örstýringar, sem þurfa jafnstraum (DC). Þannig að þú þarft að breyta 220V AC yfir í 5V DC.

Nú er komið að því að búa til spennureglara!

Þú getur fengið 5V spennubreyti sem breytir 220V AC yfir í 5V DC. Hinsvegar skaltu aldrei gera ráð fyrir því að spennubreytar gefi af sér nákvæmlega það sem þeir segjast gefa af sér – ef þú mælir úttakið á spennubreytinum með fjölnotamæli muntu sennilega sjá 8-9V, sem er nóg til að drepa örstýringuna.

Gerum ráð fyrir að þú sért með fínan spennubreyti sem er að gefa 9V. Því miður er oft “hávaði” í svona spennubreytum, sem þýðir að það er straumflökt. Spennubreytar nota oft ódýrar aðferðir til að beyta AC í DC og ná stundum ekki að afriðla fullkomnlega, þannig að DC bylgjan flöktir um 100-500mV, þannig að DC bylgjan rís og fellur milli 8.5 og 9.5 volt. Þetta flökt þarf líka að hreinsa upp.

Algengasti spennureglarinn er kallaður LM7805. Reyndar eru nánast alltaf einhverjir aukastafir, þannig að reglarinn heitir LM78L05 eða LV78X05 til dæmis. Í Fab Lab smiðjum er LM3480IM3 og LM2940IMP til á lager. Eina sem þú þarft að vita um þetta samt er að það eru margir framleiðendur sem eru að framleiða svo til sama partinn, stundum með einhverjum minniháttar breytingum. Ef þú ert að smíða þetta á brauðbretti viltu sennilega fá TO-92 eða TO-220 pakkningu – meira um pakkningar síðar.

Nú þarf að tengja reglarann við spennujafnarann.

http://www.sparkfun.com/images/tutorials/BEE-Lectures/1-PowerSupply/LM7805-Pinout.jpg

Hér sérðu pinnana á LM7805 og skyldum kubbum – þeir eru nánast allir alveg eins. Segðu “IJÚ” í huganum til að muna þetta: “inntak, jörð, úttak”. Það er samt alltaf gott að kíkja á datasheet fyrir alla nýja parta sem þú prófar – datasheet er skjal sem er til fyrir alla rafeindaíhluti sem segir hvað pinnarnir gera og hvernig íhluturinn virkar.

Inntakið er inntaksspennan, GND er jörð, úttakið er 5V jafnstraumur. Spennubreytirinn hefur tvo pinna. Annar er 9V og hinn er jörð. Allar jarðtengingar verða að vera tengdar saman til að straumurinn streymi um kerfið. Einu sinni enn: Tengdu allar jarðir saman. Þetta er næstalgengasta ástæðan fyrir því að byrjendur lenda í vandræðum.

http://www.sparkfun.com/images/tutorials/BEE-Lectures/1-PowerSupply/PowerSupply1.jpg

Smá athugasemd: Á teikningunni hér eru jarðtengingarnar ekki sýndar sem tengdar. Við gerum ráð fyrir því að grænir vírar með sama nafni eru tengdir saman. Rafteikningar verða stundum stórar og flóknar og þá er ágætt að þurfa ekki að teikna upp alla vírana alltaf. Mundu bara að tengja alla GND pinnana saman.

Við ætlum að bæta við nokkrum pörtum í viðbót. Ef þú tengir spennubreytinn núna sérðu að 9V inn gefa gróf 5V út – ekki hrein 5V, heldur frekar eitthvað á bilinu 5.25 til 4.75 volt, eftir því hve góðan reglara þú hefur. Þú getur eytt meiri peningum til að fá betri reglara, en það eru til ódýrari og einfaldari leiðir til að sigta sveifluna burt. Ef þú ert að fá 5.08V til dæmis á fjölnotamælinum er það vegna þess að hann er að taka meðaltal af mörgu mmælingum. Hefurðu prófað sveiflusjá? Ef þú mælir úttakið með sveiflusjá ættirðu að sjá sveifluna, sem gæti verið alveg 200mV.

Til að losna við þessa sveiflu notum við þétta. Til að skilja hvernig þéttar virka er best að ímynda sér vatnstank. Þegar mikið álag er á kerfinu heldur vatnstankurinn aukabirgðir, og þegar lítið álag er á kerfinu safnast það upp. Það skiptir ekki máli hve hratt vatnið flæðir inn í tankinn, hann flæðir alltaf út bara í samræmi við þörfina. Það er að segja: ef þú ert með þétti, þá lágmarkar hann spennuflökt.

Þú getur kannski keyrt örstýringuna þína án þess að nota þétta til að sigta flöktið, en það er almennt ekki góð venja. Ef þú prófar það og ekkert virkar gæti það verið út af flöktinu eða villum í kóðanum eða biluðum nemum eða ... of margar breytur geta gert þig geðveikan, þannig að það er um að gera að splæsa í smá þétta til að draga úr mögulegum ástæðum fyrir bilunum.

http://www.sparkfun.com/images/tutorials/BEE-Lectures/1-PowerSupply/PowerSupply2.jpg

Hér sést 100µF (eitt hundrað míkrófaröd) á inntakinu og 10µF á úttakinu. Þú munt nota slatta af þéttum af þessari stærð í kringum raforkukerfin og svo enn minni þétta (t.d. 0.1µF) í massavís í kringum örstýringarnar. En þessir þéttar ættu að taka allt flökt af nokkuð vel. Ef að þú ert að nota rafhlöður eða mjög góðan spennubreyti getur verið nóg að setja 3.3µF úttaksmegin.

Þéttar gefa ekki orkuna frá sér um leið. Stærri þéttar geyma meiri orku en svara hægar. Því minni sem þéttirinn er því hraðar getur hann skilað orkunni af sér. Ef rafmagnið á húsinu þínu flöktir í 10-100ms getur stór þéttir (100µF upp í 1F) haldið spennunni uppi allan tíman. Minni þéttir (0.1µF) dempar hinsvegar bara hávaða á hærri tíðnum og forðar minni spennufall (1µs-100µs). Fyrir vikið eru litlir þéttar notaðir nær örstýringunni til að hjálpa með lítið flökt en stærir þéttar eru notaðir við rafmagnsinntakið.

Þessi rafteikning er með svolítið undarlegt tákn. Hvað er + og sveigðu línurnar? Þessi tákn eru að benda á að 100µF og 10µF þéttarnir eru pólaðir. Hvað þýðir það? Tja, nú þarf að fara í smá þéttapælingar:

  • Elektrólytískir þéttar: þessir þéttar geta geymt frá 10µF og upp í milljónir Farada. Þeir eru ódýrir og geta geymt mikla orku, en þeir eru pólaðir, sem þýðir að það er plús-pinni og mínus-pinni. Svona þéttar hafa mínu þeim megin sem á að tengjast í jörðina. Þetta er mjög mikilvægt atriði – ef að þú snýrð þeim vitlaust þá munu þeir springa með mismiklum dramatískum tilburðum eftir því hve stórir þeir eru. Litlir þéttar rjúka bara og leka smávegis, stórir þéttar gætu skvett heitum rafleiðandi vökva út um allt.
  • Keramíkþéttar og filmuþéttar: Mun ódýrari en elektrólytísku þéttarnir og því algengari. Þessir þéttar eru ekki pólaðir þannig að þú mátt snúa þeim hvernig sem þú villt. Hinsvegar geta svona þéttar ekki geymt jafn mikið magn, og því þarftu yfirleitt að líka að eiga við elektrólytíska þétta.

Það eru fjölmargar aðrar gerðir þétta en við skulum ekki flækja þetta meira í bili.

http://www.sparkfun.com/images/tutorials/BEE-Lectures/1-PowerSupply/leakycap-4.jpg

Frá vinstri: Slæmt, gott, ljótt.

Ef þú setur of mikinn straum inn á þétti springur hann, ef þú snýrð honum við springur hann. Sérðu litla plúsinn á toppi þéttanna? Þetta er gert til að veikja málminn efst svo að ef að eitthvað slæmt gerist þá rís toppurinn bara frekar en að hann springi.

Þessi mynd var tekin inní Gateway tölvu (sirka 1999). Gatway notaði 1000µF/16V þétta. /16V þýðir að þeir þola upp í 16V en ekki meira. Flestir þéttar með /16V mat þola alveg 18V eða jafnvel 22V, en þolið getur farið í báðar áttir – sumir þéttar sem eru metnir með 16V þol þola bara 10V eða 8V í raunveruleikanum. Hér var Gateway að nota þessa þétta á 12V línu spara sér pening frekar en að nota þétta með hærra þol.

Lexían hér er að þú átt alltaf að nota meira þol en þú átt von á að þurfa. Ef þú hefur 5V línu, notaðu þá þétti sem þolir meira en 5V; tvöfalldaðu þolið allaveganna, þannig að 12V þol á 6V braut, 24V á 12V braut, og svo framvegis.

Það þarf væntanlega ekki að taka það fram að þéttar sem springa hætta að virka. Hinsvegar er rétt að minnast á að þó svo að flestir þéttar eyðileggist á öruggan hátt – hætti að virka en hætti einnig að leiða – þá getur það komið fyrir að þeir leiði áfram, og þá byrjar fjörið virkilega að gerast, því þá geta þeir skemmt aðra parta sem eru neðar í línunni út frá sér.