Ок. В данном примере я управляю включением-выключением светодиода, подключенного в GPIO адау. Управление осуществлялось через DC Source, и адрес управляющего элемента в адау был - 0x0014.
Данный пример включает и выключает DC-source (и соответсвенно светодиод подключенный к одной из ног MP) c интервалом раз в секунду.
i2c_msg.write(0x38, [0x00, 0x14, 1, 0, 0, 0]) - где 0x38 - это адрес адау со смещением (в сигмастудии этот адрес виден как 0x70), и потом идет массив где первые два элемента это смещение (регистр) записанный в виде двух отдельных байтов, и потом 4 байта, которые отвечают за управление регистра. от младшего байта к старшему.
А читать я не пробовал, мне это не зачем.
Block Write
Time: 12:36:40 - 251ms
IC: IC 1
Cell Name: DC1
Param Name: DCInpAlg145X1value
Param Address: 0x0014
Bytes: 4
Param Data:
0x00, 0x00, 0x00, 0x01
Time: 12:36:40 - 251ms
IC: IC 1
Cell Name: DC1
Param Name: DCInpAlg145X1value
Param Address: 0x0014
Bytes: 4
Param Data:
0x00, 0x00, 0x00, 0x01
Time: 12:36:40 - 251ms
IC: IC 1
Cell Name: DC1
Param Name: DCInpAlg145X1value
Param Address: 0x0014
Bytes: 4
Param Data:
0x00, 0x00, 0x00, 0x01
Time: 12:36:40 - 251ms
IC: IC 1
Cell Name: DC1
Param Name: DCInpAlg145X1value
Param Address: 0x0014
Bytes: 4
Param Data:
0x00, 0x00, 0x00, 0x01
Данный пример включает и выключает DC-source (и соответсвенно светодиод подключенный к одной из ног MP) c интервалом раз в секунду.
i2c_msg.write(0x38, [0x00, 0x14, 1, 0, 0, 0]) - где 0x38 - это адрес адау со смещением (в сигмастудии этот адрес виден как 0x70), и потом идет массив где первые два элемента это смещение (регистр) записанный в виде двух отдельных байтов, и потом 4 байта, которые отвечают за управление регистра. от младшего байта к старшему.
А читать я не пробовал, мне это не зачем.
Код:
import smbus2
import time
i2c=smbus2.SMBus(1)
while True:
msg = smbus2.i2c_msg.write(0x38, [0x00, 0x14, 0, 0, 0, 0])
i2c.i2c_rdwr(msg)
time.sleep(1)
msg = smbus2.i2c_msg.write(0x38, [0x00, 0x14, 1, 0, 0, 0])
i2c.i2c_rdwr(msg)
time.sleep(1)