Matrix
发表于 2024-11-6 10:31:01
{:4_165:}{:4_165:}{:4_165:}
BaiCai
发表于 2024-11-6 11:20:24
梁工 发表于 2024-11-5 20:46
哦,你这是PID稳速的程序,我以为你说的是不带PID的。
不带HALL、PID驱动无刷电机的程序,由于比较器输入 ...
是这样的,我在STC8H的程序上修改了ADC电位器的采集方式为中断方式, 时间为1ms采集一次,每次启动ADC时电机就会堵转,然后再启动,如此的循环,查看了手册ADC中断设置这块也没有问题,所以才想到是不是芯片的处理问题。既然跟芯片性能没关系,我再看看程序上处理的问题,谢谢梁工解答
BaiCai
发表于 2024-11-6 17:35:26
梁工 发表于 2024-11-5 20:46
哦,你这是PID稳速的程序,我以为你说的是不带PID的。
不带HALL、PID驱动无刷电机的程序,由于比较器输入 ...
测出来了梁工,使用ADC的中断和使用查询方式一样,不能像STC32G一样放在主循环里,需要放在换相程序里,并且是比较器中断前处理,这样就没有问题。这个应该是和芯片的处理速度有关,我看了一下STC32手册说相同频率下STC32要比传统8051的快70倍,而STC8H的ADC中断与换相以及相关定时器中断又在同一个优先等级,导致偶尔出现ADC中断占用了换相相关的中断处理时间,导致失速,或者换相失败,不知道我分析的可对。
梁工
发表于 2024-11-6 18:56:43
BaiCai 发表于 2024-11-6 17:35
测出来了梁工,使用ADC的中断和使用查询方式一样,不能像STC32G一样放在主循环里,需要放在换相程序里, ...
正如我117楼所说:
因为比较器也使用了ADC输入端,为了避免竞争冲突,启动电机后在换相程序里做ADC,电机停止后在主程序做ADC。
如果电机启动后还在主程序做ADC,则会破坏零点检测,就会出现各种问题。
STC32G的版本,比较器输入端不用ADC输入,所以STC32G的ADC可以随意使用。
我忘了你是移植到STC8H,则启动电机后ADC必须放在换相里进行。
BaiCai
发表于 2024-11-7 10:58:49
梁工 发表于 2024-11-6 18:56
正如我117楼所说:
因为比较器也使用了ADC输入端,为了避免竞争冲突,启动电机后在换相程序里做ADC,电机 ...
明白了,谢谢梁工。
bxxnpnlk
发表于 2024-11-19 16:51:23
梁工 发表于 2024-4-3 12:08
二极管S4是肖特基1N5819的小封装,但我的板子用了1N4148,其实不焊二极管也可以的。驱动IC使用EG2106会更 ...
梁工,请教一下在这放肖特基的作用是什么呢
梁工
发表于 2024-11-19 17:47:59
bxxnpnlk 发表于 2024-11-19 16:51
梁工,请教一下在这放肖特基的作用是什么呢
关闭时快速将MOSFET的栅压放电,加快截止速度。
bxxnpnlk
发表于 2024-11-19 18:48:31
梁工 发表于 2024-11-19 17:47
关闭时快速将MOSFET的栅压放电,加快截止速度。
感谢{:5_300:}
jun_1234
发表于 2024-12-19 14:51:27
大佬方便问一下比较简单的问题,无HALL和带HALL这个是什么意思啊?小白求解答
梁工
发表于 2024-12-19 16:07:11
jun_1234 发表于 2024-12-19 14:51
大佬方便问一下比较简单的问题,无HALL和带HALL这个是什么意思啊?小白求解答 ...
HALL-霍尔,即霍尔传感器,电机定子(线圈)上有3个霍尔传感器,用于检测转子位置(转子带磁铁),程序根据传感器信号的指示来换相,用于启动力矩大的场合,最常见的是电动自行车、电动滑板车、电动轮滑、平衡车的电机。
无HALL,即无霍尔传感器,电机定子就是线圈,程序要根据反电动势来判断转子位置,得到正确的换相时刻。最常见的是风扇类、水泵类的电机,启动力矩很小,高速力矩大。