This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DAC60508:无输出。 写入 SPI 注册时出现问题? (spidev、python)

Guru**** 2524550 points
Other Parts Discussed in Thread: DAC60508

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1107818/dac60508-no-output-problem-to-write-to-register-with-spi-spidev-python

器件型号:DAC60508

您好!

我是 SPI 协议的初学者、我想控制 DAC60508。

我用"spidev"库编写了 python 脚本、DAC 在 SPI 的默认引脚中与 Raspberry PI 连接。 (在 rasberry OS 中正确激活 SPI 协议)

import spidev
import time

spi = spidev.SpiDev()

cs_port = 0
spi.open(0, cs_port)

spi_max_speed_hz = 100000
spi.mode = 0


# This function because the MSB is right aligned
def ReverseBits(byte):
    byte = ((byte & 0xF0) >> 4) | ((byte & 0x0F) << 4)
    byte = ((byte & 0xCC) >> 2) | ((byte & 0x33) << 2)
    byte = ((byte & 0xAA) >> 1) | ((byte & 0x55) << 1)
    return byte
    
def write_data(addr, data1, data2):
    spi.writebytes([addr, ReverseBits(data1), ReverseBits(data2)])


def change_cs():
    spi.cshigh = not spi.cshigh
    
    
if __name__ == '__main__':
    # The main script
    
    spi.cshigh = True
    
    time.sleep(1)

    write_data(0x2,  0, 0) # Write in SYNC
    change_cs()
    
    time.sleep(1)
    
    change_cs()
    write_data(0x3, 0, 0) # Write in config
    change_cs()
    
    
    time.sleep(1)
    
    change_cs()
    write_data(0x4, 1, 0) # Write in GAin (1 everywhere)
    change_cs()
    
    
    time.sleep(1)
    
    change_cs()
    write_data(0x5, 0, 0) # Write in Trigger
    change_cs()
    
    
    time.sleep(1)
    
    
    change_cs()
    write_data(0x6, 0, 0) # Write in Broadcast 
    change_cs()
    
    
    time.sleep(1)
    
    change_cs()
    write_data(0x7, 0, 0) # Write in Status
    change_cs()
    
    
    time.sleep(1)
    
    change_cs()
    write_data(0x8, 184, 11) # Write 3000 in dac0
    
    
    time.sleep(1)

使用此代码时、不会发生任何情况。 我想我逐点阅读文档...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您联系 E2E。

    请分享您的硬件原理图/测试设置。 ,每个电源轨的电压轨?

    2.您是否能够根据您的代码获得 SPI 波形? 共享范围快照

    3.我们不能支持对脚本进行 python 检查,但我们可以查看您的原理图并查看您的伪代码。