Новые цифровые потенциометры от компании microchip с spi интерфейсом

» Интерфейс SPI

Кратко о SPI

Serial Peripheral Interface или SPI — последовательный периферийный интерфейс, служит для связи периферии и микроконтроллера.

Например, в качестве периферии может быть: дисплей, различные датчики, FLASH память, SD карта (да, да, SD карта или «флешка» которую вы используете в телефонах и фотоаппаратах общается с внешним миром с помощью интерфейса SPI) и т.д.

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

О том что такое SPI читайте в статьях википедии

http://ru.wikipedia.org/wiki/Serial_Peripheral_Interface
http://en.wikipedia.org/wiki/SPI_bus

В SPI всегда есть один ведущий и один/несколько ведомых.

Передачу данных всегда инициализирует ведущий.

В SPI используются четыре линии связи:

  • MOSI или SI — выход ведущего, вход ведомого (англ. MasterOutSlaveIn). Служит для передачи данных от ведущего устройства ведомому.
  • MISO или SO — вход ведущего, выход ведомого (англ. MasterInSlaveOut). Служит для передачи данных от ведомого устройства ведущему.
  • SCLK или SCK — последовательный тактовый сигнал (англ. SerialClock). Служит для передачи тактового сигнала для ведомых устройств.
  • CS или SS — выбор микросхемы, выбор ведомого (англ. Chip Select, Slave Select).

P.S.

Для обеспечения односторонней связи с одним устройством, достаточно использовать SCLK, MOSI (в случае если ведомое устройство только принимает) или SCLK, MISO (в случае если ведомое устройство ничего не принимает, а только передает информацию). На входе CS ведомого устройства должен быть установлен логический ноль, иначе ведомый не будет работать.

P.S.

 Если ведомое устройство и передает и принимает, то можно ограничиться тремя проводами – MISO, MOSI, SCLK, на вход CS ведомого устройства также необходимо установить логический ноль.

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

Например, для ATmega328Р (микроконтроллер компании Atmel) при работе с SPI нам нужно самим программным путем установить на SS логический ноль при начале приема/передачи и установить логическую единицу обратно при окончание передачи.

Для передачи данных к ведомому устройству, нужно в сдвигающий регистр MASTER-а (на изображение сдвигающий регистр мастера — «8 BIT SHIFT REGISTER») записать байт передаваемой информации. При этом автоматически на SCK начнет генерироваться синхросигнал. Это и есть аппаратная реализация.

Если аппаратной поддержки SPI в микроконтроллере нет, то интерфейс SPI можно всегда реализовать программно, т.е. создать программу управляющая ножками контролера согласно протоколу обмена SP.

Различия в реализациях интерфейса SPI

Ведомые микросхемы могут по разному «интерпретировать» принятый сигнал по SPI, отличие может заключается в следующих моментах:

  • в размере передающих данных или размер пакета, обычно это 8 бит, но бывает и больше
  • в порядке следования бит, сначала старший бит или сначала младший бит
  • по какому уровню синхросигнала передаются данные (по логической единицы (HIGH) или логическому нулю (LOW))
  • по какому фронту импульса происходит синхронизация (по подъему или спуску), кратко это называют «фазой синхронизации»

Комбинация «уровня синхронизирующего сигнала» и «фазы синхронизации» определяется в спецификациях как режимы работы SPI. Их всего 4-е:

Режим Уровень сигнала (CPOL) Фаза (CPHA)
1 1
2 1
3 1 1

В столбце «Уровень сигнала» 1-ца, означает, что бит данных, принимаются ведомым устройством, когда по линии синхронизации передается ноль, другими словами — ведомое устройство ожидает и не принимает данные, когда на SCK установлена логическая 1-ца.

В столбце «Фаза» 1-ца, означает, что сигнал синхронизации определяется по спадающему фронту синхроимпульса, а логический 0-ль по нарастающему фронту синхроимпульса.

P.S.

Причем если в столбце «Уровень сигнала» установлена 1-ца, то спадающий и нарастающий фронт если изобразить на диаграмме будет «вверх ногами».

На диаграммах, данные 4-е режима можно изобразить следующим образом:

Более подробно о принципах работы SPI вы можете прочесть в статье

http://www.kit-e.ru/articles/interface/2009_03_53.php

Реализация SPI на микроконтроллерах ATmega серии AVR (ATmega328P) и «ранних» МК фирмы Motorola

В микроконтроллере ATmega328P (микроконтроллер фирмы Atmel серии AVR) можно управлять следующими параметрами SPI:

  • тип устройства (какую роль выполняет микроконтроллер, в качестве ведущего или ведомого)
  • порядок следования бит при передачи данных, сначала старший или младший бит
  • режим работы SPI (один из 4-ех указанных выше), с помощью комбинации 2-ух параметров — «полярность синхросигнала» и «фаза синхронизации».
  • частоту обмена данными по SPI

Для настройки и управлением SPI интерфейсом используют три регистра:

  • Регистр управления — SPCR
  • Регистр состояния — SPSR
  • Регистр данных — SPDR

Подробнее о каждом из них …

Регистр управления  – «SPCR» (адрес в ATmega328P для чтения 0x2C, адрес для записи 0x4C, если у вас другой МК, то найти адреса вы можете в документации)

— Логическая единица в 7-ом бите (имя бита SPIE) – разрешить прерывания от SPI (прерывание будет в том случае если установлен бит глобального разрешения прерываний регистра SREG (7-й бит)). После окончания передачи байта будет сгенерировано прерывание.

— Логическая единица в 6-ом бите (имя бита — SPE) — подключить SS, MOSI, MISO и SCK к портам микроконтроллера ATmega328P — PB2,PB3,PB4,PB5.

— Логическая единица в 5-ом бите (имя бита DORD) – определит, что по SPI сначала передается младший разряд, а потом старший – режим «LSB».   Логический ноль, наоборот, что сначала передается старший разряд, а далее младший – режим «MSB».

— Логическая единица в 4-ом бите (имя бита — MSTR) — режим ведущий включить, ноль – включить режим ведомого

