打印
[MM32软件]

【灵动微电子MM32F5330测评】开发环境搭建点灯测试

[复制链接]
404|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
   MM32F5330 微控制器搭载了安谋科技授权的 Arm®v8-M 架构“星辰” STAR-MC1 内核(兼容 Cortex-M33) 处理器,最高工作频率可达 180MHz。内置了 128KB Flash, 32KBSRAM, 所有 Flash 和 SRAM 配置 ECC, 并集成了丰富的 I/O 端口和外设模块,包括 2 个3MSPS 12 位的 ADC, 1 个 12 位的 DAC, 2 个模拟比较器, 2 个 16 位高级定时器, 2 个16 位和 2 个 32 位通用定时器, 2 个 16 位基础定时器和 1 个低功耗定时器,还包含通信接口如 2 个 I2C, 1 个 I3C 从机, 3 个 SPI 或 I2S, 4 个 UART, 1 个 USART, 1 个低功耗UART, 1 个集成了内部 PHY 的 USB 2.0 全速 Device/Host 控制器,以及 1 个 FlexCANFD 接口。
工作电压为 1.8V ~ 5.5V,工作温度范围为扩展工业型 -40℃ ~ +105℃。 内置多种省电工作模式保证低功耗应用的要求。

STAR-MC1内核的优点:
  • 高性能
    • STAR-MC1采用了从V6-M到V7-M,再到V8-M的架构升级,显著提高了单片机的处理能力。
    • 继承了V7和V8结构的DSP指令和浮点指令计算单元,与上一代的Arm处理器相比,同一主频下有20%的性能提升。
    • 引入了Cache的结构到M级别的处理器中,提高了系统级上的性能和效率,而以往M系列处理器通常不使用缓存技术。
  • 低功耗
    • STAR-MC1在引入缓存技术的同时,还继续降低了产品的面积和功耗,实现了性能、功耗、面积的同时进步。
    • 例如,上海航芯ACM32G103系列在STOP2模式下功耗低于10uA,这得益于其低功耗设计和各种高集成度模拟外设。
  • 安全性
    • V8-M架构开始支持TrustZone安全协议以及自定义扩展,包括协处理器接口和定制化指令集拓展。
    • TrustZone安全方案可以将运行环境隔离成安全区和非安全区,通过硬件隔离确保服务程序或数据得到保护。
  • 创新性
    • 全球同步首发支持自定义指令扩展集,展示了STAR-MC1的创新性。
    • 在内核、总线和外设配置等多个方面进行了创新,包括浮点运算单元(FPU)、数字信号处理单元(DSP)等算法加速单元,以及丰富的外设模块和充足的I/O端口。
  • 适配性
    • 可以适配各种无感FOC算法,如上海航芯ACM32F403系列可以适配各种无感FOC算法,降低了开发门槛。可以作为多种MCU产品的内核,如MM32F5270 MM32F5330和上海航芯ACM32G103系列都采用了STAR-MC1内核。


• MM32F5330 微控制器通信接口丰富
– 4 个 UART 接口
– 1 个 USART 接口(支持 SPI 模式)
– 1 个 LPUART 接口
– 2 个 I2C 接口
– 1 个 I3C 从机接口
– 3 个 SPI 接口(支持 I2S 模式)
– 1 个 USB 2.0 全速 Device/Host 控制器,内置 PHY
– 1 个 FlexCAN-FD 接口,兼容 CAN 2.0B 和 CAN-FD 协议




本次测评的为MM32F5333D7P型号。


下面进入开发,开发环境搭建:



安装Keil PACK 还是不识别芯片,可能是我Keil3.6版本低导致,只好选择ARMV8架构的


DAP识别芯片,那就成功90%。

添加FLM 手动识别芯片。


编写点灯程序:跟标准库风格类似。
void GPIO_Configure(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;

    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);

    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_10 | GPIO_Pin_11 ;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_6 | GPIO_Pin_7;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOC, &GPIO_InitStruct);

    GPIO_WriteBit(GPIOB, GPIO_Pin_10 | GPIO_Pin_11, Bit_SET);
    GPIO_WriteBit(GPIOC, GPIO_Pin_6 | GPIO_Pin_7, Bit_SET);
}

/***********************************************************************************************************************
  * @brief
  * [url=home.php?mod=space&uid=536309]@NOTE[/url]   none
  * @param  none
  * @retval none
  *********************************************************************************************************************/
void GPIO_IO_Toggle(GPIO_TypeDef *GPIOn, uint16_t PINn)
{
    if (Bit_RESET == GPIO_ReadOutputDataBit(GPIOn, PINn))
    {
        GPIO_SetBits(GPIOn, PINn);
    }
    else
    {
        GPIO_ResetBits(GPIOn, PINn);
    }
}

/***********************************************************************************************************************
  * @brief
  * @note   none
  * @param  none
  * @retval none
  *********************************************************************************************************************/
void GPIO_LED_Toggle_Sample(void)
{
    printf("\r\nTest %s", __FUNCTION__);

    GPIO_Configure();

    while (1)
    {
        GPIO_IO_Toggle(GPIOB, GPIO_Pin_10);
        GPIO_IO_Toggle(GPIOB, GPIO_Pin_11);
        GPIO_IO_Toggle(GPIOC, GPIO_Pin_6);
        GPIO_IO_Toggle(GPIOC, GPIO_Pin_7);

        PLATFORM_DelayMS(500);
    }
}

下载OK



现象:




使用特权

评论回复
沙发
地瓜patch| | 2024-6-28 17:40 | 只看该作者
就算是电灯也得高级一点,来个呼吸灯咋样

使用特权

评论回复
板凳
ClarkLLOTP| | 2024-6-28 23:16 | 只看该作者
这个安谋科技和Arm什么关系啊?

使用特权

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

本版积分规则

认证:项目经理
简介:资深嵌入式开发工程师

65

主题

127

帖子

3

粉丝