发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表
打印
[MM32硬件]

搭建灵动微MM32G0001A6T的简易开发环境

[复制链接]
675|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 suncat0504 于 2023-12-12 08:26 编辑

#申请原创# @21小跑堂   
作为学习单片机的经典,自然是通过GPIO点亮LED,或者是响应按钮的外部中断例程。这我们看看SOP8封装的芯片MM32G0001A6T得引脚,

除了VDD和GND固定外,我们可以使用PA14、PA1、PA13、PA15、PA2、PA3这六个GPIO口。这次测试,我没有使用PCB转换焊盘,而是使用了转换座。

使用mate60pro的微距拍摄功能,在LED灯光下拍摄的,效果不是很好,但应该能看清型号了。
在学习开发之前,是需要先弄好开发环境得。开发工具吗,自然是Keil了,下载呢的,准备使用灵动微的DAP-LINK下载器。这个下载器,我没有单独购买,而是打算从灵动微单片机开发板迷你核心板FTHR-G0001实验板上搞下来。

顶视图

底视图
顶视图板子的右半部分就应该是下载器,左侧是以MM32G0001A1TC为控制核心的开发板。两个板子之间的连接部分,我觉得是可以被分开的。分开后,已久了已使用SIP7的连接线连起来,不影响后续对左侧开发板的开发、下载。
根据BOM资料,


两块板子连接部分可以使用P3,P4连接起来,原理图上




P3和P4是完全匹配的,证实了先前的猜测。实际用万用表也可以在没有断开之前测试连接情况。所以可以放心大胆地分开吧。在MM32G0001A6T提供的PA14、PA1、PA13、PA15、PA2、PA3这六个GPIO口是包含了下载用的PA14、PA13的。
说起来容易,要分开的时候,才发现,板子结合部并没有分割槽,想完成分开两个板子,还真需要花点功夫。算了,还是用手里的其它下载器试试吧。我先选择的是创新工坊的PowerLink2。按照功能定义,连接VDD,GND,SWDIO,SWCLK四个引脚,先忽略RXD和TXD两个引脚。
连接方式如下:
------------------------------------------
PowerLink2        MM32G0001A6T引脚
-------------------------------------------------
VDD                  4(VDD)GND(VSS)    2(VSS)
SWCLK             1 (SWCLK)
SWDIO             5 (SWDIO)
-------------------------------------------
然后打开GPIO_LED_Toggle示例工程,看看下在设置中是否能找到芯片信息(打开工程前,你需要安装MM32G0001A6T的Keil设备支持包)。



看起来运气不错,找到了。
修改程序,为了方便使用我做的测试工具连接芯片,需要修改PA3用于驱动LED。
/***********************************************************************************************************************
    [url=home.php?mod=space&uid=288409]@file[/url]    gpio_led_toggle.c
    [url=home.php?mod=space&uid=187600]@author[/url]  FAE Team
    [url=home.php?mod=space&uid=212281]@date[/url]    18-Apr-2023
    [url=home.php?mod=space&uid=247401]@brief[/url]   THIS FILE PROVIDES ALL THE SYSTEM FUNCTIONS.
*********************************************************************************************************************/

/* Define to prevent recursive inclusion */
#define _GPIO_LED_TOGGLE_C_

/* Files include */
#include <stdio.h>
#include "platform.h"
#include "gpio_led_toggle.h"

void GPIO_Configure(void)  {
    GPIO_InitTypeDef GPIO_InitStruct;

    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);

    GPIO_StructInit(&GPIO_InitStruct);

    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_3;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_SET);
}

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);
    }
}

void GPIO_LED_Toggle_Sample(void) {
    printf("\r\nTest %s", __FUNCTION__);

    GPIO_Configure();

    while (1)  {
        GPIO_IO_Toggle(GPIOA, GPIO_Pin_3);
        PLATFORM_DelayMS(500);
    }
}

主程序部分
#define _MAIN_C_