— Логическая единица в 3-ем бите (имя бита CPOL) (полярность сигнала синхронизации или уровень синхронизации) – синхронизация ведется по отсутствию импульса (по логическому нулю) или тактовый сигнал в состоянии ожидания равен 1-цы. Логический ноль — синхронизация ведется по присутствию импульса (по логической единицы) или тактовый сигнал в состоянии ожидания равен 0-лю . По какому фронту (спад или подъем) ведется синхронизация определяется в 2-ом бите (CPHA).

— Логическая единица в 2-ом бите (имя бита CPHA) (фаза синхронизации) – определяет, что сигнал синхронизации определяется по спадающему фронту SCK, а логический ноль по нарастающему фронту SCK. Причем если в CPOL установлена 1-ца, то спадающий и нарастающий фронт если изобразить на диаграмме «вверхногами».

1-ый и 0-ой бит совместно с битом SPI2x в регистре SPSR определяют скорость передачи данных по SPI (или скорость тактовый сигналов по SCK). Данные биты имеют смысл только для ведущего, для ведомого они бессмысленны, т.к. скорость приема зависит от частоты SCK ведущего.

Где fosc тактовая частота задающего генератора SPI (обычно она равна частоте тактирования процессора).

Регистр состояния – «SPSR» (адрес в ATmega328P для чтения 0x2D, адрес для записи 0x4D, если у вас другой МК, то найти адреса вы можете в документации)

7-ой бит регистра «SPIF» : SPI Interrupt Flag

В бит устанавливается единица, когда передача байта данных по MOSI закончена. Если установлен бит разрешения прерывания SPI (бит SPIE) в регистре SPCR, то установка флага SPIF приводит к генерации запроса на прерывание.

6-ой бит регистра «WCOL»: Write COLlision Flag

Бит конфликта записи в регистр SPDR. В бит устанавливается единица, если во время передачи данных выполняется попытка записи в регистр данных SPDR.

— с 5-ого по 1-ый бит – зарезервированные биты, их значение всегда равняется 0-лю

0-ой бит «SPI2X»: Double SPI Speed Bit

Бит «двойная скорость передачи данных». Если в бит записана единица, то скорость передачи данных удвоенная.

С помощью сочетания данного бита и 1-ого и 0-ого бита (SPR1, SPR0) регистра SPCR, определяют скорость передачи данных по SPI. См. таблицу выше.

Регистр данных – «SPDR» (адрес в ATmega328P для чтения 0x2E, адрес для записи 0x4E, если у вас другой МК, то найти адреса вы можете в документации)

Размер регистра, как и выше указанных — 8 бит. Данный регистр используется для передачи и чтения данных по SPI. Помещая данные в него, вы запускаете процесс передачи.

Рассмотрим 3-и примера работы с интерфейсом SPI на ATmega328P в средах:

— Arduino

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 #include<\p>  byte x=B11000000; //передаваемый бит  byte y= B00000000;  //в переменную y будет записываться принимающий битvoid setup() {  SPI.begin(); /* инициализация SPI */  /* инициализация в Arduino это значит- установить единицу в SS- настроить на выход SS (Slave Select или выбор ведомого) – 10 пин- установить 1-цу в следующие битах регистра управления SPCR:  в 4-ый бит (имя бита – MSTR) – режим ведущий включить  в 6-ой бит (имя бита – SPE)  – подключить                                 SS, MOSI, MISO и SCK                                 к портам  PB4,PB5,PB6,PB7                                 (10,11,12,13 пин в ардуино)- настроить следующие пины на выход:  SCK (Serial Clock или тактовый сигнал) – 13 пин    MOSI (Master Out Slave In или данные от ведущего) – 11 пин  В резульлтате иницилизации через SPI.begin()  конфигурация интерфейса SPI у нас выходит следующая:  – очередность битов “MSB”, т.е. сначала передается старший разряд, а далее младший  – синхронизация ведется по присутствию импульса    или тактовый сигнал в состоянии ожидания равен 0-лю  – сигнал синхронизации определяется по нарастающему фронту SCK    (два пункта выше указывают, что режим SPI в данном случае – 0)  – скорость передачи fosc/4  */  // МЫ МОЖЕМ ДОИНИЦИЛИЗИРОВАТЬ НЕКОТОРЫЕ ПАРАМЕТРЫ СВЯЗИ по SPI сами  // порядок следования бит  //SPI.setBitOrder(MSBFIRST);          /* LSBFIRST – сначала младший, далее старший           MSBFIRST – сначала старший, далее младший (стоит по умолчанию от SPI.begin) */  // частота обмена данными  //SPI.setClockDivider(SPI_CLOCK_DIV4);       /*  определяется как отношение           fosc к коэфициенту, возможные значения которого:              SPI_CLOCK_DIV2              SPI_CLOCK_DIV4              SPI_CLOCK_DIV8              SPI_CLOCK_DIV16              SPI_CLOCK_DIV32              SPI_CLOCK_DIV64              SPI_CLOCK_DIV128       */    //режим работы SPI  //SPI.setDataMode(SPI_MODE0);      /*              SPI_MODE0 – нулевой режим              SPI_MODE1 – первый режим              SPI_MODE2 – второй режим              SPI_MODE3 – третий режим      */}void loop(){  /* РЕАЛИЗАЦИЯ ПЕРЕДАЧИ ДАННЫХ ПО SPI */  digitalWrite(10, HIGH); /* от нас треубется, самому установить в SS 1-цу */   y=SPI.transfer(x); /* передача по битно аргумента (байта) и прием ответа от ведомого уст-ва                                                    передача осуществляется присваиванием регистру SPDR значение байта                      причем в это время автоматрически на SCK (13 пин)                      формируется тактовый сигнал */  digitalWrite(10, LOW); /* от нас треубется, самому установить в SS 0-ль */  SPI.end(); /* отключает шину SPI от 10,11,12,13 пинов */  /* Т.е. устанавливает 0-оль в 6-ой бит (SPE) регистра SPCR  */}

— Atmel Studio (AVR GCC)

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 #include<\p>#include<\p>void init_spi() {DDRB=(1

Источник: http://s-engineer.ru/interfejs-spi/

Последовательный интерфейс SPI

 

SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом.

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

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

Периферия, не выбранная процессором, не принимает участие в передаче по SPI.
В SPI используются четыре цифровых сигнала:

  • MOSI или SI – выход ведущего, вход ведомого (англ. Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому;
  • MISO или SO – вход ведущего, выход ведомого (англ. Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.
  • SCK или SCLK – последовательный тактовый сигнал (англ. Serial CLocK). Служит для передачи тактового сигнала для ведомых устройств.
  • CS или SS – выбор микросхемы, выбор ведомого (англ. Chip Select, Slave Select).Как правило, выбор микросхемы производится низким логическим уровнем.

В зависимости от комбинаций полярности и фазы синхроимпульсов возможны четыре режима работы SPI.

Режим SPI Временная диаграмма
Режим SPI0 Активные уровень импульсов — высокий.Сначала защёлкивание, затем сдвиг.
Режим SPI1 Активные уровень импульсов — высокий.Сначала сдвиг, затем защёлкивание.
Режим SPI2 Активные уровень импульсов — низкий.Сначала защёлкивание, затем сдвиг.
Режим SPI3 Активные уровень импульсов — низкий.Сначала сдвиг, затем защёлкивание.

В таблице принято:

  • MSB — старший бит;
  • LSB — младший бит.

Мастеру приходится настраиваться на тот режим, который используется ведомым.
При обмене данными по интерфейсу SPI микроконтроллер может работать как ведущий (режим Master) либо как ведомый (режим Slave). При этом пользователь может задавать следующие параметры:

  • режим работы в соответствии с таблицей;
  • скорость передачи;
  • формат передачи (от младшего бита к старшему или наоборот).

Соединение двух микроконтроллеров по структуре ведущий – ведомый по интерфейсу SPI осуществляется по следующей схеме.

Выводы SCK, CS для ведущего микроконтроллера являются выходами, а ведомого микроконтроллера – входами.

Передача данных осуществляется следующим образом. При записи в регистр данных SPI ведущего микроконтроллера запускается генератор тактового сигнала модуля SPI, и данные начинают побитно выдаваться на вывод MOSI и соответственно поступать на вывод MOSI ведомого микроконтроллера.

После выдачи последнего бита текущего байта генератор тактового сигнала останавливается с одновременной установкой в «1» флага «Конец передачи». Если поддерживаются и разрешены прерывания от модуля SPI, то генерируется запрос на прерывание.

После этого ведущий микроконтроллер может начать передачу следующего байта либо, подав на вход SS ведомого напряжение уровня логической «1», перевести его в состояние ожидания.

Одновременно с передачей данных от ведущего к ведомому происходит передача и в обратном направлении, при условии, что на входе SS ведомого присутствует напряжение низкого уровня.

Таким образом, в каждом цикле сдвига происходит обмен данными между устройствами. В конце каждого цикла флаг прерывания устанавливается в «1» как в ведущем микроконтроллере, так и в ведомом.

Принятые байты сохраняются в приемных буферах для дальнейшего использования.

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

Вывод SS предназначен для выбора активного ведомого устройства и в режиме Slave всегда является входом. Каждый раз, когда на вывод SS подается напряжение уровня логической «1», происходит сброс модуля SPI. Если изменение состояния этого вывода произойдет во время передачи данных, и прием, и передача немедленно прекратятся, а передаваемый и принимаемый байты будут потеряны.

Если микроконтроллер находится в режиме Master, направление передачи данных через вывод SS определяется пользователем. Если вывод сконфигурирован как выход, он работает как линия вывода общего назначения и не влияет на работу модуля SPI. Как правило, в этом случае он используется для управления выводом SS микроконтроллера, работающего в режиме Slave.

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

Пример использования интерфейса SPI для микроконтроллеров STM32 хорошо описан в этой статье.
Назад

Назад: Программирование микроконтроллеров

Источник: https://prog-cpp.ru/micro-spi/

Учебный курс AVR. Работа с SPI модулем. Ч1

   Сигналы, используемые данным интерфейсом, имеют следующее назначение: 

MOSI — Master Output / Slave Input. Выход ведущего / вход ведомого. Служит для передачи данных от ведущего устройства к ведомому.
MISO
– Master Input / Slave Output. Вход ведущего / выход ведомого. Служит для передачи данных от ведомого устройства к ведущему.

SLK — Serial Clock. Сигнал синхронизации. Служит для передачи тактового сигнала всем ведомым устройствам.
SS — Slave Select. Выбор ведомого. Служит для выбора ведомого устройства.    Производители микросхем часто используют другие названия для этих сигналов.

Альтернативные варианты могут быть такими:

MOSI – DO, SDO, DOUT.

MISO – DI, SDI, DIN.
SCK – CLK, SCLK.
SS – CS, SYNC.

   Схемы соединений по SPI

   Типовая схема соединения двух устройств по SPI выглядит так.

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

   Исключение составляет каскадная схема соединения по SPI. При таком подключении сдвиговые регистры устройств образуют один большой регистр, и количество линий SPI остается равным 4-ем. Правда, такое подключение поддерживают далеко не все микросхемы.

   Также возможен сокращенный вариант схемы подключения, когда линия MOSI или MISO не используется. То есть передача данных осуществляется только в одну сторону. Такие схема, например, используются при подключении к микроконтроллеру внешних микросхем ЦАП и АЦП.

   Протокол обмена по SPI

   Протокол обмена по SPI аналогичен логике работы сдвигового регистра и заключается в последовательном побитном выводе/вводе данных по определенным фронтам тактового сигнала.

Установка данных и выборка осуществляется по противоположным фронтам тактового сигнала.

   Спецификация SPI предусматривает 4 режима передачи данных, которые отличаются между собой соотношением фазы и полярности тактового сигнала и передаваемых данных.    Эти режимы описываются двумя параметрами:

CPOL – clock polarity. Полярность тактового сигнала – определяет исходный уровень сигнала синхронизации

CPHA – clock phase. Фаза тактового сигнала — определяет последовательность установки и выборки данных.    Рисунки ниже иллюстрируют все четыре режима обмена SPI.

   SPI mode 0: CPOL = 0, CPHA=0. Тактовый сигнал начинается с уровня логического нуля. Защелкивание данных выполняется по нарастающему фронту. Смена данных происходит по падающему фронту. Моменты защелкивание данных показаны на рисунках стрелочками

  SPI mode 1: CPOL = 0, CPHA=1. Тактовый сигнал начинается с уровня логического нуля. Смена данных происходит по нарастающему фронту. Защелкивание данных выполняется по падающему фронту.

   SPI mode 2: CPOL = 1, CPHA=0. Тактовый сигнал начинается с уровня логической единицы. Защелкивание данных выполняется по падающему фронту. Смена данных выполняется по нарастающему фронту тактового сигнала.

   SPI mode 3: CPOL = 1, CPHA=1. Тактовый сигнал начинается с уровня логической единицы. Смена данных выполняется по падающему фронту тактового сигнала. Защелкивание данных выполняется по нарастающему фронту.

   Современные микроконтроллеры поддерживают все четыре режима работы SPI.

   Стоит отметить, что передача данных по SPI может происходить не только старшим битом вперед, но и младшим.

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

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

Остальные части

   Учебный курс AVR. Работа с SPI. Запись и чтение данных. Ч2
   Учебный курс AVR. Работа с SPI. Управление сдвиговым регистром. Ч3

У вас недостаточно прав для комментирования.

Источник: http://chipenable.ru/index.php/programming-avr/item/137

Последовательный интерфейс SPI

ПодробностиКатегория: МикроконтроллерыОпубликовано 16.04.2016 12:55Автор: AdminПросмотров: 1466

При работе с микроконтроллерами довольно часто приходится использовать последовательный интерфейс SPI. 

SPI – довольно распространенный интерфейс для обмена данными с другими микросхемами, обмен данными осуществляться последовательно. Этот интерфейс так же как и I2C, являются наиболее распространенными интерфейсами обмена данными между микросхемами.

Интерфейс SPI придумала компания Motorola, по сей день этот интерфейс существует и им пользуются многие производители электроники. Сокращение SPI представляет собой аббревиатуру от “Serial Peripheral Bus” что означает шина для подключения внешних периферийных устройств. Работает она схеме “подчиненный-ведущий”.

В роли ведущего выступает микроконтроллер, также может быть программируемая логика, какая нибудь специализированная ИС или DSP контроллер.

В качестве подчиненных могу выступать:

  • запоминающие устройства такие как EEPROM, Flash память ,SRAM;
  • часы реального времени RTC;
  • АЦП, ЦАП;
  • цифровые потенциометры;
  • другие микроконтроллеры и др.

Главными составными блоками последовательного интерфейса SPI являются сдвиговой регистр, сигнал синхронизации, сигнал ввода/вывода.

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

Функцию генерации тактового сигнала или сигнала синхронизации берет на себя ведущее устройство и от него полностью зависит работа подчерненных устройств. 

Подключение устройств по протоколу SPI

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

В этом случае ведущее устройство осуществляет передачу данных по линии MOSI, передачи осуществляется синхронно вместе с сигналом SCLK который также генерируется ведущим устройством. На другой стороне подчиненное устройство осуществляет прием данных, прием осуществляется по определенным фронтам сигнала синхронизации.

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

Передачу данных в одну осуществляется на таких микросхемах как цифровые потенциометры, драйверы и программируемые усилители. Для них требуется 3 или 4 линии связи. 

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

 В случае подключения нескольких устройств к одной шине SPI, можно использовать независимое подключение или параллельное, а можно каскадное или последовательное. Независимое (параллельное) подключение используется чаще.

В этой схеме все линии соединены параллельно, за исключением линии выбора устройства. Используя эту линию ведущее устройство выбирает ту или иную микросхему с которой он будет обмениваться теми или иными данными. Но у этого соединение есть один недостаток в виде увеличения количество линий.

Количество линий будет равно 3+n, где n – количество подключенных подчиненных устройств.

Если у вас много подчиненных устройств. Для того чтобы уменьшить количество линий нужно использовать каскадное соединение. В этом случае все подсоединенные устройства образуют одни сдвиговый регистр. В этом случае выход одной микросхемы подсоединяют ко входу другой. Все выходы выбора микросхемы SS соединяются в одну линию.

Используя такую схему подключения подчиненных устройств равно 4-м. Только такое соединение устройств возможно только в том случае если все подключенные устройства поддерживают такое соединение.

Узнать поддерживает устройство такой режим работы или нет можно узнать в документации на микросхему, такое соединение называется 'daisy-chaining' 

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

Установка принимаемых данных при отсылке и выборка при приеме всегда осуществляется по противоположным фронтам сигнала синхронизации. Это нужно для гаранта выборки данных после их надежного установления.

Первый фронт в цикле при передачи может быть нарастающий или спадающий сигнал, то возможны четыре случая работы интерфейса SPI. Все эти варианты носят название режимы работы интерфейса SPI и описываются двумя разными параметрами:

CPOL – начальный уровень сигнала линии сигнализации, если CPOL=0 то от начала и до конца цикла передачи линия синхронизации имеет низкий уровень, т.е. нарастающий первый фронт и падающий последний. Если CPOL=1 то наоборот первый фронт падающий а последний нарастающий.

CPHA – фаза линии синхронизации, от значения этого параметра зависит последовательность выполнения и выборки данных (если CPHA имеет низкое значение то по переднему фронту будет производится выборка данных, а далее по заднему будет установка данных. Если значение CPHA будет иметь высокий уровень то установка данных будет осуществятся по переднему фронту в цикле синхронизации, а выборка наоборот по заднему. 

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

Если в микросхеме SPI осуществляется аппаратно то они могут поддерживать любой режим SPI и к ним можно подключать практически любые подчиненные SPI микросхем (только независимый вариант подключения).

Любой режим SPI можно реализовывать программно.

Не меньшей популярность также как и SPI пользуется протокол I2C. Для сравнения ниже представлена таблица преимуществ этих протоколов.

Преимущества SPI интерфейса

Простота протокола передачи и как следствие высокая надежность и быстродействие.

Скорость передачи данных измеряется десятками мегагерц, поэтому такой протокол отлично подходит для тех схем где требуется передачи значительных объемов данных к примеру высокоскоростные ЦАП и АЦП, микросхемы памяти, драйвера светодиодных дисплеев.

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

Преимущества I2C

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

Протоколы совместимые с протоколом SPI

Microwire

Данный протокол передачи данных от компании National Semiconductor идентичен в режиме 0 протоколу SPI (CPOL=0, CPHA=0)

Протокол от компании Maxim 

Особенностью этого интерфейса заключается в том, что полудуплексная передача осуществляется по одной двунаправленной линии DQ

Протокол QSPI

Является высокоуровневым протоколом, в отличии от SPI позволяет осуществлять автоматическую передачу без использования ЦПУ.

Электрические сигналы SPI

Ведущий шины Подчиненный шины
Основное обозначение Альтернативное обозначение Описание Основное обозначение Альтернативное обозначение Описание
MOSI DO, SDO, DOUT Выход последовательной передачи данных MOSI DI, SDI, DIN Вход последовательного приема данных
MISO DI, SDI, DIN Вход последовательного приема данных MISO DO, SDO, DOUT Выход последовательной передачи данных
SCLK DCLOCK, CLK, SCK Выход синхронизации передачи данных SCLK DCLOCK, CLK, SCK Вход синхронизации приема данных
SS CS Выход выбора подчиненного (выбор микросхемы) SS CS Вход выбора подчиненного (выбор микросхемы)

Режимы работы интерфейса SPI

Режим SPI 1 2 3
CPOL 1 1
CPHA 1 1
Временная диаграмма первого цикла синхронизации

Источник: http://www.radio-magic.ru/microcontrollers/349-interfejs-spi

Внешняя периферия с последовательным интерфейсом для приложений на микроконтроллерах

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

Например, вам может понадобиться датчик или исполнительное устройство, физически близко расположенное к внешнему устройству, но удаленное от МК. Или вы можете посчитать, что бюджетный МК в сочетании с некоторой внешней периферией будет лучшим решением для данного приложения.

В любом случае, имеется постоянно пополняемый список периферийных устройств для МК, которые используют для коммуникации с ним интерфейсы I2C или SPI. В статье мы рассмотрим некоторую типичную периферию и как ее можно использовать с популярными МК.

Оба интерфейса I2C и SPI широко поддерживаются в микроконтроллерах. В некоторых случаях вам придется выбирать один или другой, т.к.

МК используют одинаковые внутренние ресурсы для поддержки или I2C, или SPI.

Кроме того, понадобится некоторое программное обеспечение для обработки протокола последовательной шины, но практически каждый производитель МК обеспечивает легкодоступную программную поддержку.

Интерфейс I2C имеет преимущество за счет использования меньшего числа сигнальных линий и, следовательно, меньшего числа используемых выводов МК. Самая распространенная реализация – двунаправленная линия данных и линия тактирования,  поддерживающая полудуплексную связь.

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

Ведущий обращается к ведомому по адресу, который в последовательности передается первым, устраняя необходимость иметь дополнительные сигналы выбора устройства (Chip Select).

SPI интерфейс требует от МК наличия, как минимум, от трех до четырех линий ввода/вывода. Интерфейс использует отдельные линии данных для полнодуплексной коммуникации.

Более того, используется специальная линия выбора ведомого, поэтому если имеется несколько периферийных устройств с SPI интерфейсом, вы можете просто использовать незадействованные линии ввода/вывода МК в качестве линий выбора ведомых.

SPI интерфейс, в целом, предоставляет более высокую производительность за счет полнодуплексной и высокоскоростной передачи данных. Частота тактового сигнала SPI может быть в диапазоне 20 – 40 МГц. Передача данных по интерфейсу I2C может вестись со скоростью 10 – 100 Кбит/с, но в некоторых случаях, при использовании новых микроконтроллеров, скорость может быть несколько выше.

Мотивация и особенности

Давайте теперь рассмотрим причины использования внешней периферии микроконтроллера, подключенной по последовательным интерфейсам, и доступные функции.

Преобразователи данных (АЦП, ЦАП) являются самым простым примером такого типа периферии, которая используется очень часто.

Еще одной причиной использования внешнего преобразователя данных является то, что вам может потребоваться более высокая точность, чем может предложить преобразователь, встроенный в выбранный микроконтроллер.

Рассмотрим некоторые преобразователи от компании Linear Technology. Компания предлагает микросхемы АЦП и ЦАП с интерфейсом I2C или SPI. Кроме того, все они являются более точными в сравнении с АЦП/ЦАП, встроенными в стандартные МК. Возьмем, к примеру, относительно новые 16-разрядные МК компании Renesas Technology семейства RL78.

Многие устройства в семействе, доступные и сейчас, имеют встроенный 8-битный АЦП, в то время как некоторые предлагают встроенный 10-битный АЦП. Для сравнения, дискретные АЦП Linear Technology имеют разрешение от 8 до 24 бит, а ЦАП – 8 – 18 битное разрешение.

Даже в 8- или 16-разрядной системе вы сможете использовать датчик, который требует высокого разрешения.

Рассмотрим один конкретный пример – одноканальный 16-битный АЦП LTC2451. Типовая схема включения микросхемы с интерфейсом I2C изображена на Рисунке 1. АЦП использует дельта-сигма модулятор и может выполнять 30 или 60 преобразований в секунду.

Ошибка преобразования по всей шкале составляет 4 младших значащих разряда, а временя преобразования  позволяет мультиплексировать входы.

Кроме того, микросхема очень компактна, выполнена в 8-выводном корпусе для поверхностного монтажа SOT-23 с размерами 2 × 3 мм.

Рисунок 1. 8-выводная микросхема АЦП LTC2451 предоставляет 16-битную точность и подключается к микроконтроллеру по интерфейсу I2C.

Компактность системы

Внешняя периферия также может способствовать реализации более компактной системы. Это может показаться нелогичным, т.к. в большинстве случаев мы думаем об интегрированной периферии, как о пути к миниатюризации. Но пока мы остановились на преобразователях данных, давайте рассмотрим пример совместного использования АЦП и МК от компании Microchip.

Компания Microchip предлагает широкий ассортимент АЦП и ЦАП с интерфейсами I²C и SPI.

Сосредоточимся на одном примере – микросхеме 10-битного АЦП MCP3021 с интерфейсом I²C, преобразователь которой использует топологию последовательного приближения.

Миниатюрное устройство выполнено в корпусе SOT-23 с пятью выводами, но предлагает высокую точность измерений, в сравнении с преобразователями, встроенными в бюджетные модели микроконтроллеров.

Также вы можете выбрать 6- или 8-выводный микроконтроллер компании Microchip или других производителей. Например, в семейство МК Microchip PIC10 входит множество устройств в 6-выводном корпусе SOT-23.

Сочетание миниатюрного микроконтроллера и такого же миниатюрного АЦП может оказаться более компактным и дешевым решением, отвечающим требованиям вашего приложения, чем использование одного микроконтроллера со встроенным АЦП.

Гибкость периферии

Какой тип внешних периферийных устройств вы можете подключить к микроконтроллеру по последовательному интерфейсу? Список можно продолжать очень долго. Самый простой пример –  расширитель портов ввода/вывода микроконтроллеров.

Многие бюджетные микроконтроллеры имеют малое количество линий ввода/вывода.

Даже если у вас есть микроконтроллер с большим количеством выводов, иногда требуется, чтобы некоторые сигнальные линии физически были расположены дальше от МК, например ближе к какому-либо датчику.

Компания NXP Semiconductor предлагает микросхему расширителя портов PCA9502, которая может работать с ведущим на шине SPI или I²C. Микросхема имеет 8 линий вода/вывода и очень компактна – выполнена в корпусе SOT616 (4.1 × 4.1 мм).

Также компания выпускает микросхемы серии SC16IS740/50/60, которые позволяют добавить в проект последовательный интерфейс UART c поддержкой скорости передачи данных до 5 Мбит/с.

В состав SC16IS750 и SC16IS760 дополнительно входит 8-канальный расширитель портов ввода/вывода.

Тем не менее, более полезной может быть периферия, которая отвечает специфическим требованиям конкретного приложения. Например, Microchip предлагает широкий спектр цифровых потенциометров с интерфейсом I²C.

Их можно использовать совместно с термисторами в приложениях контроля температуры.

На Рисунке 2 показан пример, где потенциометр MCP4018 используется для калибровки термистора и учета его нелинейной характеристики.

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

Для повышения надежности приложений, связанных с измерением температуры, компания Microchip предлагает I2C датчики температуры. Датчик MCP9808 имеет точность ±0.5°С в диапазоне -20°С до +100°С и выпускается в различных корпусах, размеры которых не превышают 2 × 3 мм.

Ассортимент периферии с последовательными интерфейсами расширяется специальными устройствами для организации пользовательского или человеко-машинного интерфейса.

Компания Microchip выпускает контроллер резистивного сенсорного экрана AR1000 (Рисунок 3), совместимый с интерфейсами I²C и SPI. Контроллер подключается к МК и поддерживает работу с 4-, 5- и 8-проводными сенсорными экранами различных производителей.

Выходными данными контроллера являются цифровые координаты, которые отправляются непосредственно в МК по последовательному интерфейсу.

Рисунок 3. Контроллер сенсорного экрана Microchip AR1000 позволяет организовать современный пользовательский интерфейс в приложении.

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

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

Кроме того, нужно убедиться, что вы не жертвуете в этом случае точностью при передаче сигнала между встроенной периферией и интерфейсом реального мира, где локальная периферия будет оптимальным вариантом в отношении точности.

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

digikey.com

Источник: https://www.rlocman.ru/review/article.html?di=140268

Цифровой потенциометр :AVR devices

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

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

С целью помучить изучить  прикольную детальку, был приобретен цифровой потенциометр MCP41010. О нем и пойдет речь.

Основные хар-ки девайса:

  • Полное сопротивление — 10 кОм
  • Сопротивление щётки — 52 Ом
  • Напряжение питания от 2.7 В до 5.5 В
  • Количество положений щётки — 256
  • Температурный диапазон -40…+85 °C
  • Интерфейс — SPI

Эти характеристики приведены в даташите. Реально же, у моего потенциометра полное сопротивление было 8.7 кОм. Но эта цифра укладывается в максимальные значения приведённые в даташите так что волноваться не о чем.

Кстати, существуют еще два точно таких же потенциометра но с сопротивлением 50 кОм и 100 кОм. Существуют также сдвоенные потенциометры с аналогичными характеристиками.

Положение щётки у данного потенциометра не запоминается, и если в этом есть потребность, то это необходимо реализовать программно. После подачи питания, щётка всегда встает в среднее положение.

Управление потенциометром
Управляется данный девайс через немного урезаный SPI. Отсутствует линия MISO, т.к. из потенциометра ничего прочитать нельзя, можно только записать. Алгоритм работы с потенциометром прост до безобразия:

1) Установить на ноге CS низкий логический уровень 2) Отправить нужную команду 3) Отправить байт данных

