19.07.2013 Views

PIC-LCD - Lea

PIC-LCD - Lea

PIC-LCD - Lea

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Osmo Pasuri, OH6CJ<br />

oh6cj@sral.fi<br />

TAAJUUSLASKIN<br />

14.08.2001<br />

Artikkelin esittelykuva: <strong>PIC</strong>_<strong>LCD</strong>_counter.jpg<br />

Kuvat, piirikaaviot, taulukot: OH6CJ paitsi kuva 4 : http://smallwonderlabs.com/ freqmite.gif)<br />

FILE: <strong>PIC</strong>_<strong>LCD</strong>_ARTIKKELI16_KUVAT.DOC<br />

1(23)


2(23)


Sisällysluettelo<br />

1. JOHDANTO ......................................................................................................................................................................................5<br />

2. TAAJUUSMITTAUKSEN PERIAATE.....................................................................................................................................5<br />

3. KÄSITTEITÄ....................................................................................................................................................................................5<br />

3.1 SUORA TAAJUUSLASKIN.............................................................................................................................................................5<br />

3.2 OHJELMOITAVA TAAJUUSLASKIN JA DISPLAY OFFSET .........................................................................................................6<br />

3.3 ESIJAKAJA ....................................................................................................................................................................................6<br />

3.4 <strong>PIC</strong>.................................................................................................................................................................................................6<br />

4. TAAJUUSLASKINTEKNIIKKA 20 VUOTTA SITTEN.....................................................................................................6<br />

5. TAAJUUSINDIKAATTORIT......................................................................................................................................................6<br />

5.1 7-SEGMENTTINÄYTTÖ ................................................................................................................................................................6<br />

5.2 <strong>LCD</strong> ELI NESTEKIDENÄYTTÖ ....................................................................................................................................................7<br />

5.2.1 Taustavalolliset <strong>LCD</strong>-näytöt............................................................................................................................................9<br />

5.3 TAAJUUDEN ILMAISU SÄHKÖTYKSELLÄ..................................................................................................................................9<br />

5.4 TAAJUUDEN ILMAISU LED-MATRIISILLA DEKADEITTAIN ..................................................................................................10<br />

6. KUINKA HARRASTAJAN TAAJUUSLASKIN VOITAISIIN TOTEUTTAA EDULLISESTI<br />

NYKYTEKNIIKALLA? ................................................................................................................................................................. 11<br />

6.1 <strong>PIC</strong>-MIKROPROSESSORI ............................................................................................................................................................11<br />

7. <strong>PIC</strong>-SOVELLUKSET JA OM3CPH....................................................................................................................................... 12<br />

7.1 OM3CPH PERUSLASKIMEN TOIMINTA..................................................................................................................................12<br />

8. LASKIMEN MODIFIOITU HW-KYTKENTÄ................................................................................................................... 12<br />

9. LASKIMEN MODIFIOITU OHJELMISTO (SW)............................................................................................................ 15<br />

9.1 COUNTER MODE...................................................................................................................................................................15<br />

9.2 EEPROM MODE.....................................................................................................................................................................16<br />

9.3 MUUT LISÄTYT FUNKTIOT .......................................................................................................................................................16<br />

9.4 EEPROM-PARAMETRIEN FUNKTIOT .....................................................................................................................................16<br />

9.4.1 Display Offset ja kytkin S4 (EEPROM 00h…05h).................................................................................................... 17<br />

9.4.2 Suora tai ohjelmoitava taajuuslaskenta (EEPROM 06h)........................................................................................ 17<br />

9.4.3 Laskimen kalibrointi (EEPROM 07h, 08h) ................................................................................................................ 17<br />

9.4.4 Näytön valinta (09h) ...................................................................................................................................................... 18<br />

9.4.5 Näytettävien numeroiden määrä (0Ah)....................................................................................................................... 18<br />

9.4.6 Oletusarvojen palautus (0Fh) ...................................................................................................................................... 18<br />

9.5 KÄYTTÄJÄN ASETUSTEN MUUTTAMINEN ..............................................................................................................................18<br />

9.5.1 EEPROM MODEn aktivointi ....................................................................................................................................... 18<br />

9.5.2 Parametrien arvojen muuttaminen.............................................................................................................................. 19<br />

10. LASKIMEN RAKENTAMINEN ........................................................................................................................................... 20<br />

11. LASKIMEN KÄYTTÖÖNOTTO .......................................................................................................................................... 21<br />

11.1 MITTAUKSET JÄNNITTEETTÖMÄNÄ......................................................................................................................................21<br />

11.2 ENSIMITTAUKSET JÄNNITE KYTKETTYNÄ...........................................................................................................................21<br />

11.3 LOPPUASENNUS JA TESTAUS..................................................................................................................................................21<br />

12. LASKIMEN TUOTTAMAT HÄIRIÖT............................................................................................................................... 21<br />

13. MISTÄ OHJELMAN SAA? .................................................................................................................................................... 21<br />

14. JATKOKEHITYSIDEOITA JA PUUTTEET.................................................................................................................... 22<br />

14.1 KEHITYSIDEAT ........................................................................................................................................................................22<br />

3(23)


14.2 PUUTTEITA...............................................................................................................................................................................22<br />

15. <strong>PIC</strong>-<strong>LCD</strong>-TAAJUUSLASKIMEN OSALUETTELO....................................................................................................... 22<br />

16. LÄHTEET..................................................................................................................................................................................... 23<br />

4(23)


1. Johdanto<br />

Tämä artikkeli kertoo taajuuslaskimen toimintaperiaatteesta ja sen toteutuksesta viimeisen 20<br />

vuoden aikana. Taajuuslaskimia on tyypillisesti käytetty mittalaitteena esim. radioharrastajien<br />

laitteissa vastaanotto- ja lähetystaajuuden indikointiin ja näin on päästy tarkempaan tulokseen<br />

verrattuna mekaanisiin taajuusasteikkoihin. Tosin nykyisissä kaupallisissa lähetinvastaanottimissa<br />

käytetään tyypillisesti paikallisoskillaattorina DDS:ään (Direct Digital Synthetics) perustuvaa<br />

ratkaisua ja näytön taajuuslukema perustuukin DDS-piirille annettuun taajuusohjeeseen.<br />

Rakenteluesimerkkinä esitellään <strong>PIC</strong>-mikroprosessorilla ja <strong>LCD</strong>-näytöllä toteutettu 7 numeron<br />

ohjelmoitava 30 MHz:n taajuuslaskin, jonka toiminta voidaan parametroida käyttäjän tarpeen<br />

mukaan.<br />

2. Taajuusmittauksen periaate<br />

Vaihtosähkön taajuus määritellään värähtelyjaksojen lukumääränä aikayksikössä. Taajuushan on<br />

yksi hertzi, kun tapahtuu yksi värähdys yhdessä sekunnissa. Seuraavasta kaavasta voidaan todeta<br />

että taajuuden mittaaminen on ajan mittaamisen käänteinen toimitus. 7) Taajuus saadaan ratkaistua<br />

jakamalla mitattavan signaalin värähdysten lukumäärä tarkasteluajalla.<br />

f (Hz) = n / t (s) f = taajuus hertzeinä<br />

n = värähdysten lukumäärä<br />

t = tarkasteluaika<br />

Taajuuslaskimessa lasketaan määrämittaisena aikana (laskenta-aikaikkuna) jaksojen määrä ja<br />

muunnetaan tulos taajuudeksi. 7 ) Hiukan tarkennettuna toimintaperiaate on yksinkertaisesti<br />

seuraava:<br />

1. Lasketaan kalibroidussa laskenta-aikaikkunassa mitattavasta signaalista pulssien lukumäärä.<br />

2. Talletetaan pulssien määrä välimuistiin (latch)<br />

3. Tulostetaan laskimen näytölle pulssiluku = taajuus välimuistista. Desimaalipisteen paikka<br />

ohjataan valitun laskenta-aikaikkunan (= resoluution) mukaan<br />

4. Nollataan pulssilaskurit ja aloitetaan seuraava mittausjakso (hyppy kohtaan 1…)<br />

Esimerkki:<br />

Laskenta-aikaikkuna on 100 ms. Mitattava taajuus on 14100.155 kHz = 14100155 jaksoa<br />

sekunnissa. Laskenta-aikaikkuna määrää maksimi resoluution, jos esijakajaa ei käytetä<br />

mittaussisääntulossa eli esim. 100 ms:n aikana jaksoja tulee 14100155 x 0.1 s = 1410015. Tämä<br />

vastaa siten taajuutta 14100.15 kHz eli vähiten merkitsevä numero (5) indikoi kymmenet Hz:t. Jos<br />

aika-ikkuna olisi 1 s, niin silloin päästäisiin 1 Hz:n resoluutioon.<br />

Taajuuslaskimen elektroniikalla on aina maksimimittaustaajuus, jonka laskin pystyy tietyissä<br />

