ODXC

Oбнинское DX Сообщество

Новости
Устинов Николай Семенович (ex: UW3XP) - замолчавший ключ (SK)

21.05.2021. Собрание Обнинского QRU клуба.
Избрание председателя QRU клуба.
Избрание управляющего оператора RN5X.

12 апреля 2021 не стало Валерия Кабакова RT5X

Обнинск  

Точное время   MSK:

Программатор RAM для старых трансиверов ICOM

Часть I, Сергей Матвеев, UA1OSM, ноябрь 2001.

Предисловие

Десять лет назад, в 1991 году, я получил мой первый полностью транзисторный трансивер ICOM-751 от одного моего очень хорошего знакомого из Германии. К этому моменту я работал в качестве инженера-электронщика и наладчика радиосистем более 15 лет и уже имел кое-какой опыт обращения с трансиверами IC-735 и TS-440S во время моих поездок в Швецию и Германию.
Первым делом я включил трансивер и наслаждался его работой в течение нескольких часов. Все, казалось, функционировало нормально. Мне понравился и полудуплекс, и работа от педали в телеграфном режиме, когда оператор имеет возможность передавая, слушать в паузах своей передачи и тут же перейти в обычный режим, просто нажав на педаль в нужный момент. Ранее я применил тот же самый подход при конструировании самодельного трансвертера, работавшего с Р-250М2. Затем я переключился на другой диапазон. Мне сразу не понравилась примененная конструктором довольно глупая эргономика двойного действия, то есть нажатие кнопки, а затем поворот ручки настройки аппарата для смены диапазона. Однако, я по-настоящему встревожился, когда, находясь на 14025.0 и меняя диапазон, я увидел на шкале непостижимые 21049.4 кГц! Уже имея опыт с трансиверами, упомянутыми выше, включая аппараты примерно того же класса - 735 и 745, я был убежден, что я должен оказаться после смены диапазона на 21025, 28025 и так далее. Но на шкале по-прежнему оставалось загадочное 049.4! Я выключил трансивер, подождал три минуты, затем снова включил его. Странный дефект присутствовал. Те из читателей, кто хоть однажды читали законы Мерфи, должны знать, что никто сразу не читает инструкции, сталкиваясь с проблемами. Да и сам Мерфи рекомендует их читать только когда перестает работать абсолютно все. Так и я честно продолжил дальше полностью в соответствии с законами старого Мерфи. Наблюдая странную точку перехода при переключении диапазона, которая никоим образом не могла быть объяснена с позиции здравого смысла (я забыл об одном -программисты в фирме ICOM вообще могли никогда не быть радиолюбителями), я решил, что какая-то из КМОП ИС, находящихся внутри, дефектна. Перед тем у меня была довольно "приятная" долголетняя практика с украинскими КМОП ИС производства Винницкого завода (Ну такая дрянь, я вам доложу!), особенно подверженными эффекту защелкивания, когда в ИС происходит локальный пробой КМОП-структур, она начинает потреблять большой ток, сильно нагревается и не функционирует, полностью или частично, как ей положено. Я открыл принципиальные схемы, очень быстро обнаружил маленькое ОЗУ на плате процессора и определил, что ИС ОЗУ выполнена как раз по КМОП-технологии (аналог нашей К537РУ14, которую можно здесь применить).

     

