【AutoChips AC7801x电机demo板测评】+关键外设测试-HALL采集
[复制链接]
本帖最后由 我爱下载 于 2020-12-5 12:15 编辑
关键外设测试
——HALL接口的测试
- 硬件接口
如前述所描述,系统主板集成了一个HALL接口,允许输入电机的位置传感器信号。
根据数据手册和原理图中的描述,可以知道,线路板采用PWDT1作为霍尔元件的输出采集端,连接到PC6、PC7、PC8三个引脚。当然,还有5V电源和地。
- 软件设置
AC7801x控制器内部集成了PWDT外设,可以用来采集霍尔信号的输入,可以输出霍尔状态,霍尔输入信号高低电平的时间,从而求出霍尔信号的频率,占空比等信号。
PWDT的机构框图
霍尔测量模式
两种常见的Hall安装方式
/* PWDT1 init function */
static void ATC_PWDT1_Init(void)
{
/* USER CODE BEGIN PWDT1_Init 0 */
/* USER CODE END PWDT1_Init 0 */
PWDT_ConfigType pwdtConfig;
/* USER CODE BEGIN PWDT1_Init 1 */
/* USER CODE END PWDT1_Init 1 */
MSP_PWDT_Init(PWDT1);
pwdtConfig.clkPsc = PWDT_CLK_PRESCALER_1;
pwdtConfig.edgeType = PWDT_RISING_START_CAPTURE_ALL;
pwdtConfig.channel = PWDT_INPUT_CH_0;
pwdtConfig.overflowInterruptEn = ENABLE;
pwdtConfig.readyInterruptEn = ENABLE;
pwdtConfig.interruptEn = ENABLE;
pwdtConfig.cmpModeEn = DISABLE;
pwdtConfig.mode = PWDT_MEASURE_MODE;
pwdtConfig.hallModeEn = ENABLE;
pwdtConfig.filterPsc = PWDT_FILTER_PRESCALER_1;
pwdtConfig.filterValue = 10;
pwdtConfig.filterEn = ENABLE;
pwdtConfig.callBack = PWDT1_IRQHandler_Callback;
PWDT_Init(PWDT1, &pwdtConfig);
/* USER CODE BEGIN PWDT1_Init 2 */
/* USER CODE END PWDT1_Init 2 */
}
生成的中断处理函数
/**
* @brief This function handle PWDT1 interrupt.
* @param[in] device: PWDT_Type pointer
* @param[in] wpara: callback parameter
* @param[in] lpara: callback parameter
* @return none
*/
void PWDT1_IRQHandler_Callback(void *device, uint32_t wpara, uint32_t lpara)
{
if (wpara & PWDT_INIT0_OVF_Msk)
{
/* USER CODE BEGIN OVERFLOW INTERRUPT */
/* USER CODE END OVERFLOW INTERRUPT */
}
if (wpara & PWM_STR_CHSF_Msk)
{
/* USER CODE BEGIN PLUSE PLUSE EFFECTIVE */
/* USER CODE END PLUSE PLUSE EFFECTIVE */
}
/* USER CODE BEGIN PWDT1_IRQHandler_Callback */
/* USER CODE END PWDT1_IRQHandler_Callback */
}
/* USER CODE BEGIN PLUSE PLUSE EFFECTIVE */
g_hallStatus = PWDT_GetHallStatus(PWDT) & 0x07;
g_positvePulse = PWDT_GetPositivePulseWidth(PWDT); //获取正脉宽计数值
g_negativePulse = PWDT_GetNegativePulseWidth(PWDT); //获取负脉宽计数值
if (0 != (g_positvePulse + g_negativePulse))
{
/*
计算频率和占空比
频率 = PWDT时钟源 / PWDT时钟分频 / 正+负脉宽计数值
占空比 = 正脉宽计数值 / 正+负脉宽计数值
*/
g_freq = PWDT_CLK / (g_positvePulse + g_negativePulse);
g_duty = ((g_positvePulse * 100)/ (g_positvePulse + g_negativePulse));
}
/* USER CODE END PLUSE PLUSE EFFECTIVE */
- 效果展示
电机霍尔线的硬件连接图
利用uart端口将霍尔信号 的输入状态打印到串口终端中。通过终端打印可以清晰的看到霍尔信号的变化过程为1-5-4-6-2-3。
结论,通过对于特定电机及预想的电机转速测量范围,可以进一步调整PWDT的预分频系数,来保证转速测量范围。
|