Эхо-репитер из Motorola GM300, модуля ISD1760 и Nano v3.

I Введение

Начать придётся всё же не со схемы и описания работы эхо-репитера, а с программирования станции GM300. Так как подключение к станции планируется через сервисный разъём и потребуется настроить частоту RX-TX и возможно закрыть субтоном.
Станция Моторола "GM300 Radius" выпускается с 90х годов. Запрограммировать станцию представляется возможным разными способами, но предпочтительно RIB cable for Motorola и софтом RSS который работает из под DOS и видит только COM-порт. Отлично, ну да и ладно, DOS так DOS.

1. Существует эмулятор DOSBox - программа позволяющая в любой Windows и Linux запустить софтину, которая живёт в DOS.
2. Есть в сети схемы программаторов для станций, в том числе и GM300.
3. Потребуется адаптер USB to COM.
4. Инструкция по программированию GM300.
5. Софт RSS для моторолы GM300

Вот здесь даже подробно описано, что где купить и что нажимать. Да и казалось бы - ничего сложного. Ну хорошо, беру схему и собираю программатор.

II Программатор

Схема #1. 

Данная схема была собрана и даже местами работала, но после в какой-то момент отказала и радиостанция перестала понимать пакеты от данного программатора. Сама схема не сложная - преобразователь уровней COM to TTL. 

GM300 Motorola схема программатора

В ходе разбирательств и поиска причины подозрений было несколько:

- DOSBox настроен не верно? Порт, скорость,  циклы, что? Внятного объяснения найти не удалось, о том как должен быть настроен DOSBox, сама же сеть кишит мифами и догадками. Кто-то пишет, что циклы нужно ставить именно 191, кто-то о том, что через DOSBox работать не будет.

- Станция вышла из строя? Ведь попытки считать CODEPLUG удавались до этого именно через данную схему программатора.

- Программатор вышел из строя? Ведь работало всё и перестало.

Скачал сервис-мануал GM300, посмотрел в схему. Разобрал станцию и встал на ногу процессора осциллографом - пакеты до процессора доходят. Отлично, значит программатор что-то шлёт, но станция упорно молчит,  а софт сообщает то "invalid opcode #7" то "#2 no acknowledge".
Попытки крутить DOSBox не увенчались успехом, да и что именно не устраивает станцию не известно. В это же время осциллограммы показали, что уровни TTL летящие с программатора не соответствуют протоколу. Почему, в какой момент они перестали устраивать станцию и что изменилось - не ясно. Перепроверив схему программатора и убедившись, что всё работает как и должно- выводом стало только подозрение на питание программатора идущее с того же адаптера COM to USB. В результате чего и произошло смещение уровней. И то, что на программаторе нет индикатора отправки пакетов оказалось не удобным.  Решено было собрать программатор на MAX232.

Схема #2.

Собрана на базе приёмо-передатчика MAX232 преобразователя уровней RS-232 и TTL, преобразует сигналы RX,TX, CTS и RTS. Имеет отдельное внешнее питание и индикацию данных. То, что нужно. 

GM300 Motorola программатор MAX232   Программатор MAX232 для GM300 motorola

Так же в схеме имеется буферный формирователь с открытым коллектором, я использовал отечественный аналог К155ЛП9, ну как отечественный... Буферный формирователь с открытым коллектором позволяет использовать более высокие нагрузки. В схеме обозначенный буфер SN7407 изображен как инверсионный, только это не соответствует с datasheet. Не знаю почему так отображено, видимо есть какие-то на то причины.

Буферный формирователь не инверсионный SN7407

В конкретно взятой схеме, буфер возможно и не нужен, так как преобразование идёт в TTL и в схеме видно, что подтянуто это всё на +5В. Но раз в схеме есть, то пусть будет. Собрал, подключил - взлетело. Всё работает как нужно, уровни в норме, индикаторы отрабатывают, питание внешнее. И вот здесь стоит отдельно сказать о DOSBox.

DOSBox не требует каких-то эксклюзивных настроек. Всё что требуется, это чтобы порт в системе определился, установить его как COM-1 на скорости 9600, в конфиге DOSBox указать его и прописать запуск RSS софта для работы со станцией. Никакой магии описаной в сети и танцов с бубнами по поводу cycles (циклов) или ещё чего-то вроде "Только чистый DOS и физический COM-порт!" не наблюдалось. Всё отлично работает, а если не работает, то причина наверняка в уровнях, адаптерах и прочего обвеса.

    
III Адаптер USB to COM (RS232)

Используемый адаптер, найденый в загашнике, был таким.

 

