КВ/УКВ маяк на основе микроконтроллера фирмы #MICROCHIP# PIC16F84
Для многих радиолюбителей часто возникает задача в постройке несложного устройства, позволяющего проводить настройку аппаратуры на коротких и ультракоротких волнах. Да и в последнее время появляются требования к передаче позывного при работе УКВ репитеров в виде незначительного= ухода частоты (ЧМ манипуляция около 100ГЦ в телеграфном коде; телетайпом или PSK31 не рискнули).
Использовать для этих целей постоянно включенный компьютер было бы накладно, а городить мешок счётчиков и дешифраторов как бы уже не тот век. Некоторый опыт в постройке и отладке устройств на PIC-контроллерах позволил применить их и для постройки маяка на PIC16F84, имеющего низкую себестоимость, огромное количество программного обеспечения для программирования и отладки. Контроллер позволяет передавать телеграфную строку информации, предварительно закодированную в текст ассемблера для PIC небольшим приложением под любую 32х разрядную виндовс.
1я прошивка позволяет передавать по циклу 4 раза по 4 уровня мощности текст с номерами уровней, выдавая при этом на выходе постоянно включенный PTT с выходом на отдельном выводе тоновой манипуляции для подачи на вход ЧМ модулятора, затем 4 раза по 4 уровня без модуляции с манипуляцией PTT (обычная АМ-телеграфия)
2я прошивка простая, только АМ-телеграфия без переключения уровней мощности.
3я прошивка ЧМ текст с максимальным уровнем, 4 хвоста по несколько секунд каждого уровня с тональным префиксом•, АМ-телеграф с максимальным уровнем и четыре хвоста.
Следует предварительно предупредить, что изменением текста ассемблера, компиляцией и прошивкой микроконтроллера вы будете заниматься сами. В случае, если компиляция кода будет для Вас непосильным мероприятием, это сделаю для Вас я сам, скиньте мне на e-mail ew1ln@tut.by необходимый текст для прошивки и её номер. Если продублируете на мой пейджер 22173@pager.radiopage.by в PLAN-TEXT кодировке, то я загляну в ящик в ближайшее возможное мне время и Ваша просьба будет выполнена в кратчайшие сроки. Почти каждый день забираю фидо-почту. Пишите и туда в PLAN-TEXT кодировке - Alexey.Kostyuk@p530.f86.n450.z2.fidonet.org. Любое распространение исходного кода программ свободное, при условии сохранения исходных текстов и незначительных упоминаний об авторе J
С чего начать ?
Первым делом нужно скачать с www.microchip.com или с www.microchip.ru любую версию MPLAB• интегрированного пакета для программирования и отладки их микроконтроллеров, ну или купить на рынке или переписать у товарищей J , затем, если нет специального оборудования для программирования, я посоветую с www.ic-prog.com= icprog.exe
Программатор я использую JDM-programmer, ссылочку сейчас не вспомню, поисковики накидают таких кучу. Ну и Pic1684morze_codec.exe, который я имею честь вам предложить для облегчения всей работы.
После установки MPLAB распакуйте архивы программ в одноимённые папки и поместите их в папку c:\Program Files\Mplab, которая должна появиться после установки MPLAB. Запустите MPLAB и в меню PROECT откройте командой Open Proect в установленной одной из папок файл с расширением PJT и+
В тексте ассемблерного файла нужно найти участок такого вида:
;----------------------------------------------------------------------
- в следующей строке сам текст, который будет ниже кодирован
- ; 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+ - логическая единица передача включена.
Выход тонального сигнала регулируется подстроечным резистором и, вероятно, вопросов не должно возникать.
Вариант исполнения устройства изображён на рисунке. Впрочем, здесь всё= - поле деятельности для Вас, уважаемые радиолюбители.
В кратце R1R2C1 цепь сброса, R3 регулятор выходного сигнала для модуляции FM, 12V PTT питание выходного каскада, DAC OUT регулировка уровня напряжения предварительного каскада усилителя (подразумевается, что выходной в линейном режиме.) Все номиналы резисторов ориентировочные, подбираются под конкретный случай, резонатор керамический, от ПДУ (стеклянные от DSB необязательно, да и слишком круто для этих целей), транзисторы КТ315 чисто условно, любые маломощные кремниевые ключи, диоды типа КД522, питание контроллера 5вольт. Непосредственно возле контроллера по питанию установите безиндукционный конденсатор 10н 0.1мк, а также по питанию 12в возле выходных ключей. Само устройство желательно заэкранировать.
В заключение отмечу, что сейчас использую 3ю прошивку, т.к. создалось общее мнение о том, что долго ждать весь цикл 4x4 + 4x4, используемый в первом варианте но, дело хозяйское+
Алексей EW1LN ew1ln@tut.by
22173@pager.radiopage.by
Alexey.Kostyuk@p530.f86.n450.z2.fidonet.org
МИНСК 2002-06-05