www.belza.cz - homepage

Generátor přesného počtu impulsů
Generator exact number of pulses

Zařízení po stisku tlačítka vygeneruje dávku impulsů. Lze nadefinovat dvě různé sady, s přiloženým programem generuje 1 000 a 10 000 impulsů.
Generátor jsem použil v testovacím přípravku pro jeden přístroj.
Circuit at the push of a button generates a pulse batch. Can define two different sets, with the attached program generates 1 000 and 10 000 pulses.
I used this generator in one test instrument.


Obr. 1. Generátor impulsů
Fig. 1. Pulse generator

Popis zapojení a programu

Zapojení je velmi jednoduché. Generátor používá mikrokontrolér PIC12F629 s taktovacím kmitočtem nastaveným externím článkem RC. Výstupní kmitočet lze nastavit trimrem P1 v rozsahu asi 2 až 170 Hz. Změnou součástek v obvodu oscilátoru (C1) lze kmitočet upravit. Impulsy jsou generovány s periodou 200 strojových taktů, všechny impulsy jsou stejně dlouhé. Výstupní kmitočet je tedy 800x nižší, než kmitočet oscilátoru.

Protože předpokládám, že mikrokontrolér budete chtít později použít i na něco jiného, uložte si před prvním programováním jeho kalibrační údaje. Jedná se především o konstantu pro nastavení oscilátoru OSCCAL, která je z výroby uložena na konci programové paměti na adrese 3FFh. V programu UP pro programátor Presto lze tuto akci zvolit v menu, jak je to s jinými programy nevím. Vždy si však můžete před naprogramováním obsah paměti přečíst a nastavení si opsat na papír. Programátor před naprogramováním součástku maže a informace o nastavení by se ztratila. Nastavení OSCCAL je pro každý kus IO jiné.

Změnou konstant v programu lze nastavit libovolný počet impulsů až do asi 65 000 (2^16). Potřebujete-li vygenerovat jiný počet impulsů, stačí změnit konstanty v programu. Myslím, že vše je zřejmé z obr. 2. Tento úsek programu je tam s malou obměnou 2x, pro každé tlačítko zvlášť.

Program v asembleru a přeložený hex soubor. Program můžete libovolně upravovat a šířit.

Circuit explanation and program

Circuit is very simple. The generator uses a PIC12F629 microcontroller with clock frequency set by an external RC. Output frequency can be set trimmer P1 in the range of about 2 to 170 Hz. Oscillator frequency can be adjusted if you change C1 capacitance. Pulses are generated with a period of 200 Tcy. All pulses are of equal length. Output frequency is 800 times lower than the frequency of the oscillator.

For later use save calibration data before programming device. This is essentially OSCCAL constant, which is stored on the production at the end of the program memory at 3FFh. Programmer before programming erase program memory and calibration data would be lost. OSCCAL settings is different for each piece of IC.

By changing the constants in the program can be set any number of pulses up to about 65 000 (2^16). If you need to generate a different number of pulses, just change the constants in the program. I think that everything is clear from figure 2. This segment of the program there with a small variation twice for each key separately.

Assembler source code and translated program in hex file are here. The program can be freely edited and distributed.

 


Obr. 2. Změna počtu impulsů N
Fig. 2. Custom set number of pulses (N)

Jaroslav Belza

18. 10. 2009