本文主要是介绍【极海APM32F035评估板测评】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【极海APM32F035评估板测评】+开箱测试
这篇文章是关于 APM32F035 系列-电机开发板的测评,包含了硬件和软件分析、测试效果以及使用感受。
总的来说,这款开发板在硬件和软件方面都表现出色,为学习和开发电机驱动提供了便利。
极海 APM32F035 开发板是一款基于 APM32F035 微控制器的开发板,主要用于嵌入式系统的开发和学习。以下是对极海 APM32F035 开发板的使用测评:
1. 外观和包装:
- 开发板采用小巧紧凑的设计,方便携带和使用。
- 包装简洁,包含了开发板、文档和相关资料。
2. 硬件特性:
- APM32F035 微控制器具有高性能和低功耗的特点。APM32F035x8T7 微控制器工作时的环境温度范围为:-40℃~+105℃(温度传感
器在-40℃~105℃工作,精度为 3℃),电压范围为:2.0~3.6V,多个省电模式保
证了低功耗应用的要求。
- 开发板提供了丰富的外设接口,如 UART、SPI、I2C 等,方便扩展和连接其他外部设备。
-硬件方面,该开发板使用外部 12~72V DC电源供电,经过开关电源降压输出 12V、5V,三端稳压输出 3.3V。其中 12V 电压输出给到 Gata driver IC 供电,3.3V 给到主控 MCU APM32F035,三相桥堆直接使用输入电压供电。此外,该开发板还带有 USB 转串口,方便进行 PID 调试数据打印,预留接口也可以使用 CAN 总线。
3. 软件支持:
- 提供了详细的文档和示例代码,有助于快速上手和开发。
- 支持 Keil、IAR 等常见的开发环境,方便进行软件开发和调试。
- 软件方面,该开发板使用极海官方提供的例程:APM32F035_Lv_HallFOC_V2.2,并提供了技术指导文件。项目整体代码框架分为四层:用户层、外设驱动层、电机控制驱动层、电机算法层。用户只需要根据电机参数更改程序中电机配对对应的宏定义,并按照指导手册进行参数调试即可。
4. 功能和性能:
- 开发板的功能较为全面,可用于各种嵌入式应用的开发,如物联网、工业控制等领域。
- 性能表现稳定,能够满足一般的嵌入式系统需求。
- 后期会做出相应产品 进行更多压力测试
5. 学习和教育价值:
- 对于学习嵌入式系统的初学者来说,极海 APM32F035 开发板是一个不错的选择。
- 可以通过该开发板了解微控制器的工作原理、外设接口的使用等知识。
-并且在未来会有高压版本 更多的应用环境。
对于学习电机控制 带来了很多数据
6. 性价比:
- 该开发板的价格相对较为亲民,性价比较高。
7.在测试效果方面:使用了滑板轮毂电机参数进行调试,转速稳定 ,换项良好。该开发板在程序封装方面非常强大,使得电机驱动的学习变得更加容易。同时,得到了极海工程师的技术支持,解决了遇到的问题。
后期可能会配合其他外设进行多功能调试。
#include "main.h"
#include "dev_include.h"
#include <stdio.h>
#include <string.h>
#include "m0cp.h"
#include "hardware.h"
#include "systick.h"
#include "user_function.h"
#include "StateMachine.h"
#include "BLDC_SensorLess.h"TIMFlagType TIMFlag;
Motor_TypeDef Motor_1st;
int16_t M1FaultID, M1FaultID_Record;
stc_motor_ramp_cal_t Motor_stcRampCal;uint8_t bNewDIRKey;
uint8_t bOldDIRKey;
uint8_t bBrakeKey = 0;
uint8_t bSwitchFlag = 0;
/*******************************************************************************
* Function Name : Interrupt_Init
* Description : Interrupt priority initialization
*
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void Interrupt_Init(void)
{/* Configure one bit for preemption priority */SCB->AIRCR = (u32)0x05FA0500;/* Enable the ADC Interrupt */NVIC_EnableIRQ(ADC_COMP_IRQn);NVIC_SetPriority(ADC_COMP_IRQn,0); NVIC_EnableIRQ(TMR1_BRK_UP_TRG_COM_IRQn);NVIC_SetPriority(TMR1_BRK_UP_TRG_COM_IRQn,1);NVIC_EnableIRQ(SysTick_IRQn);NVIC_SetPriority(SysTick_IRQn,2); // ADC->STS &= ~(u32)(0x070C); //ADC_FLAG_EOC TMR1->STS &= (u16)0xFFFE;TMR1->STS &= (u16)0xFF7F;
}/*!* @brief Main program** @param None** @retval None**/
int main(void)
{__disable_irq(); Systick_Init(SystemCoreClock / 1000);/* Initialize motor control parameters */Init_Parameter(&Motor_1st);Board_Init();//Initial direction determinationbNewDIRKey = GPIO_ReadInputBit(GPIOC,GPIO_PIN_13);bOldDIRKey = bNewDIRKey;Motor_1st.BLDC.u8Direction = bNewDIRKey;/* Initialize interrupts */Interrupt_Init(); __enable_irq(); //Enable all interrupts/*Ö÷Ñ»· */while (1){//Get key value status in real timebNewDIRKey = GPIO_ReadInputBit(GPIOC,GPIO_PIN_13); //PC13 Direction·½Ïò°´¼übBrakeKey = GPIO_ReadInputBit(GPIOC,GPIO_PIN_14); //PC14 LOCKËø³µ°´¼üif(bBrakeKey == 0){eM1_RunSubState = RunState_Brake;variable_reset(&Motor_1st);}if(bOldDIRKey != bNewDIRKey){bSwitchFlag = 1;}bOldDIRKey = bNewDIRKey;//ÂýËÙ»·Ö´Ðж¯×÷ÈçÏ£ºif(Motor_1st.USER.bSlowLoopFlag){if(bSwitchFlag == 1){//¼Ç¼µ±Ç°µÄÐýÅ¥¹éÒ»»¯ºóµÄÊý¾Ý£¬Í¬Ê±½øÐнµËÙMotor_1st.USER.RP.Out --;//ËٶȽµËÙµ½0ºó¿ªÆô»»Ïàif(0 == Motor_1st.USER.RP.Out){Motor_1st.BLDC.u8Direction = bNewDIRKey;bSwitchFlag = 0;}}else{//Ìí¼ÓÂýËÙ»·µÄËٶȿØÖÆÒÔ¼°ramp´¦Àíº¯ÊýµÈCalcNormalization((Motor_1st.USER.s16VspCmd>>3),&Motor_1st.USER.RP);}/* Slow Loop Statemachine */s_STATE[eM1_MainState]();Motor_1st.USER.bSlowLoopFlag = 0;}}
}
8. 总结:
极海 APM32F035 开发板是一款功能齐全、性能稳定、价格实惠的开发板,适合嵌入式系统的学习和开发。不过,在使用过程中可能会遇到一些技术问题,需要参考官方文档或寻求技术支持。希望以上的测评对你有所帮助!
极海APMF103 控制板视频
这篇关于【极海APM32F035评估板测评】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!