• Внешний USB-ЦАП-Аудиопроцессор CDD-010 можно купить

управление ADAU1701 с помощью RaspberryPi по i2c

kiryan

Member
Всем привет. Подскажите, удалось ли кому нибудь управлять регистрами adau1701 (RDC2-0027v3) по i2c из raspberry pi? Почему то при подключении к малинке появляется устройство 0x50, хотя в SigmaStudio через usbi все работает совсем по другим адресам.
Снимок экрана 2021-04-13 в 10.51.15.png
Снимок экрана 2021-04-13 в 11.02.57.png
 

Евгений

Administrator
Команда форума
SigmaStudio отображает адреса I2C со смещением влево на 1, что не совсем корректно. Raspberry pi отображает адреса без смещения, семь бит, что верно. Raspberry обнаружила устройство с адресом 0x50 - это микросхема памяти: (0х50 (0b01010000) << 1) = 0xA0 (0b10100000).
 

Евгений

Administrator
Команда форума
Должно быть видно. Проверьте подключение. На всякий случай отключите модуль ADAU1701 от SigmaStudio, чтобы к ней была подключена только Raspberry.
 

kiryan

Member
Так к ней подключена только raspberry, увы, видно только 0x50.
Евгений, а можете проверить у себя RDC2-0027v3 и Raspberry? Хотя бы до шага i2cdetect.
Такое ощущение что есть какая то несовместимость i2c raspberry и RDC2-0027v3, потому как мне с малинки удается легко управлять по i2c другие ваши устройствами, а RDC2-0027v3 просто не видно.
Возможно дело в этом - https://github.com/raspberrypi/linux/issues/254 Но очень хочется понять что дело не в моей модели Raspberry 3 model A+
Спасибо!
 

Евгений

Administrator
Команда форума
Проверил: действительно, Raspberry не определяет ADAU1701 на шине I2C, видит только микросхему памяти.
 

igrushkin

Well-known member
Олег объяснял это феномен в видео про sigmalink. нужн подавать питание в определенной последоватльности
 

kiryan

Member
вот такую штуку нарыл


Тема мне интересна, тоже буду экспериментировать.

Единственный подводный камень, ктрый я вижу - эт то, что у них 1451 чип
У них 1451, да еще и по SPI. Но проект интересный, да.
Все же хочется как то подружить 1701, Евгений, а есть идеи почему не видно и как это бороть?
 

Евгений

Administrator
Команда форума
Евгений, а есть идеи почему не видно и как это бороть?
Пока не могу ответить на этот вопрос. Пробовал еще с библиотекой "bcm2835 by Mike McCauley" - та же ситуация, видит только память.
При этом наши контроллеры для ChipStudio работают с ADAU1701 по I2C как и с любым другим устройством. Не понятно.
 

kiryan

Member
Попробовал через arduino (ESP8266) - видит оба адреса.
Снимок экрана 2021-04-21 в 13.09.19.png
 
Последнее редактирование:

kiryan

Member
Определяется с опцией "quick write", но не стабильно.
Евгений, спасибо за расследование. Попробовал у себя - определяется стабильно. Но не понятно как это можно использовать. С помощью python и smbus не получается прочитать ничего. Например пытаюсь прочитать значение параметра с адресом 0x081E (адрес параметра взял из sigmastudio при изменении его значения)
Код:
# включение

Block Write
Time:  10:32:21 - 673ms
IC:  IC 1
Param Name:  IC 1.SerialOutRegister1
Param Address:  0x081E
Bytes:  2
Param Data:
0x28,   0x04

# выключение
Block Write
Time:  10:32:42 - 438ms
IC:  IC 1
Param Name:  IC 1.SerialOutRegister1
Param Address:  0x081E
Bytes:  2
Param Data:
0x20,   0x04
Python:
import smbus
bus = smbus.SMBus(1)
bus.read_i2c_block_data(0x34, 0x081E)
Запуск такого кода выдает ошибку:
Python:
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    bus.read_i2c_block_data(0x34, 0x081E)
OSError: [Errno 121] Remote I/O error
 

Efremoff

New member
У ардуины пины i2c подтянуты, а в том варианте вероятно нет. Может поэтому?
на Raspberry Pi пины i2c точно так же подтянуты к плюсу, через резисторы 1.8к. Я пробовал на Raspberry Pi zero c таким же процом ( BCM2835 ) - и тоже не видит, так же пробовал на Banana Pi Zero (c другим процессором - AllWinner H2+) и получил точно такой же результат - виден только EEPROM. при этом микроконтроллеры (Arduino, ESP32, Raspberry Pi Pico) - видят процессор адау - без проблем...

Щас жду новую Raspberry Pi Zero 2 - там процессор Broadcom BCM2710A1 - может на нем будет видно. Так же хочу попробовать с малинами соеденить по i2c ADAU1466 - тоже хочется проверить будет ли видно (на крайний случай там есть SPI - на нем вроде всегда работает).
 

kiryan

Member
Щас жду новую Raspberry Pi Zero 2 - там процессор Broadcom BCM2710A1 - может на нем будет видно. Так же хочу попробовать с малинами соеденить по i2c ADAU1466 - тоже хочется проверить будет ли видно (на крайний случай там есть SPI - на нем вроде всегда работает).
Отпишитесь пожалуйста как получится проверить с Raspberry Pi Zero 2, тоже на нее посматриваю. Спасибо!
 

Efremoff

New member
Ну в общем с Raspberry Pi Zero 2 - аналогичный результат. При работе с ADAU1401 видна только EEPROM.
 

Efremoff

New member
А вот 1466 видит малина по i2c. Ура.
Но работать с ней из малины с помощью питона удалось только с smbus2 библиотекой.
 
Последнее редактирование:

alexander_v

Member
А вот 1466 видит малина по i2c. Ура.
Но работать с ней из малины с помощью питона удалось только с smbus2 библиотекой.
Добрый день, подскажите что вы отправляете процессору и через какие команды ? адрес берете со смещением ?
если можно приложите пример ... не пойму бьюсь головой, один и тот же запрос регистра всегда выдаёт разные результаты.
пробовал и smbus и smbus2 .
Заранее большое спасибо
 
Верх