OK1HDU (Hamradio, electronics, travelling, photography, ok7u...)
599.cz - Homepage 599.cz - Homepage Memorial OK1WC SOTA - Vrcholy v éteru Optimalizováno pro web... Než něco pošlete dál, přečtěte si ... hoax.cz
     Dnes: 23. 07. 2019    fotogalerie na 599.cz spaceweather.com Bouřky v Česku v novém okně Bouřky v Evropě v novém okně Ionogram Průhonice v novém okně Contest calendar WA7BNM v novém okně RSS summary of the last 7 articles    
O   Hlavní menu
Hlavní stránka

Zajímavé odkazy

Download

Zasílání novinek

O   Seznam rubrik
mínus technika, bastleni
mínus provoz, závody
mínus Od krystalky k SSB
mínus ostatní


time.is in new window


f e e d b a c k

O   Počasí v Holicích
JO70XC


O   VOACAP KV Online

O   VOACAP pro CB
Šíření na CB

PHPRS fórum


<a1>technika, bastleni</a1>

Zpět Zase jeden elektronický telegrafní klíč

Vydáno dne 12. 02. 2019 (1166 přečtení)

elbug Atmega328PB

switch to an english version     verze v angličtině

Na konci posledního článku o oscilátoru s obvodem SI5351a jsem shrnul plány na příští verzi. Mám ve zvyku vyzkoušet si jednotlivé části samostatně, než je dám dohromady na jednu desku plošného spoje. Jedna z plánovaných funkcí toho oscilátoru je také elektronický dvoupádlový klíč.

Doplněno 27.2.2019 (Curtis-A, Curtis-B)



Abych řekl pravdu, moc se v těch různých módech skvízového klíčování neorientuji. Docela dlouho jsem vysílal jenom na ruční "klofák" a vysílat s dvoupádlovým elektronickým klíčem jsem se nějak naučil až ve vyšším dospělém věku. Můj styl vysílání je takový "jednopádlový", ale přesto mi to s dvoupádlem jde lépe. Pokud má klíč možnost přepínání různých "módů", vybírám si ten, kdy během vysílané čárky a následné mezery můžeme dopředu "ťuknout" tečku, a ta je po skončení čárky odvysílána. Mám z toho takový příjemný pocit, že mohu některé znaky (třeba C) zahrát na pádlo jakoby napřed. To je také způsob jakým se chová tento, zde popsaný, klíč.




Doplněno 27.2.2019 (Curtis-A, Curtis-B)

Tak mi to nedalo a poučil jsem se o různých režimech jambického skvízového klíčování. Zjistil jsem, že to, co já preferuji je takzvaný Curtis-B mód, nebo jinak též doplňkové klíčování. Ten je u tohoto klíče nastaven defaultně po nahrání kódu do paměti jednočipu.

Když už jsem v tom měl jasno, doplnil jsem do software klíče možnost přepnutí do režimu Curtis-A, neboli jinak, reálné klíčování. (navíc jsem tam opravil jednu chybu - nefungovalo úplně korektně přehození pádel teček a čárek). Nový kód jsem uložil do sekce DOWNLOAD.

Přepnutí mezi módy Curtis-A a Curtis-B je pomocí tlačítka na Pinu_3 konektoru PROGRAMM. (spouští náhodný text). Jeho podržením při zapnutí napajení se módy prohodí a klíč nás informuje o aktivním módu zahráním MA, nebo MB. Nastavení je uloženo do paměti Eeprom.




