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:如何测量四个3线RTD

Guru**** 2555070 points
Other Parts Discussed in Thread: ADS124S08, ADS1220, ADS124S06, ADS1118

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/571980/ads124s08-how-to-measure-four-3-wire-rtds

线程中讨论的其他部件:ADS124S08ADS1220ADS124S06ADS1118

您好,Joachim:

我还需要将四根3线RTD连接到MCU。 有许多应用说明可用于连接一个3线RTD,但是

我找不到   任何有关多个RTD连接的示意图。

您说:"有许多方法可以使用我们的其中一个ADC实现多个RTD测量。"

哪种方法最好,更可靠,更精确? 哪 一个ADC可以完全满足这一需求,而无需额外的电路

还是其它软件计算(如您在ADS124S08中所解释的2个测量和减法) ?

您推荐哪些原理图和产品:  

1)在给定时间仅连接一个RTD 的ADC,  并且在ADC和MCU或之间连接多路复用器

2) ADC允许直接连接四个RTD?

3)这两种解决方案的混合,例如具有2个RTD的ADC和用于切换2/2 RTD的MUX

您能否指出这两种极端解决方案的优缺点?

提前非常感谢  您的建议。

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

    Salut Philippe,

    感谢您的提问,欢迎来到我们的论坛。 我已将您的帖子分成新的主题,以便更好地跟踪它。
    今年我们正在制作一些宣传材料,展示如何使用ADC来衡量多个RTD。

    我很难说哪种方法将是最好,最准确和最可靠的实施方法。
    我认为2x ADS124S08和两个连接到每个ADS124S08的3线RTD可能是最精确的选择。 但您也可以使用ADS1220来单独测量每个RTD。

    Joseph在以下文章(e2e.ti.com/.../209.7353万)中介绍了如何使用一个ADS124S08测量多达三个3线RTD。
    为了测量四个值,您需要使用外部MUX,这可能会略微降低性能。
    我们的ADC都不能在不需要额外外部电路的情况下测量四个3线RTD。

    要找到最适合您的解决方案,最好知道您需要多快地测量所有四个RTD,如果您有空间和/或成本限制等

    使用四个单独ADC的缺点可能是成本和多氯联苯空间。 此外,您还必须校准四个ADC并使用四个'昂贵'的高精度参考电阻器。
    最便宜的解决方案可能是将一个ADC与外部多路复用器配合使用。 缺点可能是在RTD之间切换时的稳定时间。 这可能会限制您测量所有四个RTD的速度。

    对于ADC,我建议使用ADS124S08或ADS1220。

    此致,

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

    Bonjour Joachim,

    感谢您的非常明确的回答。

    我的应用是烤箱的温度控制器,温度变化非常缓慢,所以速度根本不是问题;如果我知道了

    每 秒4次温度测量(在烤箱容积中的不同位置)就够了!  

    我 也没有任何空间限制。

    唯一的限制是精度和成本。

    因此,我认为我的应用的最佳选择是一个ADS1220和一个2:8 MUX。

    对于MUX,下面的型号CD4052是否适合?

    当您说 "使用外部MUX 可能会略微降低性能"时,测量四个RTD的时间是否更长?或者

    您是否还谈到测量精度?

    此致,Philippe

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

    Bonjour Philippe,

    非常感谢您提供更多信息。 我们的ADC实际上广泛用于此类温控器。

    由于ADS124S08或ADS124S06 (ADS124S08的通道数较低版本)是一款性能更高的器件,因此其精度,准确性和分辨率通常比ADS1220高。

    我个人最喜欢的解决方案是满足您所描述的要求:

    • 每个ADC或具有两个ADS124S06和两个3线RTD
    • 一个具有外部2x 1:4 MUX的ADS124S08,可将激励电流路由到不同的RTD,如下所示(我只显示2个RTD,但您也可以将此概念扩展到4个RTD)。 我认为您建议的类似CD4052的产品应该能够正常工作。

    使用ADS1220,您需要一个2x 1:4 MUX将电压穿过RTD传输到ADC的一个模拟输入对,然后再需要一个2x 1:4 MUX将两个激励电流传输到RTD。 此解决方案也应起作用。 但如前所述,如果您正在寻找最佳性能,则首选ADS124S0x解决方案。

    根据电路实施和多路复用器在信号链中的位置,信道到信道漏电流,信道到信道电阻匹配或MUX的信道接通电阻都会影响测量精度。

    此致,

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

    非常感谢您的快速回答。

    我了解解决方案编号1 (带有2个ADS124S06)和解决方案编号2 (带有1个ADS124S08和1个外部2x 1:4 MUX)。 (对不起,我叫这个MUX“2:8”,它更像是“2x1:4”!)

    1)但是,您能否解释为什么在解决方案3中需要两个2x1:4多路复用器和一个ADS1220。
    据我所知,一根2x1:4 MUX就够了,因为每个RTD的一根电线永久连接到RREF/RF3/REPFP0,而2x1:4 MUX将每个RTD的另外2根电线交替连接到RF1/AIN1和RF2/AIN0。 (我指的是ADS1220数据表 www.ti.com/.../ads1220.pdf的图77)

    2)在此阶段,我还可以考虑使用四个J热电偶,而不是四个3线RTD (要测量的温度在0-300°C范围内)。 在这种假设中,作为ADC模型和原理图,您建议使用什么?

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

    Philippe:您好!

    请告诉我以下内容是否明确:

    1)上面的示意图可能会有点误导,因为我没有显示RTD的导线电阻。
    下面是一张新的图,展示了ADS1220的潜在解决方案(同样仅适用于2个RTD,当然您也可以将此概念扩展到4个RTD)。
    为了使用两个激励电流源实现导线电阻补偿,您需要一个2x 1:4 MUX将激励电流路由到RTD。 第二个2x 1:4 MUX用于将RTD电压路由到ADC输入。



    2) ADS124S08是测量4个热电偶的最佳和最准确的单器件解决方案,但具有外部MUX的ADS1220也可以正常工作。
    例如,将每个热电偶连接到ADC,如ADS1220数据表中所示。
    您需要一些方法将热电偶偏置到ADC的电压范围内。 这可以通过多种方式实现。 我们通常展示的是使用上拉和下拉电阻器对电源进行实施(如果您有接地热电偶,我们需要稍微改变实施方式)。 除了对热电偶进行偏压外,此实施还可以检测热电偶导线是否损坏。 在上拉/下电阻之后,您将放置一个RC滤波器。
    然后,您还必须测量冷接点温度。 客户使用所有不同类型的温度传感器来测量冷接点温度:二极管,热敏电阻,RTD,模拟/数字输出温度传感器等

    此致,

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

    很抱歉,但我仍然不明白为什么您需要2个MUX。 我肯定会想念一些东西,明天我会试着画一幅画。

    关于热电偶解决方案,我可以连接到ADS124S08的最大热电偶数是多少?

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

    我很抱歉。 我在等你的画。 也许您甚至拥有更智能的解决方案来实施测量。 我总是对学习新闻方式感兴趣。

    您可以使用一个ADS124S08测量多达6个热电偶,而无需使用外部MUX。
    如果您可以将所有热电偶连接到一侧,您甚至可以测量多达12个热电偶。
    但是,您可以测量的最大热电偶数也取决于您要选择的冷接点温度测量方法。

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

    您好,Joachim:

    只使用一个MUX进行此布线可能是一个坏主意(对错误的工程图表示抱歉):

    Philippe

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

    您好,Joachim:

    大约可以使用ADS124S08测量的最大热电偶数(6或12),我认为这取决于

    热电偶接线类型,绝缘,接地或外露:

    由于我不确定是否始终使用相同类型的热电偶接点,我认为仅连接6个热电偶,每个 热电偶

    使用2路ADS124S08输入  是最佳选择。 您同意吗?

    要了解参考结温,我可以使用ADS124S08的内部温度传感器吗?

    Philippe

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

    您在上面使用ADS1220绘制的电路通常工作。
    通过用于测量的同一MUX路由激励电流的唯一缺点是,Ron (尤其是MUX通道的Ron匹配)和泄漏电流将影响测量精度。
    例如,在CD4052中,通道之间的Ron会变化几欧姆。 然后,电流源将在MUX通道Rons上产生不同的压降。 这反过来会导致读数中出现差分偏移误差,从而导致较大的温度读数误差。
    原则上,您也可以将激励电流源路由到上图中的AIN0,AIN1。 但随后励磁电流必须流经串联滤波器电阻器。 然后,您必须选择精确匹配的电阻器,并且不能使其过大。 许多客户使用1k至10kOhm范围内的滤波电阻器,因为他们还使用这些电阻器来限制过压事件中进入ADC引脚(<10mA)的电流。
    简而言之,这种解决方案是可行的,但如果您正在寻找最佳的准确性,我不会推荐它。

    是的,我同意您对热电偶的配置。 使用ADS124S08将其限制为6个热电偶,并为每个热电偶使用一个专用的差分输入对。
    但是,接地热电偶的连接方式取决于热电偶GND和系统GND的连接方式,您需要小心。 在许多情况下,这将需要ADC的双极模拟电源。

    我不建议使用ADS124S08内部温度传感器进行冷接点温度测量,主要原因有两个:
    1)内部温度传感器的准确度不够好(约1°C至3°C,未校准)。 您可能会对其进行过温校准,但这可能会导致最终生产成本高昂。
    2)通常您无法将设备放置在足够靠近冷接点的位置以测量实际接点温度。

    使用多个热电偶时,有时甚至需要测量多个点的结温,以防交叉点的温度梯度过高。 但这一切都取决于您的精确度要求。

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

    您好,Joachim:

    非常感谢您对ADS1220前使用2个多路复用器的清晰回答。 我将听从你的建议。

    大约 可以 连接到ADS124S08的热电偶数  ,最大值为6,但如果我连接RTD以精确测量冷接点温度,则此数字将减少到4。 我现在想知道 ,某些电气端子是否已在内部配备了RTD,或者是否打算在内部安装RTD?

    此致,Philippe

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

    您回答正确。 如果您还想使用ADS124S08测量冷接点温度,则可以测量的最大热电偶数(不使用外部MUX)将会减少。

    如果使用模拟输出温度传感器,则只需要ADS124S08的两个模拟输入(一个用于连接GND,另一个用于连接温度传感器输出)。
    如果您要使用RTD -在大多数情况下,2线RTD就足够了-您需要三个模拟输入(一个用于激励电流输出,两个用于RTD测量)和REFP0,REFN0输入。
    因此,在这两种情况下,您仍可以测量多达5个热电偶。

    很抱歉,我不理解您最后一句中的问题。

    如果您想开发一个可同时用于热电偶和3线RTD测量的单板,我们可能可以做到这一点。 您可以通过不填充板上的某些组件或使用开关将某些电阻器切换为外接来实现此目的。

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

    您好,Joachim:

    是的,您说得对,2线RTD应足以测量结温。

    我的问题是  在交叉路口插入RTD的实际方面 ?  是否 存在一些接线端子和RTD,以便于执行此操作?

    现在,由于您的建议,我的设计可能是:

    - 主板带有一个ADS124S08和三根3线RTD,足以满足我们的大多数应用(2 RTD用于烤箱温度调节)

    和1个安全RTD)

    -一 个附加板,带有一个ADS124S08,5个热电偶和1个RTD (冷接点),可作为选件添加

    如果我们需要测量 在烤箱中处理的产品的温度,这不是一般情况,只是有时会发生。

    我将在主板和附加板之间使用SPI数据传输。 两块板之间的距离不应超过50 cm ,您好

    是否认为此设计正确?

    非常感谢,Philippe

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

    遗憾的是,我不是机械学专家,也不是将RTD连接到冷接点的最佳方法。 这在很大程度上取决于您如何设计冷接点/热块。
    下面的参考设计(www.ti.com/.../tipd109) 稍微介绍了如何将温度传感器嵌入热电偶连接器。 在此参考设计中,使用了ADS1118的内部温度传感器。 与ADS124S08相比,ADS1118集成了更高精度的温度传感器。
    但是,对于多个热电偶,您需要想出不同的解决方案,以确保所有热电偶连接器的冷接点温度相同。

    您的设计方法没有任何问题。 一旦您有了一个示意图,我们将很乐意查看它。 如果您愿意,我们可以通过电子邮件离线执行此操作。

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

     您好,Joachim先生:

    我是一名实习生,为Philippe先生工作,这是我的一个连接到3 PT100的ads124s08的示意图。  

    我有一个关于PT100和ads124s08之间的RC滤波器的问题,在我看来,pt 100将提供一个直流电压,因此我们需要将切断频率设置得尽可能低。 可以为这些电容和电阻值进行评估?

    期待您的回复,

    此致,

    秦海良

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

    您好,Haoliang,

    非常感谢您与我分享您的原理图。 在评论RC滤波器选择之前,我想指出几件事。

    通过Rref产生的电压将为RTD (从而为PGA)设置共模电压。 我通常建议将Rref上的电压设置在接近AVDD/2或更低的位置。 根据您所显示的设置,您可能会使用8或16的PGA增益,具体取决于您想要使用RTD测量的高温。 如果您需要测量高达850°C的温度,您需要在设置中将PGA增益限制为8。
    我建议将Rref降低到介于2k和2.5kOhm之间的值。
    您需要测量的最高RTD温度是多少?

    应在REFP0/REFN0输入与Rref平行放置差分盖。

    您是否预计RTD端子上会出现过电压?
    如果是这样,我们需要确保充分保护连接到这些端子的所有输入。 保护输入的第一道防线是在发生过电压事件时将进入器件的电流限制为<10mA。 这可以通过在每个输入上放置串联电阻器来实现。 根据您的要求,可能需要额外的保护(TVS二极管,肖特基二极管,铁氧体等)。

    以下是我选择RC滤波值的一些一般准则:

    • 选择最小可能的R值,该值将在最大预期过压时将输入电流限制为10mA。 当然,您需要一些利润。
      如果您要保护高达40V的电压,您可以使用4.7kOhm或更大的串联电阻器。
    • 选择一个差分电容值以获得比调制器频率低十(或更长)的角频率(对于ADS124S08,FMod=256kHz),这样在调制器频率下,从RC滤波器获得至少20dB的衰减。 将角频率设置为输出数据速率或10倍以上通常是一个良好的起点。
    • 如果您还想放置共模盖,请使它们比差分盖小至少10倍。 您已经正确完成了该操作。

    不建议边角频率太小。 原因是,当从一个RTD测量值更改为下一个RTD测量值时,模拟信号的稳定时间可能会过长。

    此致,

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

    你好,Joachim Wurker

    我只需要测量高达300°C的温度 我们有 一个电流源(IDAC=500ua),在这种情况下,rt100=212.02ohm,因此 过压为 0.106V?

    此外,我如何才能找到  与Rref平行的上限值?

    此致,

    秦海良

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

    您好,Haoliang,

    我很抱歉不清楚我关于'过电压'的说法。 我的意思是,如果RTD连接的端子可以看到任何高电压,例如由于接线不正确。 例如,您的最终客户可能会意外地将其中一个端子短接到24V线路或类似情况。
    如果RTD位于PCB上,并且没有暴露在模块外的环境中,那么您可能不需要太多保护。

    关于差分电容器值选择,您可能需要研究以下应用说明:

    此致,

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

     您好,Joachim先生:

    由于您的设备供应,我为我的设备绘制了一个新的示意图。

    在此版本中,我更改了Rref,并重置了我的RC滤波器。  在这种情况下,差模角频率为361hz和  

    共模角频率为7726hz。 当Rref=2Kohm时,我们有(2*500ua)*2Kohm=2V,2V< 2.5 (低于AVDD/2)。

    我还为REFP0和REFN0使用RC滤波器,以获得更好的精度。

    但我仍然对角频率感到困惑,两个频率都高于50Hz, 交流电/电压可能会产生干扰? 如果我想要获得最佳精度,我能将角频率设置得远低于50Hz吗? (因为我认为在我们的产品(烤箱)中,温度不能很快改变,所以与精度相比,从一个PT100转换到另一个PT100的时间并不重要 。)  

    期待您的回复,

    此致,

    秦海良

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

    非常感谢您分享此更新。

    使用Rref =2kOhm时,您的系统应能在高达300°C的RTD温度下正常工作 在这种情况下,您可以使用PGA增益= 16。

    如果您不担心过电压,我建议您进一步降低串联电阻值。 例如使用1kOhm或470Ohm,并相应地增加滤波电容器值。
    我还建议将串联电阻器放在所有输入上,您的内部电流源都连接到这些输入上。 这样也会保护这些输入。

    我个人认为,参考输入不需要完整的筛选器。 但你应该为你的第一个原型提供条款,这样你可以选择玩它.
    在REFP0和差分电容器上只使用串联电阻器可能会很好。

    为了抑制50Hz和60Hz的噪音,我建议使用ADS124S08中提供50Hz和/或60Hz抑制的数据速率之一。
    如果您不担心系统中的稳定时间,那么您肯定还可以将滤波器角频率降低到50Hz以下。 但我认为这不是很实际,因为那时所有的筛选值都变得相当大。

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

      何志平先生

    根据您的建议,我对原理图做了一些更改。

    在阅读了ADS124s08的数据表后,我对数字滤波器有疑问,在第43页中,有一个表格解释了我们如何实现 50Hz和/或60Hz抑制。

    我们是否需要在微处理器(STM32f407vg)中声明某些内容? 我的意思是,我们是否需要为该滤波器制作广告,或者是否需要通过ADS124s08自动设置?

    此致,

    秦海良

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

    您好,Haoliang,

    我看到您现在将滤波器角频率设置为大约25Hz。 这对您抑制50Hz噪音的作用不大。 您必须将角频率设置为5Hz,以至少获得50Hz噪声的20dB抑制。 但正如您所看到的那样,电容器值会变得非常大。
    如果您可以使用其中一种数据速率<=50SPS,那么我真的建议您依赖数字滤波器的拒绝,并使用更高的滤波器角频率。

    要从ADS124S08内部的数字滤波器中获得50Hz和/或60Hz的抑制信号,您只需将数据寄存器中的数据速率(位DR[3:0])编程为表16和/或17中提到的数据速率之一。
    您还可以使用筛选器位在低延迟和SINC3筛选器之间进行选择。

    此致,

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

      何志平先生

    所以我仍然使用我的第二个原理图,但只需更改这些电阻器(1Kohm),myCorner频率可能是3.1Khz ( 十进制(低于调制器频率,fmod=256kHz ), 然后,要 从数字滤波器中获得50Hz和/或60Hz的抑制,我需要 在数据寄存器中对数据速率进行编程。我是不是对?

    我不是很了解数据速率,这里的数据速率是平均读取速率(ads124s08将PT100的值进行mesure)还是输出速率(ads124s08 envoyer信息传输到STM32)?

    期待您的回复,

    此致,

    秦海良

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

    是的,您的筛选器值看起来正常。 在您的情况下,差分滤波器的角频率实际上是1.56kHz,因为您需要在公式中包括1kOhm电阻器两次。 筛选器值没有真正的错误或正确。 在评估期间,您可能需要与他们一起玩耍。
    您现在需要选择一个数据速率和滤波器类型,以在50Hz和60Hz时提供所需的抑制。 一个很好的起点通常是使用'20SPS和低延迟过滤器'或'10SPS和SINC3过滤器'。

    我真的不明白你的第二个问题。 数据速率是指ADS124S08的输出数据速率。 这意味着ADC提供新转换结果的频率。

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

     何志平先生

    根据你们的建议,我绘制了这个示意图

    但是,当我配置此ADS124s8时,此ADC的温度 非常高,是正常吗?

    此致,

    秦海良

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

    您的原理图在我看来是正确的。 在您的情况下,功耗仅应在5-10mW左右。 因此,设备不应该真的变热。

    您是否能够与ADS124S08通信?
    您的注册设置是什么?
    您能否仔细检查是否未意外错接任何针脚?

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

    您好 ,Joachim:

    我可以发送命令设置我的广告,但没有反馈,如这张照片:

    0x07是命令reset,0x42,0x00,0x12是命令 命令Mux寄存器Ain1:0001 Ain2:0010,等等,  

    我 的寄存器设置:-device id register(add=00h):是只读的,所以我对此寄存器不执行任何操作。

        -device status register(01h):也是只读的。

        -Mux寄存器(02h):ain1和ain2 :0x12。

        增益设置寄存器(03h):14.Tmod,PGA启用,增益选择16;0x0c。

        -数据速率寄存器(04h):全局切频:已禁用,内部振荡器,信号激发,低延迟滤波器,2.5SPS: 0x30。

        -reference control(05h):禁用参考监视器,禁用正参考缓冲器,禁用负参考缓冲器,内部2.5V

                     参考,内部参考始终打开,即使在断电模式下也是如此。  0x3a。

        -激励电流寄存器1 (06h):500uA:0x05

        - 激励电流寄存器2(07h) idac2:AIN3,idac1 AIN0 :0x30

       - 传感器偏置 寄存器(08h):0x00。

       -系统控制(09h):

    我还没有配置校准寄存器。

    我认为  我可能会错接一些引脚,因为我使用适配器(IC51-0324-805,tqfp32到dip32)来进行布线。就像这一个

    2个引脚之间的距离太近,因此当我关闭它时,可能会使一些引脚错接。

    此致,

    秦海良

     

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

    您好,Haoliang,

    我想先谈几点一般性意见:

    • 确保使用正确的SPI模式。
      该接口在SPI模式1下运行,其中CPOL = 0,CPHA = 1。 在SPI模式1中,SCLK处于低怠速状态,数据仅在上启动或更改
      SCLK上升边缘;主从在SCLK下降边缘上锁定或读取数据。
      您的SCLK似乎处于高怠速状态。
    • ·确保在发送reset命令后至少等待4096 tCLK,以允许重设过程完成。
      发送reset命令是可选的,因为设备已在通电时执行开机重设。
    • 为了调试您的SPI通信,我建议您首先尝试读取寄存器。 一旦这种方法正常工作,您就可以担心如何写入寄存器。
    • 为了检查设备是否正在运行,您只需使用默认寄存器设置将起始引脚从低到高。
      然后,您应该会看到/DRDY信号在大约57毫秒后下降。

    关于您的注册设置:

    • 您应该启用正参考缓冲区。
    • 您需要启用内部2.5V VREF,但为ADC选择外部REFP0/REFN0输入。

    此致,

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

    何志平先生

     听从你的建议,我检查我的程序,但我无法发现问题。  根据示波器,STM32发送的所有命令都正确,但我的ads124s08始终没有回复。

    在这款projet中,我只需要使用一个广告,这样我就可以直接将CS连接到地面吗?  

    我会给您发送我的代码,代码是coder en Keil4,您能帮我找出问题吗?

    此致,

    秦海良

    e2e.ti.com/.../main.h

    e2e.ti.com/.../ADS124S08.h

    e2e.ti.com/.../GET_5F00_Temp.c

    e2e.ti.com/.../ADS124S08.c

    e2e.ti.com/.../1321.main.c

    e2e.ti.com/.../GET_5F00_Temp.h

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

    我很遗憾听到您仍在与ADS124S08通信时遇到困难。
    根据您先前的示波器图,ADS124S08似乎在DOUT/DRDY上有所响应。 因此,我想您的SPI设置中仍有不正确的地方。

    您是否已经尝试过我的上述任何建议?
    您是否确定SCLK处于低怠速?

    如果您只在SPI总线上运行一个ADS124S08,则可以将/CS与GND绑定。
    即使总线上只有一个设备,只要MCU上没有任何引脚限制,我们通常建议使用/CS。
    /CS对于在总线上发生干扰时恢复SPI通信非常有用。

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

     您好,Joachim先生:

    我非常确信,对于每个命令,SCLK都处于低位(CPOL=0,CPHA=1),

    void Init_adc_SPI (void)
    {
    		RCC_APB1PeriphResetCmd (RCC_APB1Periph_SPI2,启用);
    		RCC_APB1PeriphResetCmd (RCC_APB1Periph_SPI2,禁用);RCC_APB1Periph_SPI2
    		,PerClockCmd (RCC_APB1iph 启用);
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
    SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;//CPOL=0
    SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//CPHA=1
    SPI_InitStructure.SPI_NSS = SPI_NSS_soft;
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;//fsck =PCLK1/256=3.125万Hz,PCK1=800Mhz
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
    	//SPI_InitStructure.SPI_CRCPolynomial = 7;
    SPI_Init(SPI2,&SPI_InitStructure;
    /*禁用SPI2 CRC计算*/
    //SPI_CalculateCRC (SPI2,disable);
    /*启用SPI2 */
    SPI_Cmd (SPI2,enable);
    		
    //		SPI_SendByte(0x00);
    //		delay_ms(500);
    } 

    我设置了重置命令后大约0.5秒的延迟

    void SPI2_ConfigADS_PAR_STM32 (void)
    {
    
    		SPI_SendByte (0x06);//命令重置
    	
    	delay_ms (1500);
    	
    	SPI_SendByte (0x42);//WREG
    	SPI_SendByte (0x7);//8reg_SendByte (
    		0x12);
    		SPI_SendByte (0x0c);SPI_SendByte (
    		0x30 SPI);
    		SPI_SendByte(0x12);
    		SPI_SendByte(0x05);
    		SPI_SendByte(0x30);
    		SPI_SendByte(0x00);
    		SPI_SendByte(0x10);
    
    } 

    当我阅读注册时,我将如下所示的代码:

    SPI_SendByte (0x21);//RREG
    SPI_SendByte (0x07);//8Reg		
    	F1=SPI_ReadByte (0x00);
    	f2=SPI_ReadByte (0x00);SPI=SPI_ReadByte
    	(0x00);
    	F4=SPI_ReadByte (0x00);
    	F5=ReadByte (0x00);
    	F6=SPI_ReadByte (0x00);
    	F7=SPI_ReadByte (0x00);
    	F8=SPI_ReadByte (0x00); 

    但是,我的示波器如何变化,没有任何反应。

    PS:当我将/CS绑定到GND时,我发现Than,F1~~F8是0x00。 但当我将/cs绑定到pin NSS时,F1~~F8是0xff。  

    此致,

    秦浩亮

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

    在您之前的一篇文章中,您展示了示波器图,其中设备似乎以某种方式进行了通信(显示了Miso和MOSI切换)。 现在是否不再是这种情况了?

    当/CS为低电平时,您始终会读取0x00,这一事实告诉我ADS124S08可能无法正确接收SCLK信号。
    当/CS为高时,DOUT/DRDY为Hi-Z 因此,如果您在该行上有一个拉线,那么您总是会看到0xFF。 这是预期行为。

    您是否在设备复位后尝试将起始针脚调高?
    然后,您应该会看到/DRDY在大约57毫秒后下降到低水平。 这至少可以告诉我们ADS124S08正在工作。

    ADS124S08是否仍很热?
    正参考缓冲区似乎仍未启用。

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

    何志平先生

    之后,我再也找不到那个信号了。

    下面是我要配置启动和重置的代码:

    /*<--配置外部ADC引脚:start(PB.2)和reset(PB.0)-->*/
    GPIO _InitStructure.GPIO针脚= GPIO针脚_0;
    	GPIO _InitStructure.GPIO针脚= GPIO针脚_2;
    GPIO_InitStructure.GPIO模式= GPIO模式输出;
    		GPIO _InitStructure.GPIO OType=GPIO OType_PP;
    GPIO _InitStructure.GPIO _速度= GPIO _速度_2MHz;
    GPIO _初始化(GPIOB,&GPIO _初始结构);
    //ExternalADC_START_LOW;
    		GPIO_ResetBits (GPIOB,GPIO_Pin_2);
    //ExternalADC__/R/E/S/E/T_HIGH ();
    		GPIO_ResetBits (GPIOB, GPIO针脚0);
    		
    	GPIO设置位(GPIOB,GPIO针脚2);
    	GPIO设置位(GPIOB,GPIO针脚0); 

    如图所示,首先我将开始和/重置设置为低,以便我可以重置我的广告,然后将开始和重置设置为高,我是否正确?

    广告现在不是很热门.

    我检查数据表,在  参考控制寄存器(地址= 05h)中设置0x12(1.001万)。 根据数据表,Bit5 (第六位)=0 mean 启用正参考缓冲区。

    事实上,我不知道如何设置此寄存器,我告诉我需要 启用内部2.5V VREF,但为ADC选择外部REFP0/REFN0输入,

    要使用内部2.5 Vref,我需要将位3:2设置为10,要  选择外部REFP0/REFN0输入,我需要将 位3:2设置为00。 如何在同一个寄存器中执行此操作?

    此致,

    秦海良

     

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

    秦豪良

    在高电平/高电平复位后,您需要等待复位时间,然后再将起始针脚调高。 所以我建议你在开始之前再加一个延迟。
    现在,当您将起始引脚设置为高时,我根本不会与设备通信,这意味着将ADS124S08保留为默认设置。 只需检查您是否看到/DRDY信号在57毫秒后下降。 这至少会告诉我们ADC正在工作。

    确认后。 我会尝试从设备读取单个寄存器。
    对于所有进一步的实验,我建议始终保持起点引脚低,并改用start命令开始转换。

    很抱歉,我忘记了参考缓冲启用位是反转的。 然后,您已将其设置正确。

    是的,您需要通过设置REFCON[1:0]=10来启用内部2.5V参考。 激励电流工作需要内部参考。
    但是,通过设置REFSEL[1:0]=00,您将使用外部REFP0/REFN0参考输入作为ADC的参考。
    您已将所有这些位设置正确。

    此致,

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

    何志平先生

     我们发现 /DRDY信号会 在微秒后降低。  

    我们可以读取config后的所有寄存器

    (我发送0x20和0x07以读取8 REG,我获得正确的数据)

    但当我给AIN1和AIN2输入3V时,没有反应。

    此致,


    秦浩亮

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

    秦豪亮:

    我很高兴听到您终于可以与ADS124S08进行通信。 您现在是否知道自己的做法有所不同?

    您如何尝试读取转换结果?
    如果在/DRDY信号变低后发送RDATA命令会发生什么情况?

    您的顺序大致如下所示:

    打开ADS124S08电源并等待电源稳定
    始终保持起始针脚低电平
    清除/reset针脚至高
    等待重置周期完成
    循环{
     使用WREG命令写入寄存器设置
     (如果您愿意,可以使用REG命令作为健全性检查来读回寄存器设置)
     发送启动命令
     等待/DRDY信号降至低位
     使用RDATA命令读取转换数据
    }

    此致,

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

    何志平先生

    根据您的顺序,我们将在循环中写入寄存器设置,我们需要在每次转换之前重复此操作?

    我认为我的广告可以进入转换模式:

    (发送命令start 3.25us后,DRDY会变得很高)

    发送命令stop后,DRDY会降低。

    但是在我发送命令RDATA之前,DRDY不会降低,即使我设置了长时间的延迟。

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

    秦豪良

    如果要更改任何设置,则只需编写新的寄存器配置。
    在您的情况下,您必须更改Mux和IDAC路由设置,以便测量不同的RTD。
    我上面的顺序是假设您在RTD上读取一个读数,然后切换到测量下一个RTD。

    您当前正在以单次激发转换模式运行ADS124S08。 此时无需发送任何停止命令。
    ADS124S08完成一次转换后,任何进一步的转换都将自动停止。 您需要发送另一个启动命令,然后开始新的转换。

    另请注意,当/DRDY降低时,下一个SCLK下降边缘将再次驱动/DRDY引脚高。 你可以在上面的第一个图中看到这个。

    我尝试进一步解释这种行为:

    ///DRDY值较高,以防您读取之前的转换结果
    使用WREG命令写入寄存器设置,以选择下一个RTD进行测量
    ///DRDY仍将为高

    (如果您愿意,可以使用REG命令作为健全性检查来读回寄存器设置)
    发送启动命令
    等待/DRDY信号降至低位
    //在您的情况下(2.5SPS,低延迟滤波器),/DRDY信号将需要大约406.5毫秒才能变低

    使用RDATA命令读取转换数据
    // RDATA命令的第一个SCLK下降沿将驱动/DRDY高

    此致,