打印
[开发工具]

【华大测评1】HC32F460_EVB简介与开发环境搭建(基于Win10与MDK5)

[复制链接]
2220|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nich20xx|  楼主 | 2020-10-27 23:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nich20xx 于 2020-10-28 07:43 编辑

1 前言

HC32F460_EVB是华大半导体推出一款基于32bit Cortex-M4F内核的高性能MCU HC32F460的评估板。板上搭载了一颗采用LQFP100封装 、集成FPU、MPU及支持SIMD指令DSP的高性能微控制器HC32F460PETB。

HC32F460采用40nm eFlash先进工艺,最高工作主频为168MHz,Flash加速单元(高效的Cache和Prefetch)保证0-wait程序执行,并达到210DMIPS或485Coremarks的运算性能。

HC32F460芯片的片上资源非常丰富,包括2个独立12-bit 2.5MSPS ADC,DAC、1个PGA、3个高速比较器CMP,众多的通信接口有I2C、I2S、SPI、USART、SDIO、QSPI、CAN、USB2.0 FS,支持AES/HASH/TRNG数据加密功能。业界领先抗ESD,抗Latch up,低EMI,5V耐压I/O等特性。


1.1 官方资源
  • 华大官网 https://www.hdsc.com.cn/
  • 华大半导体MCU资料整合包下载

    •    百度网盘下载链接: https://pan.baidu.com/s/1hlcBW0rOg_1w3spzE2SbEQ 提取码:kj7u

    • 腾讯微云下载链接   https://share.weiyun.com/mYaXwqf6
  • 华大HC32F460官方资料github仓库   https://github.com/hdscmcu/hc32f460

2 HC32F460_EVB简介
2.1 HC32F460_EVB硬件资源

HC32F460_EVB板载资源非常的丰富,同时还预留了很多扩展接口,便于搭建产品原型等,主要资源如下:
  • 主控芯片 HC32F460PETB

    •    Cortex-M4
    •    512K FLASH,192K SRAM
    •    最大主频168MHz
    •    板载32768晶振与8MHz高频晶振
  • 板载QSPI FLASH芯片

    •    W25Q64JVSSIQ
  • 板载IIC EEPROM芯片

    •    AT24C02D
  • 板载CAN PHY芯片

    •    TJA1042T
  • 板载AUDIO CODEC芯片

    •    WM8731SEDS
  • 板载Micro SD卡槽(TF卡)
  • 板载SMART CARD接口
  • 板载1个电位器,可用于ADC12测试
  • 具备4个独立按键和3x3矩阵按键,1个复位按键
  • 板载4个用户LED,1个电源LED
  • 板载USB转串口芯片,用于串口日志打印,同时通过USB口供电


    •     PL2303H
  • 板载0.91英寸 OLED屏(128*32)
  • 板载USB-FS micro USB接口
  • JTAG-20、SWB-5烧写接口
  • 外设IO全部引出,便于快速搭建产品测试
  • 扩展出1路SPI接口(SPI3)、I2C接口(I2C1)、2路串口(USART3\USART4)MOTOR接口、
2.1.1 系统供电2.1.1.1 USB-UART (J1)
使用Mircro USB cable通过J1供电5V,跳帽J2需短接。这种方式可以使用USB转串口功能。
2.1.1.2 DC-IN(TP1、TP3)

通过TP1 (5V)和TP3(GND)直接5V供电

2.1.1.3 USB-Device(J14)

将MCU作为USB-Device时,通过J14(Micro USB Cable)供电 ,需短接跳帽J15。

2.1.1.4 JTAG(J3)

标准JTAG接口电路(J3)也可以直接提供3.3V供电。使用时,注意供电电流。

2.1.2 烧写(仿真)接口2.1.1.1 JTAG-20

标准JTAG接口电路(J3),支持JTAG调试

2.1.1.2 SWD-5

5线SWD调试接口(J4),支持SWD调试

2.1.3 调试串口

J1,USB-UART电路,与HC32F460的USART3相连,可打印串口调试信息

2.2 HC32F460_EVB软件资源
HC32F460_EVB提供了比较详细与完整的SDK开发包,供用户参考使用,示例代码支持MDK、IAR开发,上手非常的方便。
从https://github.com/hdscmcu/hc32f460 下载的hc32f460-master.zip,解压后如下
3 Window下搭建MDK开发环境3.1 安装MDK DFP

使用MDK开发,若已经安装好MDK5,还需要安装华大MCU(HC32F46x)的pack支持包(DFP (Device Family Pack))。

在  hc32f460-master\hc32f460_sdk\CMSIS_PACK 文件夹下,点击安装最新的pack包即可

