Co to vlastně dělá
Z praktického hlediska jen vydělí kmitočet krystalu 29792, 12768 a 64. Použijeme-li krystal 3.5MHz, budou výsledkem dělení kmitočty 117.481203Hz (15625Hz/133), 274.122807Hz (15625Hz/57) a 54687.5Hz (15625Hz*3.5). Tyto kmitočty se pak odebírají z pinů GP1 (117.5Hz nebo 274.1Hz) a GP2 (54687.5Hz) PIC12C508A.Na pinu GP2 je kmitočet stále stejný, na pinu GP1 se řídí podle vstupu GP0 a to tak,
že nízké úrovni odpovídá 117.5Hz a vysoké 274.1Hz. Dále je
ještě možno zablokovat výstup kmitočtů na GP1 pomocí nahození pinu GP3 do H, takže se
dále generuje pouze 54687.5Hz na pinu GP2.
Střída výstupního signálu je přesně 1:1 a přehození kmitočtu pomocí vstupu
GP0 nezpůsobí žádný puls nedefinované délky, na výstupu pinu GP1 je tedy
vždy jeden ze dvou kmitočtů podle vstupu GP0, nebo žádný kmitočet při GP3 ve vysoké
úrovni. Získané kmitočty odpovídají požadovaným bez odchylky. Vezmeme-li v
úvahu cenu použitého PICu, neumím si lacinější řešení s touto
přesností ani dost dobře představit.
Program a zapojení.
Zdrojový kód obsahuje i schéma v ASCII grafice a je opravdu velice jednoduché. Reset obvodu je řešen interně a tedy GP3 je vstupní pin který je využit pro blokování kmitočtů na GP1. Rozsah napájecích napětí je 3 až 5.5V. Pro taktování PICu můžete mimo klasického krystalu využít i externí oscilátor a to beze změny programu. Připojí se pak na vývod OSC1. Pokud by lépe vyhovovalo jiné rozložení pinů, je potřeba zachovat pouze to, že GP3 je vstup což je dáno konstrukcí použitého PICu. Rozhodně ale nelze tuto úpravu doporučit dříve, než důkladně pochopíte, jak program pracuje. Více informací o PIC12C508A naleznete na stránkách výrobce www.microchip.com..Program obsahuje i konfigurační bity, takže stačí PIC vypálit rovnou tímto HEX a použít. Pokud Vám tuto operaci provede kamarád, pak mu doneste tento HEX soubor a ještě bude potřebovat vědět, že to má vypálit do PIC12C508A. To k vypálení stačí. Pokud nebude programovací software umět vzít nastavení konfiguračních bitů z HEX souboru, pak nastavte:
- MCLRE OFF
- WDT OFF
- XT OSC
- CP OFF (chcete-li chip zamknout proti přečtení, pak CP ON)
Upozornění
Program mnou nebyl po napsání testován, běžel pouze v mé hlavě, ale věřím že poběží k plné spokojenosti i na PIC12C508A. Každopádně je celé řešení bez jakékoli záruky a tak při využití těchto materiálů z toho související důsledky nesete v plné míře jen Vy sám. Tyto materiály jsou Vám volně k dispozici pro nekomerční použití. Velice uvítám, pokud se na mne obrátíte i s případně objevenou chybou.DOWNLOAD & Odkazy
- www.bezstarosti.cz - WWW stránky autora
- www.bezstarosti.cz/jungle/3gen508a/3gen508a.htm - Tento článek od
autora
- 3gen508a.asm - zdrojový kód a schéma zapojení
- 3gen508a.hex - Intel HEX výpis
Komentáře
prilis komplikovane...
prilis komplikovane... Skoda, ze nemám moznost (mozno jestvuje, ibaze ja ju nepoznam) dat sem moj freq. generator. Jeho vyroba mi zabrala cca 15 minut a kod nepresahuje rozsah jednej strany. Navyse je laditelny up down a s ochranou proti preteceniu v pripade prekrocenia medznej hodnoty. Priklad: http://www.lacko.ic.cz/frekgen.asm