Поскольку ОЗУ было энергозависимым, на платке присутствовала маленькая 3 В литиевая батарейка размером с монету, сохраняя содержимое ИС во время отключений питания. Я уже знал, что отключение питания с дефектной КМОП ИС должно прекратить наступивший эффект защелкивания и в то же время очистить содержимое ИС. Конечно же, я был уверен, что в ОЗУ должны сохраняться лишь частоты каналов памяти и другая текущая информация процессора (стековые, регистровые записи) – точно так же, как и в тех трансиверах, с которыми я уже имел дело. Поэтому я совершенно не боялся, что эти данные пропадут - подумаешь, введу каналы памяти снова… Я смело вытащил платку ОЗУ и отпаял батарейку на несколько минут, достаточных, чтобы разблокировать ИС, попавшую в нештатный режим. Как же неприятно я был поражен, увидев беспорядочный мусор из цифр на шкале, когда я опять включил трансивер! Пришло время читать противную инструкцию по эксплуатации. О, какой же дурак я был! Какие идиоты эти япошки!!! Какого же черта они засунули управляющие коды процессора в ОЗУ!!! - Я ругался как студент-медик в новелле М. Твена. Вошла жена Люба, UA1OSA, и я поделился с ней последней новостью, что я только что запорол наш дорогой трансивер. Люба подарила мне незабываемый взгляд и, ни говоря ни слова, вышла. Я отставил несчастный ICOM в сторону и водрузил на его место старый, верный, и, что самое ценное, абсолютно безОЗУшный YAESU FTdx505, чтобы скорее позвать друзей на помощь. Быстро ответил на мой отчаянный хэмский призыв Rune, SM0COP. Он приобрел новую платку за 50 долларов и просто подарил ее мне. Как ответный подарок, я отослал ему самый первый нормальный советский коллбук - большую тяжелую книгу весом в килограмм или около того. Спустя годы, многие наши радиолюбители попались в ту же японскую ловушку, что и я. И все они были вынуждены истратить от 70 до 100 долларов для того, чтобы купить и получить платку ОЗУ от ICOM непосредственно на их адреса.

Цель осознана

Шло время, и я начал задумываться о конечном сроке службы моей новой подаренной Rune платки и батарейки. Фирма гарантировала лишь пять лет, но сроки отказов могут быть и меньше…К тому времени я уже неплохо освоил ПиСишные компьютеры и являлся пользователем в течение более десятка лет. Ранее все мы в СССР делали компьютеры сами, как читатель, наверное, помнит, и мой сын, и я сам не явились исключением. В числе прочих мы повторили знаменитую РК-шку на ВМ80 процессоре еще в 1987 году и она была о способна с легкостью программировать как КМОП ОЗУ, так и ППЗУ с УФ стиранием.
Вычислительная мощь любой IBM PC по сравнению с 86-РК позволяла делать это с крошечной ИС ОЗУ трансивера просто играючи.
К сожалению, я не был программистом и не знал ни ассемблера, ни высокоуровневых языков программирования, например - Си++ или Паскаля, которые могли быть применены здесь. После того, как я поделился в эфире своими соображениями с "королем паяльника" RU3XS, Сергеем, по его рекомендации я обратился к другому Сергею, RW3XA, который оказался не только превосходным DX оператором, но и отличным программистом и опытнейшим электронщиком-экспериментатором. И к моему восторгу, он имел электронные адреса почты как дома, так и на работе. Таким образом, он стал соавтором этой статьи. Использование сканера и Интернета позволило совершить быстрый обмен схемами и идеями между UA1OSM и RW3XA. И вот, три месяца спустя с того момента, как задача была поставлена, Сергей послал мне сообщение, что программатор уже функционирует, и программа написана тоже. У Сергея к тому моменту не было ни трансивера ICOM, ни самой платки ОЗУ, но он имел листинг зашитой в ОЗУ управляющей программы, а также схему фирменного программатора  ЕХ-428 фирмы ICOM, самой платки ОЗУ и платы процессора трансивера - все, что я смог получить от разных коллег по эфиру за эти годы. Сергей изготовил макет программатора, который успешно работал с его 486-м, и, равным образом, мог работать с любой IBMкой - хоть 1980 года выпуска. После получения радостной новости и схемы с программой от Сергея, я изготовил пригодную к эксплуатации рабочую версию программатора для уже настоящей платки ОЗУ. Она также работала хорошо после первого же ее включения.

Препятствия на пути

