硬件特训班问题解答「57问-8」
1. bms的24V输入滤波电路有什么推荐的,针对浪涌、传导等。希望老师给个常用的推荐电路配置,谢谢
(1)其实对于电源入口或者通讯接口其防护设计都是类似的,其重点永远都是一样的,即EMC辅助电路设计
(2)EMC辅助电路设计和EMC设计都是类似的,即EMI滤波和EMS防护
(3)EMI滤波我们主要考虑差模滤波和共模滤波,其关键是根据具体产品决定几阶滤波,比如说共模滤波,我们可以通过共模电容+共模电感实现二阶共模滤波,其差模也类似,大家可以参考220VAC电源入口的XY电容以及共模电感差模电感其设计
(4)EMS防护,首先其设计规则是多阶防护逐级递减,其一般是通过GDT,TVS,MOS等共同来实现;其实我们的EMS防护主要是针对于surge进行防护,当然造成surge的机制非常多,有静电,有雷击,有电网的电压突然跌落等等等等;而浪涌的表现形式也有两种:共模浪涌能量和差模浪涌能量,所以在EMS防护电路设计里面我们也要把这两块考虑进去,也就是纪要防护共模浪涌能量也要防护差模浪涌能量
(5)其常见的设计套路如下图:
(6)至于说XY电容,共模电感,差模电感,EMC基础,GDT,MOV,TVS其内部结构,工作原理,具体选型,设计等等更详细的内容可以参考老白硬件特训班:
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-21870440440.43.c3cb1839bIEpvV&id=6315286
2. 老师,我手上有个stc51单片机,现在用的延时是软件延时,但实时性不好,弊端已经显露出来的,所以,我现在打算用定时器0进行延时,但是我现在不知道该怎么实现比较好,
我选择的思路是:把定时器配置成1ms,已经配置完成,然后在定义20ms,50ms,100ms,500ms的变量和标志位,打算当变量达到相对应的时间后,对应的标志位置1,
我现在疑惑不知道怎么办的是:我在主函数中,不知道该如何去实现这些延时
我原来的代码如下,我想修改成用定时器来延时,但我不知道该怎么实现,实时性比较差的代码如下:
Y07=1;
delay_ms(20);
Y01=0:
if (x01==0)
{
Y02=0;
delay_ms(500);
if (x05 == 0)
{
Y04=0;
delay_ms(100);
Y06=1;
}
}
A.一般解决思路有两种:一是改变定时器中断初始化的值,而是利用全局变量,而定时器初始化的值不变的这种方式;但是改变初始化的值会牵扯进来很多东西,而且如果你的单片机运行的任务比较多的时候,你还想要通过定时器来实现时间片轮的控制的话,就会变得非常复杂,所以一般情况下我们如果要实现精确延时的话,我们都会采取全局变量+定时固定的方式来实现,换一种思路就是你可以把延时也看做是MCU运行的所有任务的其中一个任务这就要求大家对时间片轮方式去控制不同任务,最简单的方式其实是用一个全局变量的数组,数组中的每个元素代表了一个任务,然后每个任务的时间片轮是多少可以通过这个数组来调整
B.我们还是回归到我们精确延时的问题上来,我们使用全局变量的方式来实现,其思路如下:
(1)我们需要两个全局变量:一个全局变量用来实现你要多长时间的延时,另外一个全局变量用来实现你的延时是否已经结束
(2)具体配合定时器的中断函数如何实现呢?我们可以这样考量,比如说我们要实现ms级的延时我们怎么做呢
a.首先我们做好延时的初始化,由于我们要做ms级延时,所以我们最好是以1ms做初始化
b.然后我们每次用延时函数的时候,我们改变的是全局变量:
u16 global_delay; //.全局变量
……;
delay_ms(285);
/ *
那么当我们在延时函数中输入285的时候,我们延时函数内部要做的事情第一步就是首先给全局变量赋值;
然后紧接着中断函数中的这个值就会重新赋值,然后每次进入中断函数以后就会对改变量减一;
当该全局变量减为0的时候,就让标志位置一
*/
void delay_ms(u16 ms)
{
global_delay=ms;
while(!DELAY_FLAG);
DELAY_FLAG=0;
}
void Timer_Intterupt()
{
global_delay--;
if(0==global_delay)
DELAY_FLAG=1;
}
3. 在耐压测试的时候,输入对pe电压1000V漏电流很大,分析是绝缘电阻过小导致,
理解压敏电阻等防护器件在要过相应的标准测试时应该怎样留裕量?
(1)首先我们经常说的L-PE 1000V,N-PE 1000V指的是浪涌测试
(2)浪涌测试属于EMS部分,大家都知道我们EMS是EMC的一个大的分支
(3)EMC=EMI+EMS
(4)浪涌测试一般分为两大类:电源端测试和信号端测试
(5)电源端测试主要分为两大类:差模干扰和共模干扰,所谓的差模干扰一般指的是L-N之间施加浪涌信号,而共模干扰则是我们经常说的L-PE,N-PE 之间等
(6)信号端测试也是类似,有差模浪涌干扰也有共模浪涌干扰
(7)不管是信号端还是电源端我们设计的套路规则是一样的,都是属于EMS.防护的设计
(8)首先我们的EMS防护其原则是多级防护逐级递减,其元器件一般都是GDT,TVS,MOV等共同来实现
(9)至于问题压敏电阻如何留余量这就涉及到了压敏电阻的工作原理具体参数等等,一般都是通流量和钳位电压等参数综合考量
(10)至于上述具体的内容大家可以参考老白硬件系列P4二极管的部分,有非常详细的讲解,大概有15个小时左右,更详细的内容可以参考老白硬件特训班: