教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 工程科技> 电子/电路> STM8 MCKIT1.0 BLDC无感控制中的采集实现分析

STM8 MCKIT1.0 BLDC无感控制中的采集实现分析

上传者:李超群
|
上传时间:2015-04-29
|
次下载

STM8 MCKIT1.0 BLDC无感控制中的采集实现分析

ST写的STM8电机库中,可以用无感方式驱动BLDC。STM8芯片只有一个AD转换器,而且是8位机。库中要对反 电势采集,比较处理,还要进行母线电压,母线电流、散热片温度、电位器等模拟信号进行采集、运算和处理。 这优先级处理说起来是很重要的。不过,ST把程序写的很好,至少我这样认为。它把不同的任务放到准确的时间段里进行采集处理。 先把它核心AD采集处理帖出来再分析 。

STM8 MCKIT1.0 BLDC无感控制中的采集实现分析

ST写的STM8电机库中,可以用无感方式驱动BLDC。STM8芯片只有一个AD

转换器,而且是8位机。库中要对反

电势采集,比较处理,还要进行母线电压,母线电流、散热片温度、电位器等模

拟信号进行采集、运算和处理。

这优先级处理说起来是很重要的。不过,ST把程序写的很好,至少我这样认为。

它把不同的任务放到准确的时间段里进行采集处理。

先把它核心AD采集处理帖出来再分析 。

#ifdef SENSORLESS @svlreg void ADC2_IRQHandler (void)

{

if (ADC_State == ADC_SYNC)

{

// Syncronous sampling

u16 data;

u8 delay;

u16 bemf_threshold;

// Reset bit

bComHanderEnable = 0;

//clear interrupt flag

ADC2->CSR &= (u8)(~BIT7);

//left align - read DRH first

data = ADC2->DRH;

data <<= 2;

data |= (ADC2->DRL & 0x03);

switch( ADC_Sync_State )

{

case ADC_BEMF_INIT:

ADC2->CSR = (u8)((Current_BEMF_Channel|BIT5));

BEMF_Sample_Debounce = 0;

Zero_Sample_Count = 0;

ADC_Sync_State = ADC_BEMF_SAMPLE;

SetSamplingPoint_BEMF();

break;

case ADC_BEMF_SAMPLE:

//detect zero crossing

if( Current_BEMF == BEMF_FALLING )

ST写的STM8电机库中,可以用无感方式驱动BLDC。STM8芯片只有一个AD转换器,而且是8位机。库中要对反 电势采集,比较处理,还要进行母线电压,母线电流、散热片温度、电位器等模拟信号进行采集、运算和处理。 这优先级处理说起来是很重要的。不过,ST把程序写的很好,至少我这样认为。它把不同的任务放到准确的时间段里进行采集处理。 先把它核心AD采集处理帖出来再分析 。

{

if( Z_Detection_Type == Z_DETECT_PWM_OFF )

{

bemf_threshold = BEMF_FALLING_THRESHOLD;

}

else

{

bemf_threshold = hNeutralPoint;

}

if (Ramp_Step > FORCED_STATUP_STEPS)

{

if( data < bemf_threshold )

{

Zero_Sample_Count++;

BEMF_Sample_Debounce++;

if( BEMF_Sample_Debounce >= BEMF_SAMPLE_COUNT )

{

hTim3Th -= hTim3Cnt;

GetStepTime();

SpeedMeasurement();

bComHanderEnable = 1;

BEMF_Sample_Debounce = 0;

}

}

else

{

BEMF_Sample_Debounce = 0;

}

}

}

else

{

if( Z_Detection_Type == Z_DETECT_PWM_OFF )

{

bemf_threshold = BEMF_RISING_THRESHOLD;

}

else

{

bemf_threshold = hNeutralPoint;

}

if (Ramp_Step > FORCED_STATUP_STEPS)

{

ST写的STM8电机库中,可以用无感方式驱动BLDC。STM8芯片只有一个AD转换器,而且是8位机。库中要对反 电势采集,比较处理,还要进行母线电压,母线电流、散热片温度、电位器等模拟信号进行采集、运算和处理。 这优先级处理说起来是很重要的。不过,ST把程序写的很好,至少我这样认为。它把不同的任务放到准确的时间段里进行采集处理。 先把它核心AD采集处理帖出来再分析 。

if( data > bemf_threshold )

{

Zero_Sample_Count++;

BEMF_Sample_Debounce++;

if( BEMF_Sample_Debounce >= BEMF_SAMPLE_COUNT )

{

hTim3Th -= hTim3Cnt;

GetStepTime();

SpeedMeasurement();

bComHanderEnable = 1;

BEMF_Sample_Debounce = 0;

}

}

else

{

BEMF_Sample_Debounce = 0;

}

}

}

break;

case ADC_CURRENT_INIT:

ADC2->CSR = (ADC_CURRENT_CHANNEL|BIT5);

ADC_Sync_State = ADC_CURRENT_SAMPLE;

SetSamplingPoint_Current();

break;

default:

case ADC_AVCURRENT_INIT:

ADC2->CSR = (ADC_AVCURRENT_CHANNEL|BIT5);

ADC_Sync_State = ADC_AVCURRENT_CHANNEL;// ADC_USER_SYNC_SA

MPLE;

SetSamplingPoint_AVCURRENT();

break;

case ADC_CURRENT_SAMPLE:

ADC_Buffer[ ADC_CURRENT_INDEX ] = data;

break;

case ADC_AVCURRENT_SAMPLE:

ADC_Buffer[ ADC_AVCURRENT_INDEX] = data;

break;

}

// Store the current channel selected

bCSR_Tmp = ADC2->CSR;

// Set the Async sampling channel

ST写的STM8电机库中,可以用无感方式驱动BLDC。STM8芯片只有一个AD转换器,而且是8位机。库中要对反 电势采集,比较处理,还要进行母线电压,母线电流、散热片温度、电位器等模拟信号进行采集、运算和处理。 这优先级处理说起来是很重要的。不过,ST把程序写的很好,至少我这样认为。它把不同的任务放到准确的时间段里进行采集处理。 先把它核心AD采集处理帖出来再分析 。

switch (ADC_Async_State)

{

default:

case ADC_BUS_INIT:

ADC2->CSR = (ADC_BUS_CHANNEL|BIT5); ADC_Async_State = ADC_BUS_SAMPLE;

break;

case ADC_TEMP_INIT:

ADC2->CSR = (ADC_TEMP_CHANNEL|BIT5); ADC_Async_State = ADC_TEMP_SAMPLE;

break;

case ADC_USER_ASYNC_INIT:

ADC2->CSR = (ADC_USER_ASYNC_CHANNEL|BIT5); ADC_Async_State = ADC_USER_ASYNC_SAMPLE;

break;

}

// Disable ext. trigger

ADC2->CR2 &= (u8)(~BIT6);

//Start ADC sample

ADC2->CR1 |= BIT0;

ADC_State = ADC_ASYNC;

if (bComHanderEnable == 1)

{

ComHandler();

}

}

else

{

// Syncronous sampling

u16 data;

data = ADC2->DRH;

data <<= 2;

data |= (ADC2->DRL & 0x03);

//clear interrupt flag

ADC2->CSR &= (u8)(~BIT7);

// Restore the sync ADC channel

ADC2->CSR = bCSR_Tmp;

// Enable ext. trigger

ST写的STM8电机库中,可以用无感方式驱动BLDC。STM8芯片只有一个AD转换器,而且是8位机。库中要对反 电势采集,比较处理,还要进行母线电压,母线电流、散热片温度、电位器等模拟信号进行采集、运算和处理。 这优先级处理说起来是很重要的。不过,ST把程序写的很好,至少我这样认为。它把不同的任务放到准确的时间段里进行采集处理。 先把它核心AD采集处理帖出来再分析 。

ADC2->CR2 |= BIT6;

// Manage async sampling

switch (ADC_Async_State)

{

default:

case ADC_BUS_SAMPLE:

ADC_Buffer[ ADC_BUS_INDEX ] = data;

ADC_Async_State = ADC_TEMP_INIT;

break;

case ADC_TEMP_SAMPLE:

ADC_Buffer[ ADC_TEMP_INDEX ] = data;

ADC_Async_State = ADC_USER_ASYNC_INIT;

break;

case ADC_USER_ASYNC_SAMPLE:

ADC_Buffer[ ADC_USER_ASYNC_INDEX ] = data;

ADC_Async_State = ADC_BUS_INIT;

break;

}

ADC_State = ADC_SYNC;

}

}

