打印
[活动]

【APM32F402R Micro-EVB 测评】介绍、环境搭建、工程测试

[复制链接]
77|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

【APM32F402R Micro-EVB 测评】介绍、环境搭建、工程测试

本文介绍了极海 APM32F402R Micro-EVB 开发板的相关信息,包括主控、开发板、资源参数、功能特点等,介绍了开发环境搭建方案,并结合官方 Demo 例程,演示了闪灯和串口通信工程测试方案和效果。

介绍

APM32F402R Micro-EVB 开发板是极海 APM32F402 系列高性能高性价比 MCU 的最小系统演示板和开发平台,

搭载 APM32F402RBT6 主控芯片。该芯片基于 Arm® Cortex®-M4F 内核、工作主频 120MHz、Flash 128KB。

开发板由 Geehy-LINK 和 APM32F402 最小系统板两部分组成。

开发板支持板载 Geehy-LINK 或第三方工具进行调试,并预留 GPIO、SWD、USART、Type-C 等板载资源,便于快速实现仿真和调试。

包装

  • 采用硬盒外包装,使用醒目封口贴,提醒开发者注意安全,非常贴心;
  • 开发板置于防静电袋,确保运输安全;
  • 内置开发板说明书,详细介绍了板载资源和调试使用方法;

package_view.jpg

外观

  • PCB 采用黑色沉金工艺,丝印清晰,器件布局合理,走线规范整洁;
  • 开发板包括 Geehy-LINK 调试器和主控板两部分,中间使用挖孔方式隔开,可掰开使用;
  • 开发板预留 GPIO 引脚,可根据需求进行焊接和扩展,便于 DIY 设计;
  • Geehy-LINK 采用高性能 APM32F103CBT6 主控,确保工程调试和串口通信的流畅使用;

board_view.jpg

主控

主控型号为 APM32F402RBT6 ,基于 Arm® Cortex®-M4F 内核、工作主频 120MHz、Flash 128KB。

mcu.jpg

下面介绍 APM32F402xB 系列产品的系统架构、产品特性等。

系统框图

system_block.jpg

产品特性

  • 内核

    • 32 位 Arm® Cortex®-M4F 内核
    • 最高 120MHz 工作频率
  • 存储

    • Flash 容量 128KB
    • SRAM 容量 32KB
  • 时钟

    • HSECLK:支持 4-16MHz 外部晶体/陶瓷振荡器
    • LSECLK:支持 32.768kHz 晶体/陶瓷振荡器
    • HSICLK:出厂校准的 8MHz RC 振荡器
    • LSICLK:支持 40kHz RC 振荡器
    • PLL:锁相环,支持 2-16 倍频
  • 电源与电源管理

    • VDD 范围:2.0-3.6V
    • VDDA 范围:2.0-3.6V
    • 备份域电源 VBAT 范围:1.8-3.6V
    • 支持上电/掉电复位(POR/PDR)
    • 支持可编程电源电压检测器(PVD)
  • 低功耗模式

    • 支持睡眠、停机、待机三种模式
  • DMA

    • 两个 DMA,DMA1 有 7 个通道,DMA2 有 5 个通道
  • 调试接口

    • JTAG
    • SWD
  • I/O

    • 最多有 51 个 I/O
    • 所有 I/O 都可以映射到外部中断向量
  • 通信外设

    • 1 个 I2C 接 口 ( 1Mbit/s ), 支 持 SMBus/PMBus
    • 3 个 USART, 1 个 UART ,支 持 ISO7816、LIN 和 IrDA 等功能
    • 2 个 SPI(1 个可复用 I2S),最大传输速度 18Mbps
    • 2 个 CAN,通信波特率最大为 1Mbit/s
    • 1 个 USB OTG-FS
  • 模拟外设

    • 2 个 12 位的 ADC
  • 定时器

    • 2 个可以提供 7 通道 PWM 输出的 16位高级定时器 TMR1/8,支持死区生成和刹车输入等功能
    • 1 个 32 位通用定时器 TMR2,3 个 16
    • 位通用定时器 TMR3/4/5,每个定时器
    • 有 4 个独立通道可以用来输入捕获、
    • 输出比较、PWM 与脉冲计数等功能
    • 2 个看门狗定时器:一个独立看门狗
    • IWDT 和一个窗口看门狗 WWDT
    • 1 个 24 位自减型系统定时器 Sys Tick Timer
  • RTC

    • 支持日历功能
  • 84 Bytes 备份寄存器

  • CRC 计算单元

  • 96 位唯一设备 ID

  • 芯片封装

    • QFN36/QFN48/LQFP48/LQFP64

详见数据手册。

开发板

APM32F402R Micro-EVB 开发板,以 APM32F402RBT6 为主控,板载 Geehy-LINK 调试器;

开发工具支持 Keil:MDK-Arm、IAR Embedded Workbench、Visual Studio Code、Eclipse;

实时系统:FreeRTOS、RTX 。

性能特点

  • 32 位 Arm® Cortex® -M4F 内核
  • 最高工作频率:120MHz
  • Flash 存储器:128KB
  • SRAM 存储器:32KB

