Niin se muutama kuukausi heilahti Kroatian maisemissa tutkimus&kehitystyön parissa ja opinnot lähtivät jälleen täällä kotisuomessakin pyörimään. Edellisestä artikkelista on jo reipas tovi aikaa, joten eiköhän korjata tilanne heti näin alkuun!
“Varikkokellon rakentelua” artikkelin ensimmäisessä osassa tutustuttiin näyttöön, joka oli tarkoituksena pultata omaan ohjauskorttiin kiinni.
Ohjauskortin rakentaminen lähti liikkeelle ihan alkuun tutkimalla, kuinka stabiilin kellon voisi toteuttaa mikrokontrollerilla. Käytettäessä mikrokontrollerin sisäistä kelloa tarkan ajan määrittäminen on lähes mahdotonta. Suuren taajuuden (esim. Attiny2313:lla 4MHz) jakaminen ihmisjärjelle sopiviksi sekunneiksi ohjelman avulla saa aikaan enemmän tai vähemmän väärässä ajassa käyvän kellon.
Niinpä heti alkuun aloin tutkia, kuinka 32,768KHz kiteen saisi kytkettyä piiriin tahdistamaan ohjelmassa tapahtuvaa sekuntien laskentaa. Eräältä suomalaistelta sivulta (linkki hukassa, tekijä voi huudella jos tunnistaa omakseen :D) löysin binäärikellon, jossa kide oli kytketty transistorilla toteutettuun oskillaattorikytkentään, jonka lähtö oli kytketty Attinyn “T0”-tuloon eli Timer 0:llaan. Ohjelmassa pystyttiin määrittämään sekunti laskemalla riittävän monta värähdystä yhteen ja käyttämällä piirin omaa esijakajaa apuna.
Kasailin koekytkentälevylle 5V regulaattorin ja ohjeen mukaisen oskillaattorikytkennän (ylemmän kuvan mukainen), mutta kytkentä ei lähtenyt värähtelemään sitten kirveelläkään. Tuolloin en ollut vielä juuri rakennellut oskillaattorikytkentöjä, joten homma oli uutta ja tuntematonta aluetta. Mittasin oskillaattorikytkennän lähtöä oskilloskoopilla ja vaihdoin kondensaattoreiden arvoa, mutta ei värähtelyä…
Seuraavaksi kokeilin alemman kuvan oikeanpuoleista kytkentää, mutta tuloksetta. Mietin jo hetken ulkoisen RTC-piirin DS1337 käyttöä, mutta rajasin sen ulos sekä hintansa että turhien ominaisuuksien takia. Tässä projektissa kun ei varsinaisesti tarvitsisi näyttää oikeaa kellonaikaa, vaan pelkästään väheneviä minuutteja.
Lopulta kokeilin kuvan vasemmanpuoleista vaihtoehtoa, jota olin välttänyt juurikin invertteripiirin koon takia…Mutta! Sehän olikin aivan idioottivarma värähtelijä!
Signaalia vaivasi suurehko kohina, mutta syyksi paljastui huono käyttöjännitteen suodatus. Hakkurimuuntajalta tuleva jännite sisälsi suuritaajuisia häiriöitä (yllätys), jotka sain tasoittumaan pois 1000uF elektrolyyttikondensaattorilla. Kondensaattorin lisäämisen jälkeen värähtelypiiristä alkoi saada ulos puhdasta kanttiaaltoa. Näin jälkeenpäin mietin, että ensimmäiset kytkennät eivät mahdollisesti alkaneet toimia juurikin huonolaatuisen käyttöjännitteen takia.
Lopulliseksi oskillaattoriksi komponenttivalintoineen muodostui alla olevan kuvan mukainen kytkentä:
Kuvan toinen invertteri toimii ainoastaan lisäpuskurina signaalille. Mittasin kytkennän lähdön oskilloskoopilla ja sieltähän sai ulos todella puhtaan signaalin. Jos näet signaalissa häiriöitä, lisää käyttöjännitteestä maahan ainakin 100-1000 uF kondensaattori ja mahdollisimman lähelle piiriä 100 nF kondensaattori käyttöjännitteestä maahan.
Toimivan kytkennän löydyttyä siirryin tutkimaan ohjelmistonkehitystä, mutta siitä onkin lisää sitten seuraavassa osassa!
[…] Osa kaksi kertookin sitten oman kortin suunnittelusta ja kehityksestä eli pysykäähän kanavalla! Mikrokontrollerit, Rakentelu Mikrokontrollerit, Näyttö, Rakentelu « Café au Logitech Assembly 2010: Sunnuntai » […]