Несколько слов здесь надо сказать о фирме ICOM, с точки зрения ответственности за свою продукцию и отношений ее с потребителем. Эта фирма является самым лучшим производителем любительской и многой другой техники в течение долгих лет. И одновременно является врагом номер 1 радиолюбителей в пиаровских отношениях типа "фирма-клиент". Политика фирмы, одобренная ее штаб-квартирой, очень недружественна, агрессивно-самонадеянно по-самурайски накачана, отрицает всякие контакты, мнения, советы и прочие попытки обратной связи от клиента к фирме. Иногда кажется, что фирма просто не заинтересована в улучшении ее продукции, имеющей отношение к радиолюбителям. Полной противоположностью такой политике является фирменная политика YAESU и Ten-Tec USA. Эти фирмы всегда дружественны и открыты радиолюбителю. Так что если бы  аппаратура ICOM была бы чуть хуже, я никогда бы не стал не только ее приобретать, но и вообще иметь какие бы то ни было отношения с таким "поставщиком". Понятно, что любой из радиолюбителей, разумеется, никогда не получил бы от фирмы коды процессора, внутренноее ПО, и так далее для такого домашнего экспериментирования - НИР и ОКР, какое затеяли мы с Сергеем, для любого из их изделий - пусть даже оно "19 века" и со столетней бородой!
Европейские и американские филиалы фирмы, однако, оказались более дружественными и предоставили некоторую информацию. Это объяснимо - почти везде там работают европейцы и американцы - нормальные люди, без странного самомнения штаб-квартиры ICOM, эквивалентного самомнению Наполеона Бонапарта. Таким образом, удалось получить коды ОЗУ для обычной и улучшенной версии ПО 751 аппарата. Читатель, возможно, скажет здесь, что совершенно излишне обращаться в фирму, когда можно просто переписать коды из еще не опустошенной платы ОЗУ, и это будет верно - теперь, когда есть готовый программатор! Но поскольку задача переписывания кодов с одной стороны, и создания программатора целиком – с другой, примерно эквивалентны по трудозатратам, то все становится на свои места - мы создавали изделие, не имея в качестве образца почти ничего, кроме нашего большого желания.
Несколько слов о фирменном программаторе ЕХ-428 самой фирмы.
Это изделие было создано ICOMом для перепрограммирования плат ОЗУ в условиях филиалов поддержки по всему миру. Это дорогой прибор, изготовленный на базе процессора 8085, ИС ПЗУ, аналогичной РФ ППЗУ 573РФ2, собственного ПО, находящегося в этой ИС, и панельки для еще одной РФ2, из которой бралась программа для копирования. То есть, программы хранятся в РФ ППЗУ, определенную ИС для определенной модели надо вставить в панель, затем вставить платку ОЗУ на место  для ее программирования, представляющее собой два ряда контактных иголок, затем включить программатор и произвести считывание из ППЗУ в память процессора, а потом – запись в ОЗУ. Индикация выполнения операций считывания-записи происходит на ЖКИ или светодиодном табло, вмонтированном в сам прибор. Я оцениваю стоимость самого ЕХ-428, примерно равной стоимости трансивера, о котором идет речь, так что нет никакого смысла приобретать это устройство у фирмы, если даже она согласится его продать. К тому же - я уверен, что и тут последовал бы отказ, ввиду враждебно-ориентированной политики ICOM'a по отношению к радиолюбителям.

Описание механики и покупные изделия

Что представляет из себя программатор снаружи?

Это маленький пластмассовый ящичек из двух половинок, скрепляемый по углам четырьмя маленькими винтами - саморезами. Внутри находится печатная плата, изготовленная на т. н. «монтажном слепыше» - сетке отверстий с шагом 2.5 мм. Разумеется, можно и вытравить плату самому. На плате находятся две ИС и посадочные иголки для платки ОЗУ. Плата программатора зажимается между пластмассовыми половинками коробки. В верхней части коробки вырезано окно для вставки платки ОЗУ. Использованы две ИС 555 серии, для неопытных любителей можно рекомендовать при повторении применить панельки для ИС, хотя это не обязательно. Кроме двух ТТЛШ ИС и панелек нужны два ряда контактных игл, которые можно взять от какой-нибудь старой и негодной компьютерной карты РС, два светодиода и резистора, один конденсатор и два миниатюрных тумблера.Наиболее дефицитным компонентом является кусок компьютерного кабеля для принтера IBM РС, так называемый кабель параллельного порта с разъемом типа Центроникс, причем наличие последнего разъема не обязательно. Если читатель располагает целым неповрежденным кабелем или решит его купить, то лучше купить и ответную часть разъема Centronics для монтажа на коробке, чтобы сохранить кабель для повседневной работы с компьютером и принтером. Если разъем Centronics отсутствует или поврежден, то его надо изъять совсем, и тогда расшить кабель внутри коробочки. Постановка ответной части разъема Центроникс несколько увеличит размеры Вашей коробки. А также надо приготовить блок питания, который выдавал бы стабилизированное напряжение +5 Вольт (не более 5.5 и не менее 4.5!!!) при токе не менее 50 мА. Автор использовал имеющийся блок питания портативного внешнего компьютерного накопителя Бернулли - 100 Мб ZIP-драйва фирмы IOMEGA, которое широко распространено в РФ. Блок выдает плюс 5 Вольт с током  до 1 А, что идеально для данного устройства, тем более вы не будете эксплуатировать его каждый день. Для подключения питания нужен соответствующий разъем (как на транзисторном радиоприемнике) или пара зажимов. Программатор необходим для следующих трансиверов фирмы ICOM, сконструированных с применением ОЗУ: модели 740, 745, 751, 751А, 271А, 271Н, 471А, 471Н, 1271, 761, приемник R-71. Схемы плат ОЗУ имеют два взаимозаменяемых варианта. Содержимое ОЗУ (коды) годятся лишь для конкретной модели аппарата и не взаимозаменяемы.

 

