keskiviikko 24. joulukuuta 2008

tiistai 9. joulukuuta 2008

PWM-testaus ATtiny85

PB0 nähdään bitin ykköstila.





sunnuntai 14. syyskuuta 2008

ATmega8 testilevy


Niille mikroharrastajille, jotka haluavat tehdä I/O-kytkennät perinteisellä tavalla, vaikkapa reikälevylle, piirtelin mikro-ohjainkortin, jonka voi liittää tällaiseen kytkentään. Kortissa on 22 porttiliitäntää ja 2 A/D-liitäntää. Kytkentä voidaan ohjelmoida vaikka USB => ISP-kaapelin kautta. Käyttöjännitteenä on 5 volttia.

torstai 21. elokuuta 2008

ATmega8 AD/PWM ohjelma


A/D-muunnoksella PWM-ohjaus on ohjelmallisesti hyvin helppo toteuttaa. Suoritetaan muunnos aivan normaalisti, jolloin tulos sijoitetaan johonkin rekisteriin (tässä r17), ja tuosta rekisteristä se siirretään ajastimen valvontarekisteriin. Nyt tuolla asetuksissa on annettu ehto, että PB1 on yksi aina kun laskijan arvo on pienempi kuin vertailurekisterin arvo, niin pulssin leveys levenee tai kapenee AD-muuntimen mukaisesti. Ja tätä arvoa säädetään siis potentiometrillä.

keskiviikko 20. elokuuta 2008

ATmega8 AD/PWM rekisterien asettelu


Potentiometriohjaus PWM-modulaatioon ei vaadi kovin monimutkaista ohjelmaa. Koodin alussa on perinteiset löpinät, perustiedot, B-portin asettelu ja pino-osoitteen asetus. Sitten asetellaan AD-muuntoon liittyvät rekisterit tarvittaviin tiloihin. Ja lopuksi vielä ajastimen asetus sopivaan asentoon.
Nyt voidaankin sitten siirtyä ohjelmaan.

ATmega8 PWM-säätö potentiometrillä


Tämä kytkentä on yksinkertainen. Analogiseen tuloon on kytketty vastuksen ja potentiometrin yhdistelmä. Tuo vastus pudottaa potentiometrin sätöjännitteen 2,5 volttiin, koska käytössä on piirin sisäinen referenssijännite. Lähdössä on LED-lamppu etuvastuksineen. Säätämällä potentiometriä, saadaan
LEDin kirkkautta muutetuksi. Tämä on vain peruskytkentä, sovellutukset sitten tekevät kytkennästä todellisen sulautetun järjestelmän.

maanantai 23. kesäkuuta 2008

ATmega8 TOIMINTA-AJAN ASETUS


Saadaksemme ajastimesta (TIMER) halutun mittaisia aikajaksoja, on ohjaimen rekistereihin asetettava tarpeellisia perusaikoja. Kun käytetään ajastuksessa vertailutapaa, ladataan vertailuarvo OCR-rekistereihin. Jos taas käytetään ylivuototapaa, ladataan alkuarvo laskentarekistereihin.

I/O-toiminnan simulointi



Ohjelman simulointi on koodin testauksen kulmakivi. Sillä näkee ohjelman toiminnan ennen ohjaimeen siirtämistä. Näin välttyy monelta turhalta toimelta, kun koodin etenemistä voi seurata käsky käskyltä, ja tulokset näkyvät näytön kuvapinnalla.

lauantai 7. kesäkuuta 2008

ATmega8 OHJELMAN HAARAUTUMINEN 1


Mikro-ohjaimen toiminnan ohjailu ASSEMBLY-koodilla perustuu haarautumiskäskyjen hallittuun käyttöön. Kun näitä käskyjä on useita eri tarkoituksiin, on välttämätöntä opiskella niiden toiminta huolellisesti.
Paras tapa on tehdä pieni koodin pätkä, jossa on tutkittavan käskyn toiminta ja sitten simuloida koodi.

torstai 1. toukokuuta 2008

ATmega8 PINOREKISTERIEN ASETUS


ASSEMBLY-ohjelmoinnissa on tärkeää osata käyttää ns. pinoa. Siinä SRAM-muistiin varataan alue, johon ohjelmanlaskijan tila viedään, kun poiketaan aliohjelmaan tai tehdään keskeytys. Kun poikeaminen on tehty, haetaan pinosta osoite ja jatketaan normaalisuoritusta. Koska ATmega8 sisältää SRAM-muistia kilotavun, osoittamiseen tarvitaan kaksi rekisteriä. Ohjelman kääntäjä tietää asettaa osoitteen alkamaan muistin loppuun eli pinon pohjaan.

tiistai 22. huhtikuuta 2008

ATmega8 TILAREKISTERI (SREG)


Tilarekisterin kautta ohjataan mikron tekemää toimintaa. Rekisterissä asettuvat tietyt bitit (ns.liput) tarkasteltavisssa tapahtumissa. Näihin voidaan sijoittaa ehtoja ohjelman etenemiselle. Ehdon perusteella sitten tehdään päätelmiä miten ohjelman suoritusta jatketaan.

lauantai 19. huhtikuuta 2008

ATmega8 LASKIJA (Counter) ohjelma


Laskijan kokeiluun sopii hyvin kuvassa esitetty ohjelma. B-porttiin kytketään kahdeksan LED-lampun näyttö ja D-portin D5-liitäntään kytketään painokytkin. Kun kytkintä painetaan, askeltaa LED-valo yhden bitin verran suurempaan arvoon jokaista painallusta kohti.

tiistai 8. huhtikuuta 2008

ATmega8 Viiveen vuokaavio


ATmega8 mikro-ohjaimella on helppo muodostaa viive. Tehdään rekisterejä käyttäen viivesilmukoita, joissa ohjelma pyörii halutun ajan. Määrittelemällä alkuarvot sopivasti, voidaan näin rakentaa hyvin erimittaisia viiveitä.

torstai 3. huhtikuuta 2008

ATmega8 ANALOGINEN KOMPARAATTORI

Analoginen komparaattori on helppo tehdä käyttäen ATmega8 mikro-ohjainta. Mikron sisällä on referenssi, joten ulkoisen anturin antamaa jännitettä voidaan verrata kiinteään tarkkaan jännitteeseen. Tuossa on NTC-vastus anturina ja monikierrospotentiometri asetusarvon antajana. Jos kytkennän hystereesiä halutaan asetella, se voidaan tehdä lisäämällä potentiometri lähdön ja tulon välille.
On hyvä ja edullinen termostaatti lämpötilan säätöön.

maanantai 31. maaliskuuta 2008

ATmega8 BITTITIETO BCD-koodiksi


Tässä r17-rekisteriin asetettu tieto F3 muunnetaan BCD-muotoon ja tulostetaan B-portissa olevaan 7-segmenttinäyttöön.

keskiviikko 26. maaliskuuta 2008

ATmega8 BITTIEN SIIRTO-OHJELMA


Tässä on pieni ASSEMLY:llä tehty ohjelma, joka lukee B-porttiin kytketyt DIP-kytkimet ja tulostaa kytkimien tilat sitten D-portissa oleviin LED-lamppuihin. Ohjelma lukee ja tulostaa jatkuvasti, joten kytkimien asetukset uuteen tilaan nähdään jatkuvasti D-portin näytössä.

sunnuntai 23. maaliskuuta 2008

ATmega8 LISÄVAHVISTIMEN KYTKENTÄ


Ohjattavan laitteen käyttöjännite voi olla aina 50 voltin suuruinen. Induk-tiivisten kuormien, kuten moottorien ja releiden ohjauksessa käyttöön on otettava piiriin sijoitetut diodit. Tämä tapahtuu kytkemällä kohtio 10 yhteen kuorman käyttöjännitteen kanssa.

ATmega8 PUSKURIVAHVISTIMET


Jos mikrolla halutaan ohjata pientä tasasähkömoottoria tai relettä, silloin ei mikron antama virta riitä, vaan kytkantään on lisättävä vahvistin. Tähän tarkoitukseen sopii hyvin piiri ULN2803. Sitä voidaan kuormittaa 500 mA:n virralla tai kaikkien vahvistimien ollessa käytössä 260 watilla, esimerkiksi 350 mA virralla, jännitteen ollessa 8,95 volttia.

ATmega8 LED-näytön kytkentä


LED-ohjauksen kytkentä on hyvin yksinkertainen. LED:in katodi liitetään portin kohtioon, josta se saa plusjännitteen portin kohtion ohjautuessa "ykkös" tilaan ja tämä tieto sytyttää LED-lampun. Vastusverkko, jossa on 8 kappaletta 330 ohmin vastuksia, suojaa LEDejä ylisuurelta virralta.

ATmega8 LED-näyttö


Yksinkertaisin tulostuskytkentä mikron lähtötilojen tutkimiseen on LED-näyttö. Sen ohjaaminen on helppo ja sitä voidaan käyttää monen asian havainnollistamiseen. Vasta sitten kun on omaksuttu mikron I/O-toiminta voidaan siirtyä monimut-kaisempiin tulostuskytkentöihin. Esimerkiksi 7-segmenttitulostus vaatii jo huomattavasti enemmän osaamista kuin LED-tulostus.