Описание уровней RS232 взято отсюда и более подробное можно посмотреть о RS232 там  же.
В сухом остатке мы имеем такую схему USB-RS232-TTL где адаптер USB определяется как COM-порт и длаёт возможность работы с программой, далее сигналы RS232 загоняем в программатор на MAX232 и на выходе преобразуем в TTL, ну так-как работа уже с уровнями 0-5В.  Возможно достаточно обойтись конверторм USB to TTL и  закрыть данный вопрос на FT232, но нужно осциллографом посмотреть сигналы, не придётся ли их инвертировать, так как RS232 0 = от +5В до +15В, 1 = от -5В до -15В. Мысли в слух.

 

 

До станции достучались, данный этап можно считать закрытым. Далее уже подготовительные работы непосредственно со станцией и репитером.

IV Сревисный разъём Motorla GM300.

  На картинках ниже, слева 8 канальная станция - справа 16ти. Что видим? А видим то, что 8 канальная станция не имеет возможности программировать выходы свободные, так как они отмечены SPARE. 16 канальная станция такую возможность имеет так как PROG I/O. Забегая вперёд скажу, что изначально работал с 16ти канальной станцией. Так как если на станции в настройках не указан pin (вывод) сервисного разъёма на который выводить сигнал открытия шумоподавителя, то и взять его неоткуда. Наверное можно лезть в станцию с паяльником и брать сигналы со светодиодов и подавать PTT через тангенту. Но зачем, если есть для этого специальный разъём? Так вот на 8 канальной станции это всё по умолчанию выведено и программированию не подлежит, а вот на 16ти и более каналов это отдельная опция программируемая. Более того, можно определить будет это LOW или HIGH сигнал - 0 или 1.

Нас интересует:
1. Сигнал открытия шумоподавителя (COR) 8й пин
2. Сигнал передачи (PTT)  3й пин
3. Вход на передачу звука (MIC Audio) 2й пин
4. Выход звука из станции на приём (TXAUDIO) 5й пин
5. Земля 7й пин.

Теперь, когда станция настроена на частоту и заданы необходимые настройки разъёма, можно двигаться дальше.
 

V Схемотехника и подключение

Для сборки управляющей части потребуется:

Nano V3 на Atmega328

ISD1760 Голосовой модуль.

 

Макетная плата 40Х60

А так же пару подстроечных резисторов на 10К, кондецаторов на  0,1мКф для развязки в цепи звука, резистор для подтяжки 10К и резистор для температурного датчика 4,7К ну и сам датчик температуры ds18b20.

На рисунке ниже, представленна схема, так сказать переходная и выполненая на макетной плате. Данная схема сопрягает радиостанцию GM300, NanoV3 и ISD1760

Вот так это выглядит в сборе.

VI Общий принцип работы

За всё это хозяйство отвечает NanoV3, на борту которой имеется пограммная часть. Её и рассмотрим.

1. Если ничего не происходит, сигнала на станцию в эфире не поступило и шумоподавитель закрыт, то на выводе сервисного разъёма 8 логический сигнал 1, который поступает на вывод D9 NanoV3 и вывод этот подтянут к +5 через 10к резистор, чтобы исключить все не понятные состояния вывода.

2. В это же время постоянно, раз в 30 сек. работает функция проверки и контроля температуры станции - защита от перегрева. Температура контролируется всегда!

3. Как только приходит сигнал и открывается шумподавитель, проверяется значение температуры и если оно в норме, то NanoV3 посылает сигнал по SPI протоколу (выводы D13-10) модулю ISD1760 на запись сигнала. Входной звук эфира приходит с PIN 5 сервисного разъёма на pin 10 модуля ISD,  через R3 и C2. Вместе с тем запоминается длительность времени сообщения. 

4. После того, как шумоподавитель закрылся, начинается воспроизведение сигнала и передача его в эфир на время равное длительности принятого сообщения. Передача начинается после проверки температуры станции, если оно в норме, то передача идёт. Если нет, то передачи не последует. Передача: вывод D8 принимает значение LOW и станция влючается на передачу через PIN 3 сервисного разъёма,  в это же вряме по SPI простоколу модулю ISD приходит команда на воспроизведение от NanoV3. Звук записаного сообщения по цепи pin 15 от ISD через C1  R2 поступает в станцию на вывод PIN 2 сервисного разъёма. Как только сообщение будет передано равное по длительности записанного, станция перестанет передавать в эфир потому как D8 примет значение HIGH - логической 1. Станция снова перешла в режим приёма.

5. В заданном временном интервале, эхо-репитер отбивает морзянкой QTH-локатор.
 

 

К сервисному разъёму была изготовлена ответная часть. Корпус вырезан из дерева лазером, дерево пропитано маслом.

VII Тестирование

Репитер был протестирован. За сутки было обработано порядка 3000 сообщений. Контроль сообщений производился через монитор порта на NanoV3 - тестирование прошло успешно.

Экономика проекта

Стоимость комплектухи. NanoV3 - 200р. ISD1760 - 380р., макетка, резисторы и конденсаторы - пусть 100р. и датчик температуры - 50р. Различная мелочь типа стойки крепления и корпус пусть +250р.
Итого: 980р. Округлим с запасом  до 1200р.