Универсальный программатор имени Motorola

Всё что связано с аппаратурой и антеннами
Ответить
  • Автор
  • Сообщение
Не в сети
Аватара пользователя
Сообщения: 73
Зарегистрирован: 15 дек 2013 15:54

Универсальный программатор имени Motorola

Сообщение EU6SM »

Большинство радиостанций Motorola программируется через встроенный USB интерфейс или с помощью K-Line адаптера. И это действительно так, если потребности в программирования радиостанций лежат в области программирования частот и настроек радиотракта. Всё становится намного веселее, если внезапно потребуется сделать что-то более серьёзное: например, перепрошить транковую станцию в "нормальную", заменить прошивку DSP-модуля, или просто заменить прошивку в радиостанции. Внезапно выясняется, что для "серьёзных" манипуляций с радиостанцией требуется наличие специального RIB-адаптера (Radio Interface Box), подключаемого к реальному COM-порту.

Изучение интернет-поделок не принесло морального удовлетворения, т.к. каждый лепит своё изделие исходя из модельного ряда радиостанций Motorola на своей домашней свалке и своего понимания о краткости схемы: один из таких чудо-девайсов собран аж на 9 микросхемах! Поэтому было решено по-быстрому сделать очередную поделку, претендующую на универсальнось и реализующую все известные протоколы Моторолы, на одной микросхеме.

Изображение
Вот так выглядит универсальный программатор радиостанций Motorola на одной ИМС :-):

Для изучения протоколов был взят оригинальный RIB Motorola с насадками, позаимствованный на Белтелекоме. Из этого чёрного ящика удалось выковырять 3 возможных протокола обмена, а также поведение шины Busy.

Протокол K-Line. Сведение линий RxD и TxD в одну K-линию для реализации симплексного обмена данными. K-линия в неактивном состоянии подключена через резистор 4k7 к +5В, а в состоянии передачи линия замыкается на землю выводом TxD или открытым стоком со стороный радиостанции. Отличительной особенностью реализации такого адаптера является появление своего эхо-символа при передаче данных по линии Tx. Т.е. при передаче данных, компьютер тут же принимает их обратно, и программа на компьютере должна принимать меры для фильтрации входящих данных, что существенно замедляет трафик, особенно в современной реализации COM-портов через USB. В большинстве USB2COM адаптеров время поллинга составляет 10...16млс, а значит ожидание приёма своего ОДНОГО эхо-символа как раз и составляет эти 10..16млс, хотя передача символа заняла ~1млс, на что благодарные пользователи моторольского софта просто не нарадуются, т.к. можно выйти покурить, поесть, поспать, а потом покурить ещё раз, пока софтина что-нибудь запихнёт в радиостанцию.

Протокол MBus. Также сводит RxD и TxD в одну K-линию для реализации симплексного обмена данными, и электрически является аналогом K-линии, но, внезапно, не даёт эха в RxD-линию при передаче символа по TxD. Достигается это принудительным удержанием RxD в высоком состоянии при опускании TxD. Т.е. протокол MBus - это K-линия без эха. Казалось бы ничего особенно не поменялось, однако, это "неособенное" изменение позволяет прошить 1Мбайт памяти за 1.5 минуты через тот же USB2COM. MBus применяется для глобальной перепрошивки радиостанций, т.к. реализация USB-порта, видимо, достаточно сложна для помещения в bootstrap загрузчик даже для современных цифровых радиостанций.

Протокол SCI. Это обычный UART с раздельными шинами RxD и TxD, где передающий (PC->radio) вывод TxD называется SCI RX+, а в качестве приёмного вывода RxD (PC<-radio) используется вывод Bus+. Протокол SCI используется для замены ПО в большинстве пожилых радиостанций: например, транковую GP1200 можно перепрошить в MT2100 с непосредственным вводом частоты только с помощью этого протокола, несмотря на то, что программирование функций и частот в нормальном режиме производится по K-линии.

