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:从 ADS124S08到 MSPM0G3507的数据读取/写入。

Guru**** 2391415 points
Other Parts Discussed in Thread: LP-MSPM0G3507, MSPM0G3507, ADS124S08, SYSCONFIG, ADS124S08EVM

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1291044/ads124s08-data-read-write-from-ads124s08-to-mspm0g3507

器件型号:ADS124S08
主题中讨论的其他器件:MSPM0G3507、LP-MSPM0G3507 SysConfig、

您好、TI!

我将3线 RTD PT1000传感器与 ADS124S08和 MSPM0G3507连接。  

参考电路/原理图为 ADS124S08数据表示例页面编号 91.  

下面是寄存器设置。

int main (void)
 {
    delay_cycles(80000); //2.2ms delay  as per data sheet of ads124s08
    
    SYSCFG_DL_init();
  
    DL_GPIO_clearPins(GPIO_SPI_0_CS0_PORT,GPIO_SPI_0_CS0_PIN);  //cs low

    delay_cycles(16000); 

    DL_SPI_transmitData8(SPI_0_INST,RESET_OPCODE_MASK);  //reset device

    delay_cycles(128000);

    regWrite(REF_ADDR_MASK,0x06);         


    regWrite(PGA_ADDR_MASK,0x0A);          //0A// PGA enabled, Gain = 4

    regWrite(INPMUX_ADDR_MASK,0x12);       //12// Select AINP = AIN1 and AINN = AIN2

    regWrite(IDACMAG_ADDR_MASK,0x07);      //07// IDAC magnitude set to 1mA


    regWrite(DATARATE_ADDR_MASK,0x14);

    regWrite(SYS_ADDR_MASK,0x10);


    regWrite(IDACMUX_ADDR_MASK,0x35);      //35;// IDAC1 set to AIN5, IDAC2 set to AIN3

   
    readRegs(INPMUX_ADDR_MASK,5,Data);     //trying to read 5 register starting from register address 0x02 

    DL_SPI_transmitData8(SPI_0_INST,START_OPCODE_MASK);     //start command

    delay_cycles(16000);

    DL_GPIO_setPins(GPIO_SPI_0_CS0_PORT,GPIO_SPI_0_CS0_PIN);  //cs high

    while (1)
    {
        if (!DL_GPIO_readPins(GPIO_LEDS_DRDY_ADC_PORT, GPIO_LEDS_DRDY_ADC_PIN))  //waiting  for DRDY pin to goes low
        {
            DL_GPIO_clearPins(GPIO_SPI_0_CS0_PORT,GPIO_SPI_0_CS0_PIN);  //cs low
            delay_cycles(16000);

            DL_GPIO_setPins(GPIO_LEDS_START_PORT,GPIO_LEDS_START_PIN); //testing
            delay_cycles(16000);

            DL_SPI_transmitData8(SPI_0_INST,RDATA_OPCODE_MASK);



            #if 1
                        for(int i=0;i<3;i++)
                        {
                            Input_Data[i] = DL_SPI_receiveData8(SPI_0_INST);
                        }
            #endif
                        delay_cycles(16000);
                        DL_GPIO_setPins(GPIO_SPI_0_CS0_PORT,GPIO_SPI_0_CS0_PIN);
            }
     }
}}

SPI 设置

  • SPI 模式1
  • 时钟位速率1MHz
  • 位顺序- MSB 优先

我们遵循了数据表伪代码、但未从 ADC 获取数据。 当读取 SPI RX 缓冲区时、会有一些随机值。

我们不确定 ADC 是否已配置。  