olosuhteissa mittaamaan. Taajuusaluetta voidaan kasvattaa ylöspäin käyttämällä laskimen edessä<br />

esijakajaa tai superheterodyneperiaatetta eli alassekoittamista 7) .<br />

3. Käsitteitä<br />

Seuraavassa muutamia käsitteitä, jotka on hyvä ymmärtää tätä artikkelia luettaessa.<br />

3.1 Suora taajuuslaskin<br />

Summaa mitattavia pulsseja laskenta-aikaikkunan osoittaman aikayksikön ajan ja näyttää tuloksen.<br />

8)<br />

5(23)


3.2 Ohjelmoitava taajuuslaskin ja Display Offset<br />

Taajuuslaskin rakennetaan ohjelmoitavaksi, kun se liitetään esim. supervastaanottimeen mittaamaan<br />

vastaanottimen VFO-taajuutta, mutta laskimen halutaan indikoivan vastaanotettu taajuus. Tällöin on<br />

vastaanottimen rakenteen mukaan AM- ja FM-modella joko vähennettävä välitaajuudesta VFOtaajuus<br />

tai lisättävä välitaajuus VFO-taajuuteen. CW- ja SSB-modella välitaajuuden asemesta<br />

käytetään BFO-taajuutta. Tätä summattavaa tai vähennettävänä olevaa lukuarvoa kutsutaan tässä<br />

artikkelissa Display Offset (näytön offsetiksi).<br />

3.3 Esijakaja<br />

Mitattavan taajuuden lisäjakaja, joka kytketään taajuuslaskimen sisääntuloon. Sen avulla voidaan<br />

mitata taajuuksia, jotka ovat perustaajuuslaskimen mittausalueen yläpuolella.<br />

3.4 <strong>PIC</strong><br />

<strong>PIC</strong> (Programmable Interface Controller) on yksisiru (single-chip) mikroprosessori, joka sisältää<br />

ohjelman suorituksen kannalta melkein kaiken tarvittavan kuten I/O:n, RAM- ja ROM-muistit,<br />

käskydekooderin, kello-oskillaattorin ja tilakoneen. Piiri tarvitsee +5 V:n käyttöjännitteen ja<br />

oskillaattorikytkentään vastuksen ja kondensaattorin (RC) tai suuremmille taajuuksille esim.<br />

kvartsikiteen ja kaksi kondensaattoria. <strong>PIC</strong>-mikroprosessorit ovat Microchip Technology Inc.<br />

valmistamia tuotteita. 10)<br />

4. Taajuuslaskintekniikka 20 vuotta sitten<br />

Rakensin ensimmäisen taajuuslaskimen 1980-luvun alussa DX-kuuntelijalehdessä olleen Ilpo J.<br />

Leppäsen ansiokkaan artikkelin mukaan. Laskin oli toteutettu sen ajan tekniikan ja rakenteluhengen<br />

mukaan noin parillakymmenellä TTL-piireillä. Virrankulutus oli taattua…noin 1 A viiden voltin<br />

käyttöjännitteellä! Kolmannes mikropiireistä käytettiin muodostamaan laskenta-aikaikkuna<br />

jakamalla 1 MHz:n kidetaajuus siten että lopputuloksena positiivisen jakson pituus oli 100 ms<br />

laskenta-aikaikkunaksi. Loput piireistä olivat itse laskurina (74192), välimuistina (7475 latch) ja 7segmenttinäytön<br />

ohjaimena (7447). Lisäsin vielä 100 Hz dekadin laskimeen ja<br />

maksimimittaustaajuutta nostin käyttämällä erillistä esijakajaa (10-jakaja) mittaustulossa 5) . Näin<br />

esim. taajuus 145.550 MHz oli jakajan lähdössä 14.5550 MHz. Tarvittiin desimaalipisteen siirto<br />

oikealle, jotta laskimen indikoima taajuuslukema oli taas oikea 145.550 MHz. Muita 1980-luvun<br />

taajuuslaskinpiirejä olivat ainakin Intersil ICM 7217A yhdessä ICM 7207 (time base) kanssa 2) ,<br />

ICM7226 ja Mostek MK50398 3) . Ensin mainittua löytyy vieläkin komponenttikauppojen<br />

luettelosta.<br />

5. Taajuusindikaattorit<br />

Tutkitaanpa seuraavaksi millä eri tavoilla taajuuslaskimen mittaama taajuus voidaan indikoida<br />

käyttäjälle.<br />

5.1 7-segmenttinäyttö<br />

Näyttönä voi edelleenkin olla LED-tyyppinen 7-segmenttinäyttö, joka koostuu seitsemästä valoa<br />

emittoivasta diodista (LED) sijoitettuna numero kahdeksan muotoon. Lisäksi desimaalipisteelle (dp)<br />

on oma pinni. LEDien muodostamia viivoja kutsutaan segmenteiksi, jotka on nimetty kirjaimin<br />

a,b,c,d,e,f ja g. LEDien anodit (yhteisanodi-kytkentä) tai katodit (yhteiskatodi-kytkentä) on kytketty<br />

yhteen muodostaen kytkentään yhteisen COMMON-pinnin. 7-segmenttinäytön hyvänä<br />

ominaisuutena on numeroiden selkeä näkyvyys, mutta varjopuolena suuri virrankulutus. Jotta<br />

numerot näkyvät myös kirkkaassa auringon valossa, käytetään usein tummennettua lasi- tai muovi-<br />

6(23)


ikkunaa näytön edessä. Jokainen aktivoitu segmentti kuluttaa virtaa 5…20 mA sarjavastuksen<br />

mukaan.<br />

7-segmenttinäyttöjen ohjaus voi olla numerokohtainen kuten esim. Ilpo J. Leppäsen artikkelin<br />

laitteessa, jossa jokaiselle näytön dekadille on oma laskuri-, latch- ja dekooderipiiri. Toinen<br />

toteutustapa on ns. multipleksattu näytön ohjaus, jolloin jokaista dekadia näytetään hetki yksi<br />

kerrallaan. Kytkennässä käytetään kytkintransistoreita kytkettynä jokaisen 7-segmenttinäytön<br />

COMMON-pinniin. Transistorit ohjataan johtavaan tilaan dekadi kerrallaan multiplekserin<br />

ohjaamana ja näin ainoastaan kyseiseen näyttöön syttyvät ledit, jotka ohjataan synkronoidusti<br />

segmenttien ohjausväylästä (a…g). Kun multipleksaustaajuus on riittävän suuri, näkee silmä valon<br />

jatkuvana ilman häiritsevää vilkkumista. Multipleksatun näytön etuna on pienempi virrankulutus<br />

kuin numerokohtaisella ohjauksella, mutta haittapuolena se voi häiritä vastaanotinta ellei sitä<br />

suojata metallikoteloon.<br />

Segmenttien<br />

ohjaus<br />

dekadeittain<br />

7-segmenttinäytön<br />

dekadin<br />

valinta<br />

a<br />

b<br />

c<br />

d<br />

e<br />

f<br />

g<br />

Common Common Common Common<br />

Kuva 1. Multipleksatun 7-segmenttinäyttöryhmän ohjausperiaate. (multiplexer_block_diagram.eps)<br />

5.2 <strong>LCD</strong> eli nestekidenäyttö<br />

Vähemmän virtaa kuluttavat <strong>LCD</strong>-näytöt (<strong>LCD</strong> = Liquid Crystal Display). Näyttö itse on<br />

passiivinen 7-segmenttityyppinen näyttö, johon on yhdistetty useita numeroita esim. 3.5 numeron<br />

näyttö (maksimi lukema on 1999). Esimerkkinä tällaisesta on K1 cw-lähetinvastaanotin (USA:ssa<br />

rakennussarjana) varustettuna kolmen numeron <strong>LCD</strong>-näytöllä, jonka segmenttejä (3 x 7 = 21 I/Opinniä)<br />

ohjataan yhdellä <strong>PIC</strong>-piirillä 16C77. 11) Piirilevyn rakenteesta tulee monimutkainen johtuen<br />

ohjattavien segmenttien suuresta määrästä.<br />

Yksinkertaisempi soveltaa on valmis ohjauselektroniikalla varustettu <strong>LCD</strong>-näyttömoduli (esim 1 x<br />

16 merkkiä = näytössä on yksi rivi, jossa 16 merkkiä). Tällöin näyttöä ohjataan erillisellä<br />

mikroprosessorilla 4- tai 8-bittisellä standardoidulla (esim. Hitach HD44780) dataväylällä ja<br />

kolmella ohjauslinjalla. 3) Pinnien merkitys on vakio eri tyypeillä riippumatta näytön<br />

merkkimäärästä ja riveistä. Yhdelle merkille on varattu 5 x 10 pisteen matriisi, josta normaalisti<br />

