Адрес страницы: http://antiradio.narod.ru/psoc/index.htm
Последнее обновление: 25.02.2013.


Все, что касается PSoC – «программируемых систем на кристалле»

К сожалению, эти микроконтроллеры не получили еще должного распространения. Может быть одна из причин заключается в сложности освоения материала, (ведь одно только техописание представляет собой солидный том, да еще на английском языке!), а может быть сказывается нежелание людей, освоивших один инструментарий, окунуться в другой мир, с его непривычными законами и мышлением. Этот раздел посвящен микросхемам, у которых на кристалле помимо процессорного ядра (с причитающимся ему окружением) имеется множество цифровых и аналоговых блоков, соединяемых между собой в причудливые комбинации.

Что такое «PSoC» (первое знакомство)
Здесь можно познакомиться с этими интересными микросхемами от Cypress Semiconductor Corporation.

Как начать работать
Что нужно иметь для разработки (софт, программаторы и проч.).

О приятном и не очень
Делюсь личными впечатлениями. Возможно, этот раздел следует прочитать в первую очередь, чтобы один раз плюнуть и больше никогда и не оборачиваться при слове «PSoC»!

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

Полезные ссылки
которые у меня накопились – на форумы, инструментарий, техническую информацию и проч.

Love_story.jpg

Проекты с использованием PSoC

Простейший программатор микросхем PSoC
Подключается к LPT порту компьютера и поддерживает практически все семейство PSoC. Есть режим Power-On Mode, что дает возможность программировать 8-выводные микросхемы. Интегрированные панелька под установку 8-выводных чипов и разъем для макетирования превращают этот программатор в простейшую отладочную плату «в одном флаконе». Программу cyp.exe, работающую с этим железом, можно взять здесь (zip-архив 151 кБ).

Отладочная плата «87654321-micro»
Если вам некуда «пристроить» 9-разрядные индикаторы АЛС318, то эта плата для вас. На ее базе могут быть построены различные миниатюрные устройства, требующие отображения цифровой информации.

Многофункциональная плата «Psoctronic 1.1»
На ее базе могут быть построены различные устройства – измерительные приборы, контроллеры, игрушки и т.д. C ее помощью удобно исследовать функционирование «начинки» PSoC, проверять идеи и отлаживать узлы будущих устройств. На плате, кроме 28-выводной микросхемы PSoC, расположены 2-х строчный ЖК-дисплей, четыре кнопки, коннектор для связи с компьютером и ряд контактов, дублирующий выводы портов микросхемы.

Генерирование ТВ-сигнала с помощью PSoC (англ.)
Демонстрационный проект, достигнуто разрешение 128 x 72 точек (9 строк текста по 16 символов).
Generating TV signal by PSoC – 128 x 72 pixel resolution (9 text lines, 16 chars per line) is reached in this demonstration project.

10-точечный регистратор температуры
Работает с датчиками DS2438, питание – от батареек. Отображает текущие значения температуры и ведет их запись во FLASH память микроконтроллера. Памяти CY8C27443 хватает примерно на 1,5 часа записи. При наличии платы «Psoctronic» ничего, кроме самих датчиков, не потребуется.

Термометр на терморезисторах (3-х канальный)
Если к вам в руки попали платы с 7-сегментными индикаторами, то не спешите их полностью разбирать. Вокруг таких индикаторов, как правило, стоит соответствующее обрамление – ключи, дешифраторы и т.п., которое сослужит вам вторую службу, а также значительно упростит процесс конструирования. При добавлении на такую плату микросхемы PSoC вы с минимальными затратами получите действующее устройство с цифровой индикацией. Возможности PSoC позволяют обойтись минимумом внешних компонентов и напрямую подключать датчики (терморезисторы, термопары) к этой микросхеме.

«Плавный» ход шагового двигателя
Стандартный шаговый двигатель от 5-дюймового дисковода можно заставить вращаться плавно и использовать, например, для привода секундной стрелки в часах. Выходного тока микросхемы PSoC достаточно для прямого подключения обмоток двигателя к выводам микросхемы.

New! Шарманка, XXI век
Вместо труб использованы электромеханические излучатели, нагруженные на рупоры и резонансные камеры. Электрическую энергию вырабатывает генератор на базе шагового двигателя от 5-дюймового дисковода, который также задает и темп исполнения. Мелодия считывается с SD-карты, а при ее отсутствии – из внутренней Flash памяти контроллера.

 

Проекты для обучения

Пример вашего первого проекта
на CY8C27443, чтобы быстро получить первый результат и уверенность в своих силах. Заставим микросхему издавать непрерывную трель (чередование двух тонов) с синхронным миганием светодиода. Практически все реализуется аппаратно… ведь это же PSoC – «Программируемая-Система-на-Кристалле»! (Добавлена 2 часть – генерируем полифоническую мелодию).

Все то же, но in English:
Your first step-by-step project with the CY8C27443 located on the Cypress MicroSystems' Invention Board. Let's make the chip playing a continuous tremolo (alternation of two tones) with a synchronous LED's blinking. Only the chip's hardware will be used. No example project files here... it's very simple!

