PSoC 5.Введение. Создание проекта.

Всем привет.
Фирма Cypress занимается выпуском микросхем памяти, интерфейсов USB и пр. Меня заинтересовали микроконтроллеры этой фирмы, или как они более точно называются PSOC (programming system on chip) т.е. программируемая система на кристалле.
Полное описание PSOC приводить не буду, для этого есть другие ресурсы. Подобная система помимо ядра микроконтроллера того или иного семейства содержит аналоговую периферию (ОУ, трансимпедансный ОУ, ЦАП с выходом по току и напряжению, компаратор, фильтры, SAR ADC а также дельта-сигма АЦП), цифровую периферию (счетчики, таймеры, генератор случайных чисел), а также элементы ПЛИС (простейшую логику И ИЛИ НЕ).Кроме того, подобная система содержит все необходимы и привычные для микроконтроллеров коммуникационные интерфейсы, такие как USART, I2C, SPI, USB UART,USB MIDI, RS-232, CAN, LIN и пр.)интерфейс дисплеев и индикаторов. Система на кристалле (в дальнейшем мы ее так будем называть)существует в нескольких вариантах: PSOC 1-на базе ядра М8 (8 разрядные МК), PSOC 3 и PSOC 5 на основе ядер 8051 и Cortex M3 а также PSOC 5LP усовершенстованный 5. Планируется выпуск PSOC 7 на основе ядра Cortex M4.
Сам я пишу и работаю с STM32F103, поэтому посчитал целесообразным приобрести такую плату для решения своих задач в более ускоренном темпе или же нестандартных задач или таких задач когда тебя трясут за горло и говорят о том что проект нужен еще вчера…
Важно отметить, в принципе на этом позиционирует сам Cypress, что подобные изделия легко конфигурировать и они защищены от реверс инжениринга, поскольку структуру самого проекта «зашитого» в систему невозможно и /или сложно считать.
Приобрел я летом плату на основе микросхемы PSOC 5 фирмы Cypress, на одноименном сайте скачал софт PSOC Creator 2.1. Скачивается с официального сайта только после регистрации, устанавливается легко без каких либо проблем. PSOC Creator предназначен для 3 и 5, для 1 свой отдельный софт. Основа софта GCC, плюс API функции. Для PSOC 3 есть компилятор от Keil он платный как я понял (не интересовался поэтому этот вопрос требует прояснения). Для 5-го бесплатный.
Запускаем программу, создаем проект просто выбрав тип системы. Появляется такое вот окно представленное на рисунке 1

Окно программы

Отмечены цифрами 1-древо проекта с файлами *.с и *.h, под цифрой 2 собственно слой на котором размещены те элементы которые вы собираетесь использовать. Они размещаются в панели справа и выбираются в зависимости от того что вам нужно. Далее необходимо соединить их между собой для этого воспользуемся соответствующим значком что расположен справа от размещенных нами элементах. Внизу цифра 3 расположена консоль она позволяет контролировать ошибки не только те которые вы допускаете в ходе программирования но и те которые вы допускаете в файле верхнего слоя (файл TopDesign.cysch), производится ссылки на конкретные «ляпы» — будь то не соединение, или перепутан вход или выход. Т.е. система контролирует пользователя и ошибиться не просто.
Следующий этап — подключения выводов и настройка входа выхода.
Подключаем ОУ PGA_1 на схеме для этого справа найдем вкладку Ports & Pins выберем аналоговый вход установим его напротив входа ОУ и соединим.
Получим следующий рисунок 2.



Обратите внимание на панель подключения пинов. Много разных типов для цифровых входов выходов, вплоть до изменения типа CMOS или TTL.
Откроем панель настройки ОУ Здесь вы можете установить усиление выбрать опорный сигнал, посмотреть зависимость усиления необходимую вам от частоты. Затем жмете кнопку ОК и Apply и получаете настроенный ОУ. А рядом имеется кнопка даташит. Нажав ее вы получаете полное описание вашей API функции.Там указаны функции необходимые для запуска выбранного модуля притом можно проводить настройку как вручную так и с помощью встроенных библиотечных функций.
Выход ЦАПа можно также аналоговый подключаем его к выходу.
Рассмотри АЦП их в данном контроллере три два SAR один дельта сигма (можно проверить если больше выдает ошибку) первые АЦП 12 разрядные 630кSps, дельта сигма АЦП 16 разрядный, но его можно настроить до 20 разрядного пробовал — работает.
Настроим АЦП SAR рисунок 3. Я думаю что тут будет все понятно.



Все подключили и настроили. Теперь надо соединить выводы проекта с физическими выводами. Для этого зайдем в панель под номером 1 дважды щелкнем на файл Design002.cydwr откроется окно.



Где изображен собственно корпус с выводами, а также куча вкладок под ним позволяющие подключать и настраивать соответствующую периферию, тактирование, прерывания.



Справа панель с подключенными нами выводами — теперь их надо подключить к проекту. Как это сделать? Да проще простого выбрав их в соотвествующем выпадающем списке (но все таки читайте даташит!!!!!). Или перетащив мышкой.
Код пока не писал. Нажимаем F6 происходит компиляция проекта длящейся 10 секунд.
Если все верно то получим такой результат.
Flash used: 3248 of 262144 bytes (1,2%).
SRAM used: 272 of 65536 bytes (0,4%).
— Build Succeeded: 12/11/2012 21:40:02 —

