В последнее время Arduino-подобными платами уже никого не удивить, как и китайскими клонами оных. В этой статье речь пойдет о Arduino-совместимой платой от Cypress Semiconductor — CY8CKIT-042 PSoC® 4 Pioneer Kit, которая может быть хорошей альтернативой как благодаря своим возможностям, так и благодаря весьма функциональной IDE.
Что это такое
Данный кит основан на чипе PSoC 4, который, в свою очередь, построен на базе ядра Cortex M0 и располагает 4k RAM и 32k ROM. Кроме этого, на борту весьма много аналоговой периферии – два операционных усилителя, 12-битный АЦП (SAR ADC), поддержка емкостных сенсоров, один из которых есть на плате, два компаратора и не только. Более подробные сведения можно получить из даташита. Стоит сразу отметить, что когда речь идет о совместимости имеется в виду только своеобразная 'pin-to-pin' совместимость, а о программной речь пойдет дальше.
Заказ и доставка
Оформить заказ можно на сайте http://ru.farnell.com/, больше, вроде как, и негде. Получилось без проблем оплатить заказ карточкой украинского банка и ждать прибытия заказа. Отправка производилась через UPS, и, как ни странно, заказ был уже на Украине через двое суток, учитывая что отправной точной была Великобритания. Кстати, при всей стоимости заказа (я заказывал две платы) в 43€, доставка обошлась в еще ~20€. Ну, хоть долго ждать не пришлось.
Упаковка
Весь кит упакован в пластиковый кейс. На вид весьма прочный:
И вот что внутри:
И что дальше?
Дальше стоит загрузить фирменную IDE PSoC Creator – на данный момент последняя версия – 3.0 с пакетом обновлений Component Pack 7. Загрузить можно с торрента с официального сайта: http://www.cypress.com/go/psoccreator, только там нужна регистрация. Потом стоит загрузить образ диска со страницы с описанием кита: http://www.cypress.com/?rID=77780, это будет полезно тем, что на этом образе есть примеры, которые помогут разобраться с IDE и разработкой проектов под данный кит.
Кстати о примерах, на странице element14 проходила акция «100 Projects in 100 Days», нам это может быть интересно тем, что все эти проекты есть в открытом доступе.
PSoC Creator
В общем-то для описания этой IDE стоило бы написать отдельную статью, так как функционал довольно широк, учитывая то, что IDE бесплатная. Так что если эта тема будет интересна, постараюсь в отдельной статье остановиться на этом подробнее. Ну а пока что кратко:
После установки IDE можно подключить кит к ПК. В принципе, можно и до этого, но только драйвера программатора все равно установятся только с PSoC Creator. Итак, откроем какой-нибудь проект из тех, которые присутствуют в образе, предварительно скопировав его куда-нибудь, где возможна будет перезапись. Я начал с PWM Example Project, который присутствует на образе диска со страницы кита:
И нас приветствует окно обновления компонент. Несколько неожиданно, но ничего страшного. Просто соглашаемся, отключая опцию архивации.
После обновления компонент можно подключить кит, если он еще не подключен и запрограммировать его при помощи вот этой кнопки:
После ёё нажатия проект скомпилируется и будет зашит… В результате, 3-х цветный светодиод, который есть на плате начнет перебирать разные цвета и их комбинации, благодаря 3м независимым ШИМ'ам, которые присутствуют в проекте.
В общем-то сам проект написан на С и разобраться с ним не составит труда, так что на самом проекте останавливаться я не буду, вместо этого немного расскажу немного про саму среду разработки – PSoC Creator и о общей структуре проекта.
Итак, сам проект состоит из высокоуровневого дизайна – “TopDesign” на который можно ставить, так называемые, компоненты, которые представляют код, который генерируется средой разработки и помогает реализовывать тот или иной функционал, при этом могут быть задействованы аппаратные блоки, которые есть на PSoC 4:
Каждая компонента имеет свой даташит, в котором содержится довольно подробное описание как самой компоненты и ёё функционала так и API, которые содержаться в сгенерированном коде для этой компоненты. Также для многих компонент есть примеры использования, которые могут помочь как в конфигурировании компоненты так и в написании кода, который будет ёё использовать. Да, с конфигурированием компонент не так все просто, потому что, как правило, функционал довольно широк, и сформулировать (читай настроить) то, что нужно, может оказаться не так и просто с первого раза. Для того чтобы что-то поменять в настройках компоненты, нужно из контекстного меню вызвать конфигуратор компоненты, выглядит это как-то так:
В принципе, «даблклик» будет иметь точно такой же результат. Итак, окно конфигурирования, казалось бы, простого PWM:
Так вот, к чему это я — без «курения» мануалов и просмотра примеров использования может быть довольно трудно, учитывая обилие параметров и настроек.
Также есть *.cydwr файл, который содержит параметры проекта и настройки чипа, на которых в этой статье я останавливаться не буду.
Ну, а кроме всего этого есть еще и «обычный» main.c, ну, и сгенерированный код, который автоматически перегенерируеться при каждой полной перекомпиляции проекта, если он был изменен, или же если изменились настройки проекта…
Сам кит аппаратно совместим с периферией (шилдами) от/для Arduino, а с программной реализацией поддержки проблем возникнуть не должно, а сам PSoC 4 может работать на частотах до 48Мгц, так что с производительностью проблем также быть не должно…
Кроме всего вышеописанного на плате есть еще один чип — PSoC 5LP, который судя из даташитов на сам кит является программатором для PSoC 4 а также переходником UART<->UBS и USB<->I2C. В добавок ко всему вышеперечисленному он также может быть использован как отдельный программируемый Cortex M3 микроконтроллер, согласно даташиту на плату: http://www.cypress.com/?docID=47035.
В общем как в качестве плюсов даного кита стоит отметить весьма функциональною IDE, подробную документацию, форум поддержки на оф. странице разработчика и широкий выбор компонент с уже реализованными API, что упрощает последующую разработку.
Как минус стоит отметить полное отсутствие русскоязычной документации и русскоязычного форума поддержки и то, что IDE существует только в версии под Windows, и хотя, и есть экспорт проектов в другие IDE, например в Eclipse это не сильно спасает ситуацию.
Тех, кто осилил всю статью до конца я хотел бы спросить, стоит ли написать цикл статей, посвященных PSoC 4 Pioneer kit и PSoC Creator?
Автор: xsemperx