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

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

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

MCP41010

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

MCP41010

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

MCP41010

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

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

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

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

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

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

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

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

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

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

    Удачи…

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

    Вот ссылки:

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

    Serafim_Кавказ.avi — http://files.mail.ru/J8JDO2
    Serafim_D_polonez_svm_Ekaterine.avi — http://files.mail.ru/IGKTRT
    Serafim_Отказной ребёнок.avi — http://files.mail.ru/HRYOD6

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