使用 SCAN_MODE1或 SCAN_MODE2从 AFE 读取数据时,会扫描从 FIRST_CH 到 LAST_CH 范围内的所有通道,但不按预期顺序扫描。 例如、顺序:(FIRST_CH + 5)至(FIRST_CH +4)。
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.
尊敬的 Noah Pierce:
您如何确定正在采样哪个通道? 是否正在使用 SENDIAG 标志、或者输出数据是否与您期望的通道不匹配? 我通常使用 DRDY 引脚来指示您所在的通道。 因此、当 DRDY 在启动(或重新启动)转换后首次下降为低电平时、即 CH0 (或任何 FIRST_CH)。 然后、当 DRDY 再次下降为低电平时、它应该是序列中的下一个通道、以此类推、直到到达最后一个通道。
使用逻辑分析仪观察数据通信会有所帮助。 LMP 可能会提供大量信息、因此我不确定在看不到您看到的内容的情况下有多大用处。
-Bryan
当我使用 SCAN_MODE2和 CH_FIRST_CHAN_CH0 | CH_LAST_CHA_CH6时、我能够看到所有通道按正确的顺序穿过(在外部示波器上监控时通过 SENDIAG 的3 LSB)、但不会从通道0开始。 每个通道上获得的电压也是我的预期。 但是、我对为什么必须跟踪每个通道的读取情况感到困惑、并且无法依赖在访问 CH_LAST_CHAN_CHX 后扫描整个通道范围
我担心是否存在使用过时读数、读数丢失等的可能性。
我需要使用 SCAN_MODE1、以便确切地确定何时启动扫描周期、并希望能够按照固定的顺序和固定的时间扫描所有通道。
尊敬的 Noah Pierce:
您能解释一下自己的意思吗?
我能够看到所有信道按正确的顺序(通过3 LSB 的 SENDIAG 在外窥镜上监视)(大部分情况下)
具体而言、"大部分"一词的含义是什么? 我知道 ADC 不一定从 FIRST_CH 开始、但我假定序列一旦启动、就始终遵循正确的顺序。 您是说、有时信道随机以错误的顺序出现吗? 如果可以、您能否更详细地介绍这一点?
此外、无论 SENDIAG 位如何、您是否确认接收的数据是否与预期的通道匹配? 例如、如果您的 Ch0上电压为0.5V、CH1上电压为1V、CH2上电压为1.5V 等、那么数据实际上是否按照正确的顺序输出、以便第一次 DRDY 转换输出等效于0.5V 的代码、第二次 DRDY 转换输出1V 等效代码? 没有明显的原因来说明 SENDIAG 中的位不对应于正确的通道、除非它始终偏移一个通道、例如您在对 Ch1进行采样、但 SENDIAG 位显示 CH0。 数据表中的第9.3.8.3.5节对此进行了说明。
我可能需要看到完整的数据事务才能进一步诊断此问题。
-Bryan
通道不会随机出现、但偶尔会从不同的通道(3、4或5)开始。 我希望扫描的通道顺序是确定性的。
每个通道都连接到一个外部传感器输入、我要获得的值在其预期范围内、因此我确定的通道仅基于 SENDIAG_FLAGS 的 SAMPLE_CH 位。
ADC 不一定在给定通道上启动、因此我将在一个单通道范围内使用 SCAN_MODE1进行测试、并且在读取每个通道之后、当 CH_SCAN_NRDY 为0时写入一个新的 CH_SCAN 通道。 但是、除非我写入 RESETCN (并重写所有控件和配置寄存器)、否则在写入 ADC_RESTART 后、我不会看到 DRDYB 发生变化。
尊敬的 Noah Pierce:
从 ADC 读取的数据值是否始终与您在 SENDIAG 位中读取的通道相匹配? 换句话说、您说 SENDIAG 位有时指示序列在错误的通道上启动、例如通道3。 发生这种情况时、接收的数据是始终对应于施加到通道3的实际电压、还是对应于不同的通道? 我希望数据按正确的顺序输出、而只是 SAMPLE_CH 位不正确。 请确认
此外、当使用 SCAN_MODE1时、序列会环绕吗? 例如、您正在使用 SCAN_MODE1、FIRST_CH = Ch0、LAST_CH = Ch6。 不过、一旦您开始读取数据、第一个样本会指示您位于 Ch3而不是 Ch3。 在模式 CH4、Ch5、Ch6、Ch0、Ch1之后完成后续的 SAMPLE_CH 位、 通道2? 或者、序列是否会在 Ch6停止、正如它应该那样?
您是否在多个电路板还是仅一个电路板上看到过这种行为? 您是否执行了 A-B-A 交换以查看问题是出在 ADC 还是电路板? 此外、我假设您使用的是自己的 PCB、而不是 EVM、对吗?
-Bryan