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.

[参考译文] DAC3482EVM:将两个 DAC3482 EVM 与 DLL 连接-一些后续问题

Guru**** 2393725 points
Other Parts Discussed in Thread: DAC3482

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1105716/dac3482evm-connect-two-dac3482-evms-with-dll---some-follow-up-questions

器件型号:DAC3482EVM
主题中讨论的其他器件:DAC3482

我已经用 DLL 连接了两个 DAC3482 EVM (在更改每个 FTDI 芯片的名称之后)。

在每个器件中、我将读取和写入 DAC 芯片和 CDC。  

不过、会发生一件奇怪的事情-在读取 DAC 寄存器之后、CDC 寄存器也会发生变化。

例如:

我将 0x8040000写入 CDC 中的地址0。 读取它将返回 0x8040000。

现在、在读取 DAC 中的地址0之后-在 CDC 中读取地址0会得到不同的数字。 从 DAC 读取不同的地址 会导致从 CDC 的地址0读取不同的值。

至少在第一步中、我要尝试仿真打开 EVM GUI 并按 Load Regs 加载保存的文件。 为此、我连接两个 EVM 并逐一发送所有寄存器数据(DAC 和 CDC)。

信号合成的结果是不同的、如果我这么做、PLL 不会锁定。 按下 LOAD DAC 时、EVM GUI 中会发生什么情况? 也许有一个程序应该写入哪些寄存器以及何时写入?