#endif

上面的代码我改了一点点,就是多采集了一路平均电流。

AD采集分两种,一个是同步,一个是异步。同步中有三个采集通道,异步中有三个采集通道。同步中的通道为反电势通道、瞬时电流、平均电流。异步采集中

通道为母线电压、温度值、电位器。

异步采集是在同步完成后进行的。同步采集是通过TIM1的通道4触发采集。 所以每个PWM周期采集2路模拟信号。异步采集的通道与PWM的ON与OFF状态无关,所以安排在异步采集中。同步采集中的反电势需要在PWM固定时刻采集,或ON或OFF,看BEMF的过零比较方案。瞬时电流一般在TON时刻采集。因为原来ST有PWM特殊时刻做了一路用户通道中,所以我就把平均电流加到这一通道上了。其实平均电流采集也可以放到异步中。无所谓了,功能实现

是没问题的。

另外,异步采集中的反电势通道一直是设为浮空相的通道的。而且反电势的采集在D与Z之间,即退磁结束与过零点之间进行的异步采集均为反电势,而瞬时电流的采集是在Z与C之间,即过零与换相之间进行的异步采集均为瞬时瞬时

电流。所以用户的通道(平均电流)就是在换相与退磁之间了。

ST的无感方案,启动方案感觉只能针对工业用电机,像在4极对下4K转速的电机,那启动参数不用怎么改。但如果改为航模电机,无论启动PWM改为多少,

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注视频

【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
第五单元 民族艺术的瑰宝_15. 多姿多彩的民族服饰_第二课时(市一等奖)(岭南版六年级上册)_T129830
小学英语单词
精品·同步课程 历史 八年级 上册 第15集 近代科学技术与思想文化
沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
六年级英语下册上海牛津版教材讲解 U1单词
30.3 由不共线三点的坐标确定二次函数_第一课时(市一等奖)(冀教版九年级下册)_T144342
人教版二年级下册数学
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,辽宁省
苏科版数学 八年级下册 第八章第二节 可能性的大小
七年级英语下册 上海牛津版 Unit9
冀教版英语三年级下册第二课
第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T3751175
沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
3.2 数学二年级下册第二单元 表内除法(一)整理和复习 李菲菲
化学九年级下册全册同步 人教版 第18集 常见的酸和碱(二)
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
三年级英语单词记忆下册(沪教版)第一二单元复习
第19课 我喜欢的鸟_第一课时(二等奖)(人美杨永善版二年级下册)_T644386
七年级英语下册 上海牛津版 Unit5
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
苏科版数学八年级下册9.2《中心对称和中心对称图形》
二年级下册数学第二课
《小学数学二年级下册》第二单元测试题讲解
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,辽宁省
【获奖】科粤版初三九年级化学下册第七章7.3浓稀的表示
沪教版牛津小学英语(深圳用) 四年级下册 Unit 8
第8课 对称剪纸_第一课时(二等奖)(沪书画版二年级上册)_T3784187