"Просто и доступно" - серия книг, которую с интересом читают и профессионалы, и радиолюбители
Вернуться к теме

Что говорят и пишут
о микроконтроллере КР1878ВЕ1

Дополнение к книге
"Современный тюнер своими руками: УКВ стерео+микроконтроллер".
М.СОЛОН-Р 2001 г.

Собственно, проблема заключается в следующем. Приобрел десяток КР1878ВЕ1 от 02.05, с обратной стороны маркировка А23, и не могу запрограммировать - ошибка инициализации. При увеличении паузы до 15-20 мс программирует, но выдает ошибку проверки. При меньшей паузе - опять ошибка инициализации. Память данных не читается совсем. Если в одном цикле программирования читается "каша", то после выкл/вкл питания - FF. При отключенной проверке, когда все хорошо с программированием, в схеме МК не работает, начинает работать только при включенной задержке пуска. Попробовал, не выключаясь, старенький (от 99.10) - абсолютно все в норме! Какие самые "свежие" МК Вам приходилось программировать? Нашел в конференции "Телесистемы" эту информацию: "Ангстрем" недавно поменял алгоритм программирования, и новый алгоритм программатор PICPROG не поддерживает". Консультироваться у "Ангстрема" бесполезно, я когда-то спрашивал у них о КР1446ПН1 - тишина. Быть может, Вы что-то подскажете?
Владимир. Н.Новгород

Приобрёл в "ЧиП и Дипе" (уже пятую!!!) КР 1878ВЕ1. При программировании на прогромматоре Picprog и программаторе П.Семёнова - ошибка верефикации (на всех!). По Вашему совету отключил верификацию. Контроллер прошивается, но не запускается на 500 кГц (не стартует генератор), запускается при прошивке на 8 МГц. Что это может быть?
Сергей Костенецкий, г. Курск,
компания "Максимум"

Прочитал книгу «Современный тюнер своими руками», по аналоговой части вопросов нет. При попытке изготовления цифрового стереотюнера возникли проблемы с прошивкой МК. При подаче питания на программатор П.Семенова без подключения порта LPT светодиоды на программаторе горят, напряжение подается на МК. При подключении порта LPT, включении тумблера питания на программаторе, введении бинарного файла, нажатии кнопки питания светодиоды не загораются, индикаторы на мониторе меняют цвет на зеленый. После активизации кнопки “прошить” и попытке ее нажатия на монитор выводится –“ошибка инициализации”, МК "умирает". Тестирование без МК показывает ошибку программатора. Программатор проверен , все ошибки устранены. При повторной попытке подачи питания на "убитый" МК без подключения LPT, индикатор 12V притухает и начинает хаотично мигать.
В.С.Войтуль

Проблема в том, что я никак не могу прошить МК КР1878ВЕ1 для выполненя простой тестовой програмки. Вот вкратце что мне пришлось испытать в течении полугода поисков истины. Первым замыслом было добыть информацию по КР1878ВЕ1 и самостоятельно изготовить программатор,а также разработать программу поддержки. Наконец необходимая информация распечатана и изучена. Изготовил программатор,составил программу поддержки на ассемблере для 8080. Программа прошивается, затем МК переходит в режим чтения. Чтение проходит успешно,но МК молчит(испытывал 4 экземпяра). Что я только не пробовал и в конце концов решил, что есть какой-то недокументированный секрет, изготовил программатор (по схеме рис 3.11 "Современный тюнер своими руками"),сделал все как надо - и опять неудача! Программа прошивки Е03_prog.exe через 7 секунд после запуска выдавала сообщение: "МК не готов". Я решил обхитрить программу ,подавая Uпит и Uпрогр немного раньше запуска Е03_prog.exe. Сработало - проходит запись программы, чтение программы, запись и чтение ЭСППЗУ данных. Но МК по-прежнему молчит. Пробовал разные генераторы,задержку пуска, разные схемы сброса - тишина. Такое впечатление, что МК вовсе не запускается - на всех выводах портов +5В (видимо из-за нагрузочных резисторов ,которые должны отключаться). У меня ОС "WINDOWS ME". Может попробовать "WINDOWS 98"?
Андрей Гайдарь

Когда книги "Современный тюнер своими руками" и "Шина I2C в радиотехнических конструкциях" вышли из печати, автору казалось, что никаких проблем с программированием микроконтроллера КР1878ВЕ1, на основе которого построены схемы, опубликованные в книгах, возникнуть не может. Однако впоследствии оказалось, что микроконтроллер, как всякое новое изделие (а тем более выпущенное в нашей стране), содержит достаточно "багов" и "фичей", то есть недоработок и неточностей, требующих уточнений. Тем не менее, не следует огорчаться бесповоротно и навсегда - эти неточности не фатальны, и если приложить немножко технической рассудительности и радиолюбительского упорства, все должно получиться. Эта статья написана с целью дополнительной помощи читателям книг в повторении и модернизации конструкций, описанных в книге (и не только в ней).

Рис. 1
Окно фирменного программатора под DOS

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

Рис.2
Фирменный программатор под Windows

Вопрос первый: "Сколько циклов перезаписи можно осуществить в ЭСППЗУ команд при использовании самодельного программатора, изготовленного согласно схеме, приведенной в описании на МК?" Ответ: "В соответствии с ТУ на изделие и особенностью программирования максимальное количество циклов перезаписи 5000".

Вопрос второй: "Планируется ли выпустить МК со встроенным компаратором? И если да, будет ли это новый МК или доработанный?" Ответ: "Не планируется".

Вопрос третий: "Где можно приобрести отладочную среду и эмулятор для микроконтролеров Тесей, интересуют примерные цены на них". Ответ: "Отладочная среда предоставляется бесплатно, цены на микроконтроллер КР1878ВЕ1 можно узнать по е-mail ".

То есть - никакой маркетинговой стратегии, никакого плана перспективного развития. Причин такому положению может быть несколько. Во-первых, трудно выдерживать конкуренцию с такими гигантами, как Atmel, Microchip, Philips, Motorola, Intel, в составе периферии которых есть уже и компараторы, и АЦП, и ЦАПы, и формирователи сигналов ШИМ, и достаточное количество таймеров, а "Ангстрем" даже компаратор вводить не планирует. Во-вторых, общее экономическое положение в стране диктует свои условия, которые говорят не в пользу отечественного производителя. Остается только посочувствовать.

Рис. 3
Окно программатора П.Семенова

Но, тем не менее, микроконтроллер все же выпускается, живет своей жизнью, и его применяют в своих разработках не только радиолюбители, но и профессионалы. К примеру, достаточно серьезное предприятие - ЗАО "Взор-Плюс" - образованное сотрудниками НИИ измерительной техники (НИИИТ), г. Челябинск, в 1992г., с помощью данного микроконтроллера, а также использования новейших алгоритмов управления, позволило внедриться на рынок высокоточных систем управления. Блоки управления сухими и паровыми термостатами, разработанные сотрудниками фирмы с применением КР1878ВЕ1, позволили получить исключительные по точности характеристики при малых аппаратных затратах, а "хитрые" приемы цифро-аналоговой фильтрации - создать простой и надежный индикатор плотности грунта для новых виброкатков Челябинского тракторного завода. В Интернете, вне всякого сомнения, можно найти и другие примеры промышленного использования микроконтроллера. Так что продвижение отечественного МК на рынок не так уж и бесперспективно.

Теперь о разговорах на конференциях. Выдержки из "сабжей" приводятся с небольшой стилистической правкой, не затрагивающей сути сообщений.

Из конференции на сайте журнала "Радио":

…"Есть ли в природе нормальная система отладки программ для этого МК? Ангстремовские стандартные страдают множеством глюков и недоработок.
RubberBigPepper".

…"Опыта работы с "Тесеем" не имею, но смотрю и думаю, стоит ли использовать его вообще? Мне рассказывали, что ядро взято из ядра смарт-карт, которые сперва разрабатывались Ангстермом (аналогичных Em-marine), этим и объясняется загадочная бедность периферии кристалла, в частности, отсутствие UARTа.
Alecsandro".

