大家好、
我目前在尝试使用指定的 ADC 持续读取数据时遇到难题。 在我的应用中、该器件成功使用不同输入执行测量循环。 然而、在特定事件期间、我需要连续读取特定输入 并以特定的速率(1k S/s)进行采样。 我面临的问题是、每次发生该事件时、我都会将寄存器设置为 RDATAC 模式、但返回的测量值包含与我尝试获取的实际测量值无关的随机值。
我捕获了一些示波器镜头、并观察到 MIMO 总线上存在这些不寻常的值。 因此、它们不是由我的通信系统中任何形式的噪声引起的。
要启用 RDATAC 模式、我将配置四个寄存器并使用三个命令。 此寄存器包括 STATUS (启用输入缓冲器)、MUX (将+AIN6和-AIN7设置为差分输入)、ADCON (针对单位增益)、和 DRATE (针对2k S/s 上的采样)。
附件是供您参考的示波器屏幕截图。
写入这些寄存器后、会引入2ms 的延迟。 随后、RDATAC、SYNC 和 WAKEUP 命令按此顺序执行、每条命令以2ms 的延迟间隔。
此初始化之后、每当发生 DRDY (Pin)外部事件时、我都会使用 RDATA 命令、将返回值存储在缓冲区中、大小为1000。 尽管为2k S/s 设置了 DRATE、但我始终每1ms 收到一个测量值(奇怪的行为、但不是问题)。
下表显示了返回值以及第一个测量值(Cap_Sample [0])的范围触发器。
预期测量是初始值约为0.156V 的电容式放电(100nF 与1MOhm 并联)。
您能帮我找到我做错了什么吗?