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.

[参考译文] ADS1262EVM-PDK:ADS1262寄存器配置

Guru**** 2394305 points
Other Parts Discussed in Thread: ADS1262

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/948638/ads1262evm-pdk-ads1262-register-configuration

器件型号:ADS1262EVM-PDK

我想知道以下配置是否正确? 具有+/-2.5V 输入的 ADS1262。  我们将计数为0作为输出。  

void ads1262Init( void )

 

delayMicrosecondsT3 (65000);

ads1262Command( reset );

ads1262Command( stop1);

 

ADS1262.power = 0;//清除结构寄存器 ADS1262.power |= POWER_RESERVE_HI;ADS1262.POWER |= POWER_RESET_CLEAR;ADS1262.POWER |= POWER_RESERTED_LO;ADS1262.POWER |= POWER_VBIAS_DISABLED;ADS1262.POWER |= POWER_INTREF_DISABLED; ads1262WriteSingleReg ( POWER_ADDR、ADS1262.POWER );//编写功率寄存器

 

ADS1262.interface = 0;

ADS1262.interface |= interface_reserved;ADS1262.interface |= interface_status_disabled;ADS1262.interface |= interface_status_enabled;ADS1262.interface |= interface_crc_checks_disabled;ads1262WriteSingleReg (interface_ADDR、 ADS1262.interface);//写入接口寄存器

 

ADS1262.MODE0 = 0;

ADS1262.MODE0 |= MODE0_REFREV_NORMAL;

//ADS1262.MODE0 |= MODE0_RUNMODE_PULSE;

ADS1262.MODE0 |= MODE0_RUNMODE_Continous;

ADS1262.MODE0 |= MODE0_CHOP_DISABLED;

ADS1262.MODE0 |= MODE0_DELAY_NONE;

ads1262WriteSingleReg ( MODE0_ADDR、ADS1262.MODE0 );//写入 MODE0寄存器

 

ADS1262.MODE1 = 0;

ADS1262.MODE1 |= MODE1_FILTER_SINC4;

//ADS1262.MODE1 |= MODE1_SBADC_ADC2;  //传感器偏置连接到未使用的 ADC2

ADS1262.MODE1 |= MODE1_SBADC_ADC1;  //传感器偏置连接到 ADC1 -默认值

ADS1262.MODE1 |= MODE1_SBPOL_PULLUP;

ADS1262.MODE1 |= MODE1_SBMAG_NONE;

ads1262WriteSingleReg ( MODE1_ADDR、ADS1262.MODE1 );//写入 MODE1寄存器

 

ADS1262.mode2=0;

ADS1262.mode2 |= mode2_BYPASSGA_BYPASS;

ADS1262.mode2 |= mode2_gain_1;

ADS1262.mode2 |= mode2_DR_400;

ads1262WriteSingleReg ( Mode2_ADDR、ADS1262.Mode2);//写入 Mode2寄存器

 

ADS1262.INPMUX = 0;

ADS1262.INPMUX |= INPMUX_MUXP_AIN3;

ADS1262.INPMUX |= INPMUX_MUXN_AINCOM;

ads1262WriteSingleReg ( INPMUX_ADDR、ADS1262.INPMUX );//写入 INPMUX 寄存器

 

ADS1262.OFCAL0 = 0;

ads1262WriteSingleReg ( OFCAL0_ADDR、ADS1262.OFCAL0 );

ADS1262.OFCAL1 = 0;

ads1262WriteSingleReg ( OFCAL1_ADDR,ADS1262.OFCAL1 );

ADS1262.OFCAL2 = 0;

ads1262WriteSingleReg ( OFCAL2_ADDR、ADS1262.OFCAL2 );

 

ADS1262.FSCAL0 = 0;

ads1262WriteSingleReg ( FSCAL0_ADDR、ADS1262.FSCAL0 );

ADS1262.FSCAL1 = 0;

ads1262WriteSingleReg ( FSCAL1_ADDR,ADS1262.FSCAL1);

ADS1262.FSCAL2 = 0;

ads1262WriteSingleReg ( FSCAL2_ADDR、ADS1262.FSCAL2);

 

