这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 有奖活动 » 谨防极海G32M3101电机评估板易跌落的陷阱

共1条 1/1 1 跳转至

谨防极海G32M3101电机评估板易跌落的陷阱

助工
2026-06-04 20:12:40     打赏

极海推出了一款电机评估板G32M3101其采用了电机控制专用SoC,是将“MCU+LDO+栅极驱动器”三体合一。

它具有如下特点:

l 强劲算力: 基于Arm® Cortex®-M0+ 内核,最高工作主频64MHz,64KB Flash / 8KB SRAM。内置DIV/MULT 硬件算法加速单元,高效实现有感/无感 FOC 算法控制

l 极致集成: 内置40V 3P+3N 栅极驱动器,设有240ns死区时间及欠压、防直通等保护。内置5V/60mA 高精度LDO(±0.5%),直接为内部MCU供电,无需外部电源模块

l 丰富的高精度模拟外设: 集成 12位高精度ADC(最高2MSPS,支持分段采样与DMA)、2个轨到轨运放(OP-AMP)、2个可编程模拟比较器(COMP)及 ±5℃ 高精度温度传感器。

 

评估板的外观见图1所示,采用的是单面器件布局,由于三合一单芯片架构,故在尺寸上较之其它厂家的产品要小。

image.png

1 评估板外观

正因为尺寸的小巧,也使得它更近乎于完整的产品,可供用户测试的引脚相当要少。

为次,在设计上出现了图2所示的设计结构,它将调试接口与串口通讯结合到了一起。

按说这种设计也无可厚非,但易跌落的陷阱是,当为了进行调试将所用引脚改做串口使用时,后面的灾难就会接踵而至,会在再此下载调试发现评估板已经变砖了,无法进行程序的下载。

image.png


2 共用结构

 

那改既能保持程序调试下载,又能进行串口通讯呢?

方法自然就是进行功能分离,从而各用各的引脚,避免引脚共用所出现的麻烦。

问题来了,由于评估板的功能相对专一,引脚已被瓜分。

所幸的是评估板上,采用了一种组合式设计,可进行相应的工作模式切换,详见图3所示。

image.png

3 霍尔传感器接口

 

恰恰这个接口所用的引脚PA7和PA8是可以设置为串口功能,这样问题就出现了解决的途径,即使用PA7和PA8作为串口。

为此对串口配置函数为:


void DDL_UART0_Config(void)
{
    DDL_GPIO_InitTypeDef GPIO_InitStruct = {0U};
    DDL_SCU_Unlock();
    DDL_SCU_EnableAHBPeripheralClock(DDL_SCU_AHB_PERIPHERAL_GPIOA);
    DDL_SCU_EnableAPBPeripheralClock(DDL_SCU_APB_PERIPHERAL_UART0);
    DDL_SCU_Lock();
    /* Configure the UART TX pin */
    GPIO_InitStruct.Pin        = DDL_GPIO_PIN_7;
    GPIO_InitStruct.Mode       = DDL_GPIO_MODE_ALTERNATE;
    GPIO_InitStruct.Drive      = DDL_GPIO_DRIVE_LOW;
    GPIO_InitStruct.Pull       = DDL_GPIO_PULL_NO;
    GPIO_InitStruct.Alternate  = DDL_GPIO_AF_0;
    DDL_GPIO_LockKey(GPIOA, DDL_GPIO_LOCK_DISABLE);
    DDL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    DDL_GPIO_LockKey(GPIOA, DDL_GPIO_LOCK_ENABLE);
    /* Configure the UART RX pin */
    GPIO_InitStruct.Pin        = DDL_GPIO_PIN_8;
    GPIO_InitStruct.Mode       = DDL_GPIO_MODE_ALTERNATE;
    GPIO_InitStruct.Drive      = DDL_GPIO_DRIVE_LOW;
    GPIO_InitStruct.Pull       = DDL_GPIO_PULL_NO;
    GPIO_InitStruct.InputEnable = DDL_GPIO_INPUT_ENABLE;
    GPIO_InitStruct.Alternate  = DDL_GPIO_AF_0;
    DDL_GPIO_LockKey(GPIOA, DDL_GPIO_LOCK_DISABLE);
    DDL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    DDL_GPIO_LockKey(GPIOA, DDL_GPIO_LOCK_ENABLE);
    UART0_InitStruct.BaudRate             = 115200U;
    UART0_InitStruct.DataWidth            = DDL_USART_DATAWIDTH_8B;
    UART0_InitStruct.StopBits             = DDL_USART_STOPBITS_1;
    UART0_InitStruct.Parity               = DDL_USART_PARITY_NONE;
    UART0_InitStruct.TransferDirection    = DDL_USART_DIRECTION_TX_RX;
    DDL_USART_Init(UART0, &UART0_InitStruct);
    DDL_USART_Enable(UART0);
}

实现串口功能测试的主程序为:

int main(void)
{
  DDL_DeviceConfig();
  printf("\r\n UART Printf Example: retarget the C library printf function to the UART\r\n");
  while (1)
  {          
      if(BOARD_BUTTON_GetState(BUTTON_KEY1)==GPIO_PIN_RESET)
      {
           BOARD_LED_On(LED2);
      }
      else
      {
           BOARD_LED_Off(LED2);
      } 
      DDL_mDelay(200U);    
      printf(" ** Test finished successfully. ** \r\n");
  }
}

经程序的编译和下载,其测试结果见图4所示。

这样就避开了因图CH340E电路之便而跌入变砖的陷阱,从而找到了获得串口通讯的引脚资源。

有了串口通讯功能,再进行调试就敞开了方便之门。

image.png

4 测试效果








关键词: G32M3101    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]