这是基本思想:
V1是经过滤波的PWM输出,R2是您的传感器。U1是电压到电流转换器,通过负载R1的电流为I = V1 / R2。这意味着R1两端的电压取决于两个输入。U2和U3是增益为10的仪表放大器,可放大R1两端的电压。
在R1 = 100 Ohms和V1 = 0..5V的情况下,电路在R2 = 50..5000的情况下工作,例如,跨越两个数量级,这从您的说法中就足够了。
您要做的是取出并将其与参考电压进行比较(对于最大动态范围,此处应使用4V电压),并对V1进行逐次逼近,以使输出电压尽可能接近参考电压。现在,根据V1和R1上的已知压降(例如参考电压),您可以计算传感器R2的值。当然,这只会在PWM的分辨率内获得结果,但是您可以使用第二个仪表放大器来放大误差(输出电压与参考电压之间的差),以使其达到微控制器ADC的范围,这将为您带来更多的收益。的决议。
您需要两个运算放大器(U1和比较器)和两个仪表放大器。使用真实的电阻而不是使用运算放大器,因为电阻和运算放大器的不精确性会引入误差。
如果两个数量级还不够,则可以用数字电位计代替R1,以获得另一个自由度。我从未与他人合作过,所以我不知道它们的精确度以及这种解决方案是否需要校准。
另外,我应该提到的是jpc提出了这个想法。
更新:
好的,我必须同意OP的观点,这实际上不是他的问题的答案(尽管它从技术上解决了问题)。我允许自己被标题中的“自适应放大器”所吸引,以此作为进行模拟设计的借口。除非您想了解有关运放的知识(一点点),否则请忘记上面写的所有内容。我希望这是更好的答案和更简单的解决方案:
使用由稳压器供电的电阻分压器(将其与其他电路的噪声分开),将上电阻器设置为传感器可以具有的最大电阻(Rmax),将下电阻器作为传感器。
将ADC的参考电压设置为稳压器输出的一半。
然后,使用ADC采样传感器上的电压。这样,每个传感器只需要一个单端通道。我在另一篇文章中提出了ADC建议。
但是,如果使用您提到的微控制器中集成的10位ADC,则不会获得很大的动态范围。使用模拟电路来扩大范围,就像我最初发布的那样,会增加太多额外的部件,这就是为什么我建议仅使用一些24位ADC(例如我在另一篇文章中建议的ADS1256)的原因,因为它将为您提供低噪声和高动态范围,在单个芯片上(加上很小的基准电压源,也可以很小的稳压器-您也可以尝试将稳压器放在外面,直接从基准电压为电阻分压器供电-这会使您失去1位分辨率,但是无论如何,它们中有很多)。您将需要进行一些数字运算(“通过在给定的分析窗口中找到最小值和最大值进行自动校准”是一个好主意),
我希望这会有用。
更新2:
这是最后一个:我浏览了TI的MSP430微控制器,发现其中一些具有内部基准的16位sigma-delta ADC。即MSP430F2003和MSP430F20013。如果您愿意放弃Atmels,那将是您的单芯片解决方案。功率也很低。他们有24个ADC的排队微控制器,但尚未投入生产。除了赛普拉斯的PSoC微控制器,还有20位sigma-delta ADC(PSoC 3和PSoC 5系列),也有参考。这些会更好。