Линия Busy. Использование этой линии было замечено во всех 3х вариациях протокола. Линия Busy представляет инверсный вариант K-линии (используются инверсные сигналы DTR и CTS): в неактивном состоянии линия Busy через резистор 4k7 подключена к земле. Если устройство хочет установить сигнал занятости, оно "сильно" поднимает шину Busy в +5В - это аналог открытого стока K-линии, только при активности происходит присоединение линии не к земле, а к +5В). Опускание сигнала DTR(активность) вызывает опускание сигнала CTS и подъём линии Busy.

Изображение
Схема универсального программатора

Логика работы всех трёх протоколов реализована на контроллере tiny43U, режимы переключаются кнопкой MODE, линия Busy работает в каждом из режимов, работоспособны все скорости обмена вплоть до 115200 бод. Чтобы не городить огород с напряжением +12В, которое в некоторых радиостанциях используется в качестве триггера перехода в режим программирования, преобразователь собран на этом же контроллере: максимального тока 12мА, который выдаёт преобразователь, более чем достаточно - типовой ток потребления по линии триггера 3.5мА. Последний рабочий режим запоминается в EEPROM, в каком режиме программатор выключается, в таком же и включается. Чтобы программатор не подвисал (мало ли что), активирован WatchDog. Контроллер tiny43U можно заменить на любой другой, с достаточной производительностью и достаточным количеством выводов, изменив прошивку под используемый контроллер.

Изображение
Вот такой небольшой колхоз внутри :-):

Для удобства, преобразователь USB2COM был разведен прямо на плате программатора. В качестве микросхемы USB2COM была взята наиболее универсальная с точки зрения переключения скоростей обмена и настроек поллинга FT232BL ф.FTDI, но никто не мешает использовать любой другой чип USB2COM, или не использовать USB2COM вообще, а подключаться к внешнему COM-порту через преобразователь уровней, например, на MAX232.

Картинки в нормальном разрешении и прошивку с исходниками программатора можно скачать здесь.

/закачал прошивку и схему в читабельном виде на наш ресурс eu2a/
Вложения
motprog_sch.jpg
motprog.zip
(4.18 КБ) 748 скачиваний

Не в сети
Аватара пользователя
Сообщения: 943
Зарегистрирован: 10 ноя 2010 10:39
Откуда: Antennae Galaxies

Re: Универсальный программатор имени Motorola

Сообщение EW2ABC »

Флешировать моторолы уже пробовали им?
Может объясните почему даже с оригинальным RIB флеширование работает не со всяким COM портом? На одном компе может работать, а на другом отказывается. Программирование работает на любом COM порте и не такое капризное как флеширование.

Не в сети
Аватара пользователя
Сообщения: 73
Зарегистрирован: 15 дек 2013 15:54

Re: Универсальный программатор имени Motorola

Сообщение EU6SM »

EW2ABC писал(а):Флешировать моторолы уже пробовали им? ...
Неоднократно. Вот фраза "... транковую GP1200 можно перепрошить в MT2100 ..." как раз на это и намекает :-): Правда, количество перешитых моделей невелико: около десятка, хотя общее кол-во перешитых станций значительно больше.
EW2ABC писал(а): ... Может объясните почему даже с оригинальным RIB флеширование работает не со всяким COM портом? На одном компе может работать, а на другом отказывается. Программирование работает на любом COM порте и не такое капризное как флеширование.
Ага, всё как обычно: рубим с плеча и экстраполируем трабл на все моторольские трансиверы... Вопрос задан так, как будто у моторолы 5 моделей трансиверов, и все они одинаковые... Вопрос некорректен, Вам не кажется? Вот, например, на трансиверах последних 10ти лет я ни разу не сталкивался с подобными трудностями.

Под маркой моторола за 25 последних лет, ИМХО, выпущено несколько сотен моделей трансиверов, которые радикально отличаются друг от друга внешним и внутренним софтом. Проблема входа может быть связана как с софтом на PC, так и с аппаратной реализацией последовательного порта, т.к. конструкция PC тоже несколько изменилась за соответствующий промежуток времени. Скорее всего, проблема входа возникла с каким-то старыми "корчами".