Еще вам расскажу про собственно отладочную плату, и как ее прошить. И если получиться, покажу как работает мой самый простой проект.
С уважением.
  • +7
  • 11 декабря 2012, 21:51
  • T_34_85

Комментарии (39)

RSS свернуть / развернуть
Вот в тему еще ссылка www.terraelectronica.ru/news_postup.php?ID=2633
0
Для PSOC 3 есть компилятор от Keil он платный как я понял
год бесплатен
0
  • avatar
  • xar
  • 11 декабря 2012, 23:18
Автор молодец, интересная статья. Спасибо!
Попробую сегодня написать о PSOC 1 — робота со средой PSoC Designer 5.3 и с 8-bit DAC.
0
  • avatar
  • Nemo
  • 11 декабря 2012, 23:24
Спасибо. Старался.
0
Ловко придумано, а пины прям как угодно можно назначить или таки есть ограничения? Питание, есс-но, не в счет.
Жаль логических ячеек маловасто :( А так выглядит круто!
+1
Я назначал любые НО на плате есть разделение на аналоговый порты и другие порты. Да кроме питания и опорников.
0
разделение на плате я честно говоря вообще не понял для чего.
0
любые, НО! есть несколько групп пинов, которые забиты жестко. на вскидку — I2C slave (выделен fixed блоком, вроде как есть и реализация на UDB, которую можно перенести, но не уверен), USB, и почти все что связано с программированием/отладкой
0
Вот попробовал заменить в своем проекте вывод на I2C и он выбрал его и откомпилил. И никаких ошибок. И USB попробовал. Все откомпилилось. Работать будет я думаю.
0
если добавить EZI2C Slave, то у него будет ограничен выбор пинов
0
Вот об этом не слышал. Напишите в своей статье тогда об этом.
0
я уже написал чуть выше. просто для некоторых fixed блоков роутинг изменен, с целью использования его до инициализации роутинга
0
Интересны именно ограничения — сколько каких блоков есть, что как нельзя подключать и т.д.
0
Я задавался этим вопросом. В закладке Design002.cydwr имеется подзакладка Analog вот там есть, принципиальная схема аналоговой части системы. Там 3 АЦП 4 ЦАП 4 компаратора и далее по схеме.
0
надо смотреть даташит к конкретной серии/подсерии и даташиты к компонентам (готовым). станет ясно сколько чего получится засунуть в один кристал
0
Само собой
0
и естественно не забывать, что есть fixed периферия, назначение и количество которой определено структурой кристалла
0
устанавливается легко без каких либо проблем
… там вроде есть требования к ПК.
0
Ну на мой древний гроб все стало без проблем и работает. Правда долго ставилось.
0
Ну мне кажется сейчас уже нет 386 или 486 компьютеров да даже пень 4 большая редкость. Хотя у меня дома стоит Атлон хр 2005 года и ничего отлично работает. Не найду никак системные требования хотел вам их показать…
0
Хочу отметить особо что даташиты очень понятные написаны на «русский манер»)))
0
Хочу отметить особо что даташиты очень понятные написаны на «русский манер»)))
Открою секрет, некоторые модули пишуться и тестируються в украинском офисе, в городе Львов :)
0
Тогда понятно все.)) Действительно я читал некоторые даташиты вот явно славянами написано))) Кстати там немало поляков в техподдержке и… индусов)
0
Тогда понятно все.)) Действительно я читал некоторые даташиты вот явно славянами написано))) Кстати там немало поляков в техподдержке и… индусов)
Друг расказывал что с индусами тяжело работать, программисты хорошие, а вот электронщики никакие. Даже расказывал что собираються закрывать индуский офис, и расширять офис в Украине.
0
Конечно надо закрывать!)) Надо наших поддерживать!))
+1
Конечно надо закрывать!)) Надо наших поддерживать!))
Очень приятно такое читать!)
0
Ну так свои же ))
0
мне наоборот показалость что многое упущено при описании компонентов.
0
Проект развивается и описание будет лучше с учетом замечаний потребителей. Поэтому это дело времени. Многие вещи достаточны просты и наглядны. Хотя есть вопросы.
0
Ещё бы грамотности побольше…
+2
Извините.
0
Уважаемый, не подскажите, к какому PSoC относится CY7C68013A-100AXC?
Купил CLONE, заинтересовался…
0
Вот что это CY7C68013A, CY7C68014A, CY7C68015A, CY7C68016A: EZ-USB® FX2LP™ USB Microcontroller High-Speed USB Peripheral Controller. Проверил в Creator там вообще не таких…
+1
Спасибо!
Балин, а на чём же писать-то для него… Хочется что-то простое для начала, вроде Creator-а…
0
Вот неплохое описание CY7C68013A
0
Я что-то вообще не понимаю: это плисина или нет?!
0
Нет это не плисина.
0
Это система на кристалле. Микроконтроллер, аналоговые элементы и логические элементы.
0
Creator это и есть единственная среда для работы c PSOC3 и PSOC5.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.