在使用该开发板前,默认已经安装好了MCU开发环境。如果SDK环境未安装,请跳转这里去搭建环境。
目前官方提供的100PIN开发板如下:
如果使用的已经是100PIN的开发板,请参照以下步骤操作。
如果使用的是其他PIN脚(如:32PIN、48PIN、64PIN)的板子,也是参照这里的步骤,最后再修改一点配置即可。
.
步骤:
1.上电
给开发板5V供电,打开开关,可以看到电源旁边的小红灯亮起。
2. 使用example例程
打开example例程,在SDK路径下:
D:\xxxxx\AgRV_pio\platforms\AgRV\examples\example (注意这里的两重example)
由于开发板使用的是407芯片,需要先修改platformio.ini中的board类型:
board = agrv2k_103
修改为:
board = agrv2k_407
注意:该文件修改后,必须手动保存。如果是第一次操作,保存时VSCode右下角会弹出“是否覆盖”对话框,要选“是”。
为了验证简单化,可以先把example_board.ve中的其他配置暂时删除,只留下sysclk、led和uart0(用于log输出)的配置:
SYSCLK 100
HSECLK 8
GPIO4_1 PIN_32 # LED1
GPIO4_2 PIN_31 # LED2
如下图:
注意:该文件修改后,也必须手动保存。如果是第一次操作,保存时VSCode右下角会弹出“是否覆盖”对话框,要选“是”。
3. 烧录VE文件和代码bin
烧录程序需要使用dap-link(AGM专用)或通用的jlink;(串口烧录这里不做讨论)
Dap-link和Jlink在跟开发板的连线上,都是jtag的swd两线(clk和tms)模式。
配置上,如果使用Dap-link(AGM专用),需要在platformio.ini中的配置该行:
protocol = cmsis-dap-openocd
如果使用Jlink,需要在platformio.ini中的配置以下两行:
protocol = jlink-openocd
如果使用dap-link,该烧录器是免驱动的,不用安装任何驱动。
如果使用Jlink,需要在原有Jlink基础上安装插件zadig。方法如下:
安装插件:第一次使用jlink,需要先安装插件【zadig-2.8.exe】,安装参考下图:
(该插件在sdk路径的根目录下)
注:如果第一步从下拉列表中找不到【J-Link】项,可以把下拉列表打开,插拔Jlink 几次,找列表中的变化项。列表中的那个变化项,就是要更新驱动的项。
烧录:
新开发板第一次使用,要先烧录VE配置。(不烧录VE而先烧录程序bin,会报错)
烧录VE:(这里的“烧录VE”,更确切的说,是烧录自动生成的cpld.bin)
再烧录程序:(即,烧录code.bin)
注意:这里的下载,都是在release栏下边。
仿真:
点击仿真按钮,可以进入仿真调试。可单步运行到main函数的结尾。
单步状态下如图:
4. 查看led灯
在example样例程序的main函数中,最后是调用函数TestGpio()。
进入TestGpio()函数,里边是对LED灯的闪灯操作。
如果使用默认example程序,按前边的操作一路走下来,此时是可以看到左下角两个led 灯一起闪烁的。
5.查看log输出:
在以上的基础上,在example_gpio.c中的TestGpio()函数中,while(1)里增加一句log,如下:
注意:该文件修改后,也必须手动保存。如果是第一次操作,保存时VSCode右下角会弹出“是否覆盖”对话框,要选“是”。
最后,再编译并烧录程序 code.bin。
然后,用串口线,接到开发板的串口0(参开发板标识图)上,在PC端的串口工具(波特率115200)上可以看到log的输出信息,如下图所示:
以上,展示了拿到开发板后验证 LED 灯闪烁 和 串口log输出的功能。
6. 如果是其他PIN脚板子
如果使用的其他PIN脚的板子,VScode中的修改项是相近的:1.platformio.ini里的型号配置;2.example_board.ve里的引脚配置。看懂一种描述,其他的都相仿。
接下来分别描述。
.
需要验证(AG32VF103,32pin)的板子:
a. 需要修改platformio.ini里的:board 和 board_logic.device。
board = agrv2k_103
board_logic.device = AGRV2KQ32
b. 需要修改example_board.ve里的串口0和led引脚:
UART0_UARTRXD PIN_9
UART0_UARTTXD PIN_8
GPIO4_1 PIN_14 # LED1 ----请找到实际led的引脚
GPIO4_2 PIN_13 # LED2 ----请找到实际led的引脚
以上修改后,注意对修改过的文件的保存。
然后,烧录VE,烧录程序,就可以看到2个LED闪烁,串口线RX接PIN_8在PC上能看到有log输出。
.
需要验证(AG32VF103,48pin)的板子:
a. 需要修改platformio.ini里的:board 和 board_logic.device。
board = agrv2k_103
board_logic.device = AGRV2KL48
b. 需要修改example_board.ve里的串口0和led引脚:
UART0_UARTRXD PIN_31
UART0_UARTTXD PIN_30
GPIO4_1 PIN_2 # LED1 ----请找到实际led的引脚
以上修改后,注意对修改过的文件的保存。
48PIN有点特殊的改动:
在example_board.asf文件中,有两行(这两行是在100PIN中对23脚使用的样例),这里加#注掉即可。
以上修改后,注意对修改文件的保存。
然后,烧录VE,烧录程序,就可以看到1个LED闪烁,串口线RX接PIN_30在PC上能看到有log输出。
.
需要验证(AG32VF407,64pin)的板子:
a. 需要修改platformio.ini里的:board 和 board_logic.device。
board = agrv2k_407
board_logic.device = AGRV2KL64
b. 需要修改example_board.ve里的串口0和led引脚:
UART0_UARTRXD PIN_43
UART0_UARTTXD PIN_42
GPIO4_1 PIN_10 # LED1 ----请找到实际led的引脚
GPIO4_2 PIN_9 # LED2 ----请找到实际led的引脚
以上修改后,注意对修改过的文件的保存。
然后,烧录VE,烧录程序,就可以看到2个LED闪烁,串口线RX接PIN_42在PC上能看到有log输出。
.
7. 关于型号 103/303/407的说明
这里命名的103/303/407,只是对标ST系列的产品名而已。
事实上,所有AG32系列产品,除了flash大小和引脚的差异外,其他都是相同的。
也就是说,103完全具有和407相同的性能,相同的外设资源。(因为外设引脚大多是可以重映射的,只要引脚够用即可)
那么,platformio.ini里配置103/303/407型号时,只需要关注flash大小即可:
如果flash大小是1M,则配置board = agrv2k_407;如果flash大小是256K,则配置board = agrv2k_103
除了型号配置外,还有引脚配置项。引脚配置项根据实际配置即可。如,48脚配置:board_logic.device = AGRV2KL48,64脚配置:board_logic.device = AGRV2KL64.如果该项为空,则默认为100引脚。
.