大家好、我尝试输出方波(50Hz)、同时使用 raspberrypi4+更改 DRV2667的最大-50~50V 范围内的振幅。 我已经使用以下程序将 drv2667设置为模拟回放模式、但我发现它在执行设置1秒后检查待机位时进入待机模式。 什么可能导致它进入待机模式?
下面是设置程序:
import smbus
import time
drv2667_adrrs = [0x59]
# I2C write
def i2c_write(slave_adress :int, reg_adress :int, data :int):
i2c.write_byte_data(slave_adress, reg_adress, data)
check = i2c.read_byte_data(slave_adress, reg_adress)
print("written to "+ str(slave_adress) +", register"+str(reg_adress)+ "=" + str(check))
return
# I2C read
def i2c_read(slave_adress :int, reg_adress):
data = i2c.read_byte_data(slave_adress, reg_adress)
print("Device: "+ str(slave_adress) +", register"+str(reg_adress)+ "=" + str(data))
return
def drv2667_setup(slave_adress):
# Control
i2c_write(slave_adress, 0x02, 0x00) # Exit STNBY mode
i2c_write(slave_adress, 0x01, 0x3D) # DRV2667, Analog Mode, Gain: Vpp=100V
i2c_write(slave_adress, 0x02, 0x02) # EN_OVERRIDE=1
print("DRV2667 @" + str(slave_adress) + "is ready on Analog Amplifier Mode, Vout=50V when Vdd=3.6V")
return
if __name__ == "__main__":
# I2C Setting
i2c = smbus.SMBus(1)
# DRV2667のAnalog Mode Setup
for addr in drv2667_adrrs:
drv2667_setup(addr)
time.sleep(1)
# Check STANDBY bit
i2c_read(drv2667_adrrs[0], 0x02)
在模拟模式测试期间、GND 被输入到 IN-、而5V 被输入到 IN+。 最终、要将方波基准设置为0V、来自 Raspberry Pi 的 PWM 波输出通过低通滤波器输入 IN+。 通过分压获得的2.5V 电压被输入至 IN-。
请提供任何帮助。
Naoki