4) Установить на ноге CS высокий логический уровень

Рассмотрим подробнее байт команды:

Биты C1 и C0 предназначены для выбора исполняемой команды. Их всего две не считая NOP. Для чего нужна пустая команда я так и не понял из даташита.

P1 и P0 выбирают потенциометр на котором будет выполнена команда. Т.к. мой потенциометр не сдвоенный, то бит P1 для меня совершенно бесполезен.

Отладка управляющего софта происходила на моей новой отладочной плате. Это было первое её боевое крещение. 🙂 Потенциометр я приконнектил к контроллеру следующим образом:

Между седьмым и шестым выводом потенциометра  подключен мультиметр который показывает изменение сопротивления. Еще есть две кнопки замыкающие выводы 4 и 5 на землю (на схеме забыл нарисовать). Зашив прошивку в контроллер можно экспериментировать  (подобные видео снимаю впервые, поэтому просьба сильно не пинать):

Софт
SPI хоть и реализован программно, но ни кто не мешает заюзать аппаратный spi если он конечно же есть в используемом вами контроллере.  Программа простая и думаю в комментариях не нуждается. Некоторые моменты пояснены в самом коде, но если возникнут вопросы то можно спросить прямо тут в комментариях. Написано всё на ассемблере.

Впечатления
Нормальный потенциометр, применение я думаю ему найду без труда. Огорчило лишь то, что сделать на нем регулятор громкости увы не вышло. Слишком сильные искажения, когда щётка подходит к крайнему положению.

Прошивка+исходник
Даташит на MCP41010

Источник: http://avrdevices.ru/cifrovoy-potentsiometr/

Цифровые потенциометры

Цифровые потенциометры выполняют функцию регулирования, аналогичную той, что выполняет обычный потенциометр с механическим управлением.

Сопротивление электронного регулятора изменяется дискретно (ступенчато) при подаче тактового импульса на счетный вход CLK микросхемы, а увеличение или уменьшение сопротивления определяется уровнем сигнала на входе UP/DOWN.

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

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

  • либо подаваемым извне цифровым кодом;
  • либо формируемым непосредственно в микросхеме в зависимости от продолжительности подачи управляющего сигнала «вверх» или «вниз» на выводы управления, предназначенные для подключения к кнопкам управления или к источникам внешних управляющих сигналов «цифрового» уровня 1/0.

Примечание

Особенностью цифровых электронных реостатов и потенциометров является то, что изменение их электрического сопротивления осуществляется дискретно с заданным шагом по линейному, логарифмическому или иному, заданному пользователем, закону. Количество таких шагов обычно кратно двум, например, 32, 64, 128, 256 и т. д. При отключении/включении питания установленный до отключения на электронном потенциометре уровень (положение среднего вывода) запоминается.

Электронные потенциометры используют в технике связи, телевидении, персональных компьютерах, производственной и бытовой радиоэлектронной аппаратуре.

