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.

[参考译文] ADS124S08:无法使用 CS (芯片选择)引脚控制两个 ADC IC。

Guru**** 2589280 points
Other Parts Discussed in Thread: ADS124S08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1029206/ads124s08-unable-to-control-two-adc-ic-using-cs-chip-select-pin

器件型号:ADS124S08

大家好、

我们正在项目之一中使用 ADS124S08 IC。 我们面临着芯片选择(CS)引脚的一些通信问题。 当我们直接将 CS 引脚连接到 DGND (意味着我们使用外部跳线将 CS 引脚连接到 DGND)时、IC 工作正常、我们能够正确读取所有12个通道(单端)。

我们使用 Raspberry PI 计算模块(CM-4)与 ADS124S08进行通信。 当我们将 CS 引脚(ADC 的)连接到 CM-4芯片选择引脚时、我们无法获得正确的读数(显示0-2mV 的垃圾值)、其中 AIN 引脚上的实际输入信号为0.5V-2V。增益设置为1。

在我们的项目中、我们使用了两个 ADS124S08、如果我们强制先将一个 ADC IC 接地、并使用跳线 J1=Closed & J2=open (附加原理图)、则第一个 IC 工作正常、但另一个 IC 处于非活动状态、反之亦然。 我们的目标是从两个 ADC IC 获取读数、只有在我们能够从 GPIO 引脚控制/切换 CS 引脚(而不是通过物理接地)的情况下才能实现。

在获取垃圾数据时,我们甚至尝试了将 Reset to ADC (重置到 ADC)(通过将 RESET 引脚接地),但我们仍然得到错误的数据。 在我们为整个器件(CS 引脚接地)供电之前、重新启动器件。

我们尝试的操作如下。

答:我们检查数字示波器 CS 引脚上的信号、当信号为低电平时、它提供适当的0V、而在高电平时、它是3.3V。

b.我们尝试通过 CM-4模块上的其他可用 GPIO 引脚提供 CS 信号。

c.将下拉电阻器10k 和4.7K (一次一个)连接到 CS 引脚。

d.尝试使用 NPN 晶体管(BC847)控制 CS 引脚。

我们是否缺少任何寄存器读取/写入、读取序列、时序或任何硬件点等