käytetään 5 x 7 pisteen alue ylhäältä lukien. Näin mahdollistetaan alareunaan myös kursoriviivan<br />

7(23)


ohjaus. Näytölle voidaan tulostaa ASCII-merkkejä, sekä ohjelmoida myös tarvittaessa omia<br />

merkkiä.<br />

Näytön voi myös asettaa 5 x 10 pisteen moodiin, jolloin tietyt pienet kirjaimet (esim. j, p, q, y…)<br />

tulostuvat oikealle korkeudelle kuten normaalisti kirjoitettaessa.<br />

Taulukko 1. <strong>LCD</strong>-näyttömodulien pinnit HD44780-standardin mukaan.<br />

Pin Signal Level Function<br />

1 Vss Ground<br />

2 Vdd +5 VDC Logic supply<br />

3 VLC +0.7 VDC Power supply for LC driving<br />

4 RS L=INST,<br />

H=CHAR<br />

<strong>LCD</strong> Register select control line<br />

5 R/W L=Write, H=Read <strong>LCD</strong> Read/Write control line<br />

6 E Latch on fall edge <strong>LCD</strong> Enable control line. Operation start signal for data R/W.<br />

Causes R/W to be latched on falling edge.<br />

7 DB0<br />

Lower order 4-bit bi-directional tri-state data-bus<br />

8 DB1<br />

9 DB2<br />

10 DB3<br />

11 DB4<br />

Upper order 4-bit bi-directional tri-state data-bus<br />

12 DB5<br />

13 DB6<br />

14 DB7<br />

15 A (LED+)<br />

Supply voltage for LED Backlighting<br />

16 K (LED-)<br />

<strong>LCD</strong>-näytön ohjauselektroniikka on CMOS-tekniikkaa ja kuluttaa virtaa vain muutaman mA:n.<br />

<strong>LCD</strong>-näyttömoduuleja on saatavana alle 50 mk:sta lähtien ja niiden ohjauksesta löytyy internetistä<br />

hakusanalla ”<strong>LCD</strong>” runsaasti tietoa. Käytettyjä näyttömoduuleja löytyy kierrätystarkoituksiin mm.<br />

lasertulostimista ja erilaisista teollisuuden ohjauspaneeleista.<br />

DB0...DB7<br />

RS<br />

R/W<br />

E<br />

Vdd<br />

Vss<br />

VLC<br />

A<br />

C<br />

<strong>LCD</strong> module<br />

Data bus<br />

(Anode)<br />

(Cathode)<br />

<strong>LCD</strong><br />

Controller<br />

1<br />

2<br />

3<br />

4<br />

21<br />

22<br />

Common<br />

signal<br />

Segment signal<br />

Serial Data<br />

Timing Signal<br />

LED Backlight<br />

8(23)<br />

<strong>LCD</strong><br />

Segment<br />

Driver<br />

Kuva 2. Erään 2 x 20 merkkisen taustavalollisen <strong>LCD</strong>-modulin lohkokaavio.<br />

(lcd_module_block_diagram.eps)<br />

<strong>LCD</strong>-näyttöä hankittaessa kannattaa suhtautua varauksella halvalla myytäviin näyttöihin (alle 50<br />

mk), koska kokemuksen mukaan niiden oikea toiminta voi olla sattumanvaraista ja olisi ikävää, jos<br />

esim. <strong>PIC</strong>-<strong>LCD</strong> rakennusprojekti menisi sen takia kiville. Kokeilin laskuria neljän eri valmistajan<br />

<strong>LCD</strong>-modulilla ja lopputuloksena havaitsin, ettei näyttö toiminut halvimmalla moduleilla lainkaan,<br />

ennenkuin lisäsin ohjelmakoodiin ylimääräisiä viiveluuppeja tiettyjen <strong>LCD</strong>-komentojen jälkeen.


Havaitsin tietyissä moduleissa myös häiriöherkkyyttä, jos <strong>LCD</strong>:n ja <strong>PIC</strong>:n välinen johdotus oli yli<br />

15 cm pitkä.<br />

<strong>LCD</strong>-näyttömodulia valittaessa toinen tärkeä asia on näytön oikea katselukulma. Jos näyttö tulee<br />

etupaneeliin, joka on pystysuorassa, tulee näytön merkkien olla myös terävät katsottaessa sitä<br />

kohtisuoraan ja hiukan yläviistosta. Esim. 1 x 16 merkkisen TM161A/B <strong>LCD</strong>-näyttömodulin paras<br />

katselukulma on edestä alhaalta (kukahan katsoo radion taajuusnäyttöä alaviistosta?). Kuitenkin<br />

kohtisuoraan katsottaessa merkit näkyvät hiukan epäterävästi. Tämähän on tuttu juttu<br />

taskulaskimien näytöistä. (Jos ostat <strong>LCD</strong>-näyttömoduulin, vaadi myyjältä selvitys näytön<br />

katselukulmaominaisuuksista).<br />

5.2.1 Taustavalolliset <strong>LCD</strong>-näytöt<br />

<strong>LCD</strong>-näyttö ei itse emittoi valoa, joten sen luettavuus huononee pimeässä ilman näytön tai<br />

ympäristön taustavaloa. Sitä varten on kehitetty taustavalollisia <strong>LCD</strong>-näyttöjä. Taustavalot on<br />

sijoitettu näytön alle ja itse <strong>LCD</strong>-näytön taustamateriaali päästää valoa läpi. Taustavaloina<br />

käytetään elektroluminenssiin ja LED:hin perustuvia ratkaisuja, joista jälkimäinen on pitkäikäinen<br />

ja siten suositeltava. LED-taustavalo koostuu useasta rinnankytketystä LED-diodiryhmästä, joka<br />

tarvitsee aina etuvastuksen. Itse käytin toisessa protossa 18 ohmin /0.5W vastusta sarjassa +5 V:n ja<br />

LED-näytön anodin kanssa. Taustavalo koostui 11 lediryhmästä, jossa kussakin oli kaksi lediä<br />

sarjassa. Sarjavastus rajoitti LEDien virran n. 50 mA:iin. LED:n anodi ja katodiliittimet ovat<br />

yleensä moduulin toisessa päässä ja lisäksi liittimissä 15 ja 16. LED-taustavalon virrankulutus<br />

riippuu tietysti halutusta taustavalon kirkkaudesta (esim. 50..275 mA), joten kannettavissa laitteissa<br />

taustavalolle kannattaa laittaa oma kytkin virrankulutuksen minimoimiseksi.<br />

Kuva 3. Taustavalollinen 2 x 20 merkkinen <strong>LCD</strong>-näyttömoduli. Oikeassa reunassa näkyy<br />

taustavalon jännitesyötön liittimet ja vasemmassa reunassa kahdessa pystyrivissä näytön ohjauksen<br />

liitinnastat 1…14. (2x20_lcd.jpg)<br />

5.3 Taajuuden ilmaisu sähkötyksellä<br />

USA:ssa on myynnissä 20 dollarin hintaan <strong>PIC</strong>-piirillä toteutettu taajuuslaskin FREQ-Mite, joka<br />

aktivoitaessa indikoi taajuuden sähkötyksellä piezo-summeriin tai kaiuttimeen/kuulokkeisiin. Hyvä<br />

laite kertomaan, missä ollaan, mutta tietylle taajuudelle tulo vaatii toistoa. Oiva apuväline<br />

yksinkertaisiin QRP-laitteisiin ja myös näkövammaisille radioamatööreille. RF-tulojännitteeksi<br />

tarvitaan vähintään 200 mVpp 10 MHz:iin asti ja 600 mVpp 30 MHz:lla. Mittaustarkkuudeksi<br />

luvataan +/- 1.5 kHz 25 MHz:iin asti ja +/-2 kHz yläpäässä. Tässä sovelluksessa käytetään <strong>PIC</strong>piirin<br />

ns. SLEEP-moodia hyväksi, jolloin piiri menee passiiviseen ”unitilaan” taajuusindikoinnin<br />

jälkeen. Näin <strong>PIC</strong>-piirin kello-oskillaattori pysähtyy ja ei häiritse itse vastaanotinta. Taajuus-offset<br />

ohjelmoidaan oikosulkupistokkeilla (jumppereilla) piirilevyn liittimille. 4)<br />

9(23)


Kuva 4. Freq-Mite taajuuslaskin <strong>PIC</strong>-prosessorilla toteutettuna. (kuva http://smallwonderlabs.com/<br />

freqmite.gif)<br />

5.4 Taajuuden ilmaisu LED-matriisilla dekadeittain<br />

Japanilaisella kekseliäisyydellä JF1OZM:n kotisivuilta löytää mainion CD4017 CMOS-piireillä<br />

tehdyn suoran taajuuslaskimen, jossa käytetään erillisledejä jokaiselle näytettävälle dekadille.<br />

Kytkentä on tehty minimi komponenttimäärällä. CMOS-piirien johdosta laskimen ylärajataajuus jää<br />

reilusti alle 10 MHz:iin. Huolellisella ledien asennuksella ja koteloinnilla saadaan näyttävä ja myös<br />

erikoinen taajuusnäyttö radioon. 9)<br />

Kuva 5. Timon OH2BFZ homemade 80m:n lähetinvastaanotin varustettuna LEDmatriisinäyttöisellä<br />

taajuuslaskimella. Ylin ledirivi indikoi 100 kHz, seuraava 10 kHz ja alin 1 kHz.<br />

(Kuva oh2bfz_trcvr.jpg)<br />

10(23)


6. Kuinka harrastajan taajuuslaskin voitaisiin toteuttaa<br />

edullisesti nykytekniikalla?<br />

Nykyään ei kannata lähteä rakentamaan taajuuslaskinta erillislaskuripiireistä (TTL tai CMOS),<br />

koska kytkennästä tulee monimutkainen johtuen piirien suuresta määrästä. Kaupallisia<br />

taajuuslaskimeksi suunniteltuja yksisirupiirejä on vähän ja ne ovat kalliita johtuen ilmeisesti<br />

pienistä volyymeista. Myöskään ne eivät välttämättä ole optimoituja harrastajan tarpeeseen. Entäpä<br />

mikroprosessoripohjaiset ratkaisut? Ensimmäinen reaktioni oli: monimutkaisia, tarvitsevat useita<br />

mikropiirejä, kuinka kehittää ohjelmisto ja mistä saada kehitysympäristö minimi-investoinnilla?<br />

Yllätyksekseni otsikon kysymykseen löysin vastauksen internetistä: <strong>PIC</strong>-prosessorit.<br />

6.1 <strong>PIC</strong>-mikroprosessori<br />

Mikrochipin tuotevalikoimaan kuuluu useita erityyppisiä piirejä mm.:<br />

- kertaohjelmoitavat piirit PROM<br />

- uudelleenohjelmoitavat piirit perustuen EEPROM tai FLASH-piiritekniikkaan (ohjelmointi n.<br />

13V:n jännitteellä)<br />

- EPROM-piiritekniikkaan perustuvat piirit (nollataan UV-valolla)<br />

Harrastajaa kiinnostaa tietysti helpoiten uudelleenohjelmoitavat piirit.<br />

Kuva 6. 18-nastainen <strong>PIC</strong>-mikropiiri 16C84 mikropiirikannassa protopiirilevyllä. (Kuva<br />

Printed_board_view.jpg)<br />

<strong>PIC</strong>:n lisäksi tarvitaan vain kide ja pari kondensaattoria sekä 5 V:n reguloitu apujännitelähde. Eli ei<br />

tarvita RAM-, ROM- ym. piirejä osoite- ja dataväylineen kuten yleensä vanhemmissa<br />

mikroprosessorisukupolvissa. Kaikki tämä on integroitu yhteen <strong>PIC</strong>-mikropiiriin.<br />

Hyvin yleinen <strong>PIC</strong>-piiri on 8-bittinen 16F84 (16C84 on vanhempi EEPROM-versio), jossa on 13<br />

ohjelmoitavaa I/O-pinniä (RA0…RA2, RB0…RB7) ja mikä parasta harrastajalle, piirin flashohjelmamuistin<br />

(FPROM) voi ohjelmoida n. 1000 kertaa. Tämä tarkoittaa sitä, että harrastaja voi<br />

itse niin halutessaan kehittää ja testata sovellusta n kertaa, kunnes haluttu lopputulos on saavutettu<br />

11(23)


(vertaa tinaa ja kokeile…savun hälvettyä tarkistetaan ja muutetaan kytkentä …heh heh). Piirissä on<br />

myös data-muisti, johon voi tallettaa sovelluskohtaisia asetteluja. Toisena vaihtoehtona voidaan<br />

käyttää <strong>PIC</strong>-harrastajien valmiita sovelluksia, joita löytyy internetistä ja ohjelmoida <strong>PIC</strong>-piiri niillä.<br />

Myös PC:n printteriporttiin liitettävän yksinkertaisen ohjelmointilaitteen rakennusohjeita löytyy<br />

netistä. Piirin 16F84-04/P hinta (4 MHz:n tyyppi) on ollut halvimmillaan alle 40 mk.<br />

Internetistä voi imuroida ilmaiseksi MPLAB ohjelmistokehitysympäristön IDE (Integrated<br />

Development Environment) tietokoneelle 10) . Myös kaupallisia Basic ja C-kielen kääntäjiä on<br />

saatavilla 3) .<br />

7. <strong>PIC</strong>-sovellukset ja OM3CPH<br />

Peter OM3CPH:n kotisivulla on monia <strong>PIC</strong>-pohjaisia taajuuslaskimia ja DDS-VFO-kytkentöjä. Hän<br />

on rakennellut jo 30 vuotta kotikutoisia laitteita. Hän sai ensimmäisen radioamatööriluvan 1975<br />

kutsulla OK3CPH. Myöhemmin Tsekkoslovakian jakautuessa Tsekin ja Slovakian tasavaltaan,<br />

kutsu muuttui OM3CPH:ksi. Muutamia vuosia sitten Peter löysi radioharrasteeseen <strong>PIC</strong>-piirit! <strong>PIC</strong><br />

taajuuslaskin- ja DDS-sovelluksia löytyy runsaasti hänen kotisivultaan. 1)<br />

7.1 OM3CPH peruslaskimen toiminta<br />

Seuraavassa on selostettu alkuperäisen <strong>PIC</strong>-<strong>LCD</strong> taajuuslaskinohjelman algoritmi, joka on<br />

perustana myöhemmin selostetulle laskimelle:<br />

1. Muunnetaan 24-bittinen laskuriarvo seitsemäksi desimaalinumeroksi<br />

2. Muunnetaan desimaaliarvot ASCII-merkeiksi <strong>LCD</strong>-näyttöä varten<br />

3. Tyhjennetään <strong>LCD</strong>-näytöltä edellisessä laskennassa tulostetut merkit<br />

4. Lähetetään taajuuslukema ASCII-merkki kerrallaan RB0…RB3 avulla <strong>LCD</strong>-näytölle ja asetetaan<br />

desimaalipisteen paikka tarvittaessa<br />

5. Nollataan laskurirekisterit<br />

6. Aloitetaan uusi 100 ms:n mittausjakso<br />

7. Testataan <strong>PIC</strong>:n sisäisen laskurin TMR0:n ylivuoto, jos ylivuoto on tapahtunut niin kasvatetaan<br />

ohjelman rekisteriä TimerH:ta yhdellä<br />

8. Hyppy kohtaan seitsemän, kunnes mittausjakso (mittausaika-ikkuna) on suoritettu.<br />

9. Pysäytetään mittaus<br />

10. Siirretään TimerH arvo HigB-rekisteriin ja TMR0 arvo MidB-rekisteriin<br />

11. Lasketaan LowByte rekisterin arvo digitaalilähdön RA3 avulla Prescaler-laskurista.<br />

12. Tehdään Display Offset laskenta valinnan mukaan (Add tai Sub).<br />

13. Hyppy kohtaan 1.<br />

Laskenta-aikaikkuna on siis 100 ms, jolloin vähiten merkitsevä numero näyttää kymmenet Hz:it.<br />

Laskin sisältää 24-bittisen laskurin, joka on jaettu kolmeen 8-tavuiseen laskurirekisteriin: High<br />

byte, Midbyte ja LowByte. Esim. <strong>LCD</strong>-näytölle tulostetaan taajuuslukema 7.331.02 MHz. Tällöin<br />

rekisterien arvot ovat: HighByte = 0Bh, MidByte = 2Fh ja LowByte = AE, koska 73310210<br />

kymmenjärjestelmässä vastaa 0B2FAE16 kuusitoistajärjestelmässä.<br />

8. Laskimen modifioitu HW-kytkentä<br />

Tibor OM2ATM on suunnitellut alkuperäisen 1-puolisen piirilevyn, jota olen modifioinut<br />

lisäämällä +5 V:n jänniteregulaattorin ja 4 painonappia, jotka löytyivät vanhasta videonauhurin<br />

romusta. Painonappien avulla tehdään tarvittaessa käyttäjän asetukset EEPROM-muistiin. Samoihin<br />

liittimiin kytketään koskettimet varsinaisille kytkimille tai relekoskettimille tarpeen mukaan<br />

(piirikaaviossa ”External Control”).<br />

12(23)


Mitattava taajuus kytketään NPN-transistoriasteen vahvistamana I/O-pinneihin RA3 ja RA4. RA4<br />

toimii schmitt trigger-tyyppisenä digitaalitulona <strong>PIC</strong>:n sisäiselle laskurimoduulille TMR0, joka<br />