Такие потенциометры применяют для узлов электронной настройки, многоканальной регулировки громкости/тембра звуковоспроизводящей аппаратуры, в системах автоматической регулировки усиления, перестраиваемых многозвенных фильтрах, схемах управления параметрами дисплеев и т. д.

Примечание.

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

Кроме того, поскольку в состав регуляторов входят нелинейные полупроводниковые элементы, повышается уровень нелинейных искажений. Этот уровень заметно возрастает при понижении напряжения питания микросхемы регулятора.

Если в составе электронного устройства содержится несколько электронных потенциометров и реостатов, негативные последствия от их совместного использования суммируются.

Цифровые электронные реостаты и потенциометры фирмы Dallas Semiconductor (DS) — Maxim, например, DS1668 выпускаются с интерфейсом ручного управления (в виде кнопки) или в виде традиционной интегральной микросхемы — DS1669.

Рис.1 Расположение выводов микросхемы DS1669:

RH — верхний; RW — средний; RL— нижний вывод потенциометра; +V,-V — питание; UC—вход управления перемещением вверх; DC — вниз

Эти микросхемы однотипны, имеют 64 ступени изменения сопротивления и выпускаются в стандартных номиналах 10, 50 и 100 кОм.

Типовые примеры управления электронными потенциометрами DS1669 при помощи одной или двух кнопок приведены на рис. 2 и рис. 3.

Рис.2. Типовая схема включения цифрового электронного потенциометра DS 1669 с однокнопочным управлением

Рис.3. Типовая схема включения цифрового электронного потенциометра DS1669 с двухкнопочным управлением

Приведу далее сведения по основным разновидностям современных цифровых потенциометров.

DS1267 — двухканальный линейный цифровой потенциометр на номинал 10, 50 или 100 кОм. Имеет 256 позиций положения движка с управлением по последовательному трехпроводному интерфейсу. Напряжение питания 5(±5) В.

DS1666 — цифровой потенциометр, предназначенный для устройств звуковоспроизведения. Он имеет логарифмическую шкалу и 128 точек позиционирования. Напряжение питания 5 В. Значения сопротивлений резистивной матрицы может быть 10, 50, 100 кОм. Затухание сигнала с амплитудой до 5 В на уровне -3 дБ на частотах 1,1; 0,2 и 0,1 МГц, соответственно.

DS1667 — представляет собой сдвоенный цифровой потенциометр. Микросхема содержит также два широкополосных операционных усилителя. Каждый потенциометр формируется из 256 элементов, резисторы могут складываться, что дает возможность получать единственный потенциометр на 512 элементов.

DS1802 — сдвоенные потенциометры, обеспечивают регулирование уровня громкости и/или тембра звукозаписи в проигрывателях компакт-дисков, звуковых платах (картах) и иных электронных устройствах. Эти потенциометры имеют логарифмическую характеристику регулировки сопротивления.

Весь диапазон в 45 кОм разбит на 65 позиций с приращением шага в 1 дБ. Для управления потенциометром (потенциометрами) от центрального процессора или иных микросхем используют трехпроводный последовательный интерфейс. Потенциометрами можно управлять и при помощи обычных кнопок.

Помимо перечисленных, известны также микросхемы цифровых потенциометров:

DS1800 — сдвоенный цифровой линейный потенциометр на 128 позиций номиналом 50 кОм с управлением по последовательному трехпроводному интерфейсу. Напряжение питания 3(5) В.

DS1801/DS1802 — сдвоенный цифровой потенциометр на 64 позиции, с логарифмической характеристикой, номиналом 50 кОм с управлением по последовательному трехпроводному интерфейсу. Напряжение питания 3(5) В.

DS1803 — сдвоенный линейный цифровой потенциометр на 256 позиций, номиналом 10, 50 или 100 кОм с управлением по последовательному двухпроводному интерфейсу. Напряжение питания 3(5) В.

DS1804 — энергонезависимый линейный цифровой потенциометр, который имеет 100 позиционных отводов, номиналом 10, 50 или 100 кОм. Напряжение питания 3(5) В.

DS1805 — линейный цифровой потенциометр на 256 позиций номиналом 10, 50 или 100 кОм с управлением по последовательному двухпроводному интерфейсу. Напряжение питания 3(5) В.

DS1806 — линейный шестиканальный цифровой потенциометр на 64 позиции номиналом 10, 50 или 100 кОм с управлением по последовательному трехпроводному интерфейсу. Напряжение питания 2,7—5,5 В.

DS1807 — сдвоенный цифровой потенциометр на 64 позиции каждый, с логарифмической характеристикой изменения сопротивлений для регулирования уровня звуковых сигналов. Работает с двухпроводным последовательным интерфейсом. Программно можно объединить два потенциометра в один. Напряжение питания 3(5) В.

DS1808 — сдвоенный логарифмический цифровой потенциометр на 32 позиции, номинал 45 кОм. Двухпроводное управление. Напряжение питания +4,5; ±13,2 В.

DS1809 — цифровой потенциометр на 64 позиции. Управление кнопками «вверх»/»вниз». Предусмотрена функция (авто)сохранения установленного уровня. Значения сопротивлений резистивной матрицы может быть 10, 50, 100 кОм. Затухание сигнала с амплитудой до 5 В на уровне —3 дБ на частотах 1,0; 0,2 и 0,1 МГц, соответственно. Напряжение питания +4,5—5,5 В.

