Мар 152012
 

Недавно в новостной рассылке от STMicroelectronics сообщалось о выходе 2-ой версии программы MicroXplorer. В анонсе упоминались следующие возможности программы:

Во-первых, это конфигурация выводов микроконтроллера с возможностью подключения к ним внутренних периферийных устройств, а во-вторых, параметрический выбор микроконтроллера серии STM32 с необходимым набором периферии. Решил посмотреть какие реальные возможности этой программы и может ли она пригодиться. (На данный момент уже вышла 3-я версия программы, в которой добавлена функция генерации кода для альтернативных функций портов ввода-вывода. Подробности об этом обновлении в статье STM32. В MicroXplorer добавлен генератор кода.)

Итак, заходим на сайт фирмы и качаем оттуда программу и документацию. Ссылки на STMicroelectronics не даю, поскольку совсем недавно обнаружил, что адреса у них могут меняться и ссылка становиться нерабочей. Можно в поиске на главной странице набрать “microxplorer”, а затем перейти по первой ссылке. Или можно загрузить с этого сайта, добавил в архив, там же и документация. Вот ссылка — MicroXplorer

Что еще требуется? Приложение заработает только если на компьютере установлена Java. Тут идем на сайт Oracle и качаем оттуда Java JRE версии 6. На главной странице заходим в раздел Downloads –> Java for Your Computer.

Oracle

Жмем самую большую кнопку

Скачать Java бесплатно

И выбираем тип установки, я выбрал установку из сети

Установка

Устанавливаем Java и MicroXplorer. У меня особый сложностей не возникло, но не исключаю что мне просто повезло. Совсем недавно хотел написать о программе STM Studio,  сделал рабочий пример, проверил. А на другом компьютере все встало криво и так и не заработало. Так что, возникнет ли сбой в связке “Приложение – JAVA – Пиратская Windows” сказать трудно, это примерно 50/50. Если все же повезло, читайте дальше.

Запускаем программу.

Запуск программы

Идем в меню Tools –> MCUs Selector.

Выбор МК

А далее, в левой части выбираем необходимую нам периферию или ее количество. В поле Max указано максимально возможное число. Допустим нам Ethernet нужен, ставим галочку. Видите как сократился список в правой части?

Выбор МК с Ethernet

В верхней части три выпадающих списка: Family, sub-Family, Package. У Family только один вариант — STM32. А в списке sub-Family можно выбрать уже конкретную серию из этой линейки. Как видно ниже, для серии STM32F100 сразу же отобразился список доступной периферии. Она теперь отмечена зеленым цветом, а недоступная стала неактивной.

sub-Family

В списке Package – выбор нужного корпуса.

Ну что ж, ставим плюсик, опция полезная. Линейка STM32 уже достаточно обширная, и эта программа может облегчить работу при подборе кристалла с необходимой периферией.

Следующая функция программы – конфигурация портов.

Выбрали нужный кристалл, жмем ОК. К примеру STM32F103 в корпусе LQFP64. Может отобразиться несколько доступных вариантов. Двойным кликом выбираем чип STM32F103R(4-6)Tx.

STM32F103

Слева список доступной периферии. Над ним 3 кнопки: Развернуть (Expand All), Свернуть (Collapse All) и Деактивировать все (Disable All). Можно изменить вид списка – Accordion Interface

Интерфейс списка периферии

Попробуем что-нибудь выбрать. К примеру, раскрываем список ADC1  и ставим галочку у IN14. Сворачиваем список и видим что возле ADC2 появился значок.

ADC1 and ADC2

Это означает, что какие-то входы этих двух АЦП попадают на один и тот же вывод МК, и для ADC2 этот вход уже нельзя будет использовать. Или придется делать ремаппинг выводов, если это возможно. Раскроем список ADC2 и посмотрим что у нас там.

ADC2_IN14

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

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

Назначение выводов

А теперь посмотрим как можно сделать ремаппинг выводов. Для начала сбросим всю ранее заданную периферию нажатием кнопки   Disable All  . Далее заходим в пункт USART1 и устанавливаем для него асинхронный режим работы Asynchronous. И видим, что теперь таймер Tim1 становится полностью недоступным.

Недоступен Tim1

Удерживая Ctrl, наводим курсор на выводы МК, сконфигурированные под USART и жмем левую кнопку мыши. Если для этих выводов возможен ремаппинг, синим цветом подсветятся те выводы, на которые можно переназначить USART.

Ремаппинг USART

А теперь можно просто мышью перетащить эти выводы в нужное место. И увидим следующую картину

Ремаппинг USART_2

Теперь USART у нас перебросился в PORTB, а выводы PA9 — PA10 можно задействовать для таймера TIM1.

Что еще здесь есть полезного? Можно сохранить эту конфигурацию, чтобы потом продолжить работу: File –>Save Config, File –> Load Config. Можно сохранить файл отчета, в котором будут указаны функции, закрепленные за конкретными выводами. Все это будет в текстовом файле. Для этого выполняем Tools –> Generate Report или же жмем кнопку на панели инструментов, она в виде свитка Отчет .

Самая нижняя панель, кроме списка микроконтроллеров содержит вкладку Help. Информации там немного, так и сама программа простенькая. Две другие вкладки: Code и Console пока пусты. Видимо – задел на будущее.

Итак, выводы. Что дает эта функция? Посмотреть расположение линий портов на кристалле, не залезая в datasheet :). Сконфигурировать выводы, а затем наглядно видеть, какая функция за ними закреплена. Полезно. И, самое полезное тут, что можно создать несколько конфигураций, если за одним выводом в разных частях программы закреплены разные периферийные устройства. Поможет увидеть все наглядно, какие выводы надо перенастраивать. Ведь можно голову сломать, рыская по коду в поиске, почему, к примеру, не хочет работать USB. А взглянув на картинку, можно сразу увидеть, что нужный вывод настроен на работу с USART. И его нужно вовремя перенастроить для обработки другого участка кода.

И напоследок. Если загружали архив с этого сайта по ссылке в начале статьи, там внутри есть еще один архив microxplorer_eclipseplug.zip. Это плагин данной программы, встраиваемый в среду разработки Eclipse. Работать с ним пока не пробовал, но желание есть. В ближайших планах поработать с чипом STM32F103, вот на нем и попробую, там возможности побольше, чем у L – серии.

Другие статьи: