Программирование Xilinx Передатчик маячка "Охоты на лис" на XC2C64A Mon, December 09 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Передатчик маячка "Охоты на лис" на XC2C64A Печать
Добавил(а) microsin   

Здесь описан простой проект передатчика на частоту 3.55 МГц, предназначенный для работы в качестве маячка соревнований "Охота на лис". Используется микросхема CPLD Xilinx XC2C64A, которая сразу генерирует сигнал для передачи его на усилитель мощности передатчика.

Этот проект можно рассматривать только как демонстрационный, не как рекомендацию для повторения, потому что можно сделать примерно то же самое и на более дешевой логике [1]. Ниже показана упрощенная схема устройства, цепи питания CPLD не показаны (XC2C64A получает питание от стабилизатора +3.3V):

XC2C64A morse beacon sch

Логическая схема была разработана в среде ISE WebPack 14.7 на языке VHDL.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
 
entity top is
    Port ( XTALOUT1 : out  STD_LOGIC;
           XTALOUT2 : out  STD_LOGIC;
           XTALIN   : in  STD_LOGIC;
           MORSE_HF : out  STD_LOGIC);
end top;
 
architecture Behavioral of top is
constant v : unsigned ( 15 downto 0 ) := "1010101110000000";
signal hfclk : STD_LOGIC := '0';   -- 3.55 МГц
signal lfclk : STD_LOGIC := '0';   -- 16 Гц
signal divider : unsigned (17 downto 0) := "000000000000000000";
signal COUNT : unsigned (3 downto 0) := "0000";
 
begin
   -- Кварцевый генератор:
   hfclk <= not XTALIN;
   XTALOUT1 <= hfclk;
   XTALOUT2 <= not hfclk;
 
   -- Делитель частоты на 110937*2 (3.55 МГц -> 16 Гц):
   process (hfclk) begin
   if hfclk'event and hfclk='1' then
      if divider=110937 then
         divider <= "000000000000000000";
         lfclk <= not lfclk;
      else
         divider <= divider + 1;
      end if;
   end if;
   end process;
 
   -- Счетчик, по которому должны выбираться биты из константы v:
   process (lfclk) begin
   if lfclk'event and lfclk='1' then
      COUNT <= COUNT - 1;
   end if;
   end process;
 
   -- Генерация ВЧ сигнала для подачи на усилитель мощности
   -- передатчика:
   MORSE_HF <= v(to_integer(COUNT)) and hfclk;
end Behavioral;

Строки 1..3: подключение стандартных библиотек. Это традиционное начало любого VHDL-кода.

Строки 5..10: определение портов логической схемы top (входы и выходы).

Строки 12..17: начало определения архитектуры схемы top. Здесь определяются глобальные константы и переменные модуля. Константа v хранит данные точек и тире буквы "Ж" как знака Морзе. Бит hfclk это сигнал 3.55 МГц, который подается на вход счетчика/делителя на 221874. Бит lfclk это выход счетчика, частота 16 Гц. Длительность импульсов этой частоты дает длительность точки. Регистр divider это разряды счетчика/делителя. Регистр COUNT это дополнительный счетчик, на вход которого подается частота lfclk. Счетчик COUNT используется для подачи на вход дешифратора в строке 46 для выдачи последовательности сигнала буквы "Ж".

Строки 21..23: формирование инверторов кварцевого генератора.

Строки 26..35: счетчик/делитель на 221874.

Строки 38..42: счетчик для формирования входных данных для дешифратора буквы "Ж".

Строка 46: здесь сформирован дешифратор, на выходе которого появляются импульсы точек и тире буквы "Ж", а также логический элемент И, который смешивает эти импульсы и сигнал частоты 3.55 МГц. Тем самым формируется сигнал амплитудной манипуляции, который поступает на вход усилителя на транзисторе T1.

Сигналы маячка в симуляторе ISim:

XC2C64A morse beacon ISim signals

Схема усилителя мощности ВЧ без изменений была взята из публикации [1]. Проект был собран на основе китайской платки с XC2C64A, которая была куплена на aliexpress.

XC2C64A THAOYU board

[Ссылки]

1. ПРИЕМНИК И ПЕРЕДАТЧИК ДЛЯ "ОХОТЫ НА ЛИС" site:rfanat.qrz.ru.
2. 171130morse-beacon.zip - проект ISE WebPack 14.7.
3. Как установить Xilinx ISE Design Tools.

 
Top of Page