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.

[参考译文] BP-DAC11001EVM:BP-DAC11001EVM

Guru**** 2302570 points
Other Parts Discussed in Thread: BP-DAC11001EVM, DAC11001A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1522135/bp-dac11001evm-bp-dac11001evm

器件型号:BP-DAC11001EVM
主题中讨论的其他器件: DAC11001A

工具/软件:

您好:  

我尝试将 BP-DAC11001EVM 与 ESP32连接。 但以某种方式、我在 DAC 侧看不到任何输出。 我的 ESP 32正在与 DAC 建立通信。 但我不会在输出端看到任何电压。 我在下面附上了我正在使用的代码。 请告诉我问题可能是什么。  

代码:

从机器导入引脚、SPI
导入数学
导入时间

#
SPI 配置 SPI = SPI (1、波特率= 1000000、极性= 0、相位= 0、SCK=引脚(18)、 MOSI =引脚(23)
CS =引脚(5、Pin.out) # DAC 片选 LDAC 的片选
LDAC = Pin (16、Pin.out)# DAC 的 LDAC

Cs.Value
(1) LDA.Value


(1)#将20位数据发送到 DAC 的函数(24位格式) def SEND_TO_DAC (cs、value):
CS.Value (0)
spi.write (value.to_bytes (3、"big"))
CS.Value (1)

#生成单相正弦波
def GENERATE_SINE_WAVE (FREQUENCY_50、AMPLITUDE=1.0、SAMPLE_RATE=1000):
步进= 0
当为真时:
#生成一个介于0和满量程之间的正弦值(20位)
sine_val = int ((amplitude *(math.sin (2 * math.pi * frequency * step / sample_rate)+ 1)*((2**20 - 1)/ 2)))
SEND_TO_DAC (cs、sine_val)
切换 LDAC 之前的 TIME.SLEEP_us (10)#延迟
LDA.VALUE (0)
切换 LDAC 后的 Time.SLEEP_us (10)#延迟
LDA.VALUE (1)
STEP =(STEP + 1)% SAMPLE_RATE
time.sleep (1 / sample_rate)

#开始生成信号
generate_sine_wave (frequency=50) 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Sanjana、  

    尝试将 SPI 时钟/相位更改为0/1或1/0、以便数据在上升沿移动、并在下降沿由 DAC 捕获。  

    如果这不起作用、请分享您如何将 ESP32连接到 EVM、您连接到 EVM 的电源、以及 EVM 上的跳线设置。  

    此致、

    凯蒂恩·琼斯

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

    您好:  

    DAC11001A 引脚

    ESP32 GPIO

    测量输出

    SDIN (32)

    GPIO23

    SPI MOSI

    SCLK (31)

    GPIO18

    SPI 时钟

    同步(33)

    GPIO5.

    片选(CS)

    LDAC (18)

    GPIO16

    加载 DAC

    电源布线

    为确保安全稳定地运行、请执行以下操作:

    • 模拟电源
      • J12 (VCC):+12V
      • J13 (VSS):-12V
    •  

     

    • 数字电源
      • J14 (VDD):来自5V0 ESP 的+5V (用于 DAC 内部逻辑)
      • J15 (VIO):+3.3V (从与 ESP32 3V3匹配)
      • 跳线:
        • J11:VDD 的 DVDD (2-3)
        • J16:VIO 上的 IOVDD (2-3)

    所有接地端(AGND、DGND、REFGND)都必须连接到同一0V 基准、并与 ESP32接地端共享。   

    以上是连接。

    我使用的代码是  

    导入机器
    从机器导入 PIN、SPI
    导入数学
    导入时间

    # SPI 配置
    SPI = SPI (1、波特率= 1000000、极性= 0、相位= 0、SCK=引脚(18)、 MOSI =引脚(23))
    CS = Pin (5、Pin.out)      # DAC 片选
    LDAC = Pin (16、Pin.out)   # DAC 的 LDAC
    CS.值(1)
    LDA.VALUE (1)

    #向 DAC 发送20位数据的函数(24位格式)
    DEF SEND_TO_DAC (cs、value):
       CS.Value (0)
       spi.write (value.to_bytes (3、"big"))
       CS.值(1)

    #生成单相正弦波
    DEF GENERATE_SINE_WAVE (FREQUENCY=50、AMPLITY=1.0、SAMPLE_RATE=1000):
       步进= 0
       当为真时:
           #生成一个介于0和满量程之间的正弦值(20位)
           sine_val = int ((amplitude *(math.sin (2 * math.pi * frequency * step / sample_rate)+ 1)*((2**20 - 1)/ 2)))
           SEND_TO_DAC (cs、sine_val)
            切换 LDAC 之前的 TIME.SLEEP_us (10)#延迟
           LDA.VALUE (0)
            切换 LDAC 后的 Time.SLEEP_us (10)#延迟
           LDA.VALUE (1)
           STEP =(STEP + 1)% SAMPLE_RATE
           TIME.SLEEP (1/SAMPLE_RATE)

    #开始生成信号
    GENERATE_SINE_WAVE (FREQUENCY=50)

    我的目标是在 DAC 的输出端获得双极正弦信号。

     

     

     

     

     

     

     

     

     

     



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

    您好、 Sanjana、  

    您是尝试 将 SPI 时钟/相位设置为0/1还是1/0、这样数据就会在上升沿移动、并在下降沿由 DAC 捕获? 将执行正确的 SPI 格式、而不是对 DAC 进行写入。 您应该首先确认可以根本更新 DAC 输出、然后转到正弦波代码。

    每次 DAC 更新需要4个字节、而不是3个字节。 因为有一个地址字节和三个数据字节。  

    此致、

    凯蒂恩·琼斯

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

    您好、  

    您能详细说明一下吗? 我需要在代码中进行哪些更改。 实际上、我可以在 BP-11001DAC 的 LDAC 上看到输出。 据此、我得出结论、ESP32和 DAC 模块已配置并正在通信。 此外、我期望 BP-DAC11001 EVM 的输出端有一些输出。 但无法看到任何输出。 如果您能详细说明如何通过 DAC 获得输出就会非常好。 关于相位和时钟,你能详细介绍一下吗? 您希望我做些什么具体的更改?

    此致、

    Sanjana Bhalekar

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

       这是我可以在 EVM DAC11001上的 LDAC 引脚上看到的波形。 我只想让您知道输出。  

    此致

    Sanjana Bhalekar

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

    尊敬的  Sanjana:

    LDAC 不是 DAC 的输出、它是输入。 DAC 在 SCLK 下降沿捕获数据、这意味着您的 MCU 需要在上升沿将其移出。 这是通过在代码开始时 SPI 初始化设置中的相位和极性设置来完成的。 您可以将 SPI 极性/相位设置为0/1或1/0、以使数据在上升沿移动、并在下降沿由 DAC 捕获。  

    此致、

    凯蒂恩·琼斯