Привет, читатель!
Данную статью меня попросил опубликовать мой друг, Евгений, у которого пока нет аккаунта на habrahabr. Поэтому ниже представляю вашему взору его статью.
В последние время, на работе, мне довольно часто приходилось иметь дело с таким семейством микроконтроллеров как PSoC Cypress (http://www.cypress.com). До этого я ни разу не то что не работал с этим семейством МК, я, если честно, даже о них ничего не слышал. Собственно, первым делом, как обычно, я начал с изучения всей документации, чтения статей, поиска примеров и т.п., думаю, так делают все. И я столкнулся с такой проблемой, как катастрофический недостаток русскоязычного материала по этой тематике. На мой взгляд, это довольно серьезный пробел. Именно поэтому хотелось бы попробовать написать статью или даже цикл статей на эту тему. Сразу хотелось бы сказать, что написание статей, это для меня нечто новое, поэтому прошу не серчать за подачу материала и другие огрехи, надеюсь, со временем исправлю это. Итак, поехали…
Что такое PSoC и с чем его едят?
PSoC — Programmable System-on-Chip, это и скрывается за аббревиатурой. Программируемая система на кристалле, в микроэлектронике — электронная схема, выполняющая функции целого устройства (например, компьютера) и размещенная на одной интегральной схеме, окончательная конфигурация которой программируется самим пользователем. Фирма Cypress Semiconductors являлась одним из первооткрывателей этого направления на рынке МК. На данный момент Cypress является одними из лидеров в данной области. Существует огромная линия МК для решения самых разнообразных задач. Об том более подробно можно прочитать на сайте производителя.
Перейдем непосредственно к проектированию. Нам понадобится пакет программ PSoC Designer (последняя версия 5.2).
Хочу сразу обратить внимание на изображение, как мы видим, на нем представлен «конструктор». И не просто так, ведь изюминкой Cypress является как раз подход подключения различных цифровых и аналоговых блоков. Это позволяет работать в этой среде даже новичкам. Все интуитивно понятно и это не может не радовать.
Перейдем к созданию самого проекта. После обычного new project и выбора нужной директории появляется следующее меню:
Видим, что можно выбрать нужный Device (это и есть МК) и выбор языка написания.
Кстати, тут должен вспомнить, что продукт распространяется на бесплатной основе, но для того, чтобы снять различные ограничения в объеме кода для языка С, требуется зарегистрировать вашу версию. Я для примера выбрал Device CY8CLED04-68LFXI, язык С. Нажимаем ок и видим:
В области 1 у нас настройка глобальных параметров МК (таймеры, режимы работы, питание и т.д.).
Область 2 — это область настройки Pin'ов. Выбираем ножку и настраиваем ее как душе угодно. Все возможные варианты заранее написаны и сразу видны.
Область 3 — это область подключения модулей, в ней содержатся все доступные модули для данного МК.
Ну, и наконец, 4 область, в ней мы видим какое-то количество блоков, которые можно подключить. Также в этой области настраивается коммутация различных элементов. Каждый модуль занимает какое-то определенное количество блоков. Тут можно встретиться с проблемой их нехватки. К сожалению, ничего нельзя сделать, кроме как выбрать другой МК с целью повышения количества доступных блоков. Сейчас мы подключили блоки Cap Sensors (сенсорная панель) и LED (led диод).
Все блоки после вставки подключаются нужным образом сами.
Программирование само по себе легкое, так как вместе с блоками подключаются автоматически библиотеки этих блоков, в которых описано множество различных функций для работы с ними. Если хорошо изучить эти библиотеки, то процесс программирования очень и очень сильно упрощается.
К минусам всего этого хочется отнести отсутствие средств для программной отладки. Точнее они есть, но все функции для отладки включаются после приобретения разнообразных средств для эмуляции (СY3215-DK (ICE-Cube)).
Сам процесс зашивания программы осуществляется с помощью Mini Prog и программатора PSOC Programmer.
Для первой статьи, я думаю, достаточно. Если будет интерес, то детально разберу многие модули и различные примеры. Всем спасибо за внимание.
Автор: lukonin