Цифровой потенциометр представляет собой переменный резистор, положение щётки которого можно задавать программно при помощи микроконтроллера. Иногда это бывает очень удобно, отпадает необходимость разбирать устройство и крутить подстроечник. Обычно их применяют в схемах регулировки громкости, опорного напряжения АЦП, усиления, контрастности 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 если он конечно же есть в используемом вами контроллере. Программа простая и думаю в комментариях не нуждается. Некоторые моменты пояснены в самом коде, но если возникнут вопросы то можно спросить прямо тут в комментариях. Написано всё на ассемблере.
Впечатления
Нормальный потенциометр, применение я думаю ему найду без труда. Огорчило лишь то, что сделать на нем регулятор громкости увы не вышло. Слишком сильные искажения, когда щётка подходит к крайнему положению.
Молодец, оперативно обновляешься. Недавно думал взять подобную игрушку на тест. Но времени не хватает даже нормально дома прибраться.
Medved Reply:
августа 18, 2010 at 20:01
Обновляюсь пока есть свободное время. Скоро начнётся учебный год (для меня последний) надо будет писать диплом. на сайт времени наверное немного будет.
Собираюсь юзать AD5160. Выигрыш в миниатюрном корпусе и термостабильнее, проигрыш — выходная емкость больше (если критично) и дороже. Сравнить их в работе нет возможности. А почему в Си не пишете?
Medved Reply:
августа 27, 2010 at 23:12
Всё просто. Я люблю ассемблер =) Си знаю плохо.
Из языков программирования высокого уровня предпочитаю микропаскаль.
Доброго дня. Дай мне твои координаты (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