На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 145,
участников - 20 [ Vox, culibin, ruks72, Гаврила50, NBP FM, rst59, kvestor, alsator, Olexandr, Shurek, wily, CADET, geka, muha131, sakhalin2004, жук, yst, Bass1958, Andy58, listiner]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Измерительные и лабораторные приборы —› Гнератор сигналов на микроконтроллере, генератор синусоидального сигнала, часть 1 
Портативные Си-Би радиостанции в нашем магазине


Беркут Hunter
руб.

Егерь 3
руб.

President Randy II P
руб.

Турист 3
руб.

Штурман 80
руб.
Автор Сообщение
rk50
Участник
Offline1.1
с мар 2015
Москва
Сообщений: 4

Дата: 18 Дек 2016 11:40:10 #  

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
tigra
Участник
Offline4.8
с ноя 2004
Tashkent
Сообщений: 2358

Дата: 18 Дек 2016 14:12:24 #  

ждем продолжения
Arena
Участник
Offline1.2
с апр 2014
Минск
Сообщений: 81

Дата: 18 Дек 2016 17:51:24 #  

Схему невозможно прочесть. Если это коммерческий проект, тогда понятно.
ats52
Участник
Offline4.0
с авг 2005
Питер
Сообщений: 7795

Дата: 18 Дек 2016 21:58:07 #  

rk50, в Радио много лет назад была опубликована схема широкодиапазонного генератора с АРУ, Работала отлично, вот ее примерная схгма ( без цепи АРУ). Попробуйте, может понравится?

Увеличить
GoBliNuke
Участник
Offline5.2
с авг 2012
RadioAlert.ru
Сообщений: 878

Дата: 19 Дек 2016 22:38:08 #  

Схему невозможно прочесть.
Достаточно убрать масштабирование в ссылке на файл: http://rk50.ru/wp/wp-content/uploads/2016/12/shema_1.jpg
 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.036; miniBB ®