…"Он быстрее PIC16F84 в 2 раза(инструкции выполняются за 2 такта), недорог, а с уартом, когда надо было, я извратился - сам сделал программный. У системы адресации есть свои плюсы - можно одну подпрограмму использовать для обработки разных данных - переключил регистр на другой адрес и радуйся жизни!
Caps lock".

…"На мой взгляд, контроллер стоящий. Если сравнивать с PIC16F84, то имеется несколько существенных преимуществ: более мощная (и удобная) система команд, быстродействие в 2 раза выше при той же частоте, развитая система прерываний, низкая стоимость. Ну и вроде как защита прошивки не снимается. Из недостатков: нет модификаций контроллера (с АЦП/ЦАП, большим объемом ОЗУ/ПЗУ и т.п.), несколько кривоватый софт и годами не исправляемые опечатки в описании. С первым приходится мириться, а вот опечатки известны практически все. Из альтернативного софта пока имеются только "прошивалки". В принципе, разработчики - грамотные люди. Могли бы и более продвинутый компилятор/отладчик создать. Тем более они обещали, что учтут пожелания/предложения.
AMV".

…"Я стою и думаю - осваивать или нет? Изучил документацию. Все в общем-то нравится, но уж больно неудобная система адресации.
IDiod".

… "Если говорить о цене, то КР1878ВЕ1 я брал за 110р. А если о программаторе, то для этого микроконтроллера он очень простой.
Asp".

В целом отзывы положительные и настроенные на использование МК.

"Сабжи" из русского сайта фирмы "Microchip" несут другое настроение, но и здесь можно найти положительные отзывы:

…"Особенно "радуют" такие высказывания - у него много "бэгов" , которые все обходятся, и почти не "бэги" это, а просто некоторое несоответствие официальной инструкции. Все типа "отлично". Работает - как САМ захочет.
Builder++".

… "Контроллер замка на DALLASовских ключиках на нем делал. Все проклял. Половину заменил сразу. А потом и все заменил на 16F84. Сначала грешил на память, но выяснилось что при низкой температуре они виснут. Кроме того, на несколько упаковок один бракованный был. Приходилось проверять перед установкой. Вроде мелочь, а на самом деле это - позор.
Petr".

… "Не все контроллеры работают на 8 МГц, не всегда работают порты на выход (примерно в 1-2 из 100 шт.), проблема с таймером (или генератором) - опять же в некоторых кристаллах изделие работает на 100%, но в какой-то момент "икс" таймер или генератор приостанавливается, по крайней мере, создаётся такой эффект. Про "кривое" описание и отладчик я скромно промолчу. Но вообще-то 1878 мне нравится.
Виктор".

… "Он аналог PIC16F84 только для внешнего мира, и то не полный. Внутри - совсем другой ассемблер, свой программатор. Единственный плюс - дешевый.
Hotson".

Теперь об отзывах, встреченных на сайте "Телесистем" в отношении программирования микроконтроллера:

… "Помогите: проблема с прошивкой КР1878ВЕ1. В мамять команд вроде пишет, но когда начинает читать, выдает сразу ошибку. Программатор - предложенный в техописании. На корпусе - 06.00, питание подаю через сетевой адаптер - 12В через КР142ЕН8 и 5 соответственно. Управление подачей питания через транзисторы. Но только что-то не получается: пробовал 4 кристалла, результата нет. Вот что пишет при программировании под ДОС:

Write Command_EEPROM..шшшшшшшшшшшшшш,

Read Command_EEPROM:_________________,
-E- Command_EEPROM Read Error.

Беда и только, но все равно хочется добить.
Диль".

Судя по той информации, которая поступает от радиолюбителей, ОАО "Ангстрем" действительно изменило алгоритм верификации EEPROM, но не уведомило об этом потребителей, хотя бы через сайт. Еще одна проблема, которую создали разработчики, связана с программной поддержкой средств программирования. Они остались нескорректированными, в чем можно убедиться, зайдя на сайт "Ангстрема" и "скачав" оттуда фирменные программаторы.