板载资源

  • SWD : 1
  • LED:2
  • KEY:1
  • RESET KEY:1
  • GPIO :47
  • USB(Type-C): 1
  • Geehy LINK(Type-C): 1

原理图

SCH_MCU.jpg

SCH_Pins.jpg

功能分布

Pins_out.jpg

环境搭建

  • 下载并安装 Keil ARM MDK 软件;
  • 下载并安装 Geehy.APM32F4xx_DFP.1.0.8.pack 设备支持包;
  • 下载 APM32F402R Micro-EVB 开发板官方 SDK 开发套件;

详见:APM32F402R Micro-EVB .

工程测试

介绍了使用板载 Geehy-Link 调试器实现板载 LED 闪烁和串口通信的工程测试流程。

闪灯

包括硬件连接、程序流程图、关键代码、测试效果演示。

硬件连接

  • 使用 Type-C 数据线连接开发板的 LINK USB 接口和电脑;
  • 打开 设备管理器,查看对应的串口设备和 WinUSB 设备;

device_winusb.jpg

流程图

flowchart_blink.jpg

代码

  • 打开示例工程 APM32F402_403_SDK_V1.0.2\Examples\Board_APM32F402_Tiny\GPIO\GPIO_Toggle\Project\MDK\GPIO_Toggle.uvprojx
  • 打开 ...\APM32F402\Application\main.c 文件,修改延时函数;
#include "main.h"

void Delay(uint32_t scale);

int main(void)
{
    BOARD_LED_Config(LED2);
    BOARD_LED_Config(LED3);

    while (1)
    {
        Delay();
        BOARD_LED_Toggle(LED2);
        BOARD_LED_Toggle(LED3);
    }
}

void Delay(uint32_t scale)
{
    volatile uint32_t delay = 0xfffff * scale;

    while(delay--);
}
  • 保存并重编译代码,确保 0 错误, 0 警告。

build_output.jpg

固件上传

  • 工程编译完成后,点击魔术棒,进入调试器配置标签页,选择 CMSIS-DAP Debugger 作为调试器;
  • 点击 Setting 按钮,进入 DAP 调试界面,检查是否识别到设备号;

debug-setting.jpg

  • 短按开发板 RESET 键,复位并运行程序,可见板载 LED 闪烁。

效果

blink.gif

串口通信

包括硬件连接、程序流程图、关键代码、测试效果演示。

硬件连接

使用 Type-C 数据线连接开发板的 LINK USB 接口和电脑;

流程图

flowchart_uart.jpg

代码

  • 打开示例工程 APM32F402_403_SDK_V1.0.2\Examples\Board_APM32F402_Tiny\USART\USART_Printf\Project\MDK\USART_Printf.uvprojx

  • 打开 ...\APM32F402\Application\main.c 文件,获取主函数;

    通过 LED2 指示串口发送状态——每次发送完成后,翻转LED电平;

#include "main.h"

volatile uint32_t tick = 0;
uint8_t txBuf[] = "Hello USART1 \r\n";

int main(void)
{
    uint8_t i;
    USART_Config_T USART_ConfigStruct;

    BOARD_LED_Config(LED2);
    BOARD_LED_Config(LED3);

    USART_ConfigStruct.baudRate = 115200;
    USART_ConfigStruct.hardwareFlow = USART_HARDWARE_FLOW_NONE;
    USART_ConfigStruct.mode = USART_MODE_TX;
    USART_ConfigStruct.parity = USART_PARITY_NONE;
    USART_ConfigStruct.stopBits = USART_STOP_BIT_1;
    USART_ConfigStruct.wordLength = USART_WORD_LEN_8B;
    BOARD_COM_Config(COM1, &USART_ConfigStruct);

    SystemCoreClockUpdate();
    SysTick_Config(SystemCoreClock / 1000);
    while (1)
    {
        Delay();
        for(i = 0; i < sizeof(txBuf); i++)
        {
            while(USART_ReadStatusFlag(USART1, USART_FLAG_TXBE) == RESET);
            USART_TxData(USART1, txBuf[i]);
        }
        BOARD_LED_Toggle(LED2);
    }
}

void Delay(void)
{
    tick = 0;

    while(tick < 500);
}
  • 保存并编译代码,上传代码至芯片;
  • 短按 RESET 键,复位并运行程序,可见板载 LED 闪烁。

效果

  • 打开串口调试助手软件,配置串口参数,包括端口号、波特率等;
  • 打开串口,接收芯片发送的字符串信息,同时板载 LED2 闪烁,间隔 500 毫秒;

uart_printf.gif

总结

本文介绍了极海 APM32F402R Micro-EVB 开发板的相关信息,包括主控、开发板、资源参数、功能特点等,介绍了开发环境搭建方案,并结合官方 Demo 例程,演示了闪灯和串口通信工程测试方案和效果,为后续的开发和测试做好铺垫,也为相关产品的开发和应用提供了参考。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

67

帖子

0

粉丝