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

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

Цифровой потенциометр представляет собой переменный резистор, положение щётки которого можно задавать программно при помощи микроконтроллера. Иногда это бывает очень удобно, отпадает необходимость разбирать устройство и крутить подстроечник. Обычно их применяют в схемах регулировки громкости, опорного напряжения АЦП, усиления, контрастности 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 если он конечно же есть в используемом вами контроллере. Программа простая и думаю в комментариях не нуждается. Некоторые моменты пояснены в самом коде, но если возникнут вопросы то можно спросить прямо тут в комментариях. Написано всё на ассемблере.

Читайте также:  Громкоговорящая система с функцией быстрого набора номера

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

Цифровой потенциометр: 5 комментариев

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

Обновляюсь пока есть свободное время. Скоро начнётся учебный год (для меня последний) надо будет писать диплом. на сайт времени наверное немного будет.

Собираюсь юзать AD5160. Выигрыш в миниатюрном корпусе и термостабильнее, проигрыш — выходная емкость больше (если критично) и дороже. Сравнить их в работе нет возможности. А почему в Си не пишете?

Всё просто. Я люблю ассемблер =) Си знаю плохо.
Из языков программирования высокого уровня предпочитаю микропаскаль.

Доброго дня. Дай мне твои координаты (Email).
Вышлю тебе прекрасную книгу (на русском) по C для AVR,
и 100% рабочий Install CVAVR. И ты через месяц (а то и раньше)
будешь шпрехать на C (и улыбаться о прошлом). Особенно с твоей шикарной макеткой…
Скорость разработки, множество готовых библиотек — это причина уйти от ASMa. …Это для AVR, PIC и др.

А со стороны компа (Widows) — для быстрого внедрения рекомендую -DELPHI.

PS:
А заодно тебе ссылки моих разработок (правда по музыке), хотя я и инженер-технарь.

«КАВКАЗ — плач матерей», — посвящена первой чеченской войне 1995-1996г.
(и мне лично КАВКАЗ дорог по проведённым армейским годам в Северной Осетии 1981-1985).

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

Для отправки комментария вам необходимо авторизоваться.

Интегральные микросхемы · Цифровые потенциометры

MCP4141-104E/P — IC POT DGTL SNGL 100K SPI 8DIP

ПроизводительMicrochip Technology
Вредные веществаRoHS Без свинца
Taps129
Сопротивлени Ом100K
Число Каналов1
Температурный коэфициент150 ppm/°C Typical
Тип памятиNon-Volatile
Интерфейс подключенияSPI Serial
Напряжение питания2.7 V

5.5 VРабочая температура-40°C

125°CКорпус8-DIPДокументация22059b.pdf на сайте microchip.com

Аналогичные по характеристикам
ФотоНаименованиеПроизводительТех. параметрыЦены (руб.)Купить
MCP4142-104E/PMicrochip TechnologyIC DGTL SNGL 100K SPI 8DIP

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-DIP

от 0,00
от 0,00Доп. информация
Искать в поставщиках
Купить в магазине
Схожие по характеристикам
ФотоНаименованиеПроизводительТех. параметрыЦены (руб.)Купить
MCP4142-104E/SNMicrochip TechnologyIC DGTL SNGL 100K SPI 8SOIC

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-SOIC

от 0,00
от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4141-104E/SNMicrochip TechnologyIC POT DGTL SNGL 100K SPI 8SOIC

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-SOIC

от 0,00
от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4142T-104E/SNMicrochip TechnologyIC DGTL SNGL 100K SPI 8SOIC

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-SOIC

от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4141-104E/MFMicrochip TechnologyIC POT DGTL SNGL 100K SPI 8DFN

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-DFN

от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4141T-104E/MSMicrochip TechnologyIC POT DGTL SNGL 100K SPI 8MSOP

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-MSOP, Micro8™, 8-uMAX, 8-uSOP,

от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4142T-104E/MSMicrochip TechnologyIC DGTL SNGL 100K SPI 8MSOP

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-MSOP, Micro8™, 8-uMAX, 8-uSOP,

от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4142-104E/MSMicrochip TechnologyIC DGTL SNGL 100K SPI 8MSOP

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-MSOP, Micro8™, 8-uMAX, 8-uSOP,

от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4142-103E/PMicrochip TechnologyIC DGTL SNGL 10K SPI 8DIP

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-DIP

от 0,00
от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4141T-104E/MFMicrochip TechnologyIC POT DGTL SNGL 100K SPI 8DFN

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-DFN

от 0,00Доп. информация
Искать в поставщиках
Купить в магазинеMCP4141-104E/MSMicrochip TechnologyIC POT DGTL SNGL 100K SPI 8MSOP

5.5 V · Рабочая температура: -40°C

125°C · Корпус: 8-MSOP, Micro8™, 8-uMAX, 8-uSOP,

Последовательный интерфейс 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 хорошо описан в этой статье.
Назад

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector