Управление цифровым потенциометром MCP41HV31

Мне нужно управлять цифровым потенциометром 10 кОм в режиме реостата в 256 шагов. Я нашел учебник по Arduino, который работает с MCP41010 (я добавил сопротивление гадюки в соответствии с таблицей данных). Это прекрасно работает — я могу отправлять значения от 0 до 255 на контакт CS, а сопротивление между выходными контактами A и B изменяется от 0 до 10 кОм. Проблема в том, что мое приложение требует 16 В, чтобы пройти через это сопротивление, с чем MCP41010 не справляется.

Я попытался использовать MCP41HVX1 высоковольтный цифровой потенциометр (который я припаял к плату TSSOP-to-DIP Breakout) и предположил, что это будет работать так же. Оказывается, нет... Мои связи:

Ардуино нано -> MCP41HVX1

  • 10 -> СС
  • 11 -> ИПД
  • 13 -> SCK
  • 5В -> ВН
  • Заземление -> Заземление

С помощью MCP41010 я подключаю резистор Viper на 115 Ом между выходным контактом A и клеммой стеклоочистителя и измеряю сопротивление между выходными контактами A и B (розовые разъемы). Я заметил, что MCP41HVX1 имеет другое описание режима реостата, но я тоже не могу заставить его работать.

Это моя схема, которая работает с MCP41010. Схема Arduino MCP41010

А вот соответствующий код (который устанавливает для MCP41010 значение 255, т.е. 10 кОм)

#include <SPI.h>
byte address = 0x11;
int CS= 10;

void setup()
{
  pinMode (CS, OUTPUT);
  SPI.begin();
}

void loop()
{
  digitalPotWrite(255, CS);

}

int digitalPotWrite(int value, char Port)
{
  digitalWrite(Port, LOW);
  SPI.transfer(address);
  SPI.transfer(value);
  digitalWrite(Port, HIGH);
}

Кто-нибудь когда-нибудь делал это или знает, что происходит?

, 👍0

Обсуждение

Мне не разрешили размещать все необходимые ссылки в исходном сообщении. Вот руководство для [MCP41010](http://www.instructables.com/id/Digital-Potentiometer-MCP41100-and-Arduino/) и его [техническое описание](http://ww1.microchip.com/downloads). /en/DeviceDoc/11195c.pdf)., @Delf

Ну, во-первых, у тебя неправильная проводка. Посмотрите на распиновку версии HV. Вы не подключаетесь к контактам потенциометра с помощью своих потенциометрических проводов (или не ко всем из них) и не обеспечиваете правильные напряжения V + и V-., @Majenko

Контакт 14 должен подключаться к +16 В, контакт 10 — к GND, а контакты 11-13 — контакты потенциометра., @Majenko

Извините, я ошибся на графике, конечно, выходы - это контакты 11 и 13. Подключение контакта 14 к + 16 В мало что изменило. Прямо сейчас я даже не пытаюсь пропустить 16 В через сопротивление, а измеряю его осциллографом., @Delf


2 ответа


0

Одна вещь, которую я обнаружил после того, как несколько раз вернулся в Интернет за подсказками, заключается в том, что этот контакт SHDN на MCP41HVX1 должен быть привязан к ВЫСОКОМУ ВЫСОКОМУ уровню.

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

Я привязал SHDN к уровню VL через резистор 10k и могу писать и инкрементировать без проблем.

Я думаю, что это должно было быть помечено в таблице данных, в таблице описания выводов.

,

2

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

Я создал библиотеку Arduino на Github (https://github.com/gregsrabian/MCP41HVX1), которая позволяет управлять этого семейства микросхем. README.md в рамках проекта github документирует все API, а также предоставляет схему подключения. Также включены примеры скетчей.

Я создал статью об Instructables (https://www.instructables.com/ id/MCP41HVX1-Digital-Potentiometer-for-Arduino/), в котором пошагово показано, как управлять этим семейством микросхем. Также есть пояснение, как паять микросхему TSSOP.

,