Кстати, о программаторах. Первый из них, предназначенный для работы из-под DOS, показан на рис.1. (файл p_wmct.exe, а также пример кодировки ЭСППЗУ Eeprom.dat). Запускается он из командной строки со следующими параметрами:

p_wmct.exe *.sav [/c:nnn] [/d:Eeprom]

При этом "nnn" задает значение конфигурационных байтов так:

xx1 - reset delay on;

xx0 - reset delay off;
00x - oscillator mode with RC;
01x - oscillator mode with quartz up to 100 kHz;
10x - internal oscillator mode 50 kHz;
11x - oscillator mode with quartz down to 100 kHz.
Eeprom - имя файла с расширением .dat (должен находиться в одной директории с файлом программатора).

В программаторе отсутствует опция отключения верификации памяти программ после программирования, поэтому и выдается ошибка.

Второй вариант фирменного программатора (файлы E03_prog.exe и e03prg.arp) рассчитан на использование в среде Windows 95 и Windows 98 (рис.2). Настройки конфигурационных байтов и подключение файлов с данными здесь происходит посредством расстановки соответствующих "галочек" и открытием стандартных win-диалогов. Эта программа мало отличается от DOS-варианта по функционированию. Она также не имеет опции отключения верификации ЭСППЗУ, что приводит к возникновению нештатных ситуаций и выдаче сообщений об ошибке верификации.

"Железяка" под эти два программатора приведена на странице 292 моей книги "Современный тюнер своими руками". Она подключается к LPT-порту компьютера. При подключении следует иметь в виду, что операционные системы выше Win-98 запрещают доступ к LPT порту напрямую (поскольку они выполнены по технологии NT). Так что рекомендуется либо пользоваться DOS-вариантом, либо не "слезать" с Win-98.

Еще один досадный "баг", замеченный при верификации - программатор при этой операции иногда портит данные в ЭСППЗУ, и после снятия напряжения программирования МК просто отказывается работать. Но чаще всего ошибка верификации не служит препятствием к функционированию МК после "прошивки".

Вообще-то по-хорошему специалистам ОАО "Ангстрем" нужно срочно привести в порядок весь "софт", представленный на сайте. Пока этого не произошло, читателям можно настоятельно рекомендовать программатор П.Семенова (рис.3), описанный подробно в книге "Современный тюнер своими руками". Эту программку можно загрузить со странички "Современный тюнер". Как видно из изображения вкладки "настройка", программатор имеет опцию отключения верификации, поэтому ее и нужно отключить.

"Железяка" для этого программатора приведена на стр.296-298. Обращаю внимание читателей на то, что на странице 297 (рис.3.14 а, сторона установки компонентов) в печатную плату вкралась небольшая неточность, которую можно исправить по рис.4. На сборочном чертеже (стр.298) обозначения VT1 и VT2 нужно поменять местами.

Рис.4
Исправление опечатки

Что еще важно учесть при программировании МК, выпущенных после начала 2000 года (маркировка 00 и далее)? Ценные сведения приведены в файле "рекомендации", который можно "скачать" в полном объеме с сайта "Ангстрема". В файле приведены сведения о цепях сброса, о потреблении тока на различных частотах работы и в различных режимах. В частности, сказано: "В микроконтроллерах, выпущенных с начала 2000 г, устранена нестабильность в работе в некоторых режимах, устранены сбои в работе, происходившие при записи в EEPROM данных. В настоящее время с EEPROM данных можно работать в любых режимах: в режиме WAIT и в режиме сканирования регистра состояния".

Рис. 5
Генератор

Использование генератора (рис.5) имеет ряд особенностей, приведенных в разделе 3. Так, например, при использовании кварцевого резонатора на частоту менее 100 кГц, необходимо всегда включать задержку пуска (reset delay). Использование режима sleep в этом случае запрещается. То же самое нужно учесть при использовании кварцевого резонатора на частоту более 100 кГц, за исключением режима sleep, который здесь применять можно. Внутренний генератор может работать без задержки пуска, но вывод 16 (OSC1) лучше "привязать" в схеме к "земле". Аналогично происходит работа с внешним RC-генератором. Наконец, при использовании внешнего тактового генератора в строке конфигурации программируется значение "01", сигнал подается на вывод OSC1.

В интернете можно встретить достаточно радиолюбительских сайтов, авторы которых с большим желанием осваивают программирование микроконтроллера, разрабатывают интересные конструкции на его основе, пишут программные средства, так или иначе облегчающие (по их мнению) работу с МК. Одним из самых активных радиолюбителей, работающим с детищем ОАО "Ангстрем", является Дмитрий Богомолов. На его страничке можно найти частотомер, цифровую шкалу, тахометр и несколько других конструкций (с исходными файлами для программирования). Мало того, частотомер, разработанный Дмитрием, был не так давно опубликован в журнале "Радио" под рубрикой "конструкция номера". Еще один сайт (к сожалению, он приостановил свою работу) находился здесь. На сайте были раздел ответов на вопросы по микроконтроллеру, конференция и несколько практических конструкций. Быть может, сайт "оживет".

Рис.6
Программа Сергея Алтухова

Сергей Алтухов разработал интегрированную оболочку для управления отладчиком, программатором и компилятором (рис.6). Сергей пишет: "Если Вам надоело работать с командной строкой, то эта программа для Вас. Скачивайте и пишите предложения и замечания. Файлы E03_prog.exe - программатор e03prg.arp - файл настроек программатора Tessa.exe - компилятор должны находиться в той же директории где и оболочка. DebugMCT.exe - отладчик должен быть проинсталлирован в любую директорию. Для этого запустите setup отладчика после разархивации". Скачать эту программку можно отсюда или отсюда.

Очень серьезный проект с коммерческим уклоном (по крайней мере, если ОАО "Ангстрем" относилось бы к своему детищу серьезнее, стоило приобрести эту работу) намечается на сайте Samodel. Web-мастер сайта пишет: "Данный сайт планируется развивать как информационный центр, который предлагает своим клиентам услуги по поставке и техническому сопровождению ряда аппаратных и программных продуктов отечественных разработчиков-самодельщиков, а также установлению контактов производителей продукции и заинтересованных в ней частных лиц или организаций. Наш сайт тесно связан со всеми разработчиками продуктов, которые мы предлагаем". Автор этой страницы занят созданием интегрированной среды разработки Tessa Builder, которая пока еще не готова, но, как обещается, вскорости будет выложена на страницу для тестирования всеми желающими. В случае удачного развития проекта планируется написание интегрированного в среду оконного отладчика кода и интегрированного модуля программирования микросхем. А пока выложены транслятор ассемблера "ktas" и дизассемблер "bv". К сожалению, не приведено ни слова о том, как этим ассемблером пользоваться, да ди стандартный дизассемблер выглядит крайне неудобно. Но вто что пишет по этому поводу разработчик: "Ассемблер и транслятор ktas (Klen Tessey Assembler tranSlator) предназначены для разработки и отладки прикладных программ выполняемых на микропроцессорах, основанных на архитектуре ядра "тесей" (An15E03, An15M05, An1301) OAO "Ангстрем". Для выполнения программирования и отладки необходимы IBM-совместимый персональный компьютер, компилятор ktas, отладчик и программатор, удовлетворяющий изложенным в техническом описании КР1878ВЕ1 требованиям. Транслятор является 32-битным аналогом оригинального транслятора tessa, предлагаемого ОАО "Ангстрем". Данный транслятор был написан с целью улучшить оригинальный транслятор tessa поставляемый в пакете разработчика прикладных программ для МК. Транслятор ktas может быть легко пользован в интегрированных средах разработки. Транслятор имеет некоторые отличия в мнемониках инструкций от оригинального. Также, по мнению автора, синтаксис tessa избыточен, поэтому ktas имеет более простой синтаксис. Несколько изменен порядок компоновки кода прошивки. Не поддерживаются арифметические операции над операндами, адресами и счетчиком команд, препроцессор транслятора не поддерживает некоторые возможности оригинального транслятора. Для тестирования введена подержка функции обработки аппаратных и програмных сбоев. Транслятор ktas является составной часть проекта Tessa Builder". В общем, все достаточно запутано.

