КВ/УКВ маяк на основе микроконтроллера фирмы "MICROCHIP"

PIC16F84A
(PIC16F628(A))


Для многих радиолюбителей часто возникает задача в постройке несложного устройства, позволяющего проводить настройку аппаратуры на коротких и ультракоротких волнах. Да и в последнее время появляются требования к передаче позывного при работе УКВ репитеров в виде незначительного ухода частоты (ЧМ манипуляция около 100ГЦ в телеграфном коде, телетайпом или PSK31 не рискнули J ).

Использовать для этих целей постоянно включенный компьютер было бы накладно, а городить мешок счётчиков и дешифраторов как бы уже не тот век. Некоторый опыт в постройке и отладке устройств на PIC-контроллерах позволил применить их и для постройки маяка на PIC16F84, имеющего низкую себестоимость, огромное количество программного обеспечения для программирования и отладки. К сожалению, этот мкроконтроллер снимается с производства. Но без проблем код переносится на PIC16F628(A), что и лежит в архиве beac628.zip, при этом остаётся совместимость по выводам и схема не изменяется. Да и 628й дешевле сейчас, чем 84й микроконтроллер.

Контроллер позволяет передавать телеграфную строку информации, предварительно закодированную в текст ассемблера для PIC небольшим приложением под любую 32х разрядную виндовс.

1я прошивка позволяет передавать по циклу 4 раза по 4 уровня мощности текст с номерами уровней, выдавая при этом на выходе постоянно включенный PTT с выходом на отдельном выводе тоновой манипуляции для подачи на вход ЧМ модулятора, затем 4 раза по 4 уровня без модуляции с манипуляцией PTT (обычная АМ-телеграфия)

2я прошивка простая, только АМ-телеграфия без переключения уровней мощности.

3я – ЧМ текст с максимальным уровнем, 4 хвоста по несколько секунд каждого уровня с тональным "префиксом", АМ-телеграф с максимальным уровнем и четыре "хвоста".

Следует предварительно предупредить, что изменением текста ассемблера, компиляцией и прошивкой микроконтроллера вы будете заниматься сами. В случае, если компиляция кода будет для Вас непосильным мероприятием, это сделаю для Вас я сам, скиньте мне на e-mail [email protected] необходимый текст для прошивки и её номер. Почти каждый день забираю фидо-почту. Пишите и туда в PLAN-TEXT кодировке - [email protected] Меня можно найти в ICQ – 167441331, ну и в крайнем случае мобильник и туда же SMS +375297505835

Любое распространение исходного кода программ свободное, при условии сохранения исходных текстов и незначительных упоминаний об авторе J

С чего начать ?

Первым делом нужно скачать с www.microchip.com или с www.microchip.ru любую версию “MPLAB” – интегрированного пакета для программирования и отладки их микроконтроллеров, ну или купить на рынке или переписать у товарищей. Значительно более проще всего этого - скачать picasm.zip, распаковать содержимое в отдельную папку с коротким названием (8.3 - DOS формата), в эту же папку перенести модифицированный ассемблеррный файл, о чём написано ниже, и откомпилировать код, набрав команду (в строке комманд FARe или TOTALcommanderе)

mpasm.exe /c- /p16f84 /w2 beacon.asm

Компилятор работает также из DOS.
Затем, если нет специального оборудования для программирования, я посоветую с www.ic-prog.com
icprog.exe

Программатор я использую JDM-programmer , ссылочку сейчас не вспомню, поисковики накидают таких кучу. Ну и pic1684morze_codec , который я имею честь вам предложить для облегчения всей работы.

После установки MPLAB, распакуйте архивы программ в одноимённые папки и поместите их в папку c:\Program Files\Mplab, которая должна появиться после установки MPLAB. Запустите MPLAB и в меню "PROECT" откройте командой Open Proect в установленной одной из папок файл с расширением PJT и…

Если скачивать и искать довольно объмные пакеты было проблематично и Вы готовы откомпилировать просто ассемблером из архива picasm.zip, всё ниже описанное нужно сделать в любом текстовом редакторе :)

В тексте ассемблерного файла нужно найти участок такого вида:

;----------------------------------------------------------------------

в следующей строке сам текст, который будет ниже кодирован

; CQ DE EW1LN QTH LOC KO33RW LEVEL
; add offset to pc to generate a computed goto

после небольших комментариев, для знакомых с программированием PICов, идёт сам блок кода, который и выдаёт, вместе с комментариями, моя простенькая программка