3.2 流水灯测试示例
  • 进入hc32f460-master\hc32f460_sdk\DeviceDriverLibrary\hc32f46x_ddl\example\gpio\gpio_output目录,打开MDK工程并编译,使用JLINK直接下载到EVB中。
  • 可以看到4个LED以每100ms交替闪烁,实现流水灯效果
int32_t main(void)
{
    stc_port_init_t stcPortInit;

    /* configuration structure initialization */
    MEM_ZERO_STRUCT(stcPortInit);

    stcPortInit.enPinMode = Pin_Mode_Out;
    stcPortInit.enExInt = Enable;
    stcPortInit.enPullUp = Enable;

    /* LED0 Port/Pin initialization */
    PORT_Init(LED0_PORT, LED0_PIN, &stcPortInit);

    /* LED1 Port/Pin initialization */
    PORT_Init(LED1_PORT, LED1_PIN, &stcPortInit);

    /* LED2 Port/Pin initialization */
    PORT_Init(LED2_PORT, LED2_PIN, &stcPortInit);

    /* LED3 Port/Pin initialization */
    PORT_Init(LED3_PORT, LED3_PIN, &stcPortInit);

    while(1)
    {
        LED0_TOGGLE();
        Ddl_Delay1ms(DLY_MS);
        LED1_TOGGLE();
        Ddl_Delay1ms(DLY_MS);
        LED2_TOGGLE();
        Ddl_Delay1ms(DLY_MS);
        LED3_TOGGLE();
        Ddl_Delay1ms(DLY_MS);
        /* de-init if necessary */
        //PORT_DeInit();
    };
}

3.3 串口回环测试示例
  • 进入\hc32f460-master\hc32f460_sdk\DeviceDriverLibrary\hc32f46x_ddl\example\usart\uart_polling_rx_tx目录,打开MDK工程并编译,使用JLINK直接下载到EVB中。
  • 打开PC端串口调试助手,115200N81,然后发送任意字符,EVB中USART3会返回接收到的字符,在串口调试助手可以看到EVB返回的字符。
int32_t main(void)
{
    uint16_t u16RxData;
    en_result_t enRet = Ok;
    uint32_t u32Fcg1Periph = PWC_FCG1_PERIPH_USART1 | PWC_FCG1_PERIPH_USART2 | \
                             PWC_FCG1_PERIPH_USART3 | PWC_FCG1_PERIPH_USART4;
    const stc_usart_uart_init_t stcInitCfg = {
        UsartIntClkCkNoOutput,
        UsartClkDiv_1,
        UsartDataBits8,
        UsartDataLsbFirst,
        UsartOneStopBit,
        UsartParityNone,
        UsartSamleBit8,
        UsartStartBitFallEdge,
        UsartRtsEnable,
    };

    /* Initialize Clock */
    ClkInit();

    /* Enable peripheral clock */
    PWC_Fcg1PeriphClockCmd(u32Fcg1Periph, Enable);

    /* Initialize USART IO */
    PORT_SetFunc(USART_RX_PORT, USART_RX_PIN, USART_RX_FUNC, Disable);
    PORT_SetFunc(USART_TX_PORT, USART_TX_PIN, USART_TX_FUNC, Disable);

    /* Initialize UART */
    enRet = USART_UART_Init(USART_CH, &stcInitCfg);
    if (enRet != Ok)
    {
        while (1)
        {
        }
    }

    /* Set baudrate */
    enRet = USART_SetBaudrate(USART_CH, USART_BAUDRATE);
    if (enRet != Ok)
    {
        while (1)
        {
        }
    }

    /*Enable RX && TX function*/
    USART_FuncCmd(USART_CH, UsartRx, Enable);
    USART_FuncCmd(USART_CH, UsartTx, Enable);

    while (1)
    {
        if (Set == USART_GetStatus(USART_CH, UsartRxNoEmpty))         /* Warit Rx data register no empty */
        {
            u16RxData = USART_RecData(USART_CH);

            while (Reset == USART_GetStatus(USART_CH, UsartTxEmpty))  /* Warit Tx data register empty */
            {
            }

            USART_SendData(USART_CH, u16RxData);
        }

        UsartRxErrProcess();
    }
}

4 参考
  • HC32F460 SDK包简介 HC32F460 EVB Introduction.pdf
  • 华大MCU官网   https://www.hdsc.com.cn/
  • 华大官方资料github仓库    https://github.com/hdscmcu/hc32f460
  • 【活动】华大开发板周周送,免费派送进行中     https://bbs.21ic.com/icview-2996440-1-1.html

使用特权

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

本版积分规则

2

主题

11

帖子

0

粉丝