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.

[参考译文] ADS124S06:校准问题、请提供帮助。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/827492/ads124s06-calibration-issue-please-help

器件型号:ADS124S06

大家好、我们最近开始使用此 AD 转换器、几乎所有操作都正常、我们可以根据需要进行设置、并且可以正确读取转换后的数据、问题是即使我们遵循了数据表中写入的所有内容、我们也无法运行校准。

我们的启动顺序为(从代码中获取):

启动

SET_ADC (u8_DEVICE_I、ENABLE_ADC);                //器件 CS 出现故障
SEND_BYTE_COMMAND (ADC_commands.u8_reset_cmd);   //发送复位命令
SET_ADC (u8_DEVICE_I、DISABLE_ADC);                //器件 CS 变为高电平
Waiting for (1);                                 //等待1ms

SET_ADC (u8_DEVICE_I、ENABLE_ADC);                //器件 CS 出现故障
write_all_registers ();                               //发送 WREG 命令
SET_ADC (u8_DEVICE_I、DISABLE_ADC);                //器件 CS 变为高电平
Waiting for (1);                                 //等待1ms

START_ADC = 1;                                  //起始引脚变为高电平
Waiting for (1);                                 //等待1ms
START_ADC = 0;                                  //起始引脚变为低电平

SET_ADC (u8_DEVICE_I、ENABLE_ADC);                //器件 CS 出现故障
SEND_BYTE_COMMAND (ADC_commands.u8_sFocus_cmd);  //发送 SFOCAL 命令
SET_ADC (u8_DEVICE_I、DISABLE_ADC);                //器件 CS 变为高电平
Waiting for (1);                                 //等待1ms

Read_All_Registers (u8_device_I);                      //发送 RREG 命令

结束

我们的寄存器设置为:

0x01、//寄存器00h:[ID]
0x00、//寄存器01h:[状态]
0x12、//寄存器02h:[输入多路复用器]
0x0B、//寄存器03h:[增益设置]
0x34、//寄存器04h:[数据速率]
0x02、//寄存器05h:[参考控制]
0x07、//寄存器06h:[激励电流寄存器1]
0x30、//寄存器07h:[激励电流寄存器2]
0x00、//寄存器08h:[传感器偏置]
0x10、//寄存器09h:[系统控制]
0x00、//寄存器0Ah:[OFFSET 校准寄存器1] LSB
0x00、//寄存器0Bh:[OFFSET 校准寄存器2]
0x00、//寄存器0Ch:[OFFSET 校准寄存器3] MSB
0x00、//寄存器0Dh:[增益校准寄存器1] LSB
0x00、//寄存器0Eh:[增益校准寄存器2]
0x40、//寄存器0Fh:[增益校准寄存器3] MSB
0x00、//寄存器10h:[GPIO 数据]
0x00、//寄存器11h:[GPIO 配置]

我尝试在校准(SFOCAL)命令之前和之后读取寄存器、没有发生任何情况、我也尝试了其他校准命令(SYOCAL 和 SYGCAL)、但没有。

注意:我尝试手动设置 SYS_MON[2:0]= 001b、然后运行 SFOCAL 命令、但仍然没有。

我出什么问题了? 请提供帮助、如果需要更多信息、请咨询。

提前感谢您的支持。

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

    您好 Lorenzo、

    欢迎来到 E2E 论坛! ADS124S06数据表第9.5.3.9节中的第66页上的""一节的最后一句是重要声明。  '必须在转换模式下发出校准命令。'   

    在代码序列中发出 SFOCAL 命令之前、应将 START 引脚设置为高电平、从而将 ADS124S06置于转换模式、然后在1ms 后将 START 引脚设置为低电平、从而将器件置于待机模式(请参阅图82中第58页的操作流程图)。  要将 ADS124S06置于转换模式、必须将 START 引脚设置为高电平或发出 START 命令。

    此致、

    Bob B

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

    你(们)好,先生 感谢快速回复、我尝试了两种解决方案(保持 START 引脚为高电平或使用 START 命令)、但没有发生任何情况、在 SFOCAL 我读取校准寄存器且所有内容都为0x00后、我按照如下方式修改了代码:

    备选案文1)
    START_ADC = 1;                                 

    备选案文2)
    SET_ADC (u8_DEVICE_I、ENABLE_ADC);
    send_Byte_command (adc_commands.u8_start_cmd);  //发送启动命令
    SET_ADC (u8_DEVICE_I、DISABLE_ADC);

    与之前相同的代码
    (小部分
    Waiting for (1);

    SET_ADC (u8_DEVICE_I、ENABLE_ADC);
    SEND_BYTE_COMMAND (ADC_commands.u8_sFocal_cmd);
    SET_ADC (u8_DEVICE_I、DISABLE_ADC);
    Waiting for (1);

    Read_All_Registers (u8_device_I);
    (小部分
    与之前相同的代码

    备选案文1)
    START_ADC = 0;

    备选案文2)
    SET_ADC (u8_DEVICE_I、ENABLE_ADC);
    send_Byte_command (adc_commands.u8_stop_cmd);  //发送停止命令
    SET_ADC (u8_DEVICE_I、DISABLE_ADC);

    请注意:我确信连续模式=打开、因为数据速率寄存器(04h)为0001 0100 = 0x14h ->位[5]= 0b

    注2:我正在尝试校准使用 CS 引脚切换的同一电路板上的3 AD 转换器、但它们都无法正常工作。


    感谢您的支持。

    -Lorenzo。

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

    您好 Lorenzo、

    您的代码显示您发出 SFOCAL 命令、然后在读取寄存器之前仅等待1ms。  在系统控制寄存器(0x09)中、您所使用的设置是校准平均所需的8个样本。  这至少需要400ms、您才能看到偏移寄存器中的任何变化。

    我建议使用连续转换模式、开始转换、发出 SFOCAL 命令、等待500ms、然后读取寄存器。

    此致、

    Bob B