Часть IIСергей Сатырь, RW3XA, ноябрь 2001.

Предыстория

Сразу надо отметить, что я не являюсь поклонником ICOM. Так уж сложилось, что та техника ICOM и KENWOOD, с которой мне приходилось сталкиваться, не оставила должного впечатления. В итоге это сказалось и на выборе HF и VHF трансиверов для себя в пользу YAESU.  О маленьком нюансе с заменой батарейки в трансивере ICOM я уже как-то слышал, но воспринял это просто как конкретный результат небрежного обращения с «тонкой» японской электроникой. Каково же было мое удивление, когда ко мне обратился Сергей UA1OSM и рассказал о своей проблеме с IC-751. О том, что  оказывается, такое случается не так уж и редко, и далеко не в одной модели трансиверов ICOM. И, что самое главное, возможно совсем не по вине пользователя, а по вине разработчиков ICOM. Т.е. через несколько лет эксплуатации батарейка разряжается и данные в RAM исчезают, а без этих данных трансивер не заработает даже и с новой батарейкой… Конечно, Вы можете возразить, что в то время, когда разрабатывались эти трансиверы, еще не было таких понятий как FLASH, EEPROM и т.п.. Но, так как в результате разряда литиевой батареи (пусть даже через несколько лет) трансивер становится абсолютно неработоспособным, то производитель обязан был подумать о своих клиентах и что-то предусмотреть, чтобы исключить такую ситуацию. Самое простое поставить второй держатель для батареи и в инструкции по эксплуатации указать на необходимость установки новой батареи (и только после этого удаления старой), например, каждые 4 года… По крайней мере так было бы честнее и,  главное, надежнее. В общем - прокол. А возможно, это была просто долгосрочная забота о своих сервисных центрах. Да, технологии совершенствуются и в современных трансиверах этой проблемы уже не существует, а по сколько уж лет старенькие японские трансиверы работают, и еще смогут! Если им немного помочь.  Что не говори, а все же молодцы японцы, умеют делать электронику и трансиверы в частности.
Итак, в процессе обсуждения проблемы с UA1OSM мы пришли к выводу, что хорошо бы сделать программатор для RAM-UNIT модуля. Благо к этому времени Сергей уже как-то раздобыл подборку прошивок RAM для  нескольких моделей трансиверов ICOM. Т.е. было что записывать и нужно было еще чем, т.е. необходимо было сделать электронную часть программатора и написать управляющую программу для него.  Тут я удивился во второй раз, оказывается UA1OSM уже достаточно давно обсуждает эту проблему  в эфире и за это время ему ни кто не попался (или по крайней мере не откликнулся) из тех, кто мог бы ее решить. Видимо, Сергею просто не повезло, или он не там искал.  Я, например, любитель  CW и DX, и почти всегда в эфире (если свободен от работы, детей и жены), хотя меня и не часто слышно :-) .  В общем, идея с программатором меня заинтересовала, и, в первую очередь тем, что в итоге должно получиться достаточное простое в повторении устройство, с помощью которого можно «оживить» или продлить жизнь некоторых ICOM-ов.  В общем, нужно было решиться и найти несколько дней, что бы плотно заняться воплощением идеи в жизнь. В принципе, такой программатор (EX-428) давно существует, но, как описано выше, цена делает его недоступным. Тем более что программатор нужен один раз в несколько лет. Кстати, данная статья написана именно для тех, кому интересно не только «ездить» на трансивере, а еще и «прополаскать мозги» этого трансивера. Иначе, ~100$ за новый RAM модуль плюс несколько месяцев ожидания и нет проблем…