请建议。 提前感谢

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

    您好、Gulam、

    欢迎来到 E2E 论坛!  一个常见的错误是在整个通信事务中不保持 CS 处于低电平。  通常、这需要 GPIO 在通信开始时变为低电平、然后在通信完成后变为高电平。  如果 CS 在读取一个字节后或通信周期期间的任何时候切换、则 CS 的上升沿将取消通信。

    您能否通过示波器或逻辑分析仪发送通信图供我查看?  请包含所有信号、例如 CS、DOUT、DIN 和 SCLK。

    您可能需要在 ADS124S08 CS 引脚上验证 CS 是否按预期工作。  您实现跳线的方式可能会有问题、引脚可能是悬空的、不是真正连接到微控制器。

    此致、

    Bob B

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

    您好、Gulam、

    您是否能够拍摄通信照片供我查看?   

    此致、

    Bob B

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


    我本人 Kamil H Shaikh,Gulam 的同事,先生,请帮助我们,我们陷入困境,
    Chipselect Issue、PFA 图片和描述

    IC:ADS124S08

    平台:Raspberry Pi CM4 (BCM2711)
    应用:我们需要使用相同的 SPI 总线以及不同的片选 CS0和 CS1访问2 X ADC (ADS124S08)、
    总共12 X 2 = 24个要读取的通道。

    硬件方案:

    我们不使用 DRDY 引脚、默认情况下我们保留了该引脚
    RESET = 1、上拉至3.3Vcc 4.7k Ω
    START/SYNC = 0、下拉至 Gnd 4.7k Ω
    CLK = 0、直接在 Grnd、因为我们使用内部振荡器
    我们未使用的 DRDY 引脚。
    AINCOM = AVSS = IOVDD =公共 grnd
    电压基准:内部2.5V
    有关其他引脚、请参阅原理图屏幕截图。

    观察结果:我们能够成功地写入和读取 CS 连接到 grnd 的所有18个寄存器、
    另外、正在以80ms (每个通道的延时时间) X 12通道的速度成功读取12个通道。
    在中、所有通道的读取间隔约为1秒。


    请参考图片004-a.jpg
    措施1:CS 连接到 GND、工作正常、如上所述。

    操作2:上电时 Cs = 0
    现在、我们不使用 GND、而是按预期使用 CS 的 GPIO、
    在上电时、我们保持 CS = 0、由于哪个 IC 串行端口处于活动状态、
    接收到准确的数据。此 CS = 0通过代码保持20秒
    看到在 DSO 上切换 DRDY。

    操作3:CS = 1在代码继续中的操作1后、程序使 CS = 1
    20秒内、在 MISO 上不能按预期看到任何数据。确定-无问题
    DRDY 关闭(逻辑0)

    操作4:操作3后继续执行、程序使 CS = 0、持续20秒
    现在、这里的目的是 MISO 或数据输出引脚必须启动数据流、
    但没有数据启动。串行 SPI 端口变为非活动状态、任何命令仅为0x00、0x00、
    接收到0x00。
    DRDY 关闭(逻辑0)

    命令:-
    #define CMD_NOP 0x00
    #define CMD_WAKEUP 0x02
    #define CMD_PWRDWN 0x04
    #define CMD_RESET 0x06
    #define CMD_START 0x08
    #define CMD_STOP 0x0A
    #define CMD_RDATA 0x12


    配置寄存器值

    DEV_ID= 0x80;
    STATUS= 0x00;
    INPMUX= 0x0c;

    PGA= 0xA0;
    datarate= 0x9D;
    参考= 0x3A;

    IDACMAG = 0x00;
    IDACMUX= 0xFF;
    VBIAS= 0x00;

    SYS_0x1B;
    OFCAL0= 0x00;
    OFCAL1 = 0x00;

    OFCAL2= 0x00;
    FSCAL0= 0x00;
    FSCAL1= 0x00;

    FSCAL2= 0x40;
    GPIODAT= 0x00;
    GPIOCON= 0x00;

    注:代码序列不是实际代码:-

    uint8环路=0
    1. Cs = 0
    CMD_RESET 由 SPI 发送
    3. WREG 18寄存器//正常工作
    DELAY_1sec ()
    4. RREG 18寄存器//正常工作
    DELAY_1sec ()
    CMD_START 由 SPI 发送

    while (1){

    LOC++;
    if (loop=10){
    RPI_Write_Digi_Pin (15、高电平);

    if (loop=20){
    RPI_Write_Digi_Pin (15、低电平);
    LOOP = 0;

    WREG (MUX)= 0xC0
    CMD_RDATA、0x00、0x00、0x00、0x00、0x00
    SPI_TX_RX_6bytes;

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

    您好、Kamil、

    欢迎来到 E2E 论坛!  查看所有四个通道的数据会更有帮助、这样我还可以看到 SCLK 和发送到 ADS124S08的数据以及 CS 和 DOUT/DRDY。  如果您能够访问比示波器快得多的逻辑分析仪、  两个通道示波器截图只是没有提供太多细节。

    第2个 ADS124S08 CS 是否一直保持高电平?  您希望在 DOUT/DRDY 中看到什么?  当 DRDY 从高电平转换为低电平时、DOUT/DRDY 将转换为低电平。  但是、如果 DOUT/DRDY 已处于低电平、您将不会看到它返回高电平。  因此、要检查 ADC 是否正在转换、请检查 DRDY 线路(即使您未使用它、也可以临时监控以确保 ADC 仍在转换)。  如果 ADC 未进行转换、您可能需要通过读取寄存器来验证寄存器设置中是否没有任何变化。

    此致、

    Bob B

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


    Bob 先生、您好!

    查看所有四个通道的数据会更有帮助、这样我还可以看到 SCLK 和发送到 ADS124S08的数据以及 CS 和 DOUT/DRDY。  如果您能够访问比示波器快得多的逻辑分析仪、  两个通道示波器截图只是没有提供太多细节。
    答:先生,我们只有两个信道 DSO,我们没有逻辑分析仪,所以我给出了 CS (这对我们来说是个问题)和数据(即使在1次切换后 CS = 0 (0 - 1 - 0)的图片

    2.第2个 ADS124S08 CS 是否一直保持高电平?

    答案:是的、我们已将3.3V 直接提供给其他 CS

    您希望在 DOUT/DRDY 中看到确切的内容是什么?

    ANS:先生、我们使用内部状态寄存器来读取完成标志 DRDY 位、

    DRDY 位= 0、表示数据就绪、1表示忙。我们尚未连接的 DRDY 硬件引脚。

    不过、如果 DOUT/DRDY 已处于低电平、您将不会看到它返回高电平。  因此、要检查 ADC 是否正在转换、请检查 DRDY 线路(即使您未使用它、也可以临时监控以确保 ADC 仍在转换)。

    PFA CS 和 DRDY 的图像(DSO 仅有两个通道)

    5、 如果 ADC 未进行转换、您可能需要通过读取寄存器来验证寄存器设置中没有任何变化。

    答案:

    时隙_1 (CS = 0)注释为绿色

    DRDY +数据在 CS=0 (默认情况下为开机)、T 上工作

    时隙2 (CS = 1) 注释 了 Voilet 颜色

    然后在 CS=1时、数据被停止、但 DRDY 信号脉冲序列仍然存在、(这意味着 ADC 转换正在工作)

    时隙3 (CS = 0) 注释 为红色

    然后、当再次 CS = 0时、DRDY 脉冲序列停止( 这意味着 ADC 转换正在工作) 且 DRDY 引脚变为高电平、数据已从时隙2开始关闭。

    根据内部寄存器值、我们无法读取它们、因为串行 SPI 已死、但我们观察到 Vref out 引脚(引脚23)保持2.5V、这意味着寄存器值将被保留、因为内部基准保持不受干扰且完好无损。

    在时隙3中、我们尝试了 WREG (18)和 RREG (18)、但仅收到0x00...0x00、因为 SPI 已死区。

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

    您好、Kamil、

    我理解并非总是拥有最佳设备、但某些设备对于充分的故障排除而言是必要的。  否则、您可能会花费大量时间猜测问题可能是什么。  让我向您保证、许多客户都使用 CS、没有任何问题、并且有些客户除了使用2个器件之外、还使用了更多的并联器件。  因此、我们需要 有效地找到解决您所看到问题的方法。

    [引用 userid="4952" URL"~/support/data-converters-group/data-converters/f/data-converters-forum/1029206/ads124s08-unable-to-control-two-adc-ic-using-cs-chip-select-pin/3811102 #3811102"] DRDY 位= 0,表示数据就绪,1表示忙。DRDY 硬件引脚我们尚未连接。

    首先、我认为对状态寄存器位有误解。  RDY 与 DRDY 不同。  状态寄存器中的 RDY 位可让您了解在上电或器件复位后何时允许您与 ADS124S08进行通信。  它不会告诉您何时准备好转换结果。

    当我查看示波器图时、在 CS 变为低电平时、DRDY 会出现异常活动。  当发送 SCLK 时、DRDY 变为高电平。  转换似乎已停止。  CS 变为低电平大约1秒后、DRDY 变为高电平。  这似乎来自某种通信。  由于我们无法看到通信内容、我很难确定正在进行的操作。  根据您的环路序列、当 CS 变为低电平时、可能已经开始了通信。  必须确保 CS 的下降沿到通信开始的正确遵循数据表中显示的 SPI 时序图。  如果在 CS 变为低电平之前开始通信、则 ADC 很可能会解码部分字节、该字节被解释为停止命令。  如果在字节边界上传输未完成、则 SPI 总线将一直等待已完成传输的正确解码或通过切换 CS 将总线复位。

    如果您找不到4通道示波器、我建议通过大幅放大的视图监控 SCLK 和 CS、以便我们可以查看 SCLK 相对于 CS 变为低电平的发送位置。

    此致、

    Bob B