Дополнение к книге
"Шина I2C в радиотехнических конструкциях".
М.СОЛОН-Р, 2002 г.
Общение с читателями показывает, что читателям достаточно интересно попробовать разрабатывать свои программы не в простых текстовых редакторах наподобие стандартного блокнота из windows, а так, чтобы ключевые слова, переменные, константы, регистры выделялись разными цветами (подсветка синтаксиса). В таком случае можно воспользоваться удачной бесплатной программой Asmed (рис.1), которую написал харьковчанин Александр Торрес. Отличие этой программы от аналогичных состоит в следующем: можно настраивать подсветку синтаксиса по своему желанию, выводить необходимые «горячие» клавиши на панель управления, передавать результаты работы в другие программы (в отладчик и программатор). Получить программу можно с сайта А.Торреса или с авторского сайта - по этой ссылке. В последнем варианте для МК КР1878ВЕ1 уже созданы необходимые правила подсветки, и читателю не придется тратить время на их создание.
|
Рис. 1 Окно редактора Asmed, разработанного А.Торресом |
Теперь вновь о программаторах и программах поддержки. Третий вариант программатора, кстати, совместимый с фирменным «железом», разработан на основе конструкции радиолюбителя Александра Измайлова (сайт в интернете http://sanchos-iz.narod.ru).
Внешний вид программатора в оригинальном виде приведен на рис.2. Однако схему пришлось немного доработать и разработать под нее печатную плату. Схема доработанного программатора приведена на рис.3. В ней применен дополнительный сигнальный буфер на микросхеме КР1554АП6, позволяющий применить провод длиной до 1 м. В остальном схема особенностей не имеет. Собрать ее можно на печатной плате (рис.4) при помощи "монтажки" (рис.5). Скачать эскиз печатной платы в формате Sprint Layout 3.0 можно отсюда.
|
Рис. 2 Внешний вид программатора Александра Измайлова |
В качестве программы поддержки можно использовать стандартную DOS-версию p_wmct.exe, а можно – программой-дополнением А.Измайлова (файл p_1878.exe можно получить с сайта автора программы или автора книги). Отличие данной программы от стандартной состоит в том, что она позволяет проверить, подключен ли программатор, включено ли его питание, и предложит пути решения при возникновении подобных проблем. Параметры командной строки – такие же, как и в фирменной версии, но разместить «добавку» необходимо там же (в той же папке), где находится p_wmct.exe. Параметры командной строки используются те же, но запускается файл p_1878.exe.
|
Рис. 3 Схема модернизированного программатора Александра Измайлова |
Еще одна программа поддержки программатора от А.Измайлова (файл we1.exe) полностью автономна и позволяет работать как с LPT1, так и с LPT2. Программирование памяти данных происходит из бинарного файла, отсутствует проверка записи, что, по мнению автора программы, вполне нормально: ошибки возникают крайне редко. Работа над программой продолжается, и в последующих версиях обещано ввести проверку записи при указании соответствующего ключа в командной строке.
|
Рис. 4 Печатная плата модернизированного варианта |
Формат команды при программировании задается следующей строкой:
we1.exe file.sav [/c:ххх] [/lpt2] [/d:{file.bin}].
При этом «ххх» задает значение конфигурационных байтов так:
xx1 - Reset delay ON
xx0 - Reset delay OFF
00x - Oscillator mode with RC
01x - Oscillator mode with Quartz {больше} 100kHz
10x - Internal Oscillator mode ~50kHz
11x - Oscillator mode with Quartz {меньше} 100kHz
Default : Oscillator mode with Quartz {больше} 100kHz and Reset delay ON.
При работе с портом LPT2 указывается ключ [/lpt2], при его отсутствии – работа с LPT1.
Если возникнет необходимость вернуть порт в исходное состояние, должна быть выполнена следующая директива командной строки:
we1.exe /start [/lpt2].
|
Рис. 5 Сборочный рисунок модернизированного варианта |
Печатная плата модернизированного варианта в формате Sprint Layout 3.0
Схема и печатная плата оригинального варианта
После того, как программатор выбран и изготовлен, еще раз напомним некоторые важные вещи. Как показал читательский опыт в отношении программирования микроконтроллера, есть не отраженные в документации вопросы, которые нужно обязательно учитывать, чтобы избежать сложных раздумий в процессе наладки конструкций.
Во-первых, при работе с программаторами под windows следует знать, что операционные системы выше Win-98 запрещают доступ к LPT порту напрямую (поскольку они выполнены по технологии NT). Так что для успешного программирования нужно либо пользоваться DOS-вариантом, либо не «слезать» с Win-98 (Win-95).
Еще одна неприятность, замеченная при верификации: программатор при этой операции иногда портит данные в ЭСППЗУ, и после снятия напряжения программирования МК просто отказывается работать. Но чаще всего ошибка верификации не возникает, и с этим можно мириться, либо отключать верификацию (где такая возможность предусмотрена).
Третья неприятность. Судя по той информации, которая поступает от радиолюбителей, ОАО «Ангстрем» изменило алгоритм верификации EEPROM, но не уведомило об этом потребителей, хотя бы через интернет-сайт. Проблема, которую создали разработчики, связана в значительной степени с программной поддержкой средств «прошивки». Они остались нескорректированными, в чем можно убедиться, зайдя на сайт «Ангстрема» и «скачав» оттуда фирменные программаторы. При программировании DOS-версией и фирменной windows-программой будет выведена ошибка верификации, если микроконтроллер был выпущен после 2000 года. Ошибки не возникнет при «прошивке» более старых экземпляров. Вообще-то по-хорошему специалистам ОАО «Ангстрем» нужно поступать по-другому: привести в порядок весь «софт», представленный на сайте, ввести возможность переключения программирования разных партий микроконтроллеров одной программой. Пока этого не произошло, читателям можно настоятельно рекомендовать программаторы П.Семенова (вкладка «настройка» здесь имеет опцию отключения верификации, поэтому «галочку» при работе с файлом progve_new.exe нужно «снять») и программу поддержки А.Измайлова (we1.exe). Или вообще написать свой вариант программатора, прислать его для публикации на мой сайт. Тем более что новый алгоритм верификации стал известен. Но пользоваться стандартными (нескорректированными) средствами тоже можно – «прошивка» пройдет нормально, и тогда придется не обращать внимания на появление надписи об ошибке верификации.
Что еще важно учесть при программировании МК, выпущенных после начала 2000 года (маркировка 00 и далее)? Ценные сведения приведены в файле «рекомендации» (SFX-архив recom.exe), который можно «скачать» в полном объеме с сайта «Ангстрема» или с авторского сайта. В файле приведены сведения о цепях сброса, о потреблении тока на различных частотах работы и в различных режимах. В частности, сказано: «В микроконтроллерах, выпущенных с начала 2000 г, устранена нестабильность в работе в некоторых режимах, устранены сбои в работе, происходившие при записи в EEPROM данных. В настоящее время с EEPROM данных можно работать в любых режимах: в режиме WAIT и в режиме сканирования регистра состояния».
Использование генератора имеет ряд особенностей. Так, например, при использовании кварцевого резонатора на частоту менее 100 кГц, необходимо всегда включать задержку пуска (reset delay). Использование режима sleep в этом случае запрещается. То же самое нужно учесть при использовании кварцевого резонатора на частоту более 100 кГц, за исключением режима sleep, который здесь применять можно. Внутренний генератор может работать без задержки пуска, но вывод 16 (OSC1) лучше «привязать» в схеме к «земле». Аналогично происходит работа с внешним RC-генератором. Наконец, при использовании внешнего тактового генератора в строке конфигурации программируется значение «01», сигнал подается на вывод OSC1. МК намного лучше работает, если при программировании была задана задержка пуска (Reset Delay).