ADS1262.IDACMUX = 0;

ADS1262.IDACMUX |= IDACMUX_MUX2_NOCONNECTION;ADS1262.IDACMUX |= IDACMUX_MUX1_NOCONNECTION;ads1262WriteSingleReg (IDACMUX_ADDR、ADS1262.IDACMUX);//编写 IDACMUX 寄存器

 

ADS1262.IDACMAG = 0;

ADS1262.IDACMAG |= IDACMAG_MAG2_OFF;

ADS1262.IDACMAG |= IDACMAG_MAG1_OFF;

ads1262WriteSingleReg ( IDACMAG_ADDR、ADS1262.IDACMAG );//写入 IDACMAG 寄存器

 

ADS1262.REFMUX = 0;

ADS1262.REFMUX |= REFMUX_RMUXP_EXTERNAL_AIN0;ADS1262.REFMUX |= REFMUX_RMUXN_EXTERNAL_AIN1;ads1262WriteSingleReg (REFMUX_ADDR、ADS1262.REFMUX);//写入 REFMUX 寄存器

 

ADS1262.TDACP = 0;

ADS1262.TACP |= TCACP_OUTP_NOCONNECTION;ADS1262.TCAACP |= TCACP_MAGP_2V5;//即使使用上述内容,我们也不需要指定此参数,并且可以将其保持在0x00 ADs1262SingeReg (TCACP_ADDR、ADS1262.TDACP)的复位状态;/写入 TCAACP 寄存器

 

ADS1262.TDACN = 0;

ADS1262.TDACN |= TDACN_OUTN_NOCONNECTION;ADS1262.TDACN |= TDACN_MAGN_0V5;//即使使用上述内容,我们也不需要指定此值,并且可以将其保持在0x00 ads1262WriteSingleReg (TDACN_ADDR/TD1262)的复位状态

 

 

//全部设置为无连接

ADS1262.GPIOCON=0;

ADS1262.GPIOCON |= GPIOCON_CON0_NC_AIN3;ADS1262.GPIOCON |= GPIOCON_CON1_NC_AIN4;ADS1262.GPIOCON|= GPIOCON_CON2_NC_AIN5;ADS1262.GPIOCON |= GPIOCON_CON3_AIN6;ADS12INCON_IN6;GPIOCON_IN4 ADS1262.GPIOCON |= GPIOREG_CON5_NC_AIN8;ADS1262.GPIOCON |= GPIOCON_CON6_NC_AIN9;ADS1262.GPIORE|= GPIOCON_CON7_NC_AINCOM;ads1262WriteSingleCON (GPIOCON_ADDR、ADS1262);GPIOCON //写入 GPIOCON 寄存器

 

 

//设置为输入

ADS1262.GPIODIR = 0;

ADS1262.GPIODIR |= GPIODIR_DIR0_IP;

ADS1262.GPIODIR |= GPIODIR_DIR1;

ADS1262.GPIODIR |= GPIODIR_DIR2;

ADS1262.GPIODIR |= GPIODIR_DIR3_IP;

ADS1262.GPIODIR |= GPIODIR_DIR4_IP;

ADS1262.GPIODIR |= GPIODIR_DIR5_IP;

ADS1262.GPIODIR |= GPIODIR_DIR6_IP;

ADS1262.GPIODIR |= GPIODIR_DIR7_IP;

ads1262WriteSingleReg ( GPIODIR_ADDR、ADS1262.GPIODIR );//写入 GPIODIR 寄存器

 

loadRegToStruct();