TEXT:	ADDWF	PCL
        DT      0xEB,0xA1,0xDD,0x70,0x03,0xA8,0x40,0x08,
        DT      0x5D,0xC2,0xEE,0xEE,0x17,0x50,0xE8,0x01,
        DT      0xDD,0x70,0xE1,0x54,0x00,0xBA,0x87,0x77,
        DT      0x0E,0xBA,0x00,0x75,0xC3,0xBB,0x85,0x5D,
        DT      0xC2,0xAE,0xE1,0x74,0x2E,0xE0,0x00,0x00,
        DT      0x01,0x75,0x08,0x55,0xC2,0x17,0x50,0x00,
        DT      0xFF

Ну и всё. Кодом 0xFF блок заканчивается. Нужно запустить мой кодек, ввести там некий текст, поиграться, потренироваться, почитать выводимые результаты и заменить мой блок, выделенный в этом документе красным, в тексте ассемблера, на свой, вместе с комментариями, для вашего же удобства.

Далее рассмотрим куда выходят провода из микроконтроллера. В программе задействован только порт А, 8 выводов порта В свободны и если есть у кого желание, можно ещё чего туда напихать.


;--- биты порта 'А' -------------------------------------------------
	DAC0  		EQU	0	; PA0,1 - две линии установки мощности
	DAC1		EQU	1	;
 	 PTT		EQU	2	; PA2 выход PTT
	SOUND		EQU	3	; PA3 выход FM модуляции

Далее жмём "F10" и компилируем проект. Образовавшийся, в результате этого, файл с расширением "HEX" и есть тот файл, который надо зашить в PIC.

Какие могут быть "подводные камни" (траблы)? В программе кодеке проследите за вводимыми символами, не допускайте количество слов в коде более 255, иначе будет ошибка на уровне исполнения (компилятор не заметит).После компиляции проследите, чтобы посреди массива не оказался код 0xFF, который используется для обозначения конца массива. Тон для ЧМ модуляции не совсем чистый, слегка паразитная ЧМ, что связано с тем, что генерация тона происходит в свободное от работы контроллера время и, когда ему приходится немного отвлекаться от генерации на основную задачу, происходит искажение сигнала. Эстеты могут изготовить генератор самостоятельно J


Символ раздела прописывается как “_” (это та, что над минусом), пишем или большие, или маленькие. Можно писать как русскими, так и латинскими буквами, всё сообразит. Неподдерживаемые символы просто проигнорируются. Первый вариант выдаёт цифру в каждом передаваемом уровне. Поэтому в конце текста желательно вставить "уровень"или “level”, после которого последует соответствующая цифра.

Управление мощностью происходит по двум выводам контроллера – кодируется 4 уровня путём простейшего псевдо-ЦАП, путём изменения напряжения питания предвыходного каскада усилителя. Возможны и другие варианты.

Отдельный вывод задействован под "PTT" - логическая единица – передача включена.

Выход тонального сигнала регулируется подстроечным резистором и, вероятно, вопросов не должно возникать.

Вариант исполнения устройства изображён на рисунке beacon.jpg . Впрочем, здесь всё - поле деятельности для Вас, уважаемые радиолюбители.

В кратце – R1R2C1 – цепь сброса, R3 – регулятор выходного сигнала для модуляции FM, 12V PTT – питание выходного каскада, DAC OUT – регулировка уровня напряжения предварительного каскада усилителя (подразумевается, что выходной в линейном режиме.) Все номиналы резисторов ориентировочные, подбираются под конкретный случай, резонатор – керамический, от ПДУ (стеклянные от DSB – необязательно, да и слишком круто для этих целей), транзисторы КТ315 – чисто условно, любые маломощные кремнивые ключи, диоды типа КД522, питание контроллера – 5вольт. Непосредственно возле контроллера по питанию установите безиндукционный конденсатор 10н – 0.1мк, а также по питанию 12в возле выходных ключей. Само устройство желательно заэкранировать.

В заключение отмечу, что сейчас использую 3ю прошивку, т.к. создалось общее мнение о том, что долго ждать весь цикл 4x4 + 4x4, используемый в первом варианте но, дело хозяйское…

PS Более углублееное изучение более совремменых контроллеров PIC16F73 и PIC16F876
позволило получать звук таким простым способом как использовать ШИМ контроллер,
который несут на борту перечисленные процессора. Так же и PIC16F628 имеет такое
же устройство. Если кому будет интересно, то звук для маяка в таком варианте есть
в блоке управления репитера:
ASM файл для PIC16F876A

Алексей EW1LN

[email protected]

[email protected]

ICQ 167441331

МИНСК 2003-02-07