Nejdřív jsem úplně základní, nejjednodušší verzi klíče vyzkoušel na jedné starší destičce s připájeným jednočipem Atmega328. Nikdy dříve jsem nad způsobem naprogramování skvízového klíčování moc nepřemýšlel a tak jsem se toho trochu obával. Když jsem se nad tím teď trochu zamyslel, zjistil jsem, že to zase není taková věda. Ta úplně první verze měla jenom výstup na klíčovací tranzistor (negenerovala vlastní tón) a jedno tlačítko na nastavení rychlosti. Měl jsem radost, jak mi to pěkně chodí, a tak jsem začal přidávat další funkce. Když se navíc jeden kolega v radioklubu zmínil, že hodlá svá vnoučata (a sebe) naučit telegrafii, rozhodl jsem se, že na to navrhnu i plošný spoj.

     
elbug atmega328pb schema
Elbug atmega328pb design PCB
Elbug atmega328pb design PCB
Schéma Návrh DPS
strana A
Návrh DPS
strana B
     

Plošný spoj jsem původně navrhl pouze s jedním tlačítkem na změnu rychlosti. Při jeho podržení se pádlem teček zvyšuje a pádlem čárek snižuje rychlost. Pak mi ale došlo, že mohu připojit tlačítka i na programovací konektor. Tím se zvětšil počet tlačítek celkem na čtyři a možnosti ovládání skoro nekonečně. A tak jsem si začal vymýšlet a přidávat další funkce.

    Takže jsem postupně přidal:
  • reset rychlosti na defaultní hodnotu
  • generování tónu na jednom výstupním pinu (příposlech)
  • nastavení výšky tónu příposlechu (také reset tónu na defaultní hodnotu)
  • prohození pádel teček a čárek
  • možnost nahrání textu (výzvy) do paměti
  • generování pětimístných skupin náhodného textu (jenom písmena nebo smíšený text)
  • nastavení módu Curtis-A nebo Curtis-B

  • Celý klíč je na destičce DPS 38x43mm. Kromě vlastního jednočipu je na ní už jen stabilizátor 5 Voltů, blokovací kondenzátory, výstupní klíčovací tranzistor a konektory.
  • Použil jsem jednočip Atmega328PB v smd provedení (TQFP) (kompletní popis). Prostě proto, že jich tu ještě pár mám. (koupil jsem nedávno na ebay.com 10 kusů) Pro tento účel je trochu předimenzovaný. Většina jeho vývodů (portů) zůstala nezapojených a i když jsem postupně přidával další funkce, tak flash paměť 32kB je využita jen na pár procent. Plošný spoj jsem navrhnul na verzi Atmega328(P), takže porty PE0 a PE1 jsou připojeny na napájení (VCC, GND). Nejsou však vůbec použity, takže jsou dafaultně nakonfigurovány jako vstupní porty s vysokou impedancí, takže to ničemu nevadí. Přesto však nelze použít starší verzi Atmega328(P) (bez toho B na konci). Vysvětlím dále v textu.
  • Na destičce jsou i součástky filtrace referenčního napětí pro AD převodník R2 a C3. Žádný vstup AD převodníku však není použit, takže tyto součástky není potřeba osazovat. Já jsem je tam zapájel, aby nezůstaly na destičce volné dírky ;-)
  • Smd blokovací kondenzátor C4 asi není nutné osazovat. Občas mám mánii blokovat napájecí napětí více, než je nutné ;-)
  • Odpor R3 neosazovat! Je tam omylem!
  • Výstup na příposlech je přímo z jednoho pinu jenom přes oddělovací kondenzátor. Aby nedošlo k překročení výstupního proudu měl by být při 5V napájení zatěžovací odpor alespoň 220 Ohmů. Na testování tam mám reproduktor 75 Ohmů do série s odporem 220R. Hlasitost je celkem slušná.
  • Jednočip má 1kB Eeprom. Nejdřív jsem měl v plánu ukládat text do paměti komprimovaně, ale pak jsem zjistil, že na (hodně dlouhou) výzvu je ta paměť více než dostatečná. A možnost vysílat z paměti více, než jeden text mi přijde zbytečná.




    Zkompilované kódy pro nahrání do jednočipu (.hex i .bin) jsou ke stažení v DOWNLOAD sekci tohoto webu. Jednočip využívá interní RC oscilátor 8MHz. Defaultně z výroby mají Atmega328PB nastaveno dělení interního oscilátoru osmi. To je potřeba zrušit při programování v nastavení konfiguračních bitů. Také je dobré nastavit reset při poklesu napětí pod 2,7V (brown-out), protože při nižším napětí není zaručena funkčnost při kmitočtu 8MHz.

  •      
    Elbug Atmega328PB fuses
    Příklad nastavení
    konfiguračních bitů
         




    Odběr z napájecího zdroje

    Pokud asi 2 sekundy nestiskneme žádné tlačítko, ani pádlo, procesor se "uspí". Pokud bychom ho napájeli přímo, například z baterie 4,5 V měl by v "uspaném" stavu odběr přibližně 15 µA. Ale samotný stabilizátor 5V má klidový odběr okolo 2,6 mA (podle katalogu může mít až 6 mA, ale asi bude dost záležet na konkrétním výrobci). Pokud bychom tedy chtěli mít co nejmenší odběr, například při napájení z baterie, tak buď musíme použít nějaký jiný stabilizátor, nebo ho nepoužít vůbec a celé to napájet přímo z baterie cca 3 až 5 V. Reset procesoru (brown-out) je nastaven na 2,7V, takže při napájecím napětí nižším, než asi 3,5V bychom museli i ochrannou diodu nahradit drátovou propojkou.

    Problém s generováním náhody

    Když jsem tam přidal tu poslední funkci - generování pětimístných skupin náhodného textu, měl jsem docela problém, jak generovat opravdu náhodná čísla v určitém rozsahu. Zkoušel jsem různé postupy popsané na diskuzích na internetu. Jediné co mi opravdu funguje, je nechat trvale běžet jeden 16ti bitový čítač a vždy před vygenerováním "náhodného" čísla uložit jeho okamžitý stav do proměnné, která se vytvoření náhodného čísla účastní. Musel jsem použít čítač Timer3. Ten je ale obsažen pouze v novější verzi Atmega328PB. V původní verzi Atmega328(P) jsou pouze čítače Timer0, Timer1 a Timer2. Tyto tři původní mám použity na různá časování, nebo generování tónu a pokud jsem je "dočasně" použil na generování "náhody" vždy to po nějaké době skončilo v opakující se smyčce, několika stále stejných znaků. Proto je nutné použít tu novější verzi, tedy Atmega328PB.

         
    Elbug atmega328pb assembled PCB
    Elbug atmega328pb assembled bottom PCB
    Elbug atmega328pb assembled PCB
    Osazený DPS klíče ... ...
         




    Popis ovládání:

    Ke klíči lze připojit až 4 tlačítka. Jejich funkce se aktivují připojením příslušného vstupního pinu MCU na zem (minus napájení).
      Popis funkcí tlačítek
    1. Podržení obou pádel při zapnutí prohodí pádlo teček a čárek.
      Pro potvrzení zahraje R.
    2. Button - rychlost: Nastavení rychlosti
      - Podržet toto tlačítko a přitom pádlo teček zvyšuje rychlost, pádlo čárek snižuje. Krok je 2 WPM a po každé změně zahraje 3 tečky (S). Nastavená hodnota se ukládá do paměti Eeprom.
      - Podržením při zaputí (připojení baterie) se rychlost resetuje na defaultní hodnotu (asi 20 WPM PARIS). Pro potvrzení zahraje R.
      - Krátkým stiskem během nahrávání zprávy do paměti se vloží mezera mezi slovy.
    3. Pin 1 konektoru PROGRAMM: Výška tónu
      - Podržet toto tlačítko a přitom pádlo čárek zvyšuje tón, pádlo teček snižuje. Po každé změně zahraje tři tečky (S).
      - Podržením při zapnutí (připojení baterie) - tón se zresetuje na defaultní. Pro potvrzení zahraje R.
      - Krátký stisk tohoto tlačítka při nahrávání zprávy uloží doposud nahraný text a nahrávání ukončí. Pro potvrzení zahraje = (-...-)
    4. Pin 2 konektoru PROGRAMM: Paměť
      - Krátký stisk přehraje obsah paměti (výzvu), pokud není prázdná. Přehrávání lze kdykoliv ukončit stiskem některého pádla.
      - Dlouhý stisk (držet dokud nezahraje = (-...-)) čeká za nahrání zprávy do paměti. Při nahrávání se mezery mezi znaky vkládají automaticky, mezery mezi slovy vkládáme ručně tlačítkem BUTTON-rychlost (viz výše). Zprávu uložíme tlačítkem na Pinu 1 (viz předchozí odstavec). Uložením se předchozí zpráva přepíše. Vypnutím napájení (baterie) během nahrávání se zpráva neuloží a zůstane zachována původní.
    5. Pin 3 konektoru PROGRAMM: Náhodný text
      - Krátkým stiskem začne přehrávání pětimístných skupin náhodného textu (pouze písmena anglické abecedy). Přehrávání lze kdykoliv ukončit stiskem některého pádla. Při přehrávání jsou prodlouženy mezery mezi znaky i mezi slovy.
      - Dlouhým stiskem (držet dokud nezahraje =) začne přehrávání pětimístných skupin náhodného textu anglické abecedy, číslic a znaků / (lomeno), ? (otazník) a = (rovná se). Přehrávání lze kdykoliv ukončit stiskem některého pádla.
      Při přehrávání jsou prodlouženy mezery mezi znaky i mezi slovy.
      - Podržením při zapnutí se přepne mód jambického klíčování Curtis-A nebo Curtis-B. Který režim je aktivní oznámí zahráním MA nebo MB.
      Postup nahrání textu do paměti:
    1. Delší podržení tlačítka na Pinu_2 konektoru PROGRAMM, až se ozve = (-...-)
    2. Pomocí pádel začít nahrávat text. Mezi znaky je možné nechávat delší mezery, uloženy budou správně, jako jedna mezera.
    3. Mezeru mezi slovy zadat krátkým stiskem tlačítka Button-rychlost. Delší mezeru zadat opakovaným stiskem (sčítají se).
    4. Krátkým stiskem tlačítka na Pinu_1 konektoru PROGRAMM uložit nahraný text do paměti. Ozve se = (-...-) na potvrzení uložení.
    5. Při chybě vypnout napájení a nic se neuloží :-)

    Další funkce by se daly vymýšlet do nekonečna. Ale bylo mi řečeno, že se na to mám vykašlat, a tuto verzi zveřejnit na webu.
    Tak je tu.

    Ale stejně si myslím, že časem ještě něco přidám/změním.

    Jarda, ok1hdu



       | Celý článek |      e-mailtisk clánku
     

    Zpět (klikni)

    O   Novinky
    05.07.2019:
    Update fotoalba
    Do fotoalba jsem přidal pár fotografií ze:
    Slovinska (červen 2019).

    05.12.2018:
    Update fotoalba
    Do fotoalba jsem přidal pár fotografií ze:
    Slovinska (jaro 2018)
    a ze:
    Suchého Vrchu (zima 2005/2006).

    24.11.2017:
    Update na webu DXFC
    Dneska jsem updatoval info na webu DXFC

    24.11.2017:
    Update fotoalba
    Do fotoalba jsem přidal fotky z letošní dovolené v Tureckém Oludeniz.

    23.09.2016:
    Finální výsledky RSGB IOTA Contestu 2016
    Pořadatel IOTA contestu zveřejnil výsledky letošního kola závodu.

    O   kalendář
    <<  Červenec  >>
    PoÚtStČtSoNe
    1 2 3 4 5 6 7
    8 9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30 31     

    O   Radary ČHMU

    Tento web site byl vytvořen prostřednictvím phpRS - redakčního systému napsaného v PHP jazyce.
    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.