可否使用单片机单个IO口输出三种任意模拟电压?
◎ 【相关工作】
AD\Test\2025\May\QCCnt8H1KG08.SchDoc
01 电阻网络
一、单片机IO
下面这个电路是前面利用单片机 IO 口来是出现充电器中的 快充协议, 单片机 IO 端口有三种状态, 分别是 低电平, 高电平以及高阻状态, QC命令包括有三个电压数值, 那么, 下面设计三个电阻 R13、R14、R15, 使得电阻网络输出的电压符合所需要的三个电压值。 下面通过这三个方程, 来求解对应的电阻数值。 这样就可以为今后的电路设计提供更加精确的理论设计数值。
二、求解结果
首先, 虽然我们有三个方程, 但是这三个方程之间并不是完全独立的。 也就是如果三个电阻 R13, R14, R15 都按照比例变化, 所得到的三个电压值并不发生变化。 这样,独立的方程实际上只有两个。 因此, 我们现在所求解的是一个欠定方程。 下面, 先假设R13是已知, 便可以根据第二个方程得到 R15的取值。 分别根据第一个方程和第二个方程, 求出两个R14的值, 那么问题来了, 这两个方程所求出的R14的数值, 他们之间是否相等呢? 下面先简单使用普通的数值验证一下。
▲ 图1.2.1 推导出的R14的方程
为了计算方便, 将R15代入上面的式子, 可以得到R14的一个解。 再代入下面的式子。 可以得到R14的第二个解。 这两个式子显然结果不一样。 下面, 给出在5V下, 分别求出对应的三个电压。 这三个电压是 QC 协议中的电压。 假设R13等于510欧姆, 可以计算出R15的取值, 两个R14的结果分别求出两个数值解。 下面, 分别验证一下取R14不同解,对应输出电压。 如果R14取第一个数值, 输出的三个电压中, 第一个电压有差别, 为 0.2318 , 比实际的数值小, 其他两个电压是精确的。 如果R14取530欧姆, 则计算出的输出电压, V3 输出只有2.617V, 其他两个电压是精确的。 如果R14取这两个数值的平均值。 则计算出的 V1,V3 都有误差, 不过这两个误差相对较小。 因此, 通过这里的分析, 可以获得R14的最优的数值。
▲ 图1.2.2 R14 的两个数值解
※ 总 结 ※
本文讨论了利用单片机端口的三个状态, 通过一个电阻分压网络, 输出三种不同的电压。 经过分析, 这个问题涉及到求解欠定非线性方程。 如果假设R13是已知的。 那么, 可以根据需要求取的电压, 计算出R14, R15。 只是, R14会有两个数值解。 如果取他们的平均, 可以进一步缩小设定 输出电压的误差。
■ 相关文献链接:
● 相关图表链接: