LCD čítač s EEPROM pamäťou

Program: LCD4DIEC.asm, LCD4DIEC.HEX
Kontakt na autora: Osmo OH6CJ
Dátum vzniku: 29. apríl 2001
Naposledy zmenené: september 2001

Osmo, OH6CJ, urobil kus práce! Digitálnu stupnicu rozšíril o niekoľko zaujímavých funkcií:

Popis

Zariadenie vychádza z digitálnej stupnice, variantu so 4-bitovou komunikáciou. Bola pridaná možnosť nastavenia parametrov programu prostredníctvom PIC EEPROM pamäte a možnosti do nej ukladať dáta. Program bol napísaný pre 4 MHz Xtál. V tejto verzii sa na komunikáciu medzi procesorom a LCD displejom používajú 4 bity, ostatné vodiče možno použiť na komunikáciu s procesorom. V súčasnosti sú možné dva módy:

  1. čítačový mód,
  2. EEPROM mód.

RB0...RB3 majú v týchto módoch rozdielne funkcie:

Čítačový mód:

RB False (0) True (1)
0 čítačový mód EEPROM mód*)
1 RF ofset1 RF ofset2
2 Ofset 1 & 2 priamo frekvencia
3 normálny mód delenie 10 (poloha bodky)

EEPROM mód:

RB False (0) True (1)
0 - Zvýšiť EEPROM adresu
1 - Zvýšiť hodnotu dát
2 - Znížiť hodnotu dát
3 - Uložiť do EEPROM
*) Vstup do EEPROM módu sa zapína nastavením RB0=1 a zapnutím napájania +5 V. Ukončenie EEPROM módu sa urobí vypnutím napájania. Ak je pri zapnutí RB0=0, štartuje sa čítačový mód.

adresa EEPROM popis
00 MFt1_HigB = horný bajt RF offset1 (def. 0D) 9001.50 kHz = 0DBC36
01 MFt1_MidB = stredný bajt RF offset1 (def. BC)
02 MFt1_LowB = dolný bajt RF offset1 (def. 36)
03 MFt2_HigB = horný bajt RF offset2 (def. 0D) 8998.50 kHz = 0DBB0A
04 MFt2_MidB = stredný bajt RF offset2 (def. BB)
05 MFt2_LowB = dolný bajt RF offset2 (def. 0A)
06 Direct_freq = čítač (nie digitálna stupnica) = 00 h
Sub alebo Add funkcia aktivovaná = 01...FFh (def. 00h)
07 EE_Fine1 = Hodnota čítača pre kalibráciu 1 == 3*4/fx = 3 us (def. 15)
08 EE_Fine2 = Hodnota čítača pre kalibráciu 2 == 4*4/fx = 4 us (def. 01)
09 1x16_Disp = typ LCD displeja: 0 = 1x16 LCD, 1 = 2x20 LCD (def. 01)
0A Digits = Počet desatinných bodiek: 0 = 7 digits, 1 = 6 (def. 1)
0B...0Eh (nepoužité)
0F Defaults = ak nastavené na 01...FFh nastavia sa základné hodnoty EEPROM pri najbližšom zapnutí.

Začiatok merania

Po naprogramovaní 16F84 (16C84) a zapnutí napájania +5 V, do EEPROM procesora sa automaticky uložia základné hodnoty.

Ak sa má merať frekvencia VFO a zariadenie sa má použiť ako digitálna stupnica, potom treba poznať presne hodnotu medzifrekvencie (455 kHz, 9.000 MHz.. a pod).
V móde SSB treba ešte poznať hodnotu BFO a použiť ich na posun nameranej hodnoty, t.j. napr. frekvencia BFO pre LSB je 9001.5 MHz a USB 8998.5 MHz. Pri AM a FM móde sa použije priamo hodnota medzifrekvencie.
Pre zadanie do pamäti treba túto hodnotu konvertovať do hexadecimálneho tvaru tak, aby prvé číslo sprava znamenalo desiatky Hz, teda napr. pri MF=9.000.000 MHz, potom na hexadecimálny tvar treba konvertovať hodnotu 10-krát menšiu, t. j. 900.000, čo je 0D BB A0. Tieto hodnoty sa vložia do registrov nasledovne:

      0D = MFt1_HigB
      BB = MFt1_MidB
      A0 = MFt1_LowB

Pre MFt2 sa hodnoty vypočítajú rovnako.

Nastavenie parametrov

  1. Nastaviť RB0 na 1 a zapnúť napájanie.
  2. Zobrazí sa text "EEPROM MODE x.x" (x.x = verzia programu),
  3. Zobrazuje sa asi 1.4 s, kým RB0...RB3=0,
  4. Potom sa zobrazí text "ADDR:00 DATA: FF". To znamená, že dáta na EEPROM adrese 00h majú hodnotu FFh.
  5. Treba stlačiť RB1 (increment) alebo RB2 (decrement) na nastavenie vypočítaných hodnôt MF.
  6. Dáta sa uložia do pamäti stlačením RB3. Zobrazí sa text "*SAVED*" a dáta sa načítajú a znovu zobrazia pre kontrolu.
  7. Vyberie sa ďalšia adresa 01h pomocou RB0 a nastaví sa ďalšia hodnota. Stlačením RB3 sa hodnota uloží do EEPROM.
  8. Opakuje sa, kým sa neuložia všetky parametre (EEPROM adresy 01...0Ah).
  9. Adresy 0B...0Eh nie sú použité.
  10. Práca v EEPROM móde sa ukončí vypnutím napájania.
  11. Znovu sa zapne napájanie. Teraz by sa mala objaviť na displeji meraná frekvencia.
  12. Kalibrácia zariadenia sa robí porovnaním s iným spoľahlivým zariadením.

    Príklad:

    Najmenší krok ladenia pri kryštáli 4 MHz je 1 us pri použití EE_fine1 & 2. Relatívny účinok jedného kroku je 1 us/100000 us = 0.00001. O niečo menšia hodnota T4 (pozri zdrojový kód) ako vypočítaná sa použije na +/- korekciu pri kalibrácii cez zadávanie EE_fine1 a EE_fine2.
    Presná kalibračná hodnota sa nájde kombináciou EE_fine1&2 a porovnania s referenčným oscilátorom (ja používam 20.000000 MHz oscilátor z pokazenej sieťovej karty, poznámka OM3CPH). Ak napr. skutočná hodnota vstupnej frekvencie je 10.00000 MHz a čítač ukazuje 9.99980 MHz, potom merací interval je kratčí, ako treba. Treba zvýšiť DELAY podľa tabuľky uvedenej nižšie.

    Najpresnejšie sa čítač nastaví doladením niektorého kondenzátora pri kryštáli.

      07 h 08 h
    DELAY EE_fine1 EE_fine2
      1== 3 us 1== 3 us
    60 us 02h 09h
    61 us 13h 01h
    62 us 12h 02h
    63 us 03h 09h
    64 us 14h 01h
    65 us 13h 02h
    66 us 12h 03h
    67 us 15h ----> 01h ---> Default
    68 us 14h 02h
    69 us 13h 03h
    70 us 16h 01h
    71 us 15h 02h
    72 us 14h 03h
    73 us 13h 04h
    74 us 16h 02h

  13. Hodnoty EEPROM na adresách 07 a 08 sa nastavujú podľa tabuľky, až kým sa nedosiahne najlepšia hodnota zobrazenej frekvencie.

Použitie

Port popis
RB1 nastavenie výberu ofsetu 1 alebo 2
RB2 nastavenie módu čítača
RB3 nastavenie posunutia desatinnej bodky o jedno číslo doprava, ak je použitý preddelič 10 (v prípade VHF čítačov). V tomto móde sa druhá bodka nezobrazuje.
RA2 nastavenie pričítanie alebo odčítanie MF.

Poznámka:
Ak na adrese 0Fh = 01...FFh, potom sa pri najbližšom zapnutí do pamäti uložia základné hodnoty.


Schéma

schematics

Doska s plošnými spojmi

PCB

Rozmiestnenie súčiastok

components

Ako to vyzerá.

look

Vďaka, Osmo!