未根据设置500uA 设置 IDAC 幅值。

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

    尊敬的 Omkar Singh:

    您能否提供通信的完整原理图和示波器或逻辑分析仪快照?

    谢谢。

    鲍勃 B

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

    尊敬的 Bob:

    我使用 ADS124S08 EVM、并删除了 JP9、JP5、JP7、JP6。  AVDD 由5V 激励、IOVDD 由3.3V 激励、DVDD 通过 LP-MSPM0G3507 EVM 由3.3V 激励。

    SPI 与 LP-MSPM0G3507 SPI 连接。 RTD 与 J7 (1、2、4)连接。

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

    尊敬的 Omkar Singh:

    我建议在 EVM 的位置 JP1上添加一根跳线(这会将板载微控制器保持在复位状态并禁用电平转换器)、并连接 USB 为 EVM 供电。  确保已更换卸下的所有电源跳线。  不要使用 LP 的电源、只需将 LP 的接地端连接至 EVM 即可。  这将大大减少 LP 和 EVM 之间的布线。

    如果仍有通信问题、请发送通信的示波器或逻辑分析仪快照以进行验证。

    此致、

    鲍勃 B

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

    尊敬的 Bob:

    对于 ADS124S08、我短接了 JP1、并且 SPI 引脚连接到 MSPM0G3507 EVM、如下所示。

     

    ADS124S08 EVM

    MSPM0G3507 EVM

    SDO

    PB8

    sdi

    第7页

    CS

    接地

    SCLK

    第9页

    DRDY

    A12

    开始

    PB16

    复位

    PB17

    接地

    接地

     

    寄存器配置如下。

     

           regWrite (STATUS_ADDR_MASK、0x80);

           regWrite (INPMUX_ADDR_MASK、0x12);      //12//选择 AINP = AIN1、AINN = AIN2

           regWrite (PGA_ADDR_MASK、0x09);         //0A// PGA 启用、增益= 2

           regWrite (datarate_ADDR_mask、0x14);

           regWrite (IDACMAG_ADDR_MASK、0x07);     //07// IDAC 幅度设置为1mA

           regWrite (IDACMUX_ADDR_MASK、0x35);     //35;// IDAC1设置为 AIN5、IDAC2设置为 AIN3

           regWrite (VBIAS_ADDR_MASK、0x00);

           regWrite (SYS_ADDR_MASK、0x10);

           regWrite (REF_ADDR_MASK、0x16);

           regWrite (OFCAL0_ADDR_MASK、0x00);

           regWrite (OFCAL1_ADDR_MASK、0x00);

           regWrite (OFCAL2_ADDR_MASK、0x00);

           regWrite (FSCAL0_ADDR_MASK、0x00);

           regWrite (FSCAL1_ADDR_MASK、0x00);

           regWrite (FSCAL2_ADDR_MASK、0x40);

           regWrite (GPIODAT_ADDR_MASK、0x00);

           regWrite (GPIOCON_ADDR_MASK、0x00);

     

    SPI 时钟设置

     

     

    示波器波形

     

     

     

     

    RTD 连接

     

    PT1000,3线,

    ADS124S08 EVM (J7)

    RTD

    A1

    RTD 线路优先

    A2

    RTD 第二根导线(公共)

    A0

    RTD 三线制(通用)

     

     

    问题

    1. IDAC 未根据设置设置1mA。 RTD A1和 A2上的电压为28mV。
    2. 数据值垃圾。

     请就此提供帮助。

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

    尊敬的 Omkar Singh:

    由于 DRDY 会进行脉冲操作、因此 ADS124S08似乎正常工作。  我想您只是想一次做得太多了。  在进行任何其他操作之前、请先确认您的通信是否有效。  SDI 和 SDO 的连接可能会出现反向。  SDI 应连接至 PICO、即 PB8;SDO 应连接至 POCI、即 PB7。

    在尝试向器件写入任何内容之前、我建议读取寄存器以验证您是否获得了默认值。  我有点困惑、因为您在 SysConfig 中使用4线制 SPI 模式、但您在 GND 上显示 CS。  我想这应该是可以的,但只是不清楚。  但是、详细了解通信是有益的。  使用 RREG 命令、您应该会看到结果中的默认值是多少。  示波器截图和代码返回值都应相符。  如果它们为、您可以继续写入寄存器、并且您应验证您认为向器件写入的内容是否与对相同寄存器的另一次寄存器读取一致。

    最后、我看到 DRDY 脉冲之间发生大量 SCLK 转换。  不清楚你在这里试图做什么。  您能否说明一下您正在尝试在 DRDY 脉冲之间对 SPI 总线写入什么?

    此致、

    鲍勃 B

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

    根据一次性执行这么多操作的建议、我们首先成功读回默认寄存器值、然后根据数据表设置一些电阻器、然后再次回读这些寄存器以检查它们是否设置正确、并且我们在回读时获得相同的电阻器(更新)值。 这意味着 ADC 正确响应意味着通信看起来良好。 现在请查看我所附的图像,让我知道我的数据读出什么是错误的。 它不是从 DRDY 脉冲的上升沿开始、而是从 DRDY pulse.e2e.ti.com/.../Excelworksheet.xlsx 的下降沿开始

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

    大家好、Mehul Dabholkar:

    如果我理解正确、您使用的是直接读取模式(无 RDATA 命令)。  当 DRDY 从高电平转换为低电平时 、可从输出缓冲区读取新转换数据。  因此响应看起来是正确的。  问题在于、对于 SCLK 的第一个下降沿、DRDY 未转换为高电平。  直接读取数据时、响应应如数据表中的图90所示。

    在示波器屏幕截图中、ADS124S08没有看到 SCLK 的第一个字节、而是响应第二个字节。  我无法解释发生了什么、因为我不知道您是否有任何其他东西连接到 SPI 总线或者您现在使用的是 CS。  

    此致、

    鲍勃 B  

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

    你好,Bob

    请参阅以下代码

    启动主程序--

    DELAY_CYCLES (160000);//等待 POST 操作

    SYSCFG_DL_init ();//使用 SPI 模式1初始化所有 GPIO 和 SPI

    delay_cycles (32000);//所需最小值20ns 我们提供了1ms 延迟

    DL_SPI_translData8 (SPI_0_INST、RESET_OPCO_MASK);//可选发送复位命令以确保器件正确复位

    delay_cycles (160000);//最小延迟4096*tclk

    readRegs (ID_ADDR_MASK、19、Data);//读取默认寄存器

    ADS124S08_Init ();//根据数据表写入寄存器

    readRegs_after (ID_ADDR_MASK、19、Data);//读回寄存器以验证

    DL_SPI_TRANSDATH8 (SPI_0_INST、WAKE_OPCO_MASK);//确保器件处于唤醒状态

    DL_GPIO_setPins (GPIO_LEDS_START_PORT、GPIO_LEDS_START_PIN);//将 START 引脚拉至同步转换模式下的高性能器件
    DELAY_CYCLES (2240000);

    DL_SPI_translData8 (SPI_0_INST、SFOCAL_OPCO_MASK);//自校准
    delay_cycles (32000);

    while (1)
    {
    如果(!DL_GPIO_readPins (GPIO_LEDS_DRDY_ADC_PORT、GPIO_LEDS_DRDY_ADC_PIN)//检查 DRDY 引脚的低转换
    {

    DL_SPI_TRANSDATH8 (SPI_0_INST、RDATA_OPCO_MASK);//发送数据读取命令

    data = dataRead (&dstatus、&dData、&dCRC);//读取数据

    结束主例程-

    您可以看到我们正在发送 RDATA 命令。 并且我们现在未使用 CS 引脚。 我们通过将 CS 引脚永久接地来将其置为低电平。  在发送 RDATA 命令之前、是否需要引入一些延迟?  

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

    你好,Bob  

    我还想问您、而不是基于中断的 DRDY 引脚。 可以通过轮询来实现吗? 这有什么区别吗?

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

    大家好、Mehul Dabholkar:

    您不需要使用中断方法、但该方法通常在整个编程循环中更可靠。  我们看到很多客户使用轮询方式。

    根据上面的代码、看起来您正在轮询 DRDY 引脚。  不过、在您之前的示波器屏幕截图中、我看到的所有数据是24个 SCLK、没有看到 RDATA 命令的 SCLK。  通常、RDATA 命令是数据区函数的一部分。  这应该与读取和写入寄存器函数类似、但这不应该有任何明显的差异。

    在 DRDY 变为低电平与转换数据读取之间不需要任何延迟。  它应在 DRDY 转换为低电平时可用。  查看 DIN 引脚以验证发送的命令和通信是否正确可能会更有利、而不是监测 START 引脚。  目前尚不清楚为什么 DRDY 不会在 SCLK 的第一个下降沿恢复高电平。

    此致、

    鲍勃 B

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

    尊敬的 Bob:

    谢谢你。

    下面是连接。

    ADS124S08 EVM

    RTD

    J7–A1

    1

    J7- A2

    2 (共模电阻)

    J7- A0

    3 (共模电阻)

    输出计数为5位数长65279。 由于 IDAC 设置在1mA 上、但 RTD 和基准电阻器 R68 (1k)两端的电压为0.03V、为什么会这样?

    当我们设置 IDACMAG 寄存器时、它将自动复位所有电阻。

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

    尊敬的 Omkar Singh:

    我真的认为您是在尝试一次对您的代码执行太多而不是逐步执行。 在执行任何其他操作之前、首先读取寄存器、确保在上电后读回寄存器的默认值。  第二步是只写入一个具有不同于默认值的值的寄存器、然后通过单次寄存器读取读回。  第三步、写入所需的配置并通过寄存器读取回读。  第四、读取基准电阻器和 RTD 上的电压、以验证配置和接线是否按预期工作。  第五种方法是从 ADC 读回转换数据。  如果您在此过程中有任何问题、请提供此通信的示波器或逻辑分析仪截图以供我查看。

    如果通过向寄存器写入内容使器件复位、则表明存在接线问题、或者无意中 发送了 RESET 命令或对 RESET 引脚发出脉冲。  确保 RESET 引脚未悬空且已长接到高电平。

    此致、

    鲍勃 B

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

    你好,Bob

    我们能够读取默认寄存器、并且得到的值与数据表中所述的值完全相同。 之后、我将写入所需的电阻器、也回读相同的值。 在此步骤之前、我们不会遇到任何问题。 但即使我将 IDACMAG 设置为1mA J7连接器或 R68电阻器上没有获得所需的电压。 我正在附加示波器图像。 此外、我遵循数据表中提到的伪代码、仅更改了 I AM 使用3线 SPI (CS 连接至低电平)、但在中未获得数据表中所述的波形。  您可以看到、我正在发送 REDATA 命令0x12。   

    遵循数据表中提及的编码序列 I m。

    1.系统初始化
    2.发送 RESET 命令
    3.读取默认电阻
    4.写入配置寄存器(逐个写入)
    5.读取已更新的寄存器
    6.将启动引脚设置为高电平(当发送启动命令时将引脚拉至高电平)
    7.发送自校准命令 SFOCAL

    while (1)
    {
    8.轮询 DRDY 引脚使其变为低电平
    9.发送 RDATA 命令0x12
    10.通过发送24个虚拟字节读取数据。

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

    大家好、Mehul Dabholkar:

    您是否验证过内部基准已打开?  用于测量的基准为 REF1、但 IDAC 由内部基准供电。  因此、REF 寄存器(0x05)的正确设置为0x06。  您可以通过测量 TP19上 REFOUT 的电压来验证内部基准是否开启。  在这里、如果内部基准已经被打开、您应该看到2.5V。

    至于 RDATA 命令和转换数据检索、您只发送16个时钟来捕获24位数据。  总通信传输应该是32个 SCLK (前8个是 RDATA 命令、后24个是转换数据结果)。

    此致、

    鲍勃 B

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

    你好,Bob

    正如您提到的、我已经在我的代码中实现、现在您可以在示波器图像中看到现在有32个脉冲(8个用于 RDATA、24个用于数据)。  

    我还将对7位或8位值(如10944837等、是否正确?)进行 GETING。 如果我正在使用值0x06设置0x05寄存器、那么 在 TP19上我将不会获得2.5V 基准电压。 我得到的是3.5V instade.please、请告诉我 ADS124S08EVM 的跳线设置、以便连接 J7连接器上的3Wire PT1000 RTD。 如果可能、请向我提供配置 ADC 的命令序列。 因为我从 ADC 数据表、3线 RTD REFF 手册和 EVM 脚本中获得了许多不同的组合。 因此、不确定哪一个是正确的。 请告诉我上面示波器的图像中有什么错误。

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

    大家好、Mehul Dabholkar:

    尚不清楚如何在 TP19上测量大于2.5V 的电压。  您能否向我发送一些 EVM 图片以包括跳线设置以及 LaunchPad 和 EVM 之间的所有电缆?

    此外、寄存器0x05的寄存器写入和寄存器读取的范围截图也有助于故障排除。  如果未开启内部基准、RDATA 结果将不会很好、因此我们需要验证发出该寄存器命令的通信是否正确。

    至于 RDATA 命令、您显示的内容仅适用于转换数据。  如果要读取 STATUS 字节或使用 CRC、则需要发出额外的 SCLK。

    转换输出为二进制补码。  示波器结果显示了稍低的负偏移。  含二进制补码的0xFFFFFF 是十进制-1。  正值代码介于0x0至0x7FFFFF (8388607)之间。  您正在计算的值不正确、因为它大于满量程。  使用二进制补码时需要考虑的一点是 ADC 结果是24位有符号。  微控制器需要一个32位有符号整数才能正确存储。  这意味着结果必须进行正确的符号扩展、以便24位值被正确地签名为32位值。

    由于示波器屏幕截图显示负值、这意味着没有电流流过基准或 RTD。  这就是为什么我们必须检查内部基准发生了什么情况。

    此致、

    鲍勃 B

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

    你好,Bob

    请查看下图以供参考。

     

    在该图中、您可以看到 J7上的跳线设置以及三线 RTD 连接。  

    跳线设置如下  

    JP1短接-我们使用的是 LP。

    JP11-1-2

    JP8-1-2

    JP9 - 2-3

    JP12-NC

    JP13 - 1-2

    JP14-1-2

    安装了 JP5、JP6、JP7。

    EVM 至 LP 连接  

    SDI    PB8

    SDO   PB7

    CS    接地

    SCK   Pb9

    DRDY  PA12

    复位 PB17

    开始 PB16

    共用接地、并且均由笔记本电脑 USB 供电。

    当我在上电后初始化系统时、TP19上的电压为3.3V。 当我发送0x3A 命令时、我在 EVM 板脚本中从用于 IDAC 初始化的 TI 收到了2.5V 命令、TP19上提供了该命令。 但在该电压降至2.1V 后、我尝试配置0x03 (PGA)寄存器、然后在我配置 IDACMUX 时进一步下降。 我不知道为什么会发生这种情况。  当我将0x05 REF reg 配置为0x06时、我在 TP19上得到的是3.50V、并且 FCAL 寄存器(0x0F)的默认值也自动更改为0x00。   

    当我读取默认电阻时、它读取正确。

    在上面的图像中,左侧的图像显示默认寄存器。 在右侧、您可以看到配置后的电阻器。

    在使用 PT1000电阻器时、是否需要更改 R68和 R70? 我们在 RTD 连接和不 RTD 的情况下执行了上述操作、但得到了相同的结果。  

    我们还尝试使用 ADS124s08 EVM 3线 RTD 默认脚本、该脚本 在 Δ-Σ ADC 评估软件中可用、但在测试期间、我们未在 TP19和 R68上获得2.5V 基准电压。 请告知我们是否可以在 EVM 上测试什么、这样我们就能保证 EVM 正常工作。

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

    大家好、Mehul Dabholkar:

    从屏幕截图上、您显然可以在开始时正确地读取默认寄存器设置。  不过、在写入寄存器时肯定会出现问题。  这就是为什么我要求你给我发送 WREG 通信的照片。  因此、简而言之、如果寄存器读取似乎正常工作、但在寄存器写入后数据不正确、则必须是寄存器写入通信出现问题。  与使用调试软件相比、使用示波器或逻辑分析仪进行调试总是更好的、因为软件并不能解决所有问题。

    如果您希望我查看寄存器写入代码、请将该部分代码与通信的示波器截图一起附加到您的下一个响应中。

    此致、

    鲍勃 B

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

    你(Bob)好。

    正如您提到的、我们编写了一些电阻器并回读了相同的内容。 当我回读时、我得到了错误的结果。 但是,当我在写和读之间添加一些延迟时,有些将会正确读取,但有些仍然给我错误的结果。  请告诉我跳线设置是否正确。 图像已附加在上一答复中。 我正在附加代码供您参考。

    我将在0x05 reg 中设置0x06  

    读回0x05 reg 并获得正确的值0x06。

    但在 TP19处得到的电压为1.59v、

    但是当我将0x3A 设置为0x05 reg。

    回读相同  

    TP19处的电压为2.48v。

    下面的寄存器也是我试图设置的、但读取时得到了错误的值。

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

    你好,Bob

    忘记附加代码文件。 请进行查看、我并未采取太多措施、只需按照前面所述使用 SPI 配置启动板并写入一些寄存器和回读.e2e.ti.com/.../4113.code.txt 即可 

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

    大家好、Mehul Dabholkar:

    默认情况下和写入后来自 CCS 的寄存器值似乎会在数据中移位。  我们不知道导致这种情况发生的原因、因此我个人更喜欢设置一些断点并在数据传入时采集数据、以了解为什么会发生这种情况。   

    目前尚不清楚、其中一些定义是用于  readRegs (ID_ADDR_MASK、18、Data)的"Data"数组的定义;   

    下一个可能的问题与 ID_ADDR_MASK 有关。  此值应为0、否则数组中的数据将会移动到错误的位置。  使用 readRegs()时,请验证是否发送了正确的'regum'值。  在调整内容时、请确保阵列"rgestors"是全局性的。  因此、除了读回"resgists_after "(我甚至在您的代码中看不到)、只检查驻留在存储读取寄存器数据的"回函数"中的数据。

    以下寄存器也是我尝试设置的,但读取时得到错误的值。

    在您提供的示波器快照中、第一张和第三张图是将0x07的值写入寄存器0x06的寄存器写入(图片相同)。  第二个示波器图显示了寄存器读取的0x06、显示了0x07的值。  因此、我不清楚您在显示什么内容、也不清楚试图告诉我、因为写入的值正在被读回。

    就基准配置而言、0x3A 和0x06之间的主要区别在于选择哪个基准用于 ADC 转换和禁用基准缓冲器。  您是否可以尝试将0x36发送到寄存器0x05、以查看如果您禁用基准缓冲器是否有任何变化?

    此致、

    鲍勃 B

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

    你好,Bob

     我使用的 ADS124s08 EVM 对该 ADS124s08 EVM 进行了一些测试。 并且我运行预定义脚本、但仍然无法在 TP19获得2.5V 电压。 此外、当我运行这些脚本来读取寄存器时、我得到了错误的值。 请查看我的屏幕截图。

    下面是我所完成的程序。

    1.将 EVM 连接到 PC

    2.打开 delta-sigma 评估软件

    3.我可以读取默认的寄存器数据。

    4.从预定义脚本运行3线 RTD 脚本。'

    5.数据 和寄存器读回  

    Dose my EVM not working? 或者我是否需要对 EVM 进行硬件修改,如跳线设置等。因为当我尝试将 EVM 与 LP(launchpad )连接时会发生同样的事情。   

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

    大家好、Mehul Dabholkar:

    感谢您返回并查看 EVM GUI 的结果。  这在许多层面上都是错误的。  首先、EVM 似乎被识别为 ADS124S08、但输出数据看起来是16位而不是24位。  第二、寄存器映射确实以损坏的方式返回并重复。 因此这确实非常奇怪、可能表明器件已在某种程度上损坏。

    之前、我建议使用常规 USB 输入为 EVM 供电、然后在连接到 LP 时添加跳线 JP1。  使用 EVM 和 GUI 时、应移除 JP1。  这将是使用 GUI 和 LP 之间唯一的跳线变化。

    此外、使用 GUI 时、不应连接 LP。  使用 LP 时、安装的 JP1将使 EVM 处于复位状态并关闭板载处理器的通信功能。

    因此、与 GUI 进行的另一项检查是确保 JP1已删除、然后重新启动 GUI、在显示寄存器设置的第一个屏幕中、选择 Refresh/Sync 按钮并查看显示的内容。  如果这看起来已损坏、则很可能是器件已因某种原因损坏。

    此致、

    鲍勃 B

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

    你好,Bob

    此外,使用 GUI 时,不应连接 LP。  使用 LP 时、安装的 JP1将使 EVM 处于复位状态并关闭板载处理器的通信功能。

    我们遵循了相同的步骤。

    我们始终仅通过 USB 为 EVM 供电。 但 ADC 不知何故已损坏、我们可以用新的板载 ADS 芯片替换吗? 是否有其他类似硬件测试程序的方法来检查我的板载 ADC 是否有效?  

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

    大家好、Mehul Dabholkar:

    如果您有要更换器件的设备、当然可以这样做。  但是、在尝试更换器件之前、我建议再次运行 GUI、并且在 GUI 启动后立即按下  Refresh/Sync 按钮 以查看显示的内容。  了解在写入 ADS124S08时是否存在影响寄存器读回的问题将会有所帮助。  从示波器截图中我不清楚为什么您可以单独写入和读取寄存器、但当寄存器作为一个组进行回读时会出现错误。  因此、在更换设备之前、让我们尝试进一步解决此问题。

    此致、

    鲍勃 B

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

    你好,Bob

    正如您说过的、我再次测试了我的 EVM、上电后、只需在所有电阻器都已清除并设置为0后按下 Refresh/SYNC 按钮。 然后我执行3线脚本。 但它回读所有零意味着写入操作没有很好地执行。 我附加了一些屏幕截图、请查看。 并且不能一次写入和读取许多电阻器、而是完成了单电阻器读取和写入。但仍然无法写入单电阻器。

    下图显示了运行3线脚本、然后点击 refresh/sync 按钮后的结果。

     。  

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

    大家好、Mehul Dabholkar:

    这是非常奇怪的,我从来没有遇到过。  您是否已验证 AVDD、DVDD、IOVDD 均处于标称工作电压?  此外、您是否还进行了检查以确保将 RESET 拉至高电平?  当前是否有任何元件连接到 J3连接器、可能干扰 GUI 通信?

    除了向 EVM 添加接头之外、是否对电路板进行了任何其他修改?

    如果从刷新/同步中读取的初始寄存器全部恢复为零、则表明由于缺少电源或 RESET 引脚悬空或未上拉至高电平、器件处于复位状态。

    我对我们看到的 EVM/GUI 操作和外部处理器操作之间的区别感到很困惑。  我们需要验证是否不存在与硬件相关的代码问题。  您是否可以从 GUI 主页面 (或使用 WREG 和 RREG 命令从控制台)获取 GUI 通信写入和读取单个寄存器的示波器快照?  然后发布通过 GUI 发送的内容的图片以及 SPI 通信的相应示波器截图。  重新启动 GUI 后执行此操作。

    谢谢。

    鲍勃 B