首先采集I-V_U的电压,通过电压和R17电阻,就可以算出这一相的电流了,但是这个电压比较小,所以需要经过一个差分放大电路,这个电路的放大倍数是6倍,还加了一个1.25v的抬升电压,最终输出AMP_IU,这个电压通过板子的IO去采集。采集到的ADC值还需要进行计算转换,因为这里使用的是12位的ADC,所以还要除以4096。
但这是在电机停机的状态下去检测电机的电压,这个电压就是偏置电压。也就是电机未工作时候的电压。也可以理解为基准电压,因为板子供上电后,多多少少是有几毫安的电流的,但是这个电流会对我造成影响的。这里也是包含1.25v的
当电机旋转的时候,同样用PB0来进行检测AMP_IU的电压,然后算出此时的电压值。这时候的电压值就是旋转时候的电压值减去停机状态下的电压值,就是实际作用下的电压了。
已知差分放大电路是进行了6倍的放大,本来是得到第四点,输出电压的,板子不单单只有抬升电压1.25v,一上电的时候,板子自身也有基准电压。所以在实际计算电压值的时候是用第五点公式进行计算。
首先也是通过ADC采集VBUS的电压,这里用的是ADC1的通道9的PB1来采集,通过下面的公式算法就能得到此时的电压值了。
因为下面是一个电压跟随运算放大电路所以得到的VBUS电压和进入跟随放大器的电压相同。第二步,由于VBUS可以采集得到,所以我们可以求出POWER的电压。
同样也是采用电阻分压,运放5号输入端口的电压就是等于VTEMP的电压,也是采用ADC来采集。通过公式就可以得到经过热敏电阻后的电压值。得到的RT就是热敏电阻阻值。他的阻值是随温度的变化而变化的。
然后再根据RT算出实际的温度值。这个公式是通过热敏电阻的数据手册可以找到的。
这个公式中,R1和T2是指K度。
下面的值可以查表得到,R0指的是25度下对应电阻阻值10k欧,B对应3380。RT通过前面ADC采集得到的。