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.

[参考译文] DAC81416:Linux 器件驱动程序要求

Guru**** 2390755 points
Other Parts Discussed in Thread: DAC81416, DAC81401

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1411473/dac81416-linux-device-driver-requirement

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

工具与软件:

你(们)好

我们 在其中一个设计中使用 DAC81416数字到模拟 IC。 我们无法找到适用于 DAC81416的 Linux 器件驱动程序。 您能为我们提供合适的器件驱动程序或任何参考资料吗?

谢谢你  

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

    尊敬的 Srinath:

    遗憾的是、我们不为该器件提供 Linux 驱动程序。  我们确实有一个该系列中的器件 DAC81401的 python 示例、您可以将其作为开发接口的起点。

    DAC81401数据表、产品信息和支持|德州仪器 TI.com

    谢谢!

    Paul

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

    Paul、你好!

    感谢 Paul 的支持、只需提出一个简短的问题、即为您提供用于此 DAC81416的测试所需的任何 Linux 驱动程序。我所问的任何系列也都可以作为参考。 如果有任何可用性、请指导我们。

    谢谢你  

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

    尊敬的 Srinath:

    此系列中的任何器件均没有任何 Linux 驱动程序。 该器件使用一个简单的 SPI 接口。 您可以在线找到 SPI Linux 驱动程序示例。 如果您对此器件上的 SPI 有疑问、或有关于为您的应用配置寄存器设置的问题、我们可以帮助解决这些具体问题。

    此致!

    Katlynne Jones

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

    尊敬的 Katlynne:

    我们尝试通过 SPI 及 SOM imx8qm 板与 DAC81416通信、

    我们编写了一个应用程序、用于通过 SPI 与 DAC 通信。

    #include

    #include

    #include

    #include

    #include

    #include

    #include

     

    #define SPI_DEV_PATH "/dev/spidev0.0  //根据需要调整此路径

     

    //用于初始化 SPI 的函数

    int init_spi (const char * device){

        INT FD =开路(DEVICE、O_RDWR);

        如果(FD < 0){

            perror ("Failed to open SPI device");

            EXIT (EXIT_FAILURE);

        }

     

        //设置 SPI 模式

        uint8_t mode = SPI_MODE_0;

        如果(ioctl (FD、SPI_IOC_WR_MODE、&MODE)< 0){

            perror ("Failed to set SPI mode");

            关闭(FD);

            EXIT (EXIT_FAILURE);

        }

     

        //设置 SPI 最大速度

        uint32_t speed = 500000;// 500kHz

        如果(ioctl (FD、SPI_IOC_WR_MAX_SPEED_Hz、&SPEED)< 0){

            perror ("Failed to set SPI speed");

            关闭(FD);

            EXIT (EXIT_FAILURE);

        }

     

        返回 FD;

    }

     

    //通过 SPI 发送16位数据的函数

    void spi_transfer (int fd、uint8_t *数据、size_t length){

        结构 SPI_IOC_TRANSFER SPI_msg ={

            .tx_buf =(unsigned long) data、  //将指针投射到 unsigned long 或__u64

            rx_buf = 0、                    //无接收缓冲区(如果未使用、则设为0)

            len = length、                  //数据的长度

            .speed_Hz = 500000、             // SPI 时钟速度(以 Hz 为单位)

            .bits per_word = 8、             //每个字位(8个是典型值)

            .delay_usecs = 0、               //传输之间的延迟(可选)

            .cs_change = 0、                 //芯片选择行为(0 =传输后不变)

        };

     

        //发送 SPI 消息

        如果(ioctl (FD、SPI_IOC_MESSAGE (1)、&SPI_msg)< 0){

            perror ("Failed to send SPI message");

            关闭(FD);

            EXIT (EXIT_FAILURE);

        }

    }

     

    int main(){

        INT SPI_FD = init_SPI (SPI_DEV_PATH);

     

        //命令1:配置 SPI_CONFIG 寄存器

        uint8_t CONFIG_DATA[3]={0x03、0x0A、0x84};  //实际配置数据

        SPI_TRANSFER (SPI_FD、CONFIG_DATA、sizeof (CONFIG_DATA));

     

        //命令2:设置通道0值

        uint8_t channel_0_data[3]={0x09、0xFF、0xFE};  // 实际通道0数据

        SPI_TRANSFER (SPI_FD、CHANNEL_0_DATA、sizeof (CHANNEL_0_DATA));

     

        //命令3

        uint8_t COMMAND_3_DATA[3]={0x10、0xFF、0xFF};  //实际命令3数据

        SPI_TRANSFER (SPI_FD、COMMAND_3_DATA、sizeof (COMMAND_3_DATA));

     

        //关闭 SPI 设备

        关闭(SPI_FD);

        返回0;

    }

    我们尝试发送通道0上的电压、这意味着 DAC0、

    我们将发送要设置的命令

    1. SPI 配置命令- 0x03、0x0A84

    2.通道0我们需要断电才能使用我们要发送命令的通道- 0x09、0xFFFE

    3. DAC0、我们需要发送5V 的电压、命令- 0x10、0xFFFF

    如果需要任何更改或修改,请通知我们。

    谢谢

    Srinath Rao。

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

    尊敬的 Srinath:

    感谢您共享代码。 Sanjay 将进行审查并提供一些建议。 您是否能够在示波器或逻辑分析仪上捕获 SPI 写入帧? 如果是、请分享、以便我们验证使用的 SPI 格式和时序是否正确。  

    此致!

    Katlynne Jones  

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

    尊敬的 Srinath:

     
    请使用以下设置 SPI 写入来获取 通道的 DAC VOUT 电压 -  

    a)在 SPICONFIG (0x03)中写入0x0A84 - 为 DAC81416器件上电  

    b) 在 GENCONFIG (0x04)中写入0x3F00 -如果使用内部 基准

    c)在  DACPWDN (0x09)中写入0x0000 -为单独的 DAC 通道上电

    d)在  DACn_DATA 中写入0xFFFF (n = 0x10至0x1F)- 用于各个 DAC 通道输出配置为5V  
     

    此外、还要确保电源符合数据表中的建议。

     

    谢谢!
    Sanjay

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

    尊敬的 Sanjay:

    我已经开始实现您提供的这些点。 如果出现任何问题、将告知您  

    谢谢!

    Srinath