muodostaakin pulssilaskennan ytimen tässä sovelluksessa. RA3:a tarvitaan digitaalilähtönä<br />

laskennan jälkeen selvitettäessä Prescaler-laskurin arvo. Tämä siksi, koska ko. laskuriarvoa ei voi<br />

<strong>PIC</strong>:ssä lukea suoraan.<br />

Digitaalituloa RA2 käytetään <strong>LCD</strong>:n R/W toimintoon sekä Display Offsetin summaus (Add) tai<br />

vähennys (Sub) valintaan ohjelmoitavana taajuuslaskimena. Valinnan määrää tietysti<br />

vastaanottimen rakenne, onko vastaanotettu taajuus välitaajuuden ala- vai yläpuolella.<br />

Painopiirilevy on melkein samaa kokoa itse 1 x 16 merkkisen <strong>LCD</strong>-näyttömoduulin kanssa (n. 8 cm<br />

x 3.6 cm) ja piirikortit asennetaankin päällekkäin esim. kierreholkkien ja ruuvien avulla. Näin<br />

saadaan <strong>LCD</strong>:n data- ja ohjausväylä lyhyeksi piirikorttien välillä.<br />

<strong>PIC</strong> <strong>LCD</strong> FREQUENCY COUNTER<br />

+8...13.8V<br />

0 V<br />

22uF<br />

25V<br />

Frequency<br />

Input<br />

Open (False) +5V (True)<br />

- Eeprom Mode<br />

Displ. 0ffset1 Displ. Offset2<br />

Offset 1&2 Direct Freq.<br />

Normal Decimal point<br />

Add Offset Sub Offset<br />

100R<br />

*) Can also be fixed 22 pF<br />

0 V (False) +5V (True)<br />

100n<br />

U1<br />

in<br />

LM317LZ<br />

C2<br />

out<br />

+5 V<br />

L1<br />

C1 ref<br />

R2<br />

R1<br />

220<br />

R3<br />

10uH<br />

R5<br />

100n<br />

C3<br />

470<br />

680 10k R12 R6<br />

R4<br />

D1<br />

2 x 1N4148<br />

+5 V<br />

C4<br />

D2<br />

External<br />

Control<br />

S4<br />

22nF<br />

470<br />

*)<br />

Programming<br />

buttons<br />

C7<br />

S0<br />

S1<br />

S2<br />

S3<br />

47k<br />

XT1<br />

R7...R10<br />

R11<br />

3k3<br />

100 nF<br />

Q1<br />

2N3904<br />

C5<br />

4 MHz<br />

4<br />

14<br />

22 pF<br />

22 pF<br />

C6<br />

6<br />

Vdd<br />

2<br />

RA3<br />

3<br />

5<br />

RA4<br />

Vss (GND)<br />

16<br />

15<br />

4 x<br />

1k<br />

7<br />

8<br />

9<br />

MCLR<br />

OSC1<br />

OSC2<br />

RB0<br />

RB1<br />

RB2<br />

RB3<br />

<strong>PIC</strong><br />

16F84-04P<br />

(16C84)<br />

13(23)<br />

RA0<br />

RA1<br />

RA2<br />

Kuva 7. <strong>PIC</strong>-<strong>LCD</strong>-taajuuslaskimen kytkentäkaavio (schematic_1.eps)<br />

U2<br />

RB4<br />

RB5<br />

RB6<br />

RB7<br />

17<br />

18<br />

1<br />

10<br />

11<br />

12<br />

13<br />

R13<br />

22k<br />

2<br />

Vdd (+5V)<br />

3<br />

Vo (<strong>LCD</strong> Contrast)<br />

1<br />

GND (0V)<br />

4<br />

5<br />

6<br />

RS<br />

R/W<br />

E<br />

Control Signals<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

14<br />

U3<br />

<strong>LCD</strong><br />

(HD44780)<br />

D0<br />

D1<br />

D2<br />

D3<br />

D4<br />

D5<br />

D6<br />

D7<br />

Data bus<br />

25.07.2001 OH6CJ<br />

<strong>LCD</strong>-modulin näyttö tarvitsee toimiakseen kontrastijännitteen, joka on normaalisti n. 0.5…0.7 V ja<br />

pakkasta kestävissä malleissa –6…-7 V 3) . Kytkennässä 22 kilo-ohmin trimmeripotentiometrillä<br />

R13 säädetään näytön kontrasti sopivaksi. Koska <strong>LCD</strong>-näyttöä ohjataan 4-bittisellä väylällä<br />

(D4…D7), on pinnit D0…D3 kytkettävä nollaan, jotta näyttömoduli toimii oikein. <strong>PIC</strong>-piiri ja<br />

<strong>LCD</strong>-näyttömoduli tarvitsevat stabiloidun + 5V:n käyttöjännitteen. Regulaattoriksi löytyi<br />

komponenttilaatikosta LM317LZ max. 100 mA versio. Yhtä hyvin voisi käyttää tyyppiä 78L05,<br />

jolloin vastukset R1, R2 ja R3 voidaan jättää pois ja kytkeä regulaattorin GND piirikortin 0 V:iin<br />

(GND). Kiteenä on vanhasta väritelevisiosta purettu 4 MHz:n kide, jota löytyy myös yleisesti<br />

komponenttikaupoista. Toisessa protossa käytin trimmerikondensaattoria C6:ssa laskimen<br />

kalibroimiseksi, mutta 22 pF:n kiintokondensaattoria voi käyttää tilalla ja tehdä kalibroinnin


SW:ssa. Mitattava taajuus kytketään 100 ohmin vastuksen R4 ja 22 nF:n kondensaattorin C4 kautta<br />

NPN-transistorin Q1 kannalle, joka on esijännitetty vastuksella R12 (33k…150 k) parhaan<br />

herkkyyden saavuttamiseksi transistorityypin mukaan . Diodit D1 ja D2 leikkaavat mitattavan<br />

signaalin tason +/- 0.6 V:iin suojaten transistorin Q1. Rakentamani laskinyksilön ylärajataajuus oli<br />

melkein 36 MHz huoneenlämpötilassa signaalitasolla n. 0.2 Vpp. Virrankulutus oli n. 15 mA.<br />

Käyttöjännite 8…13.8 V DC.<br />

Huom! Digitaalitulot RB0…RB3 ovat normaalisti tilassa FALSE (0V) 1 kilo-ohmin<br />

alasvetovastusten R7…R10 avulla, jos niihin ei ole kytketty esim. ulkopuolista kytkintä. Näin<br />

digitaalituloja RB0…RB3 voidaan ohjata +5 voltin jännitteellä 1-napaisella kytkimellä tai releen<br />

koskettimella.<br />

Kuva 8. <strong>PIC</strong>-<strong>LCD</strong>-taajuuslaskimen komponenttien sijoitus (lcd_countr_comp_layout.bmp)<br />

14(23)


Kuva 9. Piirilevy juotospuolelta katsottuna. (lcd_countr_pcb_oh6cj.bmp)<br />

9. Laskimen modifioitu ohjelmisto (SW)<br />

Idea taajuuslaskinohjelman edelleen kehittämisestä tuli Eeron OH5OI, Pekan OH1PP ja Pertin<br />

OH1IR taholta, koska he olivat rakentamassa OM3CPH:n taajuuslaskinta 8-bittisellä<br />

ohjausväylällä. Display Offset-asetuksia ei voinut muuttaa kuin itse lähdekoodiin ja kääntää<br />

MPASM-tiedosto uudestaan heksamuotoon ohjelmointilaitetta varten. Se tuntui hiukan hankalalta.<br />

Täytyi olla helpompi keino asettaa Display Offset-parametrit! Löysin seuraavaksi internetistä<br />

Peterin <strong>LCD</strong>_DIG4.asm taajuuslaskin-ohjelman 4-bittisellä <strong>LCD</strong>-ohjausväylällä. Kokeilin<br />

ohjelmaa, mutta näytön ohjaus ei aluksi toiminut oikein. Sähköpostiyhteys Peterin kanssa tuotti<br />

hetken päästä tuloksia (myöhemmin meillä oli myös skedi 14.250 MHz:llä). Itse halusin vielä<br />

kehittää laskuria. Kun <strong>PIC</strong>:ssä kerran on käyttäjän EEPROM-datamuisti, niin miksipä ei käytettäisi<br />

sitä hyväksi. Kopioin myös ohjelmoitavan taajuuslaskimen ominaisuudet Sub / ADD RF hänen 8bittisestä<br />

koodista lisäten samalla kaksi eri Display Offsettia 1 ja 2. Käytän Peterin ohjelmakoodin<br />

Sub / ADD RF-termistä tässä nimitystä Display Offset = näytön offset, joka kuvaa paremmin<br />

funktiota eli siitä vähennetään tai siihen summataan mitattu taajuus.<br />

9.1 COUNTER MODE<br />

