Проектирование на программируемых системах на кристалле PSoC Cypress. Часть 3. Аналоговая конфигурируемая периферия

№ 8’2006
Продолжая рассказ о программируемой системе на кристалле PSoC Cypress, рассмотрим конфигурируемую аналоговую периферию — ключевую особенность, выделяющую PSoC среди прочих систем на кристалле и микроконтроллеров.

Продолжая рассказ о программируемой системе на кристалле PSoC Cypress, рассмотрим конфигурируемую аналоговую периферию — ключевую особенность, выделяющую PSoC среди прочих систем на кристалле и микроконтроллеров.

Все статьи цикла:

Аналоговая подсистема PSoC включает в себя:

  • массив аналоговых блоков, окруженных линиями связи;
  • мультиплексоры входных сигналов;
  • систему аналогового интерфейса;
  • ускоритель операции последовательного приближения;
  • источник опорных напряжений для аналоговых схем.

Благодаря конфигурируемым аналоговым блокам, их комбинации или комбинации аналоговых и цифровых блоков становится возможным создание внутри микросхемы PSoC следующих функций:

  • дельта-сигма АЦП;
  • АЦП последовательного приближения;
  • интегрирующий АЦП;
  • ЦАП;
  • программируемый усилитель;
  • аналоговый компаратор;
  • детектор нуля;
  • выборка-хранение;
  • ФНЧ;
  • полосовой фильтр;
  • заградительный фильтр;
  • амплитудный модулятор и демодулятор;
  • генератор синусоиды;
  • детектор синусоидального сигнала;
  • детектирование боковых частот (Sideband Detection);
  • удаление боковых частот (Sideband Stripping);
  • температурный датчик;
  • аудиовыход;
  • DTMF-генератор;
  • FSK-модулятор;
  • встроенный модем.

Большинство этих функций доступны в виде готовых модулей в библиотеке среды проектирования PSoC Designer, остальные фирма Cypress обещает добавить в будущем. Однако благодаря достаточно развитой системе коммутации внутри кристалла, а также тому, что аналоговую периферию можно конфигурировать вручную, перечень реализуемых функций может быть расширен самим пользователем.

Архитектура аналоговых блоков может быть различной в разных сериях PSoC. Наиболее функционально развитые блоки одинаковой структуры присутствуют в 29-й, 27-й, 24-й и 22-й сериях PSoC, поэтому в данной статье они и будут рассмотрены. Архитектура этих серий идентична (рис. 1), фактически разница между ними заключается в количестве аналоговых блоков, а также объемах флэш-памяти и ОЗУ.

Рис. 1. Структурная схема PSoC

Информацию об архитектуре аналоговых блоков с ограниченной функциональностью, присутствующих в других сериях PSoC, можно легко получить из технического описания [1].

В указанных сериях аналоговые блоки архитектурно разделены на три типа (рис. 2, 6, 7). Первый тип — блок, построенный на базе операционного усилителя с программируемой матрицей резисторов в обратных связях (Continuous Time PSoC Block — CT). Два других построены на базе операционного усилителя и переключаемых конденсаторов (Switched Capacitor PSoC Block — SC) — блоки типа C и D.

Аналоговые блоки построены на базе операционных усилителей. Эти усилители работают с сигналами с размахом, равным напряжению питания (rail-to-rail) и имеют небольшое напряжение смещения и уровень шумов. Путь прохождения сигнала внутри блока определяется внутренними мультиплексорами, которые управляются доступными процессору конфигурационными регистрами.

Каждый аналоговый блок имеет три основных выходных шины:

  1. Аналоговая выходная шина (ABUS), которая является общей для всех блоков одного столбца. Сигнал с аналоговой шины может быть выдан во внешний мир через выходной буфер.
  2. Шина компаратора (CBUS), которая является цифровой шиной и также разделяется между блоками одного столбца.
  3. Локальная выходная шина (OUT), которая соединяет блок с соседними блоками.

Блок CT (рис. 2) имеет две дополнительные локальные шины — GOUT и LOUT, связанные с работой блока в режиме усиления/подавления. Эти шины соединяются, соответственно, с входами GIN/LIN соседнего блока CT.

Рис. 2. Аналоговый блок с матрицей резисторов

Благодаря присутствующему в схеме блока СТ мультиплексору TestMux возможно выдавать через аналоговую выходную шину ABUS во внешний мир внутренние опорные напряжения RefHi и RefLo, а также аналоговую «землю» AGND. Этим мультиплексором, а также триггером-защелкой на выходе компаратора и потребляемой блоком мощностью управляет регистр ACBxxCR2.

За входные мультиплексоры на инвертирующем и неинвертирующем входах ОУ (NMux и PMux соответственно), а также за подключение к глобальной аналоговой шине и шине компаратора отвечает регистр ACBxxCR1.

Подключение матрицы резисторов определяется мультиплексорами RTopMux, RBotMux и RTapMux и Gain (управляются регистром ACBxxCR0). Благодаря этому блок может работать как не инвертирующий и как инвертирующий усилитель с программируемым коэффициентом усиления (от 0,062 до 48), компаратор с программируемым порогом, инструментальный усилитель (при объединении двух блоков). Матрица резисторов представляет собой подключенные последовательно резисторы сопротивлением 12,2 кОм.

Блок CT содержит дополнительный маломощный компаратор, соединенный с теми же входами и выходами, что и основной операционный усилитель. Этот компаратор может использоваться для формирования цифрового сигнала сравнения в режимах пониженного потребления, когда основной усилитель выключен. Для управления маломощным компаратором, а также для формирования схемы инструментального усилителя и дополнительного управления матрицей резисторов служит ACBxxCR3.

Прежде чем приступать к рассмотрению аналоговых блоков SC, надо сказать несколько слов о работе схем, построенных на переключаемых конденсаторах. Основная идея таких схем заключается в том, чтобы заменить резисторы в электрической цепи на эквивалентные схемы, содержащие конденсатор и управляемые ключи (рис. 3), при этом непрерывный перенос заряда заменяется дискретным.

Рис. 3. Схема замещения, построенная на переключаемых конденсаторах

В качестве примера можно привести замещение классической схемы инвертирующего усилителя на базе ОУ схемой на переключаемых конденсаторах, реализованной в блоке PSoC (рис. 4).

Рис. 4. Пример замещения инвертирующего усилителя на базе ОУ схемой на переключаемых конденсаторах

Для работы таких схем требуются управляющие частоты φ1 и φ2, которые контролируют перенос заряда, то заряжая конденсатор, то разряжая его через управляемые ключи. Таким образом, протекающий ток зависит от емкости конденсатора и от частоты переключения ключей. На частоты φ1 и φ2 накладываются жесткие ограничения — эти частоты не должны перекрываться во избежание короткого замыкания; управляемый ключ должен успеть полностью открыться, прежде чем будет закрыт ключ, управляемый противоположной частотой; конденсатор должен успевать полностью заряжаться и разряжаться. Частоты φ1 и φ2 формируются для каждого столбца аналоговых блоков (1 блок СТ и 2 блока SC) из общей для столбца входной тактовой частоты, выбираемой разработчиком (рис. 5).

Рис. 5. Диаграмма формирования неперекрывающихся частот

Схемы на переключаемых конденсаторах лучше подходят для интегрального исполнения, поскольку в качестве конденсатора может выступать, например, подзатворная емкость транзистора или емкость p-n-перехода. К тому же, для работы этих схем важны не абсолютные значения емкостей конденсаторов, а отношения между ними. Так как в рамках технологического процесса легко получить одинаковые по характеристикам элементы, то в качестве конденсатора выступает массив из однотипных элементов с возможностью коммутации. Емкость каждого такого единичного элемента в аналоговом блоке PSoC составляет 80 фФ.

Блок на переключаемых конденсаторах (рис. 6, 7) содержит четыре конфигурируемых массива конденсаторов — массивы ACap, BCap, CCap и FCap. Массивы ACap и BCap предназначены для формирования входных путей. Массив CCap является входным для блока типа С и выходным для блока типа D (в этом случае он служит для формирования обратной связи при объединении блоков C и D). Четвертый массив, массив FCap, предназначен для формирования обратной связи. Благодаря коммутации каждый из присутствующих в аналоговом блоке массивов может представлять собой конденсатор емкостью от 0 до 31 единицы. Исключением является массив FCap, емкость которого может быть 16 либо 32 единицы.

Рис. 6. Аналоговый блок на переключаемых конденсаторах (тип C)
Рис. 7. Аналоговый блок на переключаемых конденсаторах (тип D)

В SC-блоке присутствует также компаратор, который конвертирует выход операционного усилителя (относительно уровня аналоговой «земли») в цифровой сигнал.

Аналоговый блок на переключаемых конденсаторах позволяет реализовать дельта-сигма АЦП, АЦП последовательного приближения и интегрирующий АЦП, ЦАП. Объединение двух блоков типа С и D позволяет реализовать двухполюсный биквадратный фильтр.

Внутренними мультиплексорами блоков, ключами, настройкой массивов конденсаторов и потребляемой мощностью управляют регистры ASCxxCR[0..3] и ASDxxCR[0..3] для блоков C и D соответственно. Для выбора входа аналогового модулятора, присутствующего в блоке типа С, служат регистры AMD_CR0 и AMD_CR1.

Изменения в конфигурационных регистрах вызывают непосредственное изменение на выходе аналогового блока. Из-за разницы между тактовой частотой процессорного ядра и частотой, на которой работает блок, на выходе могут наблюдаться искажения. Для того чтобы этого не происходило, используется механизм синхронизации, задерживающий операцию записи до возникновения внутреннего сигнала φ1. Управляется этот механизм битом SYNCEN в регистре ASY_CR.

Входные аналоговые мультиплексоры (рис. 8) соединяют контакты микросхемы со столбцами аналоговых блоков, а точнее с блоками типа CT. Эти мультиплексоры представляют собой КМОП-ключи, сопротивление которых находится в районе 2 кОм. Как правило, в качестве входных аналоговых контактов выступают контакты порта P0. Кроме того, четыре контакта порта P2 (P2.0–P2.3) также могут выступать в качестве аналоговых входов для блоков SC в крайних столбцах. Некоторые отдельные чипы (например, CY8C24794) имеют дополнительные аналоговые шины, благодаря которым в качестве входа может выступать практически любой контакт микросхемы.

Рис. 8. Входные аналоговые мультиплексоры

Каждый аналоговый столбец имеет аналоговую шину ABUS, к которой может быть подключен выход одного из блоков. В свою очередь, аналоговые шины столбцов 0–3 могут быть подключены через управляемые буферы к контактам порта P0.3, P0.5, P0.4 и P0.2 соответственно. Управляются входные мультиплексоры регистрами AMX_IN и ABF_CR0. Регистр ABF_CR0 управляет также выходными буферами.

Каждый аналоговый столбец имеет выделенную шину компараторов (рис. 9), которая может быть подключена к выходу компаратора одного из блоков столбца. Выход шины компараторов может подсоединяться к входам цифровых блоков, может являться источником прерывания, либо источником данных для блока децимации. Состояние шины компаратора может быть также оценено процессором при чтении регистра CMP_CR0.

Рис. 9. Схема шины компараторов

Сигнал на шине компараторов предварительно может быть сохранен в специальном регистре-защелке (Latch) — этим управляет регистр CMP_CR1. Шина компараторов может стробироваться выходом одного из цифровых блоков. Эта свойство используется для точного контроля периода интегрирования в интегрирующем АЦП. Выход шины компараторов может быть модифицирован или скомбинирован с другой шиной компараторов с помощью специальной таблицы преобразования (LUT). Перечень функций, реализуемых этой таблицей, приведен на рис. 10. Функцию задает регистр ALT_CR0.

Рис. 10. Функции таблицы преобразования на шине компараторов

Помимо показанной на рис. 9 схемы, шина CBUS может быть подключена к схеме ускорителя функции последовательного приближения (рис. 11). Алгоритм работы регистра последовательного приближения (Successive Approximation Register — SAR) представляет собой процедуру поиска такого кода, при цифро-аналоговом преобразовании которого полученное напряжение наилучшим образом соответствует измеряемому. Для реализации этого алгоритма требуется три блока — ЦАП, компаратор и программный или аппаратный автомат, осуществляющий поиск. Ускоритель функции SAR в PSoC представляет собой компромисс между полностью программной и полностью аппаратной реализациями.

Рис. 11. Аппаратный ускоритель функции последовательного приближения

В качестве DAC в этой схеме выступает массив переключаемых конденсаторов ACap, а в качестве регистра DAC — управляющий регистр ASxxxCR0. Для управления ускорителем функции SAR служит регистр ASY_CR, который определяет шину компараторов, к которой подсоединен данный блок, количество итераций поиска и полярность компаратора. Роль процессора в данном случае сводится к выполнению операции чтения-записи в регистр ASxxxCR0 — такая последовательность запускает SAR-ускоритель для выполнения поиска очередного бита и подстройки значений ACap и ASign. Например, в качестве такой операции может выступать инструкция OR reg[ASxxxCR0],0, которая запускает ускоритель, но сама не влияет на содержимое регистра. Ускоритель функции SAR применяется в PSoC для создания ЦАП и АЦП последовательного приближения.

Блок источника опорных напряжений (рис. 12) предназначен для формирования аналоговой «земли» (AGND), а также опорных напряжений RefHi и RefLo, которые определяют диапазон аналого-цифрового и цифро-аналогового преобразований. Все эти опорные напряжения подведены к каждому аналоговому блоку. Аналоговая «земля» дополнительно буферизуется внутри каждого блока.

Рис. 12. Источник опорных напряжений

Источником опорных напряжений управляет конфигурационный регистр ARF_CR. В таблице 1 приведены возможные варианты опорных напряжений. Напряжение Vbg (Vbаndgap) формируется специальным внутренним блоком источника стабилизированного напряжения, опирающимся на ширину запрещенной зоны полупроводника. Этот же блок формирует пропорциональное температуре напряжение, которое может быть использовано для измерения температуры. Данный температурный датчик подключен к одному из входов аналогового блока ASC21, однако для более-менее точного измерения требуется калибровка.

Таблица 1. Возможные варианты опорных напряжений

Кроме выбора вариантов опорных напряжений, регистр ARF_CR отвечает и за выдаваемую источником мощность. При этом должно строго соблюдаться условие: установки потребляемой мощности любого из аналоговых блоков не должны превышать установок мощности источника опорных напряжений. В таблице 2 приведены возможные настройки мощности источника опорных напряжений, а в таблице 3 — возможные настройки мощности для каждого отдельного аналогового блока.

Таблица 2. Возможные настройки мощности источника опорных напряжений
Таблица 3. Возможные настройки мощности для каждого отдельного аналогового блока
*) Бит HBE (High Bias Level) увеличивает потребляемую мощность всего аналогового массива вдвое.

В качестве примера работы с аналоговой периферией выполним очередной несложный проект на базе демоплаты из комплекта CY3210-MiniProg1. На этой плате установлен потенциометр, подключенный к контакту P0[1]. Это позволяет подавать на вход PSoC напряжение в диапазоне от «земли» до напряжения питания Vdd. Оцифруем сигнал с потенциометра и отобразим старшие четыре бита полученного цифрового кода на имеющихся на плате светодиодах.

Создадим новый проект [7, 8] в PSoC Designer и в режиме выбора модулей пользователя выберем простейший АЦП, занимающий один блок — SAR6. Кроме того, нам потребуется модуль программируемого усилителя PGA для того, чтобы передать сигнал от входного мультиплексора к АЦП. В редакторе связей расположим выбранные модули в одном аналоговом столбце. Автоматически модуль PGA расположится в блоке CT, поскольку реализован на его основе. Модуль SAR6 можно расположить в одном из двух других блоков SC. Соединим вход PGA с входным мультиплексором, который, в свою очередь, настроим на соединение с контактом 1 порта P0. Вход SAR6 соединим с выходом PGA. Если блоки SC и CT расположены рядом, то вход SAR6 можно соединить с выходом PGA напрямую, минуя выделенную аналоговую шину, в противном случае придется ее использовать. Коэффициент усиления PGA выберем равным 1, то есть в данном случае он будет выступать в роли буфера-повторителя. Конфигурация аналоговой части представлена на рис. 13. Контакты порта P2, управляющие светодиодами, переведем в режим Strong.

Рис. 13. Конфигурация аналоговой части

Далее необходимо задать глобальные параметры проекта. Настроим опорные напряжения как (Vdd/2)±(Vdd/2), установив параметр Ref Mux в соответствующее значение. Таким образом, напряжение аналоговой «земли» будет составлять Vdd/2, то есть 2,5 В при напряжении питания 5 В. Выберем среднюю мощность аналогового массива, установив в параметре Analog Power значение SC On/Ref Med. Этим мы ограничим потребляемую всем аналоговым массивом мощность, поэтому при запуске выбранных нами модулей можем установить их мощность максимум в среднее значение. Внутренняя частота модуля SAR6 должна находиться в диапазоне от 33 до 333 кГц, поэтому максимальная частота тактирования блока не должна превышать 1,33 МГц. Выберем в качестве входной частоты сигнал 250 кГц, установив делители системной частоты следующим образом: V1 = 16 и V2 = 6. Оставим остальные глобальные параметры без изменений, сгенерируем шаблон проекта и перейдем в редактор программы.

В редакторе исходных текстов программы откроем файл main.asm и добавим в него вызовы API-функций для запуска выбранных нами блоков. Измененный текст представлен в листинге.

При правильной работе светодиоды на контактах P2[3..0] будут отображать двоичные коды от –8 до 7.

Литература

  1. PSoC Mixed Signal Array Technical Reference Manual (TRM). Version 2.10.
  2. PSoC Designer IDE User Guide.
  3. Assembly Language User Guide.
  4. Dave Van Ess. AN2041. Understanding Switched Capacitor Analog Blocks.
  5. Dave Van Ess. AN2168. Understanding Switched Capacitor Filters.
  6. Onur Ozbek. AN2216. Estimating PSoC Power Consumption.
  7. Килочек Д. Проектирование на программируемых системах на кристалле PSoC Cypress // Компоненты и технологии. 2006. № 4.
  8. Килочек Д. Проектирование на программируемых системах на кристалле PSoC Cypress. Часть 2. Цифровая конфигурируемая периферия // Компоненты и технологии. 2006. № 6.
  9. 6-Bit SAR ADC. CY8C29/27/24/22xxx Data Sheet.
  10. Programmable Gain Amplifier. CY8C29/27/24/22/xxx Data Sheet.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *