您好,
我使用的是外部ADC ADS1262。
我希望有内部温度。 但我有一些麻烦。
如数据表p35/133所述,PGA增益= 1,内部电压已设置。
ADC 1的INPMUX设置为0xbb。
我可以从ADS接收一些数据,但无法以正确的格式进行翻译。
我使用以下公式:
温度(°C)=[(温度读数(µV)–12.24万)/420 µV /°C]+ 25°C
这是正确的,因为我不知道122.4 值的单位,它写在第8/133页,它是以mV为单位的?
谢谢你
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.
您好,
我使用的是外部ADC ADS1262。
我希望有内部温度。 但我有一些麻烦。
如数据表p35/133所述,PGA增益= 1,内部电压已设置。
ADC 1的INPMUX设置为0xbb。
我可以从ADS接收一些数据,但无法以正确的格式进行翻译。
我使用以下公式:
温度(°C)=[(温度读数(µV)–12.24万)/420 µV /°C]+ 25°C
这是正确的,因为我不知道122.4 值的单位,它写在第8/133页,它是以mV为单位的?
谢谢你
您好,Lemoine,
您对使用内部温度传感器所需的ADS1262配置(PGA = 1 V/V,INPMUX = 0xBB)是正确的。
此外,方程式9,"温度(°C)=[(温度读数(µV)–12.24万)/ 420 µV /°C]+ 25°C"正确...
为了使用此方程式;但是,您需要先将ADC读数转换为 µV Ω 的读数。 µV Vref = 2.5V且PGA = 1 V/V,则会产生1 LSB = 0.0.01164153亿 μ L/代码。
因此,如果ADC读数为0x64.4523万F (或十进制值1.05140799亿),则将1.05140799亿代码x 0.001164153 µV /code = 122399.9 µV乘以。 将此值插入方程式9会产生~25°C 如您所见,在室温(25°C)下,温度传感器读数约为122.4 mV。
还有一个Excel计算器可帮助您进行此计算,可在此处找到:
www.ti.com/.../ads126x-calc-tool
这是否能回答您的问题?
此致,
Chris
您好,
我的第一个问题是:我只使用24位。 这就是为什么我怀疑方程式是否正确。
以您为例,我使用所有32位。 我创造了这样的词:
(((长) DATA_Data1<24)|((长) DATA_DATA2<16)|((长) DATA_DATA3<8)| DATA_DATA4)
在我的示例中,我有这样的例子:5253.8719万
在您的 µV中,您说如果我们执行1.05140799亿 x 0.0.01164153亿 μ µV /代码= 122399.9 μ L。 但实际上这相当于12.2399万.9766</xmt-block>9766。 您是不是除以1000?
如果是这样,我也这样做了,我得到 了5253.8719万 x 0.0.01164153亿 µV /code /1000= 61.1.631万 ....
我的价值似乎被两分。 我可以做错吗?
谢谢你
您好,Alexandre:
没关系... 如果您决定仅使用24位,则只需调整24位的LSB大小(它将比32位LSB大小大256倍)。 无论采用哪种方法,您都只需先将数据转换为 µVs。
使用"5253.8719万",您将获得:
5253.8719万 codes x 0.0.01164153亿 µV /code = 61163.1 µV
温度(°C)= 25°C +[(61163.1µV - 12.24万µV)/ 420 (µV /°C)]=-120 °C
... 请注意420 µV /°C除数,这是温度传感器的斜率/灵敏度。
...按照这个值,我会质疑您的测量结果的有效性。
您是否偶然禁用了内部引用?
测量内部温度传感器时,应启用此功能。
此致,
Chris
您好,
感谢大家的回答。
现在就开始工作了。
我想我有两个错误。 首先,我不确定我是否使用了内部参考。 第二个是我没有正确转换结果。
下面是我的配置:
Ads1263Regs.Id.All = 0x00;
Ads1263Regs.ID_bit.REV_2_0 = ADS1262;
Ads1263Regs.Power.All = 0x00;
//Ads1263Regs.Power.Power_bit.reset = 1;
Ads1263Regs.Power.Power_bit.VBIAS = VBIAS_DISABLED;// 0:已禁用;1:VBIAS已启用;电平转换电压P44/133
Ads1263Regs.Power.Power_bit.INTREF = INT_REF_ENABLED;// 0:禁用;1:内部参考启用
Ads1263Regs.Interface.all = 0x00;
Ads1263Regs.Interface.Interface_bit.timeout = 0;// 0:已禁用;1:启用接口自动超时
Ads1263Regs.Interface.Interface_bit.status = 1;// 0:已禁用;1:转换数据读回P70/133时包含的状态字节
Ads1263Regs.Interface.Interface_bit.CRC = checksum_in_checksum_mode;// P72/133
Ads1263Regs.Mode0.all = 0x00;
Ads1263Regs.Mode0.Mode0_bit.REFREV =正常极性;
Ads1263Regs.Mode0.Mode0_bit.RUNMOUDE =连续转换;
Ads1263Regs.Mode0.Mode0_bit.chop = input_chop_and_IDAC_rotation_disabled;// P84/133
Ads1263Regs.Mode0.Mode0_bit.Delay = NO_DELAY;
Ads1263Regs.Mode1.all = 0x00;
Ads1263Regs.Mode1.Mode1_bit.filter = SINC4_mode;
Ads1263Regs.Mode1.Mode1_bit.SBADC = 0;// 0:传感器偏置连接到ADC1 mux输出;1:传感器偏置连接到ADC2 mux输出;
Ads1263Regs.Mode1.Mode1_bit.SBPOL = 0;// 0:传感器偏置上拉模式(AINp拉高,AINn拉低);1:传感器偏置下拉模式(AINp拉低,AINn拉高);
Ads1263Regs.Mode1.Mode1_bit.SBMAG = NO_SENSOR_BIAS电流;// P34/133
Ads1263Regs.Mode2.all = 0x00;
Ads1263Regs.Mode2.Mode2_bit.bypass = PGA_ENABLED;//P37/133
Ads1263Regs.Mode2.Mode2_Bit.Gain = PGA_GANE_2;
Ads1263Regs.Mode2.Mode2_bit.DR = DATA_RATE_1.92万_SPS;
Ads1263Regs.Inpmix.all = 0x00;
Ads1263Regs.Inpmix.Inpmix_bit.MUXP = AIN6;
Ads1263Regs.Inpmix.Inpmix_bit.MUXN = AIN7;// P33/133
Ads1263Regs.Ofcal0.all = 0x00;
Ads1263Regs.Ofcal1.all = 0x00;
Ads1263Regs.Ofcal2.all = 0x00;
Ads1263Regs.Fscal0.all = 0x00;
Ads1263Regs.Fscal1.all = 0x00;
Ads1263Regs.Fscal2.all = 0x40;//增益= 1.0
Ads1263Regs.Idacmix.all = 0x00;
Ads1263Regs.Idacmix.Idacmix_bit.MUX2 = NO_CONNICT;
Ads1263Regs.Idacmix.Idacmix_bit.MUX1 = NO_CONNICT;// P43/133
Ads1263Regs.Idacmag.all = 0x00;
Ads1263Regs.Idacmag.Idacmag_bit.MAG2 = IDAC_off;
Ads1263Regs.Idacmag.Idacmag_bit.MAG1 = IDAC_off;// P43/133
Ads1263Regs.Refmix.all = 0x00;
Ads1263Regs.Refmix.Refmix_bit.RMUXP = reference_internal_analog_supply;// P41/143
Ads1263Regs.Refmix.Refmix_bit.RMUXN = reference_internal_analog_supply;// P41/143
Ads1263Regs.Tdacp.all = 0x00;
Ads1263Regs.Tdacp.Tdacp_bit.OUTP = 0;// 0:无连接;1:ACP输出连接到引脚AIN6
Ads1263Regs.Tdacp.Tdacp_bit.MAGP = output_Magnitue_2_5V;// P53/133
Ads1263Regs.Tdacn.all = 0x00;
Ads1263Regs.Tdacn.Tdacn_bit.OUTN = 0;// 0:无连接;1:ACP输出连接到引脚AIN7
Ads1263Regs.Tdacn.Tdacn_bit.MAGN = OUTPUT Magnite_2_5V;// P53/133
Ads1263Regs.Gpiocon.all = 0x00;
Ads1263Regs.Gpiocon.Gpiocon_bit.CON0 = gPIO_NOT_CONNITE;
Ads1263Regs.Gpiocon.Gpiocon_bit.CON1 = gPIO_NOT_CONNITE;
Ads1263Regs.Gpiocon.Gpiocon_bit.CON2 = gPIO_NOT_CONNITE;
Ads1263Regs.Gpiocon.Gpiocon_bit.con3 = gPIO_NOT_CONNITE;
Ads1263Regs.Gpiocon.Gpiocon_bit.CON4 = gPIO_NOT_CONNITE;
Ads1263Regs.Gpiocon.Gpiocon_bit.CON5 = gPIO_NOT_CONNITE;
Ads1263Regs.Gpiocon.Gpiocon_bit.CON6 = gPIO_NOT_CONNITE;
Ads1263Regs.Gpiocon.Gpiocon_bit.CON7 = gPIO_NOT_CONNITE;
Ads1263Regs.Gpiodir.all = 0x00;
Ads1263Regs.Gpiodir.Gpiodir_bit.DIR0 = gPIO_is_an_input;
Ads1263Regs.Gpiodir.Gpiodir_bit.dir1 = gpio_is_an_input;
Ads1263Regs.Gpiodir.Gpiodir_bit.dir2 = gpio_is_an_input;
Ads1263Regs.Gpiodir.Gpiodir_bit.DIR3 = gPIO_is_an_input;
Ads1263Regs.Gpiodir.Gpiodir_bit.DIR4 = gPIO_is_an_input;
Ads1263Regs.Gpiodir.Gpiodir_bit.DIR5 = gPIO_is_an_input;
Ads1263Regs.Gpiodir.Gpiodir_bit.DIR6 = gPIO_is_an_input;
Ads1263Regs.Gpiodir.Gpiodir_bit.DIR7 = gPIO_is_an_input;
Ads1263Regs.Gpioda.all = 0x00;
这里是我如何转换它的。
AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee =_IQbumpy (((((long) data_Data1<24)|((long) data_data2<16)|(((long) data_ref a3<8)| data_pr é une a3<8)),_datIQ (0.0011641532 * 100.0));//2^312500000µV xmeet^31 =精度100
AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee =_IQDIV (AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee,_IQ (100.0));// permet de supprim é le x100 pr é cent。
AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee = AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee - 12.24万;
AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee =_IQdiv (AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee,420.0);
AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee = AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee +_IQ (25.0);
aQ_Mesures.aQ_tads.s32_Mesure_Instantanee =(Sint32)(UINT32)(aQ_Mesures.aQ_tads.IQ_Mesure_Instantaneeee*10)>> global_Q);//居留10e
如果需要进一步解释,我可以解释。
此致
您好,Alexandre:
[QUOTE USER="Alexandre Lemoine">Ads1263Regs.Refmix.Refmix_bit.RMUXP = reference_internal_analog_supply;// P41/143
Ads1263Regs.Refmix.Refmix_bit.RMUXN = reference_internal_analog_supply;// P41/143
设备配置的这一部分将对结果产生影响...我已经计算出了2.5V参考的LSB大小。 要获得5V参考电压,您需要将上述LSB大小加倍。
[报价用户="Alexandre Lemoine">AQ_Mesures.AQ_tads.s32_Mesure_Instantanee =(Sint32)(UINT32)(AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee*10)>>global_Q);// Resultat au 10e de degrr é[报价]
我不完全理解这一行代码。 我相信您在上面的代码行中有正确的温度测量结果。
我希望这能有所帮助!
此致,
Chris
您好,Christopher:
我不确定我是否理解您的问题。
"设备配置的这一部分将对结果产生影响...我已经计算出了2.5V参考的LSB大小。 要获得5V参考电压,您需要将上述LSB大小加倍。"
但在我的例子中,AVDD =+2.5V,AVSS =-2.5V。 所以,这也许是可行的。
AQ_Mesures.AQ_tads.IQ_Mesure_Instantanee采用IQ格式。 结果是IQ格式的倍数。
aQ_Mesures.aQ_tads.s32_Mesure_Instantanee为SInt32。 所以我想把 IQ) Mesure_Instantanee转换成 s32_Mesure_Instantanee。 为此,我将 IQ) Mesure_Instantanee与IQ格式分开。 在这种情况下,这是一个移位寄存器。
我希望在将i乘以10之前先保留一个小数点。
要明确,实际结果应如下所示:
T°C =[(数据(32位)* 0.0011641532 - 12.24万)/ 420]+ 25°C
您好,Alexandre:
我在LSB大小计算中假设您将使用内部2.5 V引用。 这导致LSB大小为0.0011641532 UV/代码。
如果您改为选择5V模拟电源作为ADC的参考源,则LSB大小变为5V / 2^(32-1)= 0.0023830644 UV/代码。
[报价用户="Alexandre Lemoine"]
要明确,实际结果应如下所示:
T°C =[(数据(32位)* 0.0011641532 - 12.24万)/ 420]+ 25°C
[/引述]
此方程式是正确的,假设是2.5 V参考。 但是,您可以根据需要修改任何参考电压的LSB大小。
只要您的IQmath函数正确地实现了此计算,您就应该很好。 对我来说,您可以将LSB大小乘以10以提高整数数学精度,然后再除以相同的因子以正确缩放结果,这对我来说很有意义。
此致,
Chris