Ультразвуковой измеритель дальности (477 кБ)
Конкурсная работа'2002, занявшая 1-е место. Автор - F a b i o P i a n a. Это пример того, как сложное устройство создается всего из нескольких электронных компонент. Используется микросхема CY8C26443. Исходники проекта можно взять на сервере (архив 482 кБ) журнала Circuit Cellar.

Исследование быстродействия аналоговой части у PSoC (412 кБ)
Представлены осциллограммы сгенерированных многоуровневых сигналов (вместе с примерами кода для их получения).
English version: Researching of how fast the analogue part of PSoC is operating (289 кБ) Photos of the output multilevel pulses with the code produced them are presented.


Мои Application Notes – на русском

На сайте Cypress постоянно растет библиотека статей о применении их продукции (Application Notes), в частности – микроконтроллеров PSoC. В силу внутренних причин фирма не торопится публиковать у себя на сайте иноязычные версии этих статей (хотя есть и исключения). Чтобы быстрее донести информацию до пользователя, делаю это у себя на домашней страничке. Здесь опубликованы переводы моих статей на русский язык (в том виде, в каком они были посланы техническому редактору. Английские варианты подверглись незначитнльному изменению, так что возможны расхождения в тексте. Англ. версии и архивы проектов ищите на www.cypress.com по номеру «ANxxx» – прямых ссылок не даю, т.к. местоположение документов может меняться).

AN2231 – «Измеритель скорости счета для спектрометрии, с дискриминатором импульсов на входе» (224 кБ) («Ratemeter with a Precise Pulse Discriminator for Spectrometry»)
Демонстрационный проект (99 кБ)
Описывается конфигурация PSoC для задачи выделения поступающих импульсов по амплитуде с последующим измерением «скорости счета» (количества поступивших импульсов за фиксированный промежуток времени). Результат измерения (для простоты) преобразуется в выходное напряжение – для индикации стрелочным прибором.

AN2249 – «Модуль PRS как одновибратор, селектор импульсов и подавитель «звона»» (328 кБ) («PRS User Module as a One-Shot Pulse Width Discriminator and Debouncer»)
Демонстрационный проект (44 кБ)
Описывается способ реализации аппаратного одновибратора, который может быть использован как для селекции импульсов по длительности, так и для подавления переключательных помех (т.н. «звона»). На основе этой модели был создан многофункциональный модуль пользователя «OneShot8» (200 кБ).

Впоследствии из английской версии исчезла фотография кота – видимо оказался неполиткорректным.

AN15054 – «20-канальный ШИМ контроллер для управления сервомашинками» (308 кБ) («20-Channel Hobby Servo Controller»)
Демонстрационный проект (56 кБ)
Переконфигурирование внутренней структуры «на лету» дает возможность генерировать с помощью PSoC множество ШИМ-сигналов. Здесь описывается система управления 20-ю сервоприводами (стандартными сервомашинками), выполненная всего на одной 28-ногой микросхеме CY8C27443. Процессорное ядро задействовано минимально, т.к. все широтно-модулированные импульсы генерируются аппаратно. Также использована возможность прямого подключения микросхемы к COM-порту компьютера. При переходе на 100-выводный чип CY8C29866 число каналов можно увеличить до 64-х.

AN43171 – «Преобразователь «напряжение-частота» (непрерывного типа) и имитатор шума ветра» (406 кБ) («V-to-F Converter (Continuous Type) and Wind Noise Simulator»).
Демонстрационный проект (71 кБ)
На основе внутренних аналоговых и цифровых блоков можно строить преобразователи «напряжение-частота». Это расширяет возможности использования PSoC там, где требуется плавная перестройка частоты – задающие генераторы, тактируемые фильтры и т.д. Пример такого применения дан в имитаторе шума ветра. Это оригинальный музыкальный инструмент с диапазоном перстройки более трех с половиной октав. Кроме 8-ногой микросхемы PSoC требуются только два внешних компонента – переменный резистор и небольшая интегрирующая емкость. Если использовать линейный потенциометр со снятым движком – инструмент будет управляться прикосновением (скольжением пальца вдоль грифа). Главной особенностью устройства является полностью аппаратная генерация звука и его обработка.

В новой редакции переработан в документ AN58469 – «Comparator Based Voltage to Frequency Converter».

AN??(в обработке на Cypress) – «Триггер Шмитта, образованный из блока CTB, и релаксационные генераторы на PSoC» (234 кБ) («Schmitt Trigger on CT Block and Relaxation Oscillators with PSoC»)
Демонстрационный проект (79 кБ)
Реализация на основе блока CTB («Continuous Time Block») триггера Шмитта с программируемым гистерезисом. Его можно использовать в качестве подавителя «звона» и для построения релаксационных генераторов (демонстрируются два способа построения генератора прямоугольных импульсов).

AN??(в обработке на Cypress) – «Генерирование абсолютно случайных последовательностей» (335 кБ) («Generating Absolutely Random Sequences»)
Демонстрационный проект (52 кБ)
Из аналогового блока SCB легко получается генератор непредсказуемой (т.к. в работу вовлекаются тепловые шумы) бинарной последовательности. Не при любых значениях коэффициентов деления, используемых для тактирования этого блока, нули и единицы равновероятны! Для улучшения свойств последовательности ее можно дополнительно пропустить через модуль PRS8. Одновременно с этой статьей был разработан модуль пользователя «Random» (169 кБ).