DS1844 — счетверенный линейный потенциометр на 64 позиции с двухпроводным интерфейсом номиналом 10, 50 или 100 кОм с двухпроводным интерфейсом. Напряжение питания 2,7—5,5 В.

DS1845 — сдвоенный линейный потенциометр на 256 позиций с двухпроводным интерфейсом. Напряжение питания 3(5) В.

DS1847 и DS1848 — температурно-компенсированные двойные линейные цифровые потенциометры на 256 позиций номиналом 10 или 50 кОм. Напряжение питания +3,0—5,5 В.

Помимо перечисленных, известны также цифровые потенциометры DS1854—DS1859y DS1866—DS1870, DS2890, DS3902, DS3903—DS3905, DS3930, DS4301 и др., сведения о которых можно почерпнуть из справочной литературы или на сайтах фирм-производителей. Отметим также в порядке сопоставления некоторые цифровые потенциометры иных фирм [24.2—24.4].

MAX5160/MAX5161 — линейный цифровой потенциометр фирмы MAXIM-DALLAS на 32 позиции, номиналы 50,100,200 кОм. Напряжение питания от 2,7 до 5,5 В. Трехпроводный интерфейс.

МАХ5400—МАХ5405 — линейные цифровые потенциометры на 256 позиции. Напряжение питания от 2,7 до 5,5 В.

MAX5407 — цифровой потенциометр на 32 позиции с логарифмической шкалой, номинал 20 кОм. Область рабочих частот до 500 кГц. Напряжение питания от 2,7 до 5,5 В.

MAX5408—MAX5411 — сдвоенные цифровые потенциометры на 32 позиции с логарифмической шкалой, номинал 10 кОм. Напряжение питания 6т 2,7 до 3,6 В для MAX5408, MAX5409 и от 4,5 до 5,5 В для MAX5410, MAX5411.

MAX5413—MAX5415 — сдвоенные линейные цифровые потенциометры на 256 позиций, номинал, соответственно, 10, 50 и 100 кОм. Напряжение питания от 2,7 до 5,5 В.

Кроме перечисленных в линейке подобных изделий этой фирмы можно назвать микросхемы MAX5417—MAX5439, MAX5450—MAX5457, MAX5460—MAX5468, MAX5471—MAX5472, MAX5474—MAX5475, MAX5477—MAX5479, MAX5481—MAX5484, MAX5487— MAX5492 и др., каждая, из которых имеет индивидуальные отличия и развивает области применения цифровых потенциометров и способов их управления.

Так, например:

MAX5471, MAX5472, MAXS474, MAX5475 — энергонезависимые 32-х позиционные линейные цифровые потенциометры с последовательным трехпроводным интерфейсом. MAX5471/MAX5474 имеют сопротивление 50 кОм, a MAX5472/MAX5475 — 100 кОм. Напряжение питания от 2,7 до 5,25 В.

Упомянем также для сравнения некоторые цифровые потенциометры фирмы Analog Device [24.3].

AD5200/AD5201 — цифровые потенциометры номиналами 10,50 кОм на 256 и 33 позиции, соответственно.

AD5231/AD5235 — цифровые потенциометры на 1024 позиции.

AD5232 — цифровой двухканальный потенциометр на 256 позиций.

AD5234 — цифровой четырехканальный потенциометр на 64 позиции.

AD5291/AD5292 — цифровые потенциометры на 256/1024 позиции на номинал 20,50,100 кОм.

AD7376 — цифровой потенциометр на 128 позиций на номинал 10, 50, 100,1000 кОм.

AD8400/AD8402/AD8403 — 1, 2 или 4-х канальные цифровые потенциометры на 1,10,50 или 100 кОм, 256 позиций, с трехпроводным интерфейсом.

Цифровые программируемые потенциометры фирмы ON Semiconductor САТ5270 и САТ5271 — двухканальные цифровые потенциометры на 50 и 100 кОм для точной настройки с 256 ступенями регулирования и интерфейсом 12С.

Цифровые программируемые потенциометры фирмы Catalyst Semiconductor САТ5111 и САТ5113 [24.4] на 100 позиций при напряжении питания 2,5—6,0 В потребляют ток 0,1 мА.

Рис.4. Эквивалентная схема электронного аттенюатора МС3340

Несколько иной принцип работы у другого управляемого извне прибора — электронного аттенюатора. Пример практической реализации одного из них — МС3340 фирмы Motorola приведен на рис. 4.

Аттенюатор позволяет осуществлять дистанционное или непосредственное управление коэффициентом передачи (ослабления) сигнала до 80 дБ в полосе частот до 1 МГц. Напряжение питания аттенюатора — 9—18(20) В.

Максимальное напряжение входного сигнала — до 0,5 В.

Типовая схема использования электронного аттенюатора МС3340 приведена на рис.5.

Рис.5. Типовая схема включения электронного аттенюатора МС3340

Примечание.

Особое положение в ряду электрически регулируемых пассивных элементов занимает специализированная микросхема МАХ1474с электрически переключаемыми конденсаторами— аналог миниатюрного конденсатора переменной емкости, рис. 6.

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

Примечание.

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

Управление батареей конденсаторов от встроенной схемы управления позволяет ступенчато с минимальным шагом в 0,22 пФ менять в 32 ступени ее емкость в пределах от 6,4 до 13,3 пФ на выводе СР относительно общего провода при заземленном выводе СМ.

Возможна эксплуатация конденсаторной батареи при подключении ее через выводы СР и СМ с изменением емкости в пределах от 0,42 до 10,9 пФ с шагом 0,34 пФ. Температурный коэффициент емкости управляемого конденсатора равен 3,3*10-5 1/град.

Напряжение питания микросхемы 2,7—5,5 В при потребляемом токе 10 мкА. Микросхему можно применять до частот в несколько сотен мегагерц. Так, эквивалентная добротность контура порядка 100 на частотах ниже 20 МГц падает с ростом частоты до 359 МГц в 10 раз.

Микросхемы МАХ1474 можно применять в узлах электронной настройки, в емкостных аттенюаторах, в генераторах и других радиоэлектронных устройствах.

Похожие радиосхемы и статьи:

Источник: http://eschemo.ru/tsifrovyie-potentsiometryi/

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}