Рис.7
Дизассемблер от Samodel
Рис.8
Tessa Builder от Samodel

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

Послесловие 1
Жизненный опыт показывает, что добиться от отечественного производителя работоспособной техники, которая более-менее устраивает по всем параметрам, можно только в том случае, если обращаться непосредствено к нему, а не рассуждать в интернет-конференциях. Они просто не отслеживаются! Поэтому очень рекомендую завалить "Ангстрем" письмами на адрес support@angstrem.ru, не дожидаясЬ. когда он, наконец, обновит информацию на сайте. Начало положено в следующем виде:

Ребята, добрый день! Уж подсуетитесь и исправьте средства программирования для КР1878ВЕ1, поскольку вы изменили алгоритм программирования. Во-первых, мне контроллер нравится, и я написал две книги ("Современный тюнер своими руками" и "Шина I2C в радиотехнических конструкциях"), в которых назвал МК отличным отечественным образцом и предложил на нем несколько практических конструкций. Теперь мне посыпался поток писем, в которых люди жалуются, что у них возникают проблемы с программированием новых МК. Я подготовил небольшую статью, в которой дал некоторые советы. Рекомендую ознакомиться. И вообще - просьба относиться к тем, кто применяет ваши изделия, более внимательно - хватит следовать традициям отечественного бардака. Будьте солидной фирмой!
С уважением, Б.Ю.Семенов

Послесловие 2
Уважаемый Б.Ю.Семенов!
Огромное спасибо за готовность оказать помощь. "Ангстремовское детище" я все-таки одолел. Опишу вкратце как мне это удалось. Итак, следующим шагом было удаление Windows ME и установка Windows 98. Но это ничего не дало: EO3_prog.exe по-прежнему не работала, как полагается. Почти без надежды предпринял последнюю попытку - воспользоваться DOS-овским вариантом программатора. МК заработал! Но, как оказалось, радоваться было рано - при повторной попытке МК вновь "замолчали". Пришлось опять немного помучаться. Вспомнил, что на какой-то конференции в internet встречал совет: увеличить напряжение программирования на 0,1 В. Поднял U-прогр на 0.5 В, впаяв кремниевый диод между общим проводом и средним выводом КРЕН8Б, а также резистор между этим выводом и выходом стабилизатора. МК вновь ожили, и живут уже две недели - прошивка проходит без проблем, МК работают.
С уважением, Андрей Гайдарь

Послесловие 3
Здравствуйте!
Наткнулся на ваш сайт, увидел комментарии о нашем самоделе. Непонятно, почему посчитали проект коммерческим? Ведь ни слова не сказано! Расчет был в первую очередь на радиолюбителей. Отсутствие активности на нашем сайте привело меня к мысли, что это не актуально. Несмотря на это, я все-таки закончил написание второй версии компилятора, которая существенно отличается от первой версии. У меня с программированием и запуском вообще проблем не возникло. Пользовался самодельным программатором по схеме ангстрема, компилятор свой только пользую. Если тема Вас и посетителей Вашего сайта интересует, пожалуйста, ответьте.
С уважением, Чернов Сергей aka Klen

Сергей Чернов
ака klen
Послесловие 4
Здравствуйте Борис!
Два года назад я писал транслятор и IDE для разработки программ под КР1878ВЕ1(An15E03). На вашем сайте упомянута моя работа. Проект не комерческий, а мой личный - для души. За державу обидно... Долгое время я не делал ничего в этом направлении, однако мои товарищи заставили дописать препроцессор для транслятора и выложить все результаты в сеть.
Времени на серьезное тестирование у меня нет, но если кто-то будет использовать мой транслятор, я готов быстро править ошибки. Пока что все, что я "зашивал", работает. Если вам интересен это проект и есть желание попробывать транслятор, то милости прошу на:

Немного о моем проекте. Началось все с того, что в журнале "Радио" опубликовали простую схему частотомера на КР1878ВЕ1 и программатора к нему. До этого момента все, что было связано с микроконтроллерами и с более серьезными вычислителями типа ARM, отпугивало отсутствием опыта, ценой фирменных программаторов и еще много чем. После того, как прочел статью, понял - пора. Этот момент во многом определил то направление, которым я сейчас занимаюсь в области радиоэлектроники.

Лично для меня КР1878ВЕ1 (далее An15E03) оказался чрезвычайно простым для освоения - на мой взгляд, сама архитектура микроконтроллера по заложенным концепциям очень похожа на архитектуру ATMEL Tiny. Конечно, имеются принципиальные отличия: например, способы адресации. В An15E03 реализована концепция регистрового окна, то есть непосредственно доступная в данный момент область регистрового ОЗУ определяется значениями регистров-селекторов. Это, с одной стороны, позволяет сократить размер команд и удешевить контроллер, а с другой - удобно оперировать структурами данных. За это приходится платить необходимостью переключения регистров-селекторов.

С какими проблемами я столкнулся на этапе освоения? Во-первых, реализация тактового генератора оставляет желать лучшего. Я обратил внимание, что даже в сериях, выпущенных после 2000 года, отсутствует стабильность работы этого модуля. Часть микросхем "раскачивает" кварцевый резонатор нормально, для части нужно "кварц" подбирать, чать вообще "раскачать" невозможно и приходится "вешать" внешний тактовый генератор. Во-вторых, состояние средств разработки и обеспечение поддержки пользователей со стороны производителя. Здесь я ставлю "Ангстрему" твердую "двойку" с "плюсом".

Теперь - собственно о том, почему я был вынужден разрабатывать собственный транслятор. Столкнувшись с тем, что оригинальный транслятор tessa настолько убог и отвратен, что работать с ним по-человечески ну никак нельзя, мне пришлось написать свой транслятор. Первая причина - невозможность использования при трансляции нужного количества модулей (tessa поддерживает очень ограниченное число модулей). И вторая причина - очень неудобный синтаксис языка (это мое субъективное мнение). Когда я начинал этот проект, мои познания в области построения трансляторов были более чем скромными, поэтому некоторые решения могут вызвать изумление.

Рис.9
Структура транслятора klen для An15E03

При создании транслятора ставилась задача разработки структуры программы, использующей компонентный подход и обладающей максимальной гибкостью. Результатом движения в этом направлении является разработанное ядро транслятора, алгоритм работы которого управляется внешними данными, содержащимися в XML-файле конфигурации транслятора. Этот файл определяет алгоритм работы препроцессора и компилятора ассемблерных инструкций. Таким образом, теперь не нужно заново переписывать транслятор под другую платформу - достаточно исправить XML-файл. Для описания проекта используется XML-файл описания проекта.

Алгоритм трансляции состоит из трех этапов: препроцессорной обработки модулей исходного кода (слияние текста модулей в одну секцию кода, условная обработка, макроподстановка, выдача сообщений на консоль), трансляции (формирование секции данных, трансляция ассемблерных данных в опкоды процессора) и сборки (связывание символов с их адресами, генерация символов в сыром и ангстремовском формате). Полная документация по использованию транслятора имеется на моем сайте. Транслятор можно "скачать" отсюда или с моей страницы.

Для комфортной разработки программ я предлагаю использовать редактор Programmer Notepad (ссылка на "скачивание" есть на моем сайте). В свое время я пытался написать интегрированную среду для разработки, но это потребовало столько сил, средств и времени, что я пока решил пользоваться PN. Это оказалось гораздо лучше - редактор вполне пригоден для ведения проекта.

© Авторская страница Б.Ю.Семенова.