Normaalisti laskin toimii COUNTER MODE:ssa mitaten mittaustuloon kytkettyä taajuutta.<br />

Kun <strong>LCD</strong>:n ohjausväylä muutetaan 8-bittisestä neljäksi, vapautuu neljä I/O-pinniä RB0…RB3.<br />

Käyttäjää varten on siten ohjelmoitu digitaalituloille RB0…RB3 ja RA2 seuraavan taulukon<br />

mukaiset funktiot:<br />

15(23)


Taulukko 2. COUNTER MODEn digitaalitulojen funktiot<br />

COUNTER MODE<br />

Input signal FALSE (0 V) TRUE (+5 V)<br />

RA2 Sub Display Offset Add Display Offset<br />

RB0 - -<br />

RB1 Display Offset1 Display Offset2<br />

RB2 Display Offset 1&2 Direct frequency<br />

RB3 Normal / Sub Display<br />

Offset<br />

10-divider *)<br />

*) RB3 tilassa TRUE voidaan desimaalipisteitä siirtää yksi dekadi oikealle. Tätä ominaisuutta<br />

tarvitaan, jos taajuuslaskurin eteen kytketään erillinen 10-jakaja mitattavan taajuusalueen<br />

laajentamiseksi VHF:lle.<br />

9.2 EEPROM MODE<br />

Lisäsin ohjelmaan toisen erillisen toimintamoodin EEPROM MODE, johon päästään vain, jos<br />

painike S0 on 1-tilassa (+5V) ja sähköt kytketään <strong>PIC</strong>:iin. Sen jälkeen painikkeiden S0…S3 ja<br />

<strong>LCD</strong>-näytön avulla voidaan tarpeen mukaan muuttaa taajuuslaskurin käyttäjän asetuksia ja tallettaa<br />

ne parametreina EEPROM-muistiin, jossa ne säilyvät sähkökatkojen yli.<br />

Taulukko 3. EEPROM MODEn digitaalitulojen funktiot<br />

EEPROM MODE<br />

Input signal FALSE (0 V) TRUE (+5 V)<br />

S0 (RB0) - Increase address<br />

S1 (RB1) - Increase data value<br />

S2 (RB2) - Decrease data value<br />

S3 (RB3) - Save to EEPROM<br />

9.3 Muut lisätyt funktiot<br />

- toinen desimaalipiste lisätty 1 kHz:n ja 100 Hz:n dekadien väliin<br />

- jos taajuus näytölle on alle 10 MHz, niin 10 MHz:n dekadin nollaa ei tulosteta (esim. 01.440.00<br />

MHz näytetään 1.440.00 MHz)<br />

- ylimääräisiä viiveitä lisätty <strong>LCD</strong>:n merkkien lähetysalgorimiin, jotta ohjelmisto toimisi myös<br />

paremmin ”ei standardit täyttävillä” <strong>LCD</strong>-näyttömoduleilla<br />

- laskin toimii suorana taajuuslaskimena oletusarvoilla (katso EEPROM 06h)<br />

- kun laskimeen kytketään ensi kertaa <strong>PIC</strong>-piirin ohjelmoinnin jälkeen sähköt päälle, talletetaan<br />

oletusarvot automaattisesti EEPROM-muistiin. Tästä indikoi teksti ”EE-INIT:00...0F” näytössä<br />

9.4 EEPROM-parametrien funktiot<br />

Seuraavassa taulukossa on listattu käyttäjän EEPROM-asetukset. EEPROM-osoite ja data näytetään<br />

ja asetetaan aina heksaluku-formaatissa (h). Sen vuoksi Display Offsettia laskettaessa on tehtävä<br />

lukumuunnos 10-järjestelmästä 16-järjestelmään. Kuulostaa hankalalta, mutta lukumuunnoksia<br />

tarvitsee tehdä vain Display Offsetteja laskettaessa ja laskinhan löytyy esim. kotitietokoneen<br />

apuohjelmat-valikosta. Asetukset ovat tyypillisesti kertaluonteisia.<br />

16(23)


Taulukko 4. EEPROM-muistipaikkojen 00h...0Fh funktiot:<br />

Address Name Description Default<br />

00h Display Offset 1 Highbyte High Byte Display Offset1 9001.50 kHz = 0DBC36 0Dh<br />

01h Display Offset 1 Midbyte Mid Byte Display Offset1 BCh<br />

02h Display Offset 1 Lowbyte Low Byte Display Offset1 36h<br />

03h Display Offset 2 Highbyte High Byte Display Offset2 8998.50 kHz = 0DBB0A 0Dh<br />

04h Display Offset 2 Midbyte Mid Byte Display Offset2 BBh<br />

05h Display Offset 2 Lowbyte Low Byte Display Offset2 0Ah<br />

06h Direct_frequency Suora taajuuslaskenta ilman sub or add funktioita = 00<br />

Sub or add function activated = 01…FF<br />

00h<br />

07h EE_Fine1 Kalibrointiarvo 1 (1 == 3*4/fx = 3us) 15h<br />

08h EE_Fine2 Kalibrointiarvo 2 (1 == 4*4/fx = 4us) 01h<br />

09h 1x16_Display <strong>LCD</strong> näyttötyyppi: 00 = 1x16 <strong>LCD</strong>, 01…FF = 2x20 <strong>LCD</strong> 01h<br />

0Ah Digits Näytettävien numeroiden määrä: 00 = 7 numeroa, 01…FF = 01h<br />

6 numeroa<br />

0Bh not in use - FFh<br />

0Ch not in use - FFh<br />

0Dh not in use - FFh<br />

0Eh not in use - FFh<br />

0Fh EEPROM default values Jos > 0 niin default arvot ladataan seuraavassa sähköjen<br />

päällekytkennässä.<br />

00h<br />

9.4.1 Display Offset ja kytkin S4 (EEPROM 00h…05h)<br />

Kytkimen S4 avulla voidaan RB1:llä valittu Display Offset 1 tai 2 lukuarvo summata mitattuun<br />

taajuuteen tai vähentää mitatusta taajuudesta. Vastaanottimen AM- ja FM-modella välitaajuuteen<br />

summataan VFO-taajuus tai välitaajuudesta vähennetään VFO-taajuus. SSB:llä ja CW:llä<br />

välitaajuuden asemesta käytetään BFO-taajuutta sillä olettamuksella, että BFO-taajuus on vakio ja<br />

tunnettu kyseisellä sivunauhalla.<br />

9.4.2 Suora tai ohjelmoitava taajuuslaskenta (EEPROM 06h)<br />

Laskin toimii suorana taajuuslaskimena oletusarvoilla eikä digitaalituloa RB2 ei tarvitse aktivoida.<br />

Haluttaessa ohjelmoitavaa moodia muutetaan parametri arvoon 01h.<br />

9.4.3 Laskimen kalibrointi (EEPROM 07h, 08h)<br />

Laskenta-aikaikkuna perustuu <strong>PIC</strong>-prosessorin käskyjen tunnettuun suoritusaikaan. Yksi kellojakso<br />

t[μs] = 4/ fxtal [MHz], kun fxtal on kidetaajuus. Prosessorin käskyt vievät yhdestä kahteen kellojaksoa<br />

käskytyypin mukaan. Näistä käskyistä on ohjelmoitu 100 ms:n viiveluuppi, jota voidaan<br />

hienosäätää suhteessa 1 μs / 100000 μs EEPROM-parametrien 07h ja 08h kombinaatioilla tai<br />

vaihtoehtoisesti vielä tarkemmin muuttamalla kidekytkennän toinen kondensaattori säädettäväksi.<br />

Jos laskimen näyttö on alle referenssitaajuuden , mittausaikaikkuna on liian lyhyt. Silloin<br />

hienosäätöviivettä on kasvatettava ohjelmistossa (SW) tai kiteen taajuutta laskettava<br />

trimmerikondensaattorin avulla. Kalibrointi voidaan tehdä esim. taajuusstandardiasemien mukaan<br />

tai mittalähettimen ja toisen kalibroidun laskimen kanssa.<br />

Seuraavasta taulukosta voidaan valita kombinaatio parametreille 07h ja 08h, jotka ovat mukana<br />

laskenta-aikaikkunan luupissa:<br />

17(23)


Taulukko 5. Laskenta-aikaikkunan kalibrointiarvot<br />

Laskenta-aikaikkunan 07h EE_fine1 08h EE_fine2<br />

hienosäätöviive / μs 1 yksikkö = = 3 μs 1 yksikkö = = 4 μs<br />

60 us 02h 09h<br />

61 us 13h 01h<br />

62 us 12h 02h<br />

63 us 03h 09h<br />

64 us 14h 01h<br />

65 us 13h 02h<br />

66 us 12h 03h<br />

67 us 15h (default) 01h (default)<br />

68 us 14h 02h<br />

69 us 13h 03h<br />

