3. КРАТКОЕ ОПИСАНИЕ ГЕНЕРАТОРА
Данный прибор предназначен для проверки приемных трактов радиостанций в диапазоне 0.2_60 МГц. Предполагается ввести аттенюатор и регулировку формы выходного сигнала с применением второго микроконтроллера AVR.
В настоящее время на микроконтроллере AVR ATTINY13A реализовано управление генераторами.
Нажатие и отпускание кнопки сопровождается звуковыми сигналами разной формы, соответствующей диапазону включения генератора..
Количество повторений сигнала при отпускании кнопки соответствует под диапазону включения LC-генератора, то есть от 1 до 3 повторений.
При бездействии генератора, в течении 2-х часов каждые 15 минут издается звуковой сигнал. Считаю данную опцию полезной, кто уходит с головой ремонт или разработку, Повторяющийся сигнал — не даст просидеть увлеченно за работой весь день без еды.
По истечении 2-х часов, генератор отключается, микроконтроллер уходит в режим Power Down. Перед отключение издается несколько продолжительных прерывистых звуковых сигналов.
4. ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
Технические характеристики генератора
Напряжение питания _________7_28В
1. Диапазон 0.2____2 МГц
2. Диапазон 2______15МГц
3. Диапазон 15______60 МГц
Выходной сигнал_____________________________________________________ синус
Амплитуда выходного сигнала в диапазоне частот 0.2____2 Мгц_____________10В
Амплитуда выходного сигнала в диапазоне частот 2____15Мгц_____________2В
Амплитуда выходного сигнала в диапазоне частот 16____60Мгц_____________0.7В
АМ/ЧМ модуляция____________________________________________________Да
Звуковая индикация___________________________________________________Да
Таймер отключения___________________________________________________2 часа.
5. ЭТАПЫ ПРОЕКТИРОВАНИЯ
1. PLL синтезатор
2. Цифровая регулировка выходного напряжения
3. Цифровая регулировка формы сигнала
6. ЭЛЕКТРИЧЕСКАЯ СХЕМА
http://rk50.ru/wp/wp-content/uploads/2016/12/shema_1-800x791.jpg
7. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Программа занимает чуть менее 400 байт.
/*
* Управлением питания генераторов
*
********** МОДИФИКАЦИЯ 15.12.16: *********
1.Каждому под диапазону LC-генератора соответствует свой звуковой сигнал. 1,2 или 3 коротких сигнала.
2. В время работы генератора, по истечении 15 минут издается звуковой сигнал, то есть напоминание о том, чтобы не забыть отключить генератор, если не нужен.
********** МОДИФИКАЦИЯ 16.12.16: *********
1. Отключение генератора после 2-х часов бездействия, если не нажата ни одна кнопка.
*/
;PB4 -выход звукового индикатора
;PB3 - кнопка переключения генераторов
;PB2 - PB0 - питание на генераторы, в среднем 3-4 мА
.include "tn13def.inc"
.dseg ;сегмент данных
.def tmpa = R16 ; рабочий регистр
.def tmpb = R19; отсчет времени
.def timeout_1 = R20; отсчет времени
.def timeout_2 = R21; отсчет времени
.def channel = R22; канал RC-генератора
.def var_channel = R23
.def power_off = R24 ; отключение генератора
.equ clock = 0x00
.equ time_sound = 0x08; длительность звукового сигнала при запуске МК
.equ time_off = 0x08; время перед отключением МК=N*15min
.equ timeout_long = 0x5B; 0x5B < => 1-1=90=9,91s 900/90= 10 0x24 = 36 < => 36-1 = 35*25,228= 883sec, 30 = 737.5sec
.equ timeout_short = 0x67; 0x66=102 0x65=100 < => 10/0.09911=101 0xFD=252=883/252= 25.2286s 0xFB=252 < => 251-1=250 = 0,1017*249= 25,34 sec
.cseg ; сегмент кода
.org 0x00
ldi R16, clock
out OSCCAL, R16
clr channel
clr power_off
ldi tmpa, 0b00010111; PP3, PB4 -input
out DDRB, tmpa
ldi tmpa, 0b00011100
out PORTB, tmpa
ldi tmpb, time_sound
; Пауза пере стартом
start_pause:
dec tmpb
cpi tmpb,1
breq end_pause
rcall pause
rjmp start_pause
end_pause:
rcall sound_key_off
ldi timeout_1, timeout_long
ldi timeout_2, timeout_short; 25,43sec
;#############################################################################
start: ; 1100
rcall time_15min
nop
in tmpa, PINB
cpi tmpa, 12
breq start
rcall sound_key_on ;звук нажатия кнопки
clr power_off; сброс режима отключения, т.к. нажата кнопка
inc channel; 1
cbi PORTB, 2
sbi PORTB,1 ; PORTB=1
mov var_channel, channel; copy chanel _> var_chanel
;#############################################################################
start_1: ; 1010
nop
in tmpa, PINB
cpi tmpa, 10
brne start_1; пока не отпустят кнопку, будем ждать
rcall sound_2 ; двух кратный звуковой сигнал отпускания кнопки
;#############################################################################
start_1_0:
rcall time_15min
nop
in tmpa, PINB
cpi tmpa, 10
breq start_1_0; ждем пока не нажмут кнопку
rcall sound_key_on ; звук нажатия кнопки
clr power_off
inc channel ; 2
cbi PORTB, 1
sbi PORTB,0 ; PORTB0=1
mov var_channel, channel; copy chanel _> var_chanel
;#############################################################################
start_2: ;1001
nop
in tmpa, PINB
cpi tmpa, 9
brne start_2 ; ждем пока не отпустят кнопку
rcall sound_3 ; трех кратный звуковой сигнал отпускания кнопки
start_2_0:
rcall time_15min
nop
in tmpa, PINB
cpi tmpa, 9
breq start_2_0; ждем пока не нажмут кнопку
rcall sound_key_on ; звук нажатия кнопки
clr power_off
cbi PORTB, 0
sbi PORTB,2 ; PORTB2=1
mov var_channel, channel; copy chanel _> var_chanel
clr channel; 0
;#############################################################################
start_3: ;1100
nop
in tmpa, PINB
cpi tmpa, 12
brne start_3; ждем пока не отпустят кнопку.
rcall sound_1; одинарный звуковой сигнал отпускания кнопки, так как переходим в начало работы программы
rjmp start
;#########################################################################################################
; ЗВУКОВАЯ ИНДИКАЦИЯ
;#########################################################################################################
sound_1:
rcall sound_key_off
ret
sound_2:
rcall sound_key_off
rcall sound_key_off
ret
sound_3:
rcall sound_key_off
rcall sound_key_off
rcall sound_key_off
ret
;#############################################################################
pause: ; 100mS
ldi R17, 0x29 ; 0x2B 43 =105 mS
df1: ;
dec R17
cpi R17, 0
breq end1
ldi R18, 0xFF
next1: ; 2,31ms
dec R18
cpi R18,0
breq df1
rjmp next1
end1:
ret
sound_key_off:
sbi PORTB, 4; ON sound -Звуковой сигнал при отпускании кнопки
rcall pause ; 315/3=105
rcall pause
rcall pause
cbi PORTB, 4; OFF sound
rcall pause; 70 ms
rcall pause
rcall pause
ret
sound_key_on:; 35ms < => R18=0x0F
sbi PORTB, 4; ON sound -Выдаем звуковой сигнал, при нажатии кнопки
rcall pause
cbi PORTB, 4
rcall pause
rcall pause
rcall pause
rcall pause
rcall pause
rcall pause
ret
;########################################################################################
; ТАЙМЕР 15 МИНУТ
;########################################################################################
time_15min:
dec timeout_2
cpi timeout_2, 1
breq time_1
rcall pause
ret
time_1:
ldi timeout_2, timeout_short
dec timeout_1
cpi timeout_1, 0
breq timer_0; при завершении отсчета, выдать звуковой сигнал
ret
timer_0: ; По достижении 15 минут издается звуковой сигнал, соответствующий каналу включения генератора
rcall poweroff
ldi timeout_1, timeout_long; перегружаем таймер
ldi timeout_2, timeout_short; 25sec
cpi var_channel, 0
breq sound_1
cpi var_channel, 1
breq sound_2
cpi var_channel, 2
breq sound_3
ret
;##############################################################################
; Отключение питания через 2 часа бездействия
;##############################################################################
poweroff:
inc power_off
cpi power_off, time_off; t2=8 < => N*15min = 8*15=120min ждем при бездействии и выключаем все генераторы
breq end_power
ret
end_power:
clr tmpa
out PORTB, tmpa ; Все порты в 0
ldi tmpb, 0x5F
sbi PORTB, 4; Подача звукового сигнала перед отключением МК, т.е. входа в режим PowerDown
rcall pause_sleep
cbi PORTB, 4
rcall pause
sbi PORTB, 4
rcall pause_sleep
rcall pause_sleep
rcall pause_sleep
cbi PORTB, 4; sound OFF
clr R16
ldi R16, 0b00101000
out MCUCR, R16
nop
sleep
pause_sleep:
ldi tmpa, time_sound ; Длинный звуковой сигнал перед отключением
df:
dec tmpa
cpi tmpa,0
breq end_1
rcall pause
rjmp df
end_1:
ret
7. ОСЦИЛЛОГРАММЫ
http://rk50.ru/wp/wp-content/uploads/2016/12/2-800x469.jpg
Форма звукового сопровождения соответствует тому, что включен 3-й LC-генератор (30-60 МГц)
8. ФОТОГРАФИИ ПЕЧАТНОЙ ПЛАТЫ
http://rk50.ru/wp/wp-content/uploads/2016/12/IMG8057-672x372.jpg