Схема

Для программирования модуля необходимо 4 двунаправленных и 12 выходных сигналов, поэтому самым рациональным решением было использование параллельного (LPT) порта компьютера. Причем при разработке учитывалась возможность работы на любом компьютере, включая XT и 286, в которых использовались однонаправленные LPT порты. Программатор выполнен на двух микросхемах, первая (К1533ИР23 или 74ALS374) используется для защелки адреса, вторая (К1533АП4 или 74ALS241) для мультиплексирования направления шины данных при записи/чтении. Для питания микросхем необходим любой блок питания с выходным стабилизированным напряжением +5В и током 50-100 мА. Например две батареи по 4.5В (на час работы хватит, а больше и не надо) + стабилизатор 78L05 или блок питания от модема + 78L05.

Выключатель «Lock-Pgm» предназначен для аппаратной блокировки модуля от случайной записи при его установке или извлечении из программатора и соответственно  для включения модуля на время работы с программой. Другими словами переводить переключатель в положение «PGM» нужно только после запуска программы и при уже установленном модуле. А перед выходом из программы или перед извлечением модуля переключатель необходимо установить в положение «LOCK». Дело в том, что необходимое состояние линий порта LPT устанавливается  только на время работы программы, все остальное время этими линиями управляют BIOS, система или другие программы, которые и понятия не имеют о программаторе для RAM модулей. А к чему это может привести вы и сами догадываетесь…

Программа

Программа для программирования RAM модулей (icom_pgm.exe) написана для DOS, т.е. для программирования подойдет даже XT, но, тем не менее, она отлично работает под Windows и  использует прямой доступ к регистрам LPT порта, минуя системные драйверы. После запуска выдается подсказка, что можно разблокировать модуль (режим «PGM»), если он уже установлен.  В программе реализованы всего две функции – чтение (Read RAM) и запись с проверкой (Write/Verify RAM). При нажатии клавиши «R» (чтение) запрашивается имя файла, в  котором будет сохранено текущее содержимое памяти модуля.  После ввода имени файла начинается чтение и сохранение данных в файл. Если имя файла не задано, то содержимое памяти только отобразится на экране. По клавише «W» запрашивается имя исходного файла, содержимое которого будет записано в память модуля.  К программе icom_pgm.exe прилагаются файлы с данными для модулей нескольких типов трансиверов. Если у вас нет ничего лучше, тогда попробуйте их. Но если вы хотите перепрограммировать модуль рабочего трансивера новой прошивкой, то лучше сначала прочитать содержимое модуля и сохранить его в файл, тогда вы всегда сможете возвратить модуль в первоначальное состояние!  Старайтесь хранить такие файлы в специальном каталоге, чтобы исключить потерю файла при чтении с сохранением  в файл. В режиме записи производится проверка на чтение по каждому байту. Если записанный байт не совпадает со считанным, то выдается сообщение об ошибке с указанием адреса  записываемого и считанного байта. При выходе из программы выдается сообщение о том, что необходимо заблокировать модуль, для этого необходимо переключатель перевести в положение «LOCK». Вынимать модуль из программатора можно только в положении «LOCK» и после отключения питания программатора.

Заключение

При разработке аппаратной и программной части программатора у меня небыло реального RAM-UNIT модуля. Для отладки пришлось сделать его аналог на КР537РУ10 (КР537РУ14 не нашлось), т.к. по характеристикам они практически одинаковые и отличаются только организацией. UA1OSM повторил схему, испытал с настоящим модулем и… (тут я удивился в третий раз) …все сразу заработало, включая и трансивер IC-751!  Надеюсь, у вас тоже все получится. Архив всех файлов для программатора – icom-pgm.zip (193kb).

 
Obninsk DX Community - www.odxc.ru Contact My-Engine CMS Obninsk DX Cluster - odxc.ru ODXC © RW3XA, 2006-2021 12339