Если среднестатистического русскоговорящего разработчика микроконтроллерной электроники попросить назвать три-пять наиболее известных или крупных производителей микроконтроллеров, вероятнее всего мы услышим в ответ такие имена, как Microchip, Atmel, TI или STM. Кто-то назовет также NXP, Freescale, Samsung или Fujitsu. Но мало кто вспомнит про еще одного производителя, который на постсоветском пространстве почти неизвестен.
Речь идет о японской компании Renesas Electronics, которая, между тем, в своих годовых отчетах демонстрирует весьма интересные данные (рис. 1).
Таким образом, «темная лошадка», о продуктах которой пойдет речь в данной статье, является лидером мирового рынка как микроконтроллеров общего назначения, так и рынка автомобильной электроники, и имеет полное право называть себя «поставщиком микроконтроллеров №1 в мире». Секрет такого успеха компании прост: Renesas Technology появилась в 2003 г. как совместное предприятие Hitachi и Mitsubishi, а в 2010 г. к ним также присоединилась Nec Electronics, образовав совместное предприятие Renesas Electronics.
Итог этого сотрудничества – возможность использования хорошо зарекомендовавших себя ядер трех компаний совместно с эффективной специализированной периферией: от Hitachi достались ядра H8, H8S, H8SX и SuperH, от Mitsubishi в руки разработчиков попали M16/M32, R32, 720 и 740, а от NEC – линейки ядер V850 и 78K.
Получив такое количество наработок, Renesas начала разрабатывать новые линейки с использованием доступных компаниям–участникам технологий. На замену Hitachi H8SX и Mitsubishi R32C пришла линейка 32-разрядных микроконтроллеров RX. В качестве преемника популярного NEC V850 была разработана RH850 – линейка микропроцессоров для применения в автомобильной электронике. Также было разработано ядро R8C как решение нижнего ценового диапазона, совместимое с Mitsubishi M16C.
Первой самостоятельной разработкой Renesas после объединения с NEC стало новое 16-разрядное ядро RL78 с CISC-архитектурой (рис. 2). В нем разработчики попробовали совместить положительные стороны R8C и 78K0 в одном семействе. На данный момент семейство можно условно разделить на пять «веток» для различного применения:
- RL78/G1x – микроконтроллеры общего назначения: до 28 каналов ADC, DAC, USB, I2C, SPI, PWM, RTCC.
- RL78/L1x – микроконтроллеры управления ЖК-панелями: поддержка USB 2.0, управление ЖК-индикаторами до 4х53/8x48 сегментов.
- RL78/F1x – микроконтроллеры для автомобильной промышленности: поддержка интерфейса CAN, управление двигателями, расширенный диапазон температур (до +150° C).
- RL78/D1x – микроконтроллеры для приборостроения: контроллер шаговых двигателей на четыре канала прямо «из коробки», управление ЖК-индикаторами до 4х53 сегментов, CAN.
- RL78/I1x – микроконтроллеры для управления освещением: DALI/DMX512, PWM.
Контроллеры всех семейств могут похвастаться наличием линий DMA, ADC/DAC-преобразователями, поддержкой интерфейсов I2C и SPI, а также поддержкой работы в промышленной сети LIN.
Конвейер CISC ядра RL78 состоит из трех стадий, около 86% инструкций могут быть исполнены за один-два процессорных цикла. Также поддерживается аппаратное исполнение MAC-команд 16 х 16 бит.
В качестве основного преимущества микроконтроллеров RL78 производитель заявляет минимальное энергопотребление, называя линейку не иначе как True Low Power (по-настоящему низкое энергопотребление). Несмотря на это, можно отметить сохранение высокой производительности и широкий диапазон рабочих напряжений.
Для наглядности в общей таблице представлены ключевые характеристики данного контроллера и основных конкурентов от «народных» брендов.
В этой таблице намеренно не упоминается периферия, но и тут перевес определенно не в пользу конкурентов — с периферией у Renesas традиционно все очень хорошо.
Что касается полезных особенностей некоторых представителей линейки, можно отметить следующие:
- Data transfer control — возможность пересылки данных между периферийными модулями без участия процессора.
- Event link controller — обмен прерываниями между периферийными модулями без участия процессора.
- Flash-память c ECC.
- LVD — детектирование низкого напряжения.
- Возможность выдавать до 20 мА на GPIO-пин, толерантные 5-В пины.
Все это звучит хорошо и красиво, но так ли удобны микроконтроллеры Renesas при разработке? Чтобы проверить это, возьмем отладочную плату Renesas YRPBRL78G13 (рис. 3) и попробуем оценить порог вхождения для использования микроконтроллеров Renesas серии RL78.
«На борту» платы установлен микроконтроллер R5F100LEAFB, который относится к семейству RL78/G13: 64 кбайт flash-памяти, 4 кбайт RAM, также дополнительно выделено 4 кбайт flash-памяти с увеличенным количеством циклов перезаписи для хранения данных. Встроенный ADC на 12 каналов обеспечивает разрешение до 10 бит, а DMA на два канала поможет сохранять полученные данные в памяти. Четырнадцать каналов таймеров, семь каналов PWM, три UART и семь I2C — вполне неплохо для «малыша» в корпусе LFQFP64. Данная плата отнесена самим Renesas к разделу демонстрационных (Promotion Boards), поэтому предоставляется бесплатно, как отладочная плата YRPBRL78L12 для RL78/L12 и ряд других. Для желающих существует также большое количество «больших» отладок, предлагаемых на платной основе.
Комментарий специалиста
Дмитрий Покатаев, инженер по внедрению холдинга PT Electronics
На настоящий момент линейка Renesas RL78 очень обширна, она включает в себя и совсем маленькие микроконтроллеры из серии RL78/G10 и микроконтроллеры с драйвером дисплея RL78/L1x. Широкий диапазон корпусов от 10 до 100 pin, память программ до 512 Кб, наличие широкого спектра периферийных устройств (в том числе USB) и доступные средства разработки и отладки – в сочетании с невысокой ценой и настоящим японским качеством – делают данную линейку незаменимой в ответственных приложениях.
Плата выполнена в компактном формфакторе 100 х 30 мм и кроме самого контроллера RL78/G13 содержит аппаратный отладчик, позволяющий не только прошивать плату по USB, но и производить внутрисхемную отладку в реальном времени. Плата предусматривает питание как от шины USB, так и от внешнего источника питания. На рис. 4 показана схема YRPBRL78G13.
Внешнее питание (+5 В) может быть подведено на плату напрямую с помощью разъема J4, при этом необходимо перекоммутировать расположенные рядом контактные площадки. С помощью перемычек J6–J9 можно выбрать режим работы USB-порта, OCD (On Chip Debug) или Vir tual UART (эмулятор COM-порта через USB с помощью дополнительного 8-битного контроллера μPD78F0730 ранее упомянутого семейства 78K0). Vir tual UART, впрочем, не всегда удобно использовать из-за необходимости постоянно переставлять джамперы при отладке. Поэтому разработчики предусмотрели возможность использования внешнего отладчика Renesas E1, подключаемого через разъем J5.
На длинные линейки J1 и J2 выведены практически все пины микроконтроллера. Коннектор J10 используется для прошивки вспомогательного контроллера 78K0 на производстве. Для контроля энергопотребления микроконтроллера питание к нему подведено через перемычку J3.
Также на плате расположены два светодиода (индикатор питания и пользовательский светодиод) и потенциометр, подключенный к 10-разрядному ADC микроконтроллера. Что интересно, для регулирования потенциометра в комплекте с платой идет маленькая отвертка.
Разработка начинается с документации, и тут Renesas можно назвать примером для подражания: спецификацию без проблем можно найти в свободном доступе, и с их актуальностью и полнотой чаще всего нет проблем. Особое внимание производитель традиционно уделяет описанию периферии и замечаниям по применению (Application Notes).
В связи с широкой распространенностью у Renesas также есть свое онлайн-сообщество со скромным названием Renesas Rulz.
Язык написания кода для RL78 — Си. В качестве среды разработки предлагается многими любимый IAR Embedded Workbench с поддержкой RL78 (версия EWRL78), традиционно существует его бесплатная версия KickStart edition с ограничением на размер кода в 16 кбайт. Встроенный в IAR отладчик C-SPY полностью поддерживается: можно ставить точки останова и свободно гулять по коду с просмотром регистров/переменных. Также в качестве среды разработки возможно использование e2 studio (Eclipse Embedded Studio) с отладчиком GDB, а также множество других утилит.
Код прошивки можно писать как для «голого» железа, так и с использованием RTOS: производитель предлагает при-менять реализации FreeRTOS, CMX-RTX, Micrium μC/OS, OSEK Run Time Interface (ORTI), Express Logic или Segger embOS. Для любителей домашней автоматизации существует реализация стека KNX.
Для заливки прошивки в контроллер существует множество приложений, например, бесплатная утилита WriteEZ5. Она универсальна: для поддержки определенной модели микроконтроллера достаточно скачать соответствующий конфигурационный файл в формате pr5 и указать на него программе перед прошивкой.
Наиболее интересный подход с точки зрения разработки программного кода Renesas демонстрирует своей графической утилитой Applilet, которая позволяет в удобном человеко-понятном виде сконфигурировать всю используемую микроконтроллером периферию, gpio, подсистему прерываний и режимы работы ADC/DAC, а затем на основании этой конфигурации сгенерировать код инициализации и «заглушки» для всех обработчиков событий. Сгенерированный код можно затем использовать в качестве основы проекта и, при условии соблюдения правил организации кода, в любой момент иметь возможность изменения конфигурации готового проекта.
Такой подход позволит сконцентрироваться на логике приложения, поскольку инициализацию периферии и API для ее управления сгенерированный утилитой код возьмет на себя. При этом нет необходимости разбираться с монстроподобными библиотеками работы с периферией, как это часто бывает у других вендоров, а генерируемый код гарантированно содержит минимум избыточности.
Таким образом, порог вхождения для RL78 значительно снижается: даже разработчик без опыта программирования микроконтроллеров сможет написать простую прошивку за минимальное время.
Антон Миканович,
инженер-программист дизайн-центра электроники Promwad
Статья опубликована в журнале «Вестник Электроники» №2 2014