/* Files include */
#include "platform.h"
#include "gpio_led_toggle.h"
#include "main.h"

int main(void) {
    PLATFORM_Init();

    GPIO_LED_Toggle_Sample();

    while (1)  {
    }
}

试着编译成并下载。然后,利用面包板之类的简易板子,只接以下三个引脚:VDD,VSS(GND), PA3。PA3通过限流电阻和一支LED发光管接到VDD上。上电,可以看到LED周期闪烁起来。结果不错!





使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2023-12-18
理由:恭喜通过原创审核!期待您更多的原创作品~

沙发
weifeng90| | 2023-12-12 07:50 | 只看该作者
不错,转接座漂亮。

使用特权

评论回复
板凳
xch| | 2023-12-12 11:44 | 只看该作者
泣血告诉大家别用奇葩的G0001。它天生就是个妲己。

使用特权

评论回复
地板
ughbss| | 2023-12-12 19:34 | 只看该作者
xch 发表于 2023-12-12 11:44
泣血告诉大家别用奇葩的G0001。它天生就是个妲己。

一听就是有故事的人,快来讲一讲

使用特权

评论回复
5
xch| | 2023-12-12 23:02 | 只看该作者
先晒个植物人,它就是妲己G0001.

使用特权

评论回复
6
xch| | 2023-12-13 11:07 | 只看该作者
奇葩的管脚复用。简直不是人,是妲己

使用特权

评论回复
7
ughbss| | 2023-12-13 11:33 | 只看该作者
CLK一般内部下拉,它这玩意儿一但配置为NRST功能,会一直处于复位状态?至少配置为NRST以后,SWD是连不上了。确实是奇葩的设计

使用特权

评论回复
8
suncat0504|  楼主 | 2023-12-13 15:33 | 只看该作者
哈哈哈,说的有道理

使用特权

评论回复
9
xch| | 2023-12-13 16:33 | 只看该作者
奇葩刚刚开幕。

然后这MCU 不能使用原厂自己的仿真器在线调试。必须用别家的各种 link 仿真器进行调试。可是却不能没有原厂的仿真器。奇葩吧?

使用特权

评论回复
评论
xch 2023-12-14 13:43 回复TA
@suncat0504 :灵动的一个仿真器可以换几百片妲己 
suncat0504 2023-12-13 22:59 回复TA
我觉得吧,这个简单的小芯片,应该不大可能用到复杂场景。一个几角钱的芯片,为啥要寄与太多期待呢?灵动微有功能更强大的芯片,也支持Keil开发。至于您说的仿真器,我觉得只要能用别的仿真,也不算啥大问题,毕竟都是这几年才发展起来的。话说,华为自己第一次出的手机芯片,也不咋地。只要努力,以后会变好的。 
10
xch| | 2023-12-14 11:13 | 只看该作者
此奇葩妲己进行开发时会随时变成植物人。 比如使用原厂提供的代码下载成功也可以运行。然后手贱在main 函数的 while(1){} 循环之中加入 __WFI();  这时MCU就变成植物人了。无法使用别家的各种link 调试。

这时必须用上原厂的dap link 对此妲己进行心肺复苏。 全片擦除。擦除后,再用别家link 进行调试。 原厂的link 随时备用。

使用特权

评论回复
11
xch| | 2023-12-14 11:25 | 只看该作者
我们工程师不是纣王,为何要此等妖孽为伴?

使用特权

评论回复
12
suncat0504|  楼主 | 2023-12-14 17:26 | 只看该作者
xch 发表于 2023-12-14 11:25
我们工程师不是纣王,为何要此等妖孽为伴?

唉,何必呢?选自己合手的不就好了。气大伤身啊。

使用特权

评论回复
发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:大连伊飞特信息技术有限公司软件工程师
简介:本人于1993年毕业于大连理工大学。毕业后从事单片机开发工作5年,之后转入软件开发工作至今。

87

主题

2421

帖子

5

粉丝