芯片使用日志 - ADC16071

芯片使用日志 - ADC16071

一、概述

  • 16位差分ADC
  • delta - sigma 结构
  • 64倍过采样
  • 12.288MHz 采样率
  • 输出频率 7kHz - 192kHz 可调


二、内部结构与外部引脚

在这里插入图片描述

供电与参考电压端口

  • V R E F + V_{REF^+} VREF+ V R E F − V_{REF^-} VREF:内部差分参考电压输入端口 ,串接大小电容并联
  • V M I D V_{MID} VMID:差分参考电压 V A + / 2 V_{A^+} / 2 VA+/2 输出端口,串接大小电容并联
  • V I N + V_{IN^+} VIN+ V I N − V_{IN^-} VIN差分电压输入端口
  • V A + V_{A^+} VA+:模拟供电,串接大小电容并联
  • V M + V_{M^+} VM+:调制器供电 ,串接大小电容并联入地
  • V D + V_{D^+} VD+:直流供电,串接大小电容并联入地

  • A G N D AGND AGND :模拟地,典型电路中的黑色实心三角
  • D G N D DGND DGND:数字地,典型电路中的三横杠
  • M G N D MGND MGND:调制器时钟地(ground pin for modulator’s clock),与模拟地分开,典型电路中的白色三角

信号与控制端口

  • P D n PD_n PDn:Power - Down 低功耗模式,低电平触发,供电电流从 100mA 降到 1.3mA
  • S F M T SFMT SFMT:Serial Format Pin,串行通信控制端口,与SDO、SCO、FSO有关
  • T M 0 TM0 TM0 T M 1 TM1 TM1测试模式端口,接到数字地
  • F S I FSI FSI:Frame Sync Input,帧同步输入引脚,使ADC转换与外部时钟同步
  • F S O FSO FSO:Frame Sync Output,帧同步输出引脚
  • C L K CLK CLK:外部时钟源
  • S C O SCO SCO:Serial Clock Output,串行时钟输出端口
  • S D O SDO SDO:Serial Data Output,串行数据输出端口
  • T S I TSI TSI:Time Slot Input,允许双片ADC16071共用一条串行数据线
  • D O E DOE DOE:Data Output Enable,数据输出使能,控制SDO的输出缓冲区


三、典型电路

  • ADC16471: V R E F V_{REF} VREF不需要外接电源
    在这里插入图片描述

  • ADC16071: V R E F V_{REF} VREF需要外接电源

    在这里插入图片描述

  • 上图中黑色地为模拟地、白色地为调制信号地、三杠地为数字地



四、工作时序

在这里插入图片描述

CLK,FSI,SCO工作时序

在这里插入图片描述

FSI,FSO,SCO,SDO工作时序

在这里插入图片描述

FSO,SCO,SDO工作时序

在这里插入图片描述

主从模式工作时序

在这里插入图片描述

DOE、SDO工作时序
LVDS(Low-Voltage Differential Signaling)类型的ADC(Analog-to-Digital Converter,模拟到数字转换器)是一种高速、低噪声的接口标准,常用于工业控制和通信应用中,因为它的信号传输能力较强,抗干扰性能好。 在编写LVDS ADC芯片的驱动代码时,通常需要考虑以下几个步骤: 1. **库函数集成**:首先,你需要包含支持LVDS功能的ADC芯片制造商提供的API库或驱动头文件。例如,对于TI的ADS1256或Maxim MAX11800等LVDS ADC,你会找到对应的编程库如libads1256或maxim_sdk。 2. **初始化设置**:根据芯片手册配置硬件连接,包括选择合适的数据速率、电源管理等。设置相应的寄存器值,如时钟源、数据位宽、模式选择等。 3. **数据采集**:通过发送命令序列触发转换,并读取转换结果。这可能涉及到I/O操作,比如GPIO配置成推挽模式,以及从LVDS差分接收端口读取电压并转换为数字值。 4. **错误处理**:添加适当的错误检查和处理机制,比如检查转换完成标志或校验接收到的数据是否合理。 5. **驱动封装**:将底层操作封装成更易于使用的函数,供上层应用程序调用,可能会提供回调接口以便在转换完成后通知用户。 参考代码示例(仅做演示,实际需查阅官方文档): ```c #include "lvds_driver.h" void start_conversion(uint8_t channel) { // 设置通道和模式 set_channel(channel); configure_conversion(); // 开始转换 start_conversion_command(); } uint16_t read_conversion_result() { uint16_t data; // 等待转换结束 wait_for_conversion(); // 读取并解析LVDS数据 data = read_lvd_data(); return data; } // 错误处理函数 void handle_error(const char* error_code) { // 处理错误,打印日志或者返回错误信息 printf("Error: %s\n", error_code); } int main(void) { initialize_device(); // 开始转换并获取结果 uint16_t adc_value = read_conversion_result(); // 关闭设备资源 deinitialize_device(); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chorgy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值