【极海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 determination
  bNewDIRKey = 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 time
    bNewDIRKey = 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 控制板视频

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值