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.

[参考译文] DAC81416EVM:DAC 配置与放大器;DAC 输出

Guru**** 2538830 points
Other Parts Discussed in Thread: DAC81416

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1022017/dac81416evm-dac-configuration-dac-out

器件型号:DAC81416EVM
主题中讨论的其他器件:DAC81416

DAC81416:此处添加了配置

我使用了参考代码。 通过 SPI 接口发送和接收正常。

但问题是、发送数据不会到达 DAC 输出引脚。

请任意一个帮助。

void DAC_Config (void)

GPIO_WritePin (DAC_RESETn、清零);
/*位延迟*/
DELAY_US (1000);// 1msec
GPIO_WritePin (DAC_RESETn、设置);


/* DACRANGEn 寄存器 A 范围:+/-20V */
DAC_INIT_STEPS (0x0acccc);
DAC_INIT_STEPS (0);/*接收字节*/
/* DACRANGEn 寄存器 B 范围:+/-20V */
DAC_INIT_STEPS (0x0bcccc);  
DAC_INIT_STEPS (0);/*接收字节*/
/* DACRANGEn 寄存器 C 范围:+/-20V */
DAC_INIT_STEPS (0x0cccc);  
DAC_INIT_STEPS (0);/*接收字节*/
/* DACRANGEn 寄存器 D 范围:+/-20V */
DAC_INIT_STEPS (0x0dcccc);
DAC_INIT_STEPS (0);/*接收字节*/


/*加电设备*/
DAC_INIT_STEPS (0x030a84);
/*为所有通道加电*/
DAC_INIT_STEPS (0x090000);
/*为所有信道启用广播*/
DAC_INIT_STEPS (0x05FFFF);
/*将代码写入所有通道*/
DAC_INIT_STEPS (0x0ffff);

然后继续发送  

void loop (void)(空)

dacWrite (0x7fff);

/*位延迟*/
DELAY_US (1000);// 1msec 请求

dacWrite (0xFFFF);

当我尝试读取设备 ID 时、版本 MISO 信号受到干扰。

注:未使用 LDAC 和 CLR。

提供输入电源  

J7.3 ---- GND

J7.4 ---- VIO---- 5V

J7.5 ---- VDD/VAA--- 5V

J7.6 ---- VSS ---- GND

J7.7 ---- VCC---- 30伏

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

    您好!

    当您说通过 SPI 接口发送和接收正常时、寄存器读取/写入工作正常?

    您能否为您的其中一个写入寄存器共享 SPI 帧的示波器截图?

    也是如此

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

    尊敬的 Akhilesh:

    请查找随附的图形

    读取寄存器:

    写入寄存器:

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

    大家好、Madhusudan、

    感谢示波器图像、但您的采集中仍然缺少 CS 信号。 DAC 代码将更新  CS 信号的上升沿。  

    此外、SYNC-EN 位必须设置为0。

    请与 CS 信号共享 SPI 捕捉、并确保 SYNC-EN 位设置为0。

     

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

    尊敬的 Anbu Mani35:

    请查找随附的图形

    时钟和 CS:

    MOSI 和 CS:

    我正在尝试读取设备 ID 和版本。 但 MISO 信号受到干扰。

    此处代码:

    void DAC_init (void)

    GPIO_WritePin (DAC_RESETn、清零);
    /*位延迟*/
    DELAY_US (1000);// 1msec
    GPIO_WritePin (DAC_RESETn、设置);

    void loop (void)(空)

    dacWrite_Version (0x8100);      //状态

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

    您好!

    我相信您有两个问题吗?  

     1:器件 ID 无法读取

     2. DAC 输出未更新   

    第一个问题将讨论器件 ID 读取问题、然后讨论 DAC 输出更新。

    您提到 MISO 信号受到干扰,这意味着您在 MISO 获得的数据不是有效 的吗?  您捕获的图像未显示 MISO 数据。 您能否在信号屏幕上共享(CS、CLK、SDI、SDO)。 如果您正在使用2ch 示波器  

    共享读取设备 ID 的 SPI 代码,您遵循的顺序是什么?  您是否在寄存器03中启用了 SDO -EN 位

    需要读取器件 ID 2个 SPI 周期、1个读取命令(写入周期)、2个数据读取(读取周期)-请参阅图7-2   

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

    您好!

    请查找所附的信号和代码

    极性配置模式:0、相位:1

    空 inti (空)

    GPIO_WritePin (DAC_RESETn、清零);
    /*位延迟*/
    DELAY_US (1000);// 1ms
    GPIO_WritePin (DAC_RESETn、设置);
    /*加电设备*/
    DAC_INIT_STEPS (0x030004);

    void loop (void)(空)

    dacWrite_Version (0x010000);//状态
    dacWrite_Version (0x810000);//状态

    正在尝试读取设备 ID 和版本。

    CLK 和 CS

    MOSI:CLK 和数据

    MISO:CLK 和数据

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

    您好,

    您能否尝试使用序列和探头 MISO。

    void loop (void)(空)

    dacWrite_Version (0x810000);//状态
    dacWrite_Version (0x810000);//状态  

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

    无法获取 MISO 数据。

    请随时分享设计 ID 和版本参考代码。

    我正在尝试读取设备 ID 和版本获取问题。

    我现在使用的是 EVM。 只需连接 SPI 信号 CS、MISO、MOSI、SCLK、复位、 以及电压

    I、J2接头引脚短接是否正常?

    提供输入电源  

    J7.3 ---- GND

    J7.4 ---- VIO---- 5V

    J7.5 ---- VDD/VAA--- 5V

    J7.6 ---- VSS ---- GND

    J7.7 ---- VCC---- 30伏

    注:未使用 LDAC 和 CLR。

    感谢您的参与。

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

    J2接头必须打开

    J3接头必须打开

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

    如果短接、则 J2接头 Mush 为开路、器件处于复位状态。

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

    完成设计 ID 和版本读取。

    实际上、在 TMS320f28379 EVM 中、SPI 配置为极性:0相位:1有效。

    您能否共享 DAC 输出的示例代码?

    谢谢你。

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

    你好。

    我正在尝试在 DAC 值上发帖。 但没有得到。

    添加了准备好的代码。

    void DAC_init (void)

    GPIO_WritePin (DAC_RESETn、清零);
    /*位延迟*/
    DELAY_US (1000);//DELAY (1);//~1mse
    GPIO_WritePin (DAC_RESETn、设置);

    //配置

    /* DACRANGEn 寄存器 A 范围:+/-20V */
    DAC_INIT_STEPS (0x0acccc);  

    /* DACRANGEn 寄存器 B 范围:+/-20V */
    DAC_INIT_STEPS (0x0bcccc);  
    DAC_INIT_STEPS (0);/*接收字节*/

    /* DACRANGEn 寄存器 C 范围:+/-20V */
    DAC_INIT_STEPS (0x0cccc);  

    /* DACRANGEn 寄存器 D 范围:+/-20V */
    DAC_INIT_STEPS (0x0dcccc);  

    /*加电设备*/
    DAC_INIT_STEPS (0x030a84);

    /*为所有通道加电*/
    DAC_INIT_STEPS (0x090000);


    /*为所有信道启用广播*/
    DAC_INIT_STEPS (0x05FFFF);
    /*将代码写入所有通道*/
    DAC_INIT_STEPS (0x0ffff);

    void loop (void)(空)

    dacWrite (0x107fff);

    DELAY_US (100);

    dacWrite (0x10FFFF);

    DELAY_US (100);

    谢谢、

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

    您好,

    很高兴听到可以修复代码读取问题的声音。  

    我在这里有几个问题。

    1. 我知道 您 使用  TMS320f28379 EVM 作为 SPI 接口的主机控制器,对吧?  

    2. 在直接更新 DAC 之前,我想确保您可以通过电缆写入寄存器而不会出现任何问题? 您是否检查了两个读取/写入都发生了?  

    例如,将一个0xAA55数据写入寄存器0x05地址,并读回您的获取0xAA55。

    0x05 -> 0xAA55;写入  

    0x05 ->< READ DATA >;应为0xAA55。

     

     

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

    您好!

    主机是  TMS320f28379 EVM

    读取和写入完成。

    我正在尝试在 DAC 值上发帖。 但没有得到。

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

    您好!

    我从您的设置 VCC = 30和 VSS = 0V 中看到,DAC 输出电压可以是单极的。  

    void DAC_init (void)

    GPIO_WritePin (DAC_RESETn、清零);

    /*位延迟*/

    DELAY_US (1000);//DELAY (1);//~1mse

    GPIO_WritePin (DAC_RESETn、设置);

     

     

    //配置

    /* DACRANGEn 寄存器 A 范围:0-20V *//根据 VCC 上的基准电压30V 进行了更新

    DAC_INIT_STEPS (0x0a2222);     

    /* DACRANGEn 寄存器 B 范围:0-20V */根据您在 VCC 上的基准电压30V 进行了更新

    DAC_INIT_STEPS (0x0b2222);  

    /* DACRANGEn 寄存器 C 范围:0-20V */根据 VCC 上的基准电压30V 进行了更新

    DAC_INIT_STEPS (0x0c2222);  

    /* DACRANGEn 寄存器 D 范围:0-20V */根据您在 VCC 上的基准电压30V 进行了更新

    DAC_INIT_STEPS (0x0d2222);  

     

     

    /*加电设备*/

    DAC_INIT_STEPS (0x030a84);  //

    DAC_INIT_STEPS (0x060000);  // 在此处添加此行 DAC 更新和异步模式

     

     

    /*为所有通道加电*/

    DAC_INIT_STEPS (0x090000);//

     

    /*为所有信道启用广播*/

    DAC_INIT_STEPS (0x05FFFF); //已启用所有通道的返修转换

    /*将代码写入所有通道*/

    DAC_INIT_STEPS (0x0f8000);   //编写 DAC 代码以将所有 DAC 更新为10V   

     

    尝试此代码,它将更新所有16个通道。

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

    您好!

    感谢您的支持。

    我们是否会在单个 DAC 输出引脚上获得正负(例如:+/-10)电压?

    如果可能、如何配置寄存器。

    请建议我

    感谢您的改进...

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

    是的,请执行以下操作以获得+/-10V 输出。

    提供输入电源  

    J7.3 ---- GND

    J7.4 ---- VIO---- 5V

    J7.5 ---- VDD/VAA--- 5V

    J7.6 ---- VSS > - 10V

    J7.7 ---- VCC>+10V  

    --------------------------------------

    void DAC_init (void)

    GPIO_WritePin (DAC_RESETn、清零);

    /*位延迟*/

    DELAY_US (1000);//DELAY (1);//~1mse

    GPIO_WritePin (DAC_RESETn、设置);

     

     

    //配置

    /* DACRANGEn 寄存器 A 范围:+/-10V *// VCC=+10V、VSS =-10V

    DAC_INIT_STEPS (0x0aaaaa);     

    /* DACRANGEn 寄存器 B 范围:+/-10V */VCC= +10V、VSS =-10V

    DAC_INIT_STEPS (0x0baaaa);  

    /* DACRANGEn 寄存器 C 范围:+/-10V */ VCC= +10V、VSS =-10V

    DAC_INIT_STEPS (0x0caaaa);  

    /* DACRANGEn 寄存器 D 范围:+/-10V */ VCC= +10V、VSS =-10V

    DAC_INIT_STEPS (0x0daaaa);  

     

     

    /*加电设备*/

    DAC_INIT_STEPS (0x030a84);  //

    DAC_INIT_STEPS (0x060000);   // 在此处添加此行 DAC 更新和异步模式

     

     

    /*为所有通道加电*/

    DAC_INIT_STEPS (0x090000);//

     

    /*为所有信道启用广播*/

    DAC_INIT_STEPS (0x05FFFF); //已启用所有通道的返修转换

    /*将代码写入所有通道*/

    DAC_INIT_STEPS (0x0f8000);    //编写 DAC 代码以将所有 DAC 更新为10V   

     

    希望此代码将有助于驱动+/10V 输出。

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

    DAC 范围选择请参考、DACRANGEn 寄存器。