ads1262Command( Start1 );//Maybe 不需要?

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

    尊敬的 Anuja:

    我快速浏览了您的代码、并注意到您正在设置 FSCAL = 0。 但是、请注意、由于 ADC 将转换结果乘以该值、因此该寄存器的默认值为400000h。

    如果设置 FSCAL = 0、则将转换结果乘以0、因此输出代码也将为零。

    尝试将此值恢复为默认值、看看您是否可以获得更好的数据。

    布莱恩

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

    我们更改了它、仍然得到0计数。  

    状态、我们得到0x60

    AN3为+2.5V  、对应于0个计数。  

    AN4为-2.5V。    它对应于0计数。  

    我们还按照您的建议进行了参考更改。 任何其他指针都将很好。 下面是另一组代码。

    字节 ads1262ReadData( uint32_t* pDatum )

     uint32_t data=0;

     字节字节字节字节 byte0=0、字节1=0、字节2=0、字节3=0、状态=0;

     

     spiInitClockMode (ADS1262_chip);             //设置 SPI I/f 的极性和相位

     ChipspiSelect (CS_ADS1262,true);

     //ads1262Start();

     SPI2_TRANSIT_BYTE (RDATA1);  //发送命令

     

      STATUS = SPI2_TRANSIT_BYTE (NOP);

     字节3 = SPI2_TRANSFER_BYTE (NOP);   // 32位的 MSByte

     字节2 = SPI2_TRANSIT_BYTE (NOP);

     字节1 = SPI2_TRANSIT_BYTE (NOP);

     字节0 = SPI2_TRANSIT_BYTE (NOP);

     

     data |=字节3<<24;

     data |=字节2<<16;

     data |=字节1<<8;

     data |=字节0;

     

      *pDatum =数据;

     

      ChipspiSelect (CS_ADS1262,false);

     

      return( status );

    谢谢、

    Anuja

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

    尊敬的 Anuja:

    您能否提供 SPI 通信线路的逻辑分析仪快照、特别是 DIN、DOUT、SCLK、DRDY 和 CS? 这将帮助我们了解 ADC 如何响应您发送的命令。 我们还可以查看 DRDY 是否发生脉冲、以指示器件正在正确初始化且数据正在转换。

    布莱恩

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

    您好、Bryan、

    请参见随附的照片。 什么会导致 ADC 返回精确的0x00000000作为有效数据?

    状态与数据一起读取为第5个字节。 然后检查状态以查看它是否包含新的转换数据。 如果是、则使用新数据、我们将其视为0x00000000。  

    此致

    Anuja

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

    尊敬的 Anuja:

    很难从您发送的图像中得知、但您似乎在 SCLK 上使用3.3V 逻辑、尽管您之前发送给我的原理图的 DVDD 为5V。 请确认吗?

    时钟信号上似乎也存在很多过冲、几乎为1V。 您是否使用干净、稳定的时钟源?

    哪个信号显示为黄色? 是 DOUT 还是 DIN?

    最后、如果您能够提供逻辑分析仪快照、以便我们了解器件如何响应命令(DIN 和 DOUT)、这将非常有帮助。 您还可以检查 DRDY、以查看是否以大约1/数据速率获得脉冲。 这表示器件处于活动状态、否则可能会出现计时或电源问题。

    布莱恩

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

    您好 Bryan、

    可以为我验证上述结构吗? 我们在 ADC 的所有模拟输入上获得3.425V 电压。 您可能想一下提出此请求的原因吗? 谢谢、

    Anuja

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

    尊敬的 Anuja:

    这些是我看到的寄存器设置、它们被设置为默认值以外的值:

    • 包括状态字节、校验和被禁用
    • 脉冲转换模式
    • 选择 SINC 1、传感器偏置连接到 ADC2
    • PGA 旁路、增益= 1、1200SPS 数据速率
    • 输入连接到 AIN3和 AINCOM
    • AIN0和 AIN1上的外部 VREF 输入

    因此、假设您的电路板是这样设置的、您应该可以。

    不过,我不清楚你遇到了什么问题。 您正在所有输入上读数为3.4V -您是否正在扫描多个输入? 这些通道上的预期电压是多少? 提供原理图是 hefpul

    布莱恩

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

    我是说、AIN0和 AIN1是 VREF。

    AIN2为0V、未连接到任何其悬空的元件。

    AIN3 - AIN7、我们得到的是3.425V。 ADC 以基准输出该电压。 这些引脚被配置为模拟输入。 您能想到 ADC 可能会这样做的任何原因吗?  

    谢谢、

    Anuja

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

    尊敬的 Anuja:

    我需要更多信息来帮助诊断此问题。

    您对输入施加了什么电压?

    您能否共享原理图以便我可以看到您的系统发生了什么情况?

    布莱恩