Условия входа в режим перепрошивки у всех трансиверов разные: какой-то софт использует boot-загрузчик, который ждёт появления 12В на триггере программирования, какой-то вызывает вектор загрузчика прямо из софта, некоторым нужен триггер 12В и ключевая посылка по UART в течение 1с после подачи питания, и т.п. - т.е. простой посылки ключевой последовательности для входа в режим перепрошивки обычно недостаточно.

В старые дикие времена для формирования доп.условий использовались доп.сигналы последовательного порта DTR, RTS, а также различные трюки, типа установки скорости 20bps для и посылки нулей, для формирования условия замыкания линии на землю на 0.5с. В древности, когда ещё выпускалась ИМС 8250 и её друг 16550, а на PC жил DOS и надстройка над DOS - Win95/98, эти фокусы проходили на "ура". Однако, с приходом XP и виртуализацией устройств, старые фокусы перестали срабатывать, т.к., например, стандартное API Win/Lin не позволяет узнать об опустошении аппаратного кэша, как и не позволяет узнать точное время начала передачи пакета, а без этого весьма непросто передать последовательность входа в режим перепрошивки, которую надо послать в интервале 20...30млс после среза Busy после подачи питания. Но это ещё ерунда: с концепцией виртуализации внешних устройств пришли порты USB2COM, COM-порт на материнке на базе JMicron и прочие кошерные и не очень девайсы: формировать реалтайм-последовательности на нереалтаймовских девайсах весьма неблагодарное занятие :) Трэша также добавляет неполная совместимость всяких USB2COM с оригинальным 16550, а для досовской моторольской программы вполне себе в порядке вещей сразу после запуска потребовать режим 9600N5/1.5, который не реализован не только в USB2COM, но и в ePCI вариациях. Поэтому возможность входа в режим прошивки зависит не только от аппаратной реализации порта, но и от драйверов, версии вин, установленного стороннего софта на этот вин, кол-ва периферии (ведь URB стек один на всех) и т.п..

Какой выход? Правильный - купить антикварный комп. Неправильный - патчить софт, использовать максимально совместимые с оригинальным COM-портом связки девайс-драйвер (например, USB2COM FTDI), как-то так.

Не в сети
Аватара пользователя
Сообщения: 943
Зарегистрирован: 10 ноя 2010 10:39
Откуда: Antennae Galaxies

Re: Универсальный программатор имени Motorola

Сообщение EW2ABC »

EU6SM писал(а):
EW2ABC писал(а): Какой выход? Правильный - купить антикварный комп. Неправильный - патчить софт, использовать максимально совместимые с оригинальным COM-портом связки девайс-драйвер (например, USB2COM FTDI), как-то так.
Для этих целей специально достал ноутбук c COM портом TOSHIBA Satellite 4090XCDT. Программирует станции без проблем, а вот при попытке перефлешить GM360 при попытке загрузки выдает "FL0 sync " (станция естественно находилась в boot режиме).
На другом более новом компе с первого раза все пошилось.
Через кабель USB-COM флеширование вообще прокатит? Может ссылочку дадите на конкретный кабель подходящий для этих целей?

Не в сети
Аватара пользователя
Сообщения: 73
Зарегистрирован: 15 дек 2013 15:54

Re: Универсальный программатор имени Motorola

Сообщение EU6SM »

EW2ABC писал(а): ... Может ссылочку дадите на конкретный кабель подходящий для этих целей?
Вот если бы была такая ссылочка, разве делал бы я адаптер, который нарисован выше? :ne_vi_del:

Не в сети
Сообщения: 579
Зарегистрирован: 28 фев 2013 09:52
Откуда: Gomel
Контактная информация:

Re: Универсальный программатор имени Motorola

Сообщение YOZ11 »

Господа, прошу прощения что не по теме, но может быть сталкивался кто с такой ситуацией: motorola gp680 была вероятно перефлеширована и успешно работала. Потом долгое время лежала без дела, АКБ естественно разрядился. На данный момент станция не включается, аккумулятор заряжен и в норме. Есть два таких мертвых радио. Что может с ними быть такое?
_________________
Ivan
Ответить