70 us 16h 01h<br />

71 us 15h 02h<br />

72 us 14h 03h<br />

73 us 13h 04h<br />

74 us 16h 02h<br />

9.4.4 Näytön valinta (09h)<br />

HD44780 standardin mukaan 1 x 16 merkkinen <strong>LCD</strong>-näytön ohjauksessa rivinvaihto tehdään<br />

kahdeksannen merkin jälkeen, vaikkei itse näytössä olekaan toista riviä. 2 x 20 merkkisessä<br />

näytössä tällaista kummallisuutta ei ole. Näyttötyypin valinta:<br />

00h = 1 x 16 <strong>LCD</strong><br />

01h = 2 x 20 <strong>LCD</strong><br />

9.4.5 Näytettävien numeroiden määrä (0Ah)<br />

00h = 7 digittiä, esim. 14.250.51 MHz<br />

01h = 6 digittiä, esim. 14.250.5 MHz<br />

9.4.6 Oletusarvojen palautus (0Fh)<br />

Alkuperäiset oletusarvot voidaan palauttaa tallettamalla muistipaikkaan 0Fh erisuuriarvo kuin nolla.<br />

Kun seuraavan kerran kytketään sähköt laskimeen, palautuvat oletusdata-arvot (default) EEPROMmuistipaikkoihin<br />

00h…0Fh.<br />

9.5 Käyttäjän asetusten muuttaminen<br />

9.5.1 EEPROM MODEn aktivointi<br />

1. Pidä painonappi S0 pohjassa ja kytke jännite laskurille. Näyttöön ilmestyy teksti: ”EEPROM<br />

MODE 1.2”.<br />

2. Kun S0 vapautetaan (=FALSE) ja RB1…RB3 ovat myös tilassa FALSE, näyttöön ilmestyy<br />

parametrien asetusnäyttö: ”ADDR:00 DATA:0D” jossa ADDR merkitsee EEPROM-osoitetta<br />

00…0Fh ja DATA osoitteen muistipaikan data-arvoa.<br />

18(23)


Kuva 10. <strong>PIC</strong>-taajuuslaskin EEPROM MODEssa, jossa laskimen käyttäjän asetuksia voidaan<br />

muuttaa. (Kuva EEPROM_MODE_view.jpg)<br />

9.5.2 Parametrien arvojen muuttaminen<br />

EEPROM-muistipaikkojen osoitteet ja funktiot on selostettu aiemmin (katso taulukko 3).<br />

1. Muistipaikan osoitetta (00h…0Fh) kasvatetaan painamalla painonappia S0. Maksimiosoitteen<br />

0Fh jälkeen osoitelaskuri pyörähtää taas 00h:aan.<br />

2. Data-arvoa joko kasvatetaan S1:llä tai vähennetään S2:lla.<br />

3. Jotta muutos jää pysyväksi, on kyseisen datan arvo talletettava EEPROM-muistiin painamalla<br />

painonappia S3 hetkeksi, jolloin onnistuneen talletuksen merkiksi näyttöön ilmestyy teksti<br />

”*SAVED*” ja kyseinen muistipaikka luetaan automaattisesti uudelleen muistista näyttöön.<br />

4. Näin tehdään jokaiselle parametrille, jota halutaan muuttaa. Kun halutut muutokset on<br />

ohjelmoitu, poistutaan EEPROM MODEsta kytkemällä laskimesta hetkeksi sähköt pois.<br />

Esimerkki 1:<br />

3.5 MHz / 14 MHz:n vastaanottimen BFO-taajuudeksi mitattiin LSB:llä 9001.49 kHz ja USB:llä<br />

8998.5 kHz. Esimerkissä kytkimellä S4 Sub/Add Display Offset- funktiota voidaan käyttää<br />

vastaanottimissa, joissa molemmat sekoitustulokset käytetään hyväksi.<br />

Taulukko 6, Display Offset esimerkki 1<br />

Esim.1 SSB vastaanotin 9 MHz:n välitaajuudella.<br />

BFO-taajuus 9001.49 kHz = 0DBC3516 8998.5 kHz = 0DBC3516<br />

Asetettu VFO-taajuus (esim.) 5251.49 kHz 5251.49 kHz<br />

Display Offset =BFO-taajuus LSB =BFO-taajuus USB<br />

Display Offset 1 HighByte 0D16<br />

Display Offset 1 MidByte BB16<br />

Display Offset 1 LowByte 0516<br />

Display Offset 2 HighByte 0D16<br />

Display Offset 2 MidByte BB16<br />

Display Offset 2 LowByte 0A16<br />

RB1 = Display Offset valinta FALSE (0 V) = Display Offset 1 TRUE (0 V) = Display Offset 2<br />

S4 FALSE (0V) = Sub Display Offset TRUE (+5V) = Add Display Offset<br />

Näytön lukema: 3.750.00 MHz 14.249.99 MHz<br />

19(23)


Esimerkki 2:<br />

Laskin kytketään BC-vastaanottimeen, jonka välitaajuus on 455 kHz. Vastaanottimen VFO-taajuus<br />

on aina välitaajuuden verran ylempänä vastaanottotaajuutta.<br />

Taulukko 7, Display Offset esimerkki 2<br />

Esim.3 BC-vastaanotin 455 kHz:n välitaajuudella.<br />

Vastaanottimen välitaajuus 455 kHz<br />

Asetettu VFO-taajuus (esim.) 1885.00 MHz<br />

Display Offset = välitaajuus<br />

Display Offset 1 HighByte 0016<br />

Display Offset 1 MidByte B116<br />

Display Offset 1 LowByte BC16<br />

RB1 = Display Offset valinta FALSE (0 V) = Display Offset 1<br />

S4 = +5 V, näytön lukema: 1440.00 MHz<br />

10. Laskimen rakentaminen<br />

Varoitus! <strong>PIC</strong>-piiri ja <strong>LCD</strong>-näyttömoduli saattavat vaurioitua staattisesta sähköstä! Käsittele niitä<br />

kuin CMOS-piirejä.<br />

Piirilevyn kuparifoliovedot ovat aika yksinkertaisia, joten väritin kuparifoliokohdat Decon Dalotussikynällä<br />

ja seuraavaksi onkin vuorossa piirilevyn syövytys ferrikloridissa.<br />

Kun piirilevy on syövytetty, porataan reiät komponenttien läpivienneille ja <strong>LCD</strong>-näyttömodulin<br />

kiinnittämiseen. Seuraavaksi juotetaan piirilevylle yhdistykset eristetyillä kytkentälangoilla<br />

(osasijoittelukuvassa viivat päätettyinä neliön muotoisella pisteellä):<br />

1. Vastuksen R11 (3k3) vierestä <strong>PIC</strong>in nastaan 1.<br />

2. Kuristimen +5 V:n syötön päästä <strong>PIC</strong>in nastaan 2<br />

3. Painonappien yhdistykset digitaalituloihin A-A, B-B, C-C ja D-D.<br />

4. Ground (GND) yhdistys <strong>PIC</strong>in pinniin 5<br />

5. +5V:n jänniteregulaattorin U1 lähdöstä Out <strong>PIC</strong>:n pinniin 15 (sijaitsee 22 pF vieressä).<br />

Seuraavaksi juotetaan U2:n mikropiirikanta, painikkeet, vastukset lukuunottamatta R7…R10,<br />

kondensaattorit ja lopuksi XT1, D1, D2, U1 ja Q1. Muista C1:n oikea napaisuus! <strong>PIC</strong>-piiriä ei vielä<br />

asenneta kantaan.<br />

R7...R10<br />

<strong>PIC</strong>-piirilevy<br />

juotos<br />

<strong>LCD</strong>-moduli<br />

2N<br />

3904<br />

LM<br />

317<br />

LZ<br />

Ref In<br />

E B C<br />

Out<br />

Kuva 11. Komponenttien asennusohjeita. (component installation.eps)<br />

Juota kaapeli mittaussisääntuloon (Frequency Input) ja johdot syöttöjännitteelle.<br />

Käytin itse osasijoittelukuvasta poiketen osittain pintaliitoskomponentteja toisen protolaitteen<br />

rakentelussa.<br />

20(23)


11. Laskimen käyttöönotto<br />

Kun edellisen vaiheen komponentit ja yhdistyslangat on juotettu, testataan piirikortin elektroniikka<br />

ensin ilman <strong>LCD</strong>-näyttömodulia ja <strong>PIC</strong>-piiriä.<br />

11.1 Mittaukset jännitteettömänä<br />

1. Mittaa yleismittarin ohmialueella U1:n nastaan In ja piirilevyn GND. Resistanssiarvo ei saa<br />

näyttää oikosulkua.<br />

2. Mittaa samalla tavalla U1:n lähtöpinnin Out ja GND väliltä resistanssi. Resistanssiarvo ei saa<br />

näyttää oikosulkua.<br />