谢谢

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

    您好、意大利、

    您是否会检查您的 python 脚本是否具有同时向 DAC 和 CDC 发布 SDEN 的软件? 您需要确保 SDEN 一次寻址到一个器件以避免总线争用。

    -Kang

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

    您是要使用范围检查它吗? 我是否会看到数据同时传输到 DAC 和 CDC?

    它是否由图形文件确定? 从我在我的文件中看到的- DAC 模式文件将第5行作为 SDEN、而 CDC 将第2行作为 SDEN -因此它们不应同时发布、对吧?

    以下是 DAC 模式文件:

    Write																																																			
    0	0	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	0
    1	0	0	0	A6	A6	A5	A5	A4	A4	A3	A3	A2	A2	A1	A1	A0	A0	D15	D15	D14	D14	D13	D13	D12	D12	D11	D11	D10	D10	D9	D9	D8	D8	D7	D7	D6	D6	D5	D5	D4	D4	D3	D3	D2	D2	D1	D1	D0	D0	0	0
    2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    5	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1
    6	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    7	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    																																																			
    Read																																																			
    0	0	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	0
    1	0	1	1	A6	A6	A5	A5	A4	A4	A3	A3	A2	A2	A1	A1	A0	A0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
    5	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1
    6	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	D15	D15	D14	D14	D13	D13	D12	D12	D11	D11	D10	D10	D9	D9	D8	D8	D7	D7	D6	D6	D5	D5	D4	D4	D3	D3	D2	D2	D1	D1	D0	D0	0	0
    7	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    

    这是 CDC 模式文件:

    Write																																																																		
    0	0	0	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0
    1	0	0	A0	A0	A1	A1	A2	A2	A3	A3	D0	D0	D1	D1	D2	D2	D3	D3	D4	D4	D5	D5	D6	D6	D7	D7	D8	D8	D9	D9	D10	D10	D11	D11	D12	D12	D13	D13	D14	D14	D15	D15	D16	D16	D17	D17	D18	D18	D19	D19	D20	D20	D21	D21	D22	D22	D23	D23	D24	D24	D25	D25	D26	D26	D27	D27	0
    2	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1
    3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    6	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    7	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    																																																			
    Read																																																																																																																																				
    0	0	0	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0	1	0
    1	0	0	0	0	1	1	1	1	1	1	A0	A0	A1	A1	A2	A2	A3	A3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    2	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1
    3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	D0	D0	D1	D1	D2	D2	D3	D3	D4	D4	D5	D5	D6	D6	D7	D7	D8	D8	D9	D9	D10	D10	D11	D11	D12	D12	D13	D13	D14	D14	D15	D15	D16	D16	D17	D17	D18	D18	D19	D19	D20	D20	D21	D21	D22	D22	D23	D23	D24	D24	D25	D25	D26	D26	D27	D27	0
    4	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    5	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    6	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
    7	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0

    下面是一个问题的示例脚本:

    from ctypes import *
    import os
    
    # load DLL
    orig_cwd = os.getcwd()
    os.chdir(r'D:\dev\DAC348xEVM_SPI_Utilities\64-bit DLL\FTDI Pattern Generator')
    dll_file_name = r'FTDI_Pattern_Generator.dll'
    dll_path = os.path.join(os.getcwd(), dll_file_name)
    dll = CDLL(dll_path)
    
    # init variables
    evm_index = c_int(0)
    dac_index = c_int(0)
    cdc_index = c_int(1)
    dev_desc = 'DAC348xEVM'
    baud_rate = 230400
    dac_pattern_path = os.path.join(os.getcwd(), 'DAC348x.txt')
    cdc_pattern_path = os.path.join(os.getcwd(), 'CDCE62005.txt')
    read_data = c_ulong(0)
    
    # open port to first EVM
    error_status = dll.openUSBPort(dev_desc.encode(), baud_rate, byref(evm_index))
    print(error_status)
    print(evm_index.value)
    
    # init DAC
    error_status = dll.initializeDevice(dac_pattern_path.encode(), evm_index, byref(dac_index))
    print(error_status)
    print(dac_index.value)
    
    # init CDC
    error_status = dll.initializeDevice(cdc_pattern_path.encode(), evm_index, byref(cdc_index))
    print(error_status)
    print(cdc_index.value)
    
    # write 0x8040000 to reg0 in CDC
    error_status = dll.writeRegister(evm_index, cdc_index, c_ulong(0x0), c_ulong(0x8040000))
    print(error_status)
    
    # read reg 0 from CDC
    error_status = dll.readRegister(evm_index, cdc_index, c_ulong(0x0), byref(read_data))
    print(error_status)
    print(hex(read_data.value))
    # this prints 0x8040000 as desired
    
    # read reg 0 from DAC
    error_status = dll.readRegister(evm_index, dac_index, c_ulong(0x0), byref(read_data))
    print(error_status)
    print(hex(read_data.value))
    #! this prints DAC reg0 value - 0xD18E
    
    # read reg 0 from CDC again
    error_status = dll.readRegister(evm_index, cdc_index, c_ulong(0x0), byref(read_data))
    print(error_status)
    print(hex(read_data.value))
    #! this prints a different value from 0x8040000 (not always the same one)
    #! can be 0x14 or 0x18 sometimes
    
    # close USB connection
    error_status = dll.closeAllPorts()
    print(error_status)

    谢谢

    BTW、虽然我喜欢意大利-我叫 Itay、不喜欢 L。  

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

    您好、Itay、

    很抱歉键入您的姓名

    尽管 SDENB 是 DAC 和 CDC 之间的两条独立线路、但 SCLK 和 SDIO 是相同的

    请参阅上图、其中 SCLK 和 SDIO 在两个器件之间共享。 这意味着、当您同时写入 DAC 和 CDC 且同时触发两个 SENB 时、两个器件都将被写入。 在软件配置中、您需要在 CDC 和 DAC 之间一次仅触发一个 SDENB、以防止总线争用。  

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

    正如您在脚本中看到的、我只使用基本的 DLL 读取/写入函数-所以我必须提供器件索引、并且每次调用都不同、所以我从不对两个器件同时发出读取、只对 DAC 或 CDC。

    还有其他想法、有什么问题吗?

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

    您好、Itay、

    我将要求我们的 Soliton 团队查看您发布的代码。 请确认您的代码是否为最新版本、如果需要更新、请更新代码。

    同时、您能否探测 DAC 和 CDC 上的 SDENB 信号以确认一次是否只有一个 SDENB 处于活动状态?

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

    谢谢

    如何探测 CDC SDENB 信号? 我看不到我可以连接到的连接器。

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

    您好、Itay、

    您可以探测 R88

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

    是的、也在 PDF 中找到它。

    很难按安装方式到达背面、但我会尝试...

    是否没有获取 DLL 源代码的选项? 或 EVM-GUI 的 LabView VI 文件?

    据我所知、这只是一个带有适当信号的 FTDI DLL 周围的说唱歌手、不是吗?

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

    您好!

    EVM GUI 未使用 DLL。 它是使用 Lab View 驱动程序的直接位数。 为了使其普遍兼容、我们开发了.dll 软件。

    如果您需要 LabVIEW 源代码、我可以离线发送给您。 然而,我们不能进一步支持它,它被认为是"原样"。

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

    这将是伟大的..完全理解缺乏支持的情况。

    如果可以、请发送至: itay.pelled@gmail.com (我的工作电子邮件可能会阻止文件)。

    下周我还将尝试探测 CDC SDENB。

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

    您好、Itay、

    请从以下链接下载我们的源代码。 请注意、这是因为我们没有支持 GUI 开发详细信息的支持带宽。

    https://tidrive.ext.ti.com/u/-NeFsnhXhe_q14W2/acc155b9-0797-4bf4-9226-b4c58754ea24?l

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

    非常感谢

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

    没问题。  

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

    你好,Kang,

    当我深入了解 LabView 代码时-  Soliton 小组是否有任何更新?

    关于我共享的代码-我在这里放置了一个不带类换行方法等的简化脚本

    我可以确认我已经多次检查了这个脚本、并且错误结果总是重复(从 DAC 读取会改变 CDC 寄存器的值、反之亦然)。

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

    Itay、

    请上传最新代码。 我们在等你。 谢谢。  

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

    您好!  

    我发布的代码是最新的脚本版本。

    此后未作任何更改。

    谢谢

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

    让我与团队成员联系、然后返回给您

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

    你(们)好

    深入了解 LabVIEW 后- DAC 图形文件中的第2行是否应该始终为1而不是0? (对于 CDC 中的第5行也是如此)

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

    我尝试按照我的建议更改 DAC 模式文件(尚未更改 CDC)、似乎可以解决问题。

    现在、从器件读取寄存器不会影响另一个器件

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

    很高兴听到 Itay。 感谢您对此进行深入研究。