Применение low cost микроконтроллера UPD78F9212
от NEC Electronics
Андрей СЕДНЕВ
sednew@eltech.tver.ru Алексей ЕГОРОВ
al@eltech.tver.ru
Совершенствование электронной техники идет не только в направлении усложнения электронных изделий и увеличения их функциональности, но и в направлении удешевления уже существующих решений, которые становятся доступными и рентабельными там, где еще совсем недавно применение электроники было непозволительной роскошью.
Процесс снижения себестоимости коснулся всех функциональных групп электронных изделий, и, в частности, такой группы, как микроконтроллеры. Многие производители микроконтроллеров имеют в палитре производимых ими кристаллов особо выделенные модели low cost (low cost — дешевые), предназначенные в основном для массовых, но недорогих изделий. Функциональность таких микроконтроллеров, как правило, весьма ограничена, но в тех случаях, когда этой ограниченной функциональности хватает, low cost микроконтроллер не знает себе равных. И в самом деле, зачем платить, скажем, $10 там, где можно обойтись 40 центами?
В этой статье рассматривается достаточно интересный, на взгляд авторов, представитель дешевых микроконтроллеров — семейство 78K0S/Kx1+ производства фирмы NEC Electronics. Несмотря на свое достаточно уверенное положение на электронном рынке, NEC Electronics уделяет внимание и таким «мелочам», как микроконтроллеры нижнего ценового диапазона, постоянно совершенствуя и удешевляя их. Лучший тому пример — семейство 78K0S/Kx1+ (структура семейства представлена в таблице).
Итак, рассмотрим составляющие 78K0S/Kx1+ (рис. 1):
1) Мозгом микроконтроллера является ядро 78K0S, имеющее восемь 8-битных регистров общего назначения. Эти регистры, в зависимости от выполняемой команды, трактуются либо как восемь 8-битных регистров, либо как четыре 16-битных, что позволяет в некоторых случаях одной командой обрабатывать 16-битные данные (или указатель). Следует отметить, что регистры неравноценны — существует целый ряд команд, которые могут быть выполнены только с применением заранее предопределенных регистров и никаких других. Тем не менее их активное использование заметно увеличивает скорость выполнения программы.
Таблица. Структура семейства 78K0S/Kx1 +
Семейство Наименование Объем памяти Flash, кбайт ОЗУ, байт АЦП Тип корпуса
78K0S/KU1 + uPD78F9200 1 128 10 6итх4 канала SS0P10 ■
uPD78F9201 2 128
uPD78F9202 4 128
uPD78F9500 "■* 1 128 Нет
uPD78F9501 2 128
uPD78F9502 4 128
78K0S/KY1+ uPD78F9210 1 128 10 6итх4 канала SS0P16, WLCSP (1,93x2,24 мм) щдвд
uPD78F9211 2 128
uPD78F9212 4 128
uPD78F9510 1 128 Нет
uPD78F9511 2 128
uPD78F9512 4 128
78K0S/KA1+ uPD78F9221 2 128 10 6итх4 канала SS0P20 пяяяяпппяп
uPD78F9222 4 256 т т
uPD78F9521 2 128 Нет
uPD78F9522 4 256 У У У У У У У У У У
78K0S/KB1+ uPD78F9232 4 256 10 6итх4 канала SS0P30 ншпшшшп
uPD78F9234 8 256 Я. і
uPD78F9532 4 256 Нет
uPD78F9534 "■* 8 256 УУУУУУУУУУУУУУУ
Порты В/В 10 (78K0S/KU1+) 14 (78K0S/KY1+) 17 (78K0S/KA1+) 26 (78K0S/KB1+)
Узел сброса (POC/POR)
Детектор
снижения
напряжения
LIN UARTxl (78K0S/KA1+) (78K0S/KB1+)
8-разрядное ядро
Flash-пэмять 1/2/4/8 кбайт ОЗУ 128/256 байт
78KOS
Кварцевый Встроенный Встроенный
генератор генератор генератор
1-10 МГц 8 МГц 240 кГц
Контроллер
прерываний
Таймер 0 1x16 бит
Таймер Н 1x8 бит
Таймер 8 1x8 бит (78K0S/KA1+) (78K0S/KB1+)
Сторожевой
таймер
Аппаратное умножение 8x8 бит (78K0S/KB1+)
Рис. 1. Структура 78K0S/Kx1 +
Рис. 3. Внешний вид устройства управления для источников бесперебойного питания
2) От 1 до 8 кбайт энергонезависимой Flash-памяти. Многие производители микроконтроллеров разрабатывают изделия с использованием Flash-памяти, однако семейство 78K0S/Kx1+ одно из немногих в своем ценовом диапазоне имеет до 8 кбайт Flash-памяти, в которую данные может заносить сама работающая программа. Это позволяет с некоторыми ограничениями использовать Flash-память как EEPROM-память. Программная запись во Flash-память — это распространенная функция; во многих микроконтроллерах эта возможность реализована, но все они из более высокого ценового диапазона.
3) 128 байт оперативной памяти.
4) Один 16-битный счетчик-таймер.
5) Один или три 8-битных счетчика-таймера.
6) Один сторожевой таймер.
7) Один 4-канальный 10-битный АЦП (опция).
8) От 14 до 26 портов ввода/вывода общего назначения.
9) Встроенный тактовый кольцевой генератор на 8 МГц (по желанию разработчика в качестве тактового генератора можно использовать либо вышеупомянутый генератор — тогда не нужно никаких внешних элементов, либо кварцевый генератор на основе встроенного в кристалл инвертирующего усилителя — тогда необходимы внешние элементы: кварцевый резонатор и 2 конденсатора малой емкости).
10) Схема сброса и перезапуска микроконтроллера при включении или сбоях питающего напряжения.
11) Программируемый супервизор питания, позволяющий предупредить о снижении напряжения питания до уровня сброса микроконтроллера.
12) Старшие представители семейства также могут иметь интерфейс UART и аппаратный умножитель.
Выше перечислены аппаратные ресурсы
рассматриваемого семейства. Перед авторами
стояла задача создания предельно дешевого
электронного устройства для автоматической пропускной системы в охраняемое помещение (например, в подъезд жилого дома). В качестве механического барьера в такой системе выступает обычная дверь, оснащенная электрически управляемым замком («липучкой»), а в качестве электронного ключа («таблетки») — DS1990A фирмы Dallas Semiconductor. Для разработки был выбран микроконтроллер UPD78F9212, при этом остались невостребованными АЦП и 2 таймера (в то время еще был недоступен микроконтроллер uPD78F9512). На электронику возлагалась задача прочитать поднесенный к контактору ключ, на основании базы данных о «своих» ключах, хранимой во Flash-памяти, определить принадлежность ключа к «своим» и открыть (для «своих») дверь посредством подачи сигнала на электрически управляемый замок. Задача была полностью решена, и наиболее важным параметром для нее оказался объем Flash-памяти, которая была целиком использована. Следует отметить, что для этого приложения способность микроконтроллера писать данные в свою Flash-память во время работы принципиально необходима. В противном случае невозможно было бы запомнить базу данных о «своих» ключах. Разработанное устройство получило название Z5R-E (рис. 2) и в данный момент производится в массовых количествах фирмой «Электронные Технологии» (г. Тверь) [1].
Вторая задача, которая также была успешно решена с помощью микроконтроллеров семейства 78K0S/Kx1+, — разработка устройства управления для источников бесперебойного питания (рис. 3). Требования, предъявляемые органами сертификации к источникам бесперебойного питания, включают необходимость индикации наличия или отсутствия аккумулятора, что заставляет разработчика встраивать в схему микроконтроллер. Алгоритм определения наличия аккумулятора сводится к периодическому размыканию цепи заряда и измерению напряжения на клеммах, к которым
подключается аккумулятор. Дополнительно к задаче индикации тот же микроконтроллер обеспечивает защиту аккумулятора от глубокого разряда. То есть при отсутствии напряжения сети ~220 В микроконтроллер отключает аккумулятор от нагрузки, если напряжение на нем снизится до 10,5 В. Это позволяет предотвратить выход аккумулятора из строя при длительном пропадании напряжения сети (явление довольно частое) и тем самым существенно увеличить срок жизни аккумулятора.
В данном случае речь идет о массовых дешевых источниках питания небольшой мощности, поэтому выбор микроконтроллера жестко ограничен ценой и доступным пространством печатной платы. При этом от микроконтроллера требуется наличие: встроенного АЦП, который обеспечивает точность измерения и повторяемость параметров схемы, наличие встроенного супервизора питания, достаточно мощные порты ввода/вывода для управления светодиодами, минимальное количество внешних компонентов, возможность многократного внутрисхемного программирования, наличие режима пониженного энергопотребления, что важно в режиме защиты аккумулятора, а также высокая надежность. Младшие модели микроконтроллеров фирмы NEC практически идеально соответствуют этим требованиям.
Несколько слов о внутрисхемном программировании. Опыт работы показывает, что использование однократно программируемых микроконтроллеров нежелательно из-за возможного брака при программировании. Для некоторых микроконтроллеров осуществление внутрисхемного программирования связано с ограничениями (например: программирование невозможно при наличии на плате конденсатора большой емкости в цепях питания). Это неудобно, так как заставляет разрывать процесс пайки на два этапа и усложняет процесс перепрограммирования. У микроконтроллеров производства NEC такие ограничения отсутствуют.
Процент брака на выходе операции внутрисхемного программирования партии из 5000 изделий (включая брак пайки и брак в процессе программирования) составил 2,2%. По другим микроконтроллерам, применявшимся на нашем предприятии, этот показатель достигал 5%.
Практический интерес представляют также существующие средства разработчика для рассматриваемого семейства микроконтроллеров. Помимо бесплатного ассемблера и Си-компилятора от самой фирмы NEC, существует еще интегрированная среда IAR Embedded Workbench от фирмы IAR Systems, включающая редактор, ассемблер, Си-компилятор, симулятор, справочную систему и несколько дополнительных утилит. Программное обеспечение от NEC полностью бесплатное для всего семейства, Си-компилятор от IAR бесплатный для микроконтроллеров с размером Flash-памяти до 4 кбайт, ассемблер от IAR ограничений не имеет. Из средств разработчика также следует упомянуть достаточно удобный оценочный комплект «Low Pin Count Do it!» [2], эмулятор QB-78K0SMINI-EE и универсальный программатор-отладчик QB-MINI2-EE. Для загрузки исполняемого модуля в микроконтроллер можно использовать один из специализированных программаторов от NEC Electronics (например, PG-FPL2 или PG-FP4).
При необходимости можно спроектировать свой собственный программатор [3], так как протокол программирования этих микроконтроллеров подробно описан в технической документации [4]. Для целей массового производства изделия Z5R-E (см. выше) авторами статьи был спроектирован комплексный прибор — программатор-тестер, выполняющий как проверку всей аппаратуры изделия Z5R-E с использованием загрузки тестирующей программы, так и внутрисхемное программирование микроконтроллера UPD78F9212, входящего в состав Z5R-E. Программирование UPD78F9212 осуществляется по 3 проводам (не считая общего провода и шины питания).
Подводя итог, следует отметить, что по соотношению цены и возможностей микроконтроллер UPD78F9212 достойно выглядит на фоне своих ближайших конкурентов и вполне может быть рекомендован для тех проектов, где низкая цена конечного изделия является определяющим фактором. ■
Литература
1. http://www.eltech.tver.ru/z5r-e.html
2. http://www.eltech.spb.ru/techinfo.html?aid=243
3. http://www.eltech.spb.ru/flashprog.html
4. http://www.eu.necel.com/_pdf/ U17470EJ4V0AN00.PDF