perjantai 21. maaliskuuta 2008

ATmega8 DIP-kytkimen kaavio


DIP-kytkimen antama tieto ON-asennossa on nolla (0). Se voidaan käsitellä ykköseksi ohjelmallisesti invertoiden. Käyttäen tätä tapaa, ei tuloihin tarvita alasvetovastuksia, koska ohjaimeen on sisäisesti liitet-tävissä ylösvetovastukset.

ATmega8 DIP-kytkin INPUT:tiin


Mikro-ohjaimen käytön opiskelu on hyvä alkaa sen TULO/LÄHTÖ-toimintojen tutkimisella. Input toimintaan sopii hyvin DIP-kytkin.

ATmega8 I/O-rekisteri B jaettuun tilaan


Tämä toiminta tekee joustavaksi porttien käytön. Voidaan asettaa tuloja ja lähtöjä eri portteihin aina tarvittava määrä.

ATmega8 I/O-rekisteri B INPUT tilaan


I/O-suuntarekisterin asetuksella 00-tilaan saadaan portti vastaanottamaan digitaalista tietoa. Näin voidaan tehdä myös porteille C- ja D.

tiistai 18. maaliskuuta 2008

ATmega8 I/O-rekisteri B out-tilaan


Esimerkkinä I/O-rekisterien ohjauksesta on käytetty B-portin asetusta, mutta samalla tapaa ohjataan myös C- ja D- portteja.

ATmega8 KÄYTTÖREKISTERIT



Näitä rekistereitä käytetään tietojen käsittelyssä ja muistin osoitukseen.

maanantai 17. maaliskuuta 2008

ATmega8 SRAM ja EEPROM


ATmega8 käyttö- ja I/O-rekisterit ovat SRAM-muistissa. Tämä muisti on 8-bittinen. Kun tarvitaan pitempi tieto esimerkiksi muistin osoitukseen, liitetään kaksi rekisteriä yhteen. Yleiseen muistin käyttöön on 1 kilotavua samaa SRAM-muistia. Lisäksi mikrossa on 512 tavua EEPROM-muistia, johon voidaan sijoittaa esimerkiksi taulukoita.

ATmega8 FLASH MUISTI


Ohjelma sijoitetaan 16-bittiseen flash muistiin, jossa se säilyy vaikka käyttösähkö katkaistaan.

lauantai 15. maaliskuuta 2008

ATmega8:n LOHKOKAAVIO


Kuvasta nähdään pääpiirteittäin mitä toimintoja ja rakenteita ATmega8 mikro-ohjain sisältää.

ATmega8 ERITYISLIITÄNNÄT


Kuvassa esitettyjen liitäntöjen lisäksi ohjaimessa on PWM-, sieppaus (capture)-, laskija (counter)-, SPI- ja pulssi (TOGGLE)-liitännät.

ATmega8 LIITÄNNÄT


Suurin osa ATmega8 liitäntäkohtioista on kahdessa tai kolmessa käyttötarkoituksessa. Kunkin liittimen käyttö määritellään ohjelman koodissa.

torstai 13. maaliskuuta 2008

ATmega8 PERUSKYTKENTÄ


Peruskytkennässä tarvitaan vain ohjain, ja ohjelmointiliitin. Mihin tarkoitukseen kytkentää sitten käytetään, lisätään siihen tarvittavat komponentit. Kuvasta puuttuvat ohjelmointijohtoihin kuuluvat 470 ohmin vastukset.

ATmega8:n OMINAISUUKSIA


Tuossa mainitsematta ovat analoginen komparaattorikytkentä, sekä ajastimen (TIMER) erilaiset käyttötavat.

MIKSI VALITSIN ATmega8 OHJAIMEN ?


Tässä lienee riittävästi perusteluita valinnalleni. Lisäksi ATMEL:in sivuilta löytyy lukematon joukko vihjeitä ja koodeja, jotka sopivat käyttööni. Myös vanha kokemukseni INTEL-prosessoreista ( 51 ja 8086 ) painoivat vaa´assa. Ja vielä tuo tosi havainnollinen simulointiohjelma.

MIKÄ ON MIKRO-OHJAIN ?


Tässä määrittelen yhdellä lauseella mikro-ohjaimen. Teollisuusrobotteja kouluttaessani käytin samaa lausetta roboteista. Nekin voivat tehdä erilaisia tehtäviä, vasta sitten kun niille on annettu toimintaohjeet !