请教:电调的过流保护
最近想在电调上加一个过流保护的功能,一开始用0.56欧的检测电阻,程序设置在电流2A时复位,效果还可以。后来看了几个商品电调的板子,说明书上写的多少多少A的电流保护,但硬件上没看到检测电阻之类的东西,如果是直接检测FET内阻的话,由于FET内阻波动很大,应该也不容易精确控制吧。
是否还有其他检测方法,请高手指点。 电调过流检测一般是针对堵转等异常情况出现的大电流
比较小的无刷电调都有数十安培以上
不要用检测电阻,在PCB地线上布一段较长的导线
相对电源输入段就可产生mV级别的电压,AD采样之即可
比如铜箔电阻10毫欧,电调输入电流10-30安培,电压就有100-300毫伏
不要想精确采样到mA,这个对无刷电调没有很大意义
下图是我DIY的无刷电调,右下角的曲里拐弯的铜箔就是采样电流用
铜箔电阻大小取决于铜箔宽度、厚度、形状,需要做实验
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_301894.JPG
(原文件名:ourdev_292453.JPG) 谢谢一楼的指点。还有个问题,我上次做的板子是0.3mm的板厚,厂家说这么薄只能镀金,喷锡做不了。如果镀金的话会不会导致导线电阻太小无法检测呢?用mega8,10位精度AD,2.56V基准,最小检测2.5mv。我做的电调功率很小,单节锂电,电流3A。假设设置3A过流,这样检测用的导线电阻必须大于2.5mv/3A=0.83毫欧。如何控制导线长度以满足要求还不好办,电阻大了倒是没问题,就怕小了。
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_301954.JPG
(原文件名:fet.JPG) 也可以用电流镜来做,不过多一个管子。一般用铜箔来做就行了,不用要求那么高 请问【3楼】 vivalite
电流镜是什么东东,怎么用? 电流镜就是并联一个小一些的同型MOS管,但接地的地方加一只50欧以上的电阻,在这个取样电阻上取分压。留过这个电阻的电流和流过主MOS管的电流成正比;很多带电流传感的MOS管里面就是这个结构的。
实际要求不高的话还可在下桥的漏极取分压,用MOS管当取样电阻。当然前提是MOS需完全导通,但这也不是什么难事,只要单片机给出开通信号后延迟几个微秒就行了。(具体延迟几个微秒用示波器实测而定) 【2楼】 zht9961020
0.3毫米?这么薄,楼主是不是做微型电调啊?
镀金板电阻没试过,不知道,电流只有3A,一个简单的办法:
找块没腐蚀的覆铜(金)板,用刻刀在上面刻出2mm宽的均匀带状铜条
用欧姆档小数点4位的万用表测电阻,测到你要的毫欧数,看看需要多少长度?
实际布PCB板时就有数了,为了省地方一般布成S型 并联mos管在我这不好办,因为板子尺寸有限制,没那么多空间了。
用mos管当取样电阻,我认为是可行的,但问题是mos管电阻是变化的,跟温度,VGS等都有关系,这个不好解决啊
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_302015.JPG
(原文件名:fett.JPG) 【6楼】 feng_matrix
我是参照一个德国的微型电调做的。你说的办法挺好的,可以试试。再不行直接剪一段锰铜丝当检测电阻焊上得了。
不知道商品电调用的是什么方法??? MOS的电阻确实随温度、电流变化,但变化量加起来只有二成左右,而且是正温度系数、正电流系数,只可能在工作环境、电流恶劣时造成限流点小幅降低,不会带来IGBT那种二次击穿的效应。
对MOS电阻影响最大的是VGS电压,只要你能保证VGS稳定在10V以上MOS的电阻连1%的波动都没有,这时再采样就准确了。 VGS我保证不了稳定,因为我用的是一节锂电池,电压3~4.2v,也就是VGS:3~4.2v。电压随着电池使用降低。
如果不考虑温度和电流的影响,只关系到VGS的话,我认为这种方法是可行的,只要在程序里加上mos管电阻与VGS的对应关系就行了。
而且这样不用增加硬件电路。 请教一问题:哪AD的Vref的GND应该接在蛇线的末端-电源的负极, 对吗?否则这段蛇线的分压会否测不出来呢? 你说的对,MOS电阻和VGS对应关系参数里都给了,在MCU里运算一下就能算出大致电流,不用增加硬件电路。 to : 【11楼】 cnjyn1
其实都是地线,但不同位置相对电源输入点有不同的电势差
看你地线布的水平了,这个得靠手工画,软件自动布的地线不会很理想的 【8楼】 zht9961020
航模上用得商品无刷电调,考虑到成本问题及电流大小,估计用铜箔法较多吧
实际情况不知道,可以问问坛子里有没有公司做电调的 这个帖子好 不用担心镀金后电阻太小,金的电阻率比铜大。 长度1(米)、截面积a (米2)的均匀物质的电阻为:R=ρl/a(Ω),式中,ρ是物质的电阻率*,单位:欧姆米(Ω. m)。
纯金属铜在20℃的电阻率为:1.7376X10^ -8 W·m(欧·米) ,若PCB铜厚为50um,则长度1mm,线宽1mm的走线电阻为:
R=1.7376x(10^-8)x(10^-3)/(50x10^-9)=0.34752毫欧。所以用来检测的走线长度>2.4mm就能满足AD的分辨率。 金的电阻率比铜高
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_302874.jpg
几种金属电阻率 (原文件名:金属电阻率.jpg) 那如何提高过流保护的值?我现在的电调是限制5A的输出,我想增加到15A,具体如何做呢? mark 【19楼】 hhnsyf
你现在的过流保护是怎么实现的? 使用feng_matrix的"第二版无刷电调源代码",对模拟比较器中断函数做了些修改,可以通过检测流过FET的电流来判断过流。
SIGNAL(SIG_COMPARATOR)
{
unsigned char sense = 0;
do
{
if(SENSE_H) sense = 1; else sense = 0;
switch(Phase)
{
case 0:
STEUER_A_H;
if(sense)
{
STEUER_C_L;
TCNT2 = 1;
if(ZeitZumAdWandeln) AdConvert(0x02);
SENSE_FALLING_INT;
SENSE_B;
Phase++;
PhaseFG=8;
CntKommutierungen++;
}
else
{
STEUER_B_L;PhaseFG=Phase;
}
break;
case 1:
STEUER_C_L;
if(!sense)
{
STEUER_B_H;
TCNT2 = 1;
if(ZeitZumAdWandeln) AdConvert(0x02);
SENSE_A;
SENSE_RISING_INT;
Phase++;
PhaseFG=8;
CntKommutierungen++;
}
else
{
STEUER_A_H;PhaseFG=Phase;
}
break;
case 2:
STEUER_B_H;
if(sense)
{
STEUER_A_L;
TCNT2 = 1;
if(ZeitZumAdWandeln) AdConvert(0x00);
SENSE_C;
SENSE_FALLING_INT;
Phase++;
PhaseFG=8;
CntKommutierungen++;
}
else
{
STEUER_C_L;PhaseFG=Phase;
}
break;
case 3:
STEUER_A_L;
if(!sense)
{
STEUER_C_H;
TCNT2 = 1;
if(ZeitZumAdWandeln) AdConvert(0x00);
SENSE_B;
SENSE_RISING_INT;
Phase++;
PhaseFG=8;
CntKommutierungen++;
}
else
{
STEUER_B_H;PhaseFG=Phase;
}
break;
case 4:
STEUER_C_H;
if(sense)
{
STEUER_B_L;
TCNT2 = 1;
if(ZeitZumAdWandeln) AdConvert(0x01);
SENSE_A;
SENSE_FALLING_INT;
Phase++;
PhaseFG=8;
CntKommutierungen++;
}
else
{
STEUER_A_L;PhaseFG=Phase;
}
break;
case 5:
STEUER_B_L;
if(!sense)
{
STEUER_A_H;
TCNT2 = 1;
if(ZeitZumAdWandeln) AdConvert(0x01);
SENSE_C;
SENSE_RISING_INT;
Phase = 0;
PhaseFG=8;
CntKommutierungen++;
}
else
{
STEUER_C_H;PhaseFG=Phase;
}
break;
}
//send_data1(0xcc);
}
while((SENSE_L && sense) || (SENSE_H && !sense));
ZeitZumAdWandeln = 0;
}
//--------------------------------------------------
void AdConvert(unsigned char channel)
{
unsigned int i=0;
unsigned char sense;
sense = ADMUX; // Sense-Kanal merken
//ADMUX = 0x06; // Kanal 6
ADMUX = channel| IntRef; //Öض¨Òåµ½channel¿Ú
SFIOR = 0x00; // Analog Comperator aus
ADCSRA = 0xD3; // Converter ein, single
ADCSRA |= 0x10; // Ready löschen
//ADMUX = 0x06; // Kanal 6
ADMUX = channel| IntRef; //Öض¨Òåµ½channel¿Ú
ADCSRA |= 0x40; // Start
while (((ADCSRA & 0x10) == 0));
ADMUX = sense; // zurück auf den Sense-Kanal
i = ADCW ;
// if(i> 200) i = 200;
Strom =( i+Strom*7)/8;
ADCSRA = 0x00;
SFIOR = 0x08; // Analog Comperator ein
} 程序我不是很懂,现在的电调是检测蛇形覆铜板的压降来限流的,我也试过并联一段导线,可是效果不明显 学习了 【23楼】 hhnsyf
你的方式需要AD采样蛇形走线的压降,然后与程序中的设定的最大电流比较,超过即为过流。最好是修改程序,把设定的最大电流值增大。
本贴被 zht9961020 编辑过,最后修改时间:2009-01-05,11:33:38. 记号 mark 标记~~~ mmmmmmmmmark MARK ! ! !
页:
[1]