Программирование микроконтроллеров семейства Cypress

    Привет, Хабраюзер!
    Данную статью меня попросил опубликовать мой друг, Евгений, у которого пока нет аккаунта на 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.

    Для первой статьи, я думаю, достаточно. Если будет интерес, то детально разберу многие модули и различные примеры. Всем спасибо за внимание.

    P.S. Все комментарии к данной статье также будет давать Евгений от моего имени, поэтому можете задавать ему вопросы.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 10

      0
      То есть, программирования мы пока так и не увидели
        0
        Программирование будет в следующих публикациях. Более объемных и специализированных. Постараюсь в ближайшее время написать и опубликовать. Скорее всего в следующей части, я подробно разберу модуль Cap Sensors и пару примеров для него. Хотя может быть, начну с чего нибудь другого.
          0
          Так что, тут любые функции на любые ноги цеплять можно? Какие есть ограничения?
            0
            Не совсем так.Ограничения все те же, посадить можно только то, что можно :) Имелось введу то что очень удобно отображена информация по ногам. У нас сразу видно какие ноги свободны, и что на них можно подцепить, что уже сидит. Можно их легко настраивать на нужные функции с помощью графического меню. Давать им имена и т.д. Так же при добавлении определенных модулей, у нас сразу настраиваются нужные ноги автоматически.
          0
          Так и не увидите :).
          Довелось мне как-то программировать этот «писок», пятый — который с ядром cortex M3. Было это около 2х лет назад, тогда ещё «абы кому» стакрткиты сайпрес не давал. Так вот программированием это не назовешь, скорее рисование квадратиков в ихней (сайпресовской) тормознутой среде, а уж потом она код генерирует. Плевался я сильно, вспоминая добрым словом иар да кейл :). Человеку который привык программировать железо глядя в дейташит или юзер мануал соединять линиями квадратики трудновато.
          Возможно сейчас ситуация изменилась в лучшую сторону, но мне псок5 не понравился
          0
          Больная ассоциация с cypres фирмы Airtec ;)
            0
            На самом деле Cypress — очень популярны, особенно их серия FX2. Для связи какой-нибудь FPGA с USB — то что надо. Популярность им принесла одна «убийственная» фича, когда вся прошивка МК заливается через USB, а если извратиться, то и прошивку FPGA можно тоже через USB заливать.
              0
              Cypress FX2 это пусть хорошие, но просто контролеры шины USB, а семейство PSoC это другое, реконструируемая аналоговая и цифровая часть дают реализовать очень большой спектр устройств.
                0
                То есть Вы имеете ввиду просто загрузчик?
                0
                Компания Cypress выводит PSoC1 из употребления, да выходят обновления, но чип остаётся тем же и менять его уже не будут. Рекомендую больше фокусироваться на PSoC3/PSoC5 туда Cypress направляет большинство своих ресурсов. Тaм и котролер USB3.0 и ядра более продвинутые.
                M8C послужил хорошую службу, но i8051, Cortex-M3 дают больше преимуществ.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое