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.

[参考译文] ADS8166:适用于 ADS8166的 Linux 驱动程序

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1007339/ads8166-linux-driver-for-ads8166

器件型号:ADS8166
主题中讨论的其他器件:AM4378

您好!

在我们的项目中、 很少有传感器会通过 ADS8166 ADC 芯片与 AM4378 SOC 集成。 我们搜索了 ADS8166的 Linux 驱动程序、但 未找到该 ADC 芯片的任何驱动程序。

那么、是否有适用于 ADS8166的 Linux 驱动程序? 或者我们需要编写它。

谢谢。

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

    您好!

    欢迎访问 TI E2E 社区!

    我们没有适用于 ADS8166的任何 Linux 驱动程序。  以下伪代码可能会帮助您编写自己的驱动程序。

    此致、
    Keith Nicholas
    精密 ADC 应用

    以下示例配置将 ADS8166设置为通过 AIN0、AIN1、AIN2和 AIN3自动扫描。

    • 以下配置假设使用4线 SPI 接口、其中 MCU 是控制器
      • 以及用于硬件复位的专用 GPIO。
      • 来自 MCU 的总共5条线路
      • SPI 模块信号(SCLK -主机输出、MOSI -主机输出、MISO -主机输入)、
      • GPIO 信号(/CS -主机输出、 /RST -主机输出)。
    • 将微控制器配置为 SPI 模式0 (CPOL=0、CPHA=0)
    • 将微控制器 GPIO 配置为/CS 的输出
    • 将微控制器 GPIO 配置为/RST 的输出
    • 复位 ADC

    上述操作的伪代码示例:

     

    • 将微控制器配置为 SPI 模式0 (CPOL=0、CPHA=0)
      • MOSI -> SDI 引脚
      • MISO <- SDO-0引脚
      • CLK -> SCLK 引脚(建议使用10MHz 以支持高达100ksps 的 FS)
    • 将微控制器 GPIO 配置为/CS 的输出
    • 将微控制器 GPIO 配置为/RST 的输出

     

    • 将 /RST 置为低电平;使用所有寄存器中的默认值复位 ADS816x
      • 延迟100ns; 最小复位时间脉宽
    • 设置/RST 为高电平;
    • 将/CS 设为低电平;
      • 发送0x081802h;针对 Vref=4.096V、写入 Ofst_CAL 寄存器、REF_SEL=010b
    • 将/CS 设为高电平;
    • 将/CS 设为低电平;
      • 发送0x081C02h;写入 DEVICE_CFG 寄存器、SEQ_MODE=10b 用于自动序列模式
    • 将/CS 设为高电平;
    • 将/CS 设为低电平;
      • 发送0x08800Fh;写入 AUTO_SEQ_CFG1寄存器、启用通道 AIN3、AIN2、AIN1、 AIN0自动序列模式
    • 将/CS 设为高电平;
    • 将/CS 设为低电平;
      • 发送0x088201h;写入 AUTO_SEQ_CFG2寄存器、AUTO_REPEACL=1b 以重复扫描
    • 将/CS 设为高电平;
    • 将/CS 设为低电平;
      • 发送0x081E01h;写入 SEQ_START 寄存器、SEQ_START=1b 以开始通道扫描
    • 将/CS 设为高电平;

     

    • 为采样率周期配置 MCU 计时器资源、例如10ksps 的100uS 重复率。
    • 循环; 用于连续转换的无限循环或用于数据块的固定数字。

    等待定时器触发;(设置所需的采样率)

    将/CS 设为低电平;

    发送0x0000h;写入 NOP 命令并读取16b ADC 转换结果;第一次转换将是 AIN0、然后是 AIN0、AIN1、AIN2、AIN3、 AIN0、…Ω

    存储或处理 SPI 模块中接收到的16b 数据;

    将/CS 设为高电平;