11.2 Ensimittaukset jännite kytkettynä<br />

1. Kytke jännite piirilevyn tuloliittimiin. Muista oikea napaisuus.<br />

2. Mittaa tasajännite regulaattorin lähdön Out ja GND väliltä . Sen tulee olla välillä 4.9…5.1 V.<br />

Jos jännitetaso on jotain muuta, vika löytyy todennäköisesti R1…R3 arvoista tai regulaattorin<br />

väärästä kytkennästä piirilevylle.<br />

3. Mittaa +5 V:n jännitejakelu <strong>PIC</strong>:n pinniin 4 ja 14 mitattuna <strong>PIC</strong>in pinniä 5 vasten.<br />

4. Mittaa myös piirikortin <strong>LCD</strong>-modulin syöttöpinneistä +5 V väliltä 2 (+) ja 1 (GND)<br />

11.3 Loppuasennus ja testaus<br />

1. Kytke sähköt pois.<br />

2. Asenna vastukset R7…R10 pystyasentoon osasijoittelukuvan mukaan ja juota piirilevylle.<br />

Katkaise vain sisempänä olevien vastuksien ylimääräiset johtimet. Käytä jäljelle jäänyttä<br />

yhdistyslankana <strong>LCD</strong>-modulille kuvan mukaan.<br />

3. Asenna piirikortit toisiinsa ja juota huolellisesti kaikki yhdistyslangat (14 kpl) käyttäen<br />

eristepäällysteistä johdinta <strong>LCD</strong>-näyttömodulin ja piirikortin välille.<br />

4. Asenna ohjelmoitu <strong>PIC</strong>-piiri kantaansa oikein päin (katso osasijoittelukuva).<br />

5. Kytke sähköt laskimeen.<br />

6. Aseta R13 avulla näytön kontrasti sopivaksi<br />

7. Jos kaikki meni oikein vastoin Mr. Murphyn lakia, laskimen tulisi nyt toimia. Kytke mitattava<br />

signaali mittaustuloon. Laskin näyttää mitattavaa taajuutta.<br />

8. Kalibroi laskin kappaleen Laskimen kalibrointi (EEPROM 07h, 08h) mukaan.<br />

9. Tee ohjelmiston parametriasetukset tarpeen mukaan.<br />

12. Laskimen tuottamat häiriöt<br />

Laskimen näytön ohjaus saattaa häiritä vastaanotinta, joten se on hyvä asentaa metallikoteloon.<br />

Myös 4 MHz:n kiteen perus- ja kerrannaistaajuudet voivat kuulua radiosta kyseisiä taajuuksia<br />

kuunneltaessa.<br />

13. Mistä ohjelman saa?<br />

Ohjelmiston heksakoodi <strong>LCD</strong>4DIEC.HEX tarvitaan <strong>PIC</strong>-piirin ohjelmointiin. Piirilevyn kuva sekä<br />

lähdekoodi <strong>LCD</strong>4DIEC .ASM on myös saatavissa bittinikkareille OH2HOH:n sivuilta osoitteessa<br />

(http://personal.inet.fi/cool/qrp) tai OM3CPH:n kotisivuilta 3) . Lähdekoodi perustuu OM3CPH<br />

sovellukseen ja sitä ei saa käyttää kaupallisiin tarkoituksiin. Harrastajille se on ilmainen. Peterin<br />

sanoilla sanoen: ”This software is free for private usage. It was created for Ham Radio community<br />

members. Commercial exploatation is allowed only with permission of authors”.<br />

21(23)


Tälle laskuriohjelmistolle en anna mitään takuuta toiminnasta. Rakentamani kaksi laskinta toimivat<br />

kuitenkin minua tyydyttävällä tavalla. Laskin on rakenteeltaan yksinkertainen ja edullinen 30<br />

MHz:n perustaajuuslaskin, jonka rakennuskustannukset jäävät halvimmillaan alle 100 mk:n hintaan.<br />

14. Jatkokehitysideoita ja puutteet<br />

14.1 Kehitysideat<br />

Yleisesti saatavilla oleva esijakajan (10-jakaja) kytkentä kolmanneksi piirikortiksi varustettuna<br />

suuri-impedanssisella tulopiirillä. Usein on myös tarve mitata UHF-taajuuksia ainakin 70 cm:n<br />

alueelle asti, jolloin kymmenjakajalla ei pelkästään selvitä.<br />

VFO:n taajuuslukitus. Mitattu taajuus asetetaan taajuusohjeeksi. Ohjelmaan lisätään<br />

vähennyslaskutoimitus: taajuusohje - mitattu taajuus. Jos vähennyslaskun tulos on negatiivinen,<br />

ohjataan yksi <strong>PIC</strong>:n digitaalilähtö nollaan. Jos tulos on positiivinen, ohjataan em. lähtö +5 V:iin.<br />

Lähtö kytketään lataamaan tai purkamaan ulkoisen integraattorin kondensaattoria.<br />

Operaatiovahvistimella toteutetun integraattorin lähtö syöttää hitaalla aikavakiolla jännitettä<br />

kapasitanssidiodiin, joka on kytkettynä VFO:n oskillaattoripiiriin. Näin taajuus pyritään pitämään<br />

vakiona. Tämä on hiukan modifioitu ratkaisu Olavi Lehden OH2BBR artikkelista Elektroniikka<br />

lehden numerosta 16/1980: Digitaalinen oskillaattorin taajuusvakavointi. 12)<br />

14.2 Puutteita<br />

Puutteena on vielä CW-lähetyksessä erillisen TX-offsetin puuttuminen. Sen indikointiin voidaan<br />

käyttää kyllä esim. Display Offset 2:sta, jos se ei ole muussa käytössä.<br />

Suuri-impedanssista mittaustulovahvistinta tarvitaan heikkoja signaaleja mitattaessa.<br />

15. <strong>PIC</strong>-<strong>LCD</strong>-taajuuslaskimen osaluettelo<br />

R1 220R ¼ W<br />

R2 680R ¼ W<br />

R3 10k ¼ W<br />

R4 100R ¼ W<br />

R5, R6 470 R ¼ W<br />

R7,R8,R9,R10 1 k ¼ W<br />

R11 3k3 ¼ W<br />

R12 33 k…150 k ¼ W (47k käytetty transistorin 2N3904 kanssa)<br />

R13 10k…22k trimmeripotentiometri vaaka-asennettava<br />

C1 22 μF / 25 V tantaali<br />

C2, C3, C7 100 nF keraaminen / 25 V<br />

C4 22 nF keraaminen / 25 V<br />

C5 22 pF keraaminen<br />

C6 22 pF keraaminen tai 4…20 pF trimmerikondensaattori<br />

D1, D2 1N4148<br />

L1 10 μH miniatyyrikuristin (1/4 W:n vastuksen näköinen)<br />

S0,S1,S2,S3 Painonappi piirilevylle, 1 x sulkeutuva, 6 x 6 mm<br />

Q1 Transistori UHF-NPN tyyppi esim. 2N3904<br />

XT1 4.000 MHz rinnakkaisresonanssikide<br />

U1 LM317LZ jänniteregulaattori max. 100 mA (tai 78L05, katso modifiointiteksti)<br />

U2 <strong>PIC</strong> 16F84-04/P + mikropiirikanta 18 nap. 3)<br />

U3 <strong>LCD</strong>-näyttömoduli 1 x 16 merkkiä HD44780 yhteensopiva 3)<br />

1 kpl Laskimen 1-puolinen piirilevy n. 80 mm x 40 mm<br />

22(23)


16. Lähteet<br />

1) OM3CPH kotisivut: http://www.qsl.net/om3cph<br />

2) Radioamatööri 12/81 Unto Kokkarinen OH3UK: Digitaalinen taajuusnäyttö Drake<br />

R4B:hen s. 380, CQ-DL 6/80 s. 275-276<br />

3) <strong>LCD</strong> Tietoa Probyte Oy: http://www.sci.fi/~pri/<br />

4) ”FREQ-Mite” taajuuslaskin. http://smallwonderlabs.com/<br />

5) E & A 1/1982 Olavi Lehti: Esijakajalla ylempiin taajuksiin<br />

6) E & A 14/1984 Olavi Lehti: Nyt rakennetaan Etuvahvistin taajuuslaskimeen<br />

7) Heikki E. Heinonen OH3RU: Tiimissä hamssiksi, sivu 178<br />

8) SRAL R.Y.: Radioamatööritekniikkaa, sivu 121.<br />

9) JF1OZL kotisivuut: http://www.intio.or.jp/jf10zl/<br />

10) http://www.microchip.com<br />

11) Smallwonder Labs K1 CW transceiver http://www.elecraft.com<br />

12) Elektroniikka 16/1980 s. 23-24, Olavi Lehti: Digitaalinen oskillaattorin taajuusvakavointi<br />

23(23)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!