Сдвоенный потенциометр MCP4231-503E/P c управлением по SPI.

instwinner
Offline
Зарегистрирован: 06.07.2021

Уважаемые форумчане, нужна Ваша помощь. Вот функция по управлению микросхемой MCP4231-503E/P:

//функция записи значений в цифровой потенциометр
void mcpBassWrite_byte(byte b){
  digitalWrite(CS1, LOW);
  delayMicroseconds(1);
  SPI.transfer(0b00010000);
  SPI.transfer(b);
  digitalWrite(CS1, HIGH);
  }
 
Если  SPI.transfer посылает байт вида 0b00010000, выбирается 1-й потенциометр, если 0b00000000, то управляем 2-м потенциометром. Мне нужно управлять сразу двумя одновременно. Подскажите, кто знает, как будет выглядеть байт?
Из дата шита ничего не понял, знаний пока недостаточно.
b707
Offline
Зарегистрирован: 26.05.2017

А что, нельзя сначала послать байт на первый, а потом байт на второй?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

instwinner пишет:

Из дата шита ничего не понял, знаний пока недостаточно.

Значить, рано еще потанцометром управлять.  

instwinner
Offline
Зарегистрирован: 06.07.2021

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

instwinner
Offline
Зарегистрирован: 06.07.2021

Управлять то получается, с этим проблем нет, а вот в битах, байтах, сдвиговых регистрах знаний недостаточно. Само управление потенциометром построено на 16 битном регистре сдвига. Первый байт управляющий, второй задает значение. Нужно понять какой нужно байт, чтобы выбрать сразу 2 потенциометра.

instwinner
Offline
Зарегистрирован: 06.07.2021

Есть статья с подробным описанием работы:

http://microsin.net/adminstuff/hardware/mcp41xxx-mcp42xxx-digital-potent...

Может, кто то, прочитав про управление, даст ответ про этот байт вида...

 

instwinner
Offline
Зарегистрирован: 06.07.2021

b707 пишет:
А что, нельзя сначала послать байт на первый, а потом байт на второй?

Вы правы, переписал код на поочередный выбор. Меняет сопротивление как будто два сразу выбраны, спасибо.

sadman41
Offline
Зарегистрирован: 19.10.2016

Для устройств MCP42XXX биты выбора потенциометра P1 и P0 (биты 0:1) определяют, на какие потенциометры действует команда. Соответствующая лог. 1 в позиции обозначает, что выполняется команда для этого потенциометра, в то время как лог. 0 обозначает, что команда не будет влиять на этот потенциометр (см. рис. 5-2).

D15 D14 D13 D12 D11 D10 D9 D8
X X C1 C0 X X P1 P2

----------------------

B00000011 - Команда выполнится для обоих потенциометров.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

instwinner пишет:

Есть статья с подробным описанием работы:

http://microsin.net/adminstuff/hardware/mcp41xxx-mcp42xxx-digital-potent...

Может, кто то, прочитав про управление, даст ответ про этот байт вида...

То, что написано в этой статье не соответствует даташиту. Возможно, она про какие-то другие устройства. Вы уж определитесь, что за устройство у Вас. Судя по даташиту, за разные потенциометры отвечают разные регистры и значит, одной командой ими управлять нельзя.

instwinner
Offline
Зарегистрирован: 06.07.2021

sadman41 пишет:

Для устройств MCP42XXX биты выбора потенциометра P1 и P0 (биты 0:1) определяют, на какие потенциометры действует команда. Соответствующая лог. 1 в позиции обозначает, что выполняется команда для этого потенциометра, в то время как лог. 0 обозначает, что команда не будет влиять на этот потенциометр (см. рис. 5-2).

D15 D14 D13 D12 D11 D10 D9 D8
X X C1 C0 X X P1 P2

----------------------

B00000011 - Команда выполнится для обоих потенциометров.

Пробовал этот вариант в первую очередь, вроде бы логично, судя по картинке, но не работает. И комбинировал C1, C0, P1, P2 в разных вариациях, не регулируются оба сразу.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

Для устройств MCP42XXX биты выбора потенциометра P1 и P0 (биты 0:1) определяют, на какие потенциометры действует команда. Соответствующая лог. 1 в позиции обозначает, что выполняется команда для этого потенциометра, в то время как лог. 0 обозначает, что команда не будет влиять на этот потенциометр (см. рис. 5-2).

D15 D14 D13 D12 D11 D10 D9 D8
X X C1 C0 X X P1 P2

----------------------

B00000011 - Команда выполнится для обоих потенциометров.

А теперь попробуйте найти это в даташите. Там совсем по-другому.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

instwinner пишет:
C1, C0

Про них тоже там не то написано. В даташите у них совсем другие значения - таблица 7.1 на стр. 47

instwinner
Offline
Зарегистрирован: 06.07.2021

ЕвгенийП пишет:

instwinner пишет:

Есть статья с подробным описанием работы:

http://microsin.net/adminstuff/hardware/mcp41xxx-mcp42xxx-digital-potentiometer-with-spi-interface.html

Может, кто то, прочитав про управление, даст ответ про этот байт вида...

То, что написано в этой статье не соответствует даташиту. Возможно, она про какие-то другие устройства. Вы уж определитесь, что за устройство у Вас. Судя по даташиту, за разные потенциометры отвечают разные регистры и значит, одной командой ими управлять нельзя.

Евгений, у меня точно вот этот MCP4231-503E/P, статью читал, думал про мой написана. Спасибо, понял. Буду регулировать поочередно.

sadman41
Offline
Зарегистрирован: 19.10.2016

ЕвгенийП пишет:

А теперь попробуйте найти это в даташите. Там совсем по-другому.

Да мне-то не особо нужно. Человек хотел из статьи - я ему копипастнул из статьи.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

instwinner пишет:

Евгений, у меня точно вот этот MCP4231-503E/P, статью читал, думал про мой написана. Спасибо, понял. Буду регулировать поочередно.

Может я не от того устройства даташит нашёл? Сейчас посмотрим.

P.S. нет, тот самый . Вот он прямо на сайте производителя - https://ww1.microchip.com/downloads/en/DeviceDoc/22060b.pdf

Откройте страницу 47, посмотрите как определяются С1:С0 и передавайте привет автору статьи.

instwinner
Offline
Зарегистрирован: 06.07.2021

ЕвгенийП пишет:

Может я не от того устройства даташит нашёл? Сейчас посмотрим.

P.S. нет, тот самый . Вот он прямо на сайте производителя - https://ww1.microchip.com/downloads/en/DeviceDoc/22060b.pdf

Откройте страницу 47, посмотрите как определяются С1:С0 и передавайте привет автору статьи.

Да, там про P1 и P2 совсем ничего нет. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

instwinner пишет:

Да, там про P1 и P2 совсем ничего нет. 

А их там просто нет. На этом месте биты данных. Потенциометр же определяется адресом в памяти 0 - для нулевого (Вы его "вторым" обозвали) и 1 - для первого - стр. 48