谢谢elecfans社区能够提供宝贵的机会让我可以拿到这块异构的芯片开发板。一直在为产品寻找替代的方案,这块芯片能够以①mcu方式;②fpga方式;③mcu+fpga混合方式等三种方式进行开发。
目前的进程是搜罗了不同平台的视频和文字教程,感谢提供视频和文字的几位博主。
接下来,也计划先用这块芯片的板子尝试不同的外设,把fpga的能力充分用起来。
大部分资料都可以透过manufacturer的官网搜得到。
①官网:http://www.tcx-micro.com/
②入口教程:http://www.tcx-micro.com/doc_26999784.html
③环境搭建:http://www.tcx-micro.com/doc_26730055.html
④b站博主的gitee代码仓库:https://gitee.com/lalhan/agm-learning/tree/master
⑤b站博主的英国威廉希尔公司网站
:https://space.bilibili.com/399384226/channel/collectiondetail?sid=1565256
主板正面图
主板背面图
主板及配件开箱图
![IMG_0809.jpeg]
![IMG_0808.jpeg]
烧写器及配件的开箱图
二、GPIO 的使用:
可用 GPIO:
AG32 芯片内部可用 gpio 共有 80 个,分为 10 组,每组 8 个。
代码中各组对应为:GPIO0、GPIO1、GPIO2、...
组内各 IO 用 bit 表示:GPIO_BIT0、GPIO_BIT1、GPIO_BIT2、...
使用时,用 组 ID+组内 ID 来标识唯一的 IO。
这里和 ST 是相仿的,ST 分为 GPIOA/GPIOB/GPIOC,PIN_1/PIN_2/PIN_3...
AG32 为:GPIO0/GPIO1/GPIO2...,GPIO_BIT0/GPIO_BIT1/GPIO_BIT2...
对外映射:
程序中使用到的 GPIO 要映射到对外的管脚 PIN。
映射方式,就是在 ve 文件中配置,如下图:
上图的示例,就是把 gpio4_1 映射到管脚 92。
在 AG32 中,必须映射后,代码中操作 gpio 时,才会真正使能到硬件管脚。
这里 GPIOx_y 的角标取值范围:x (0 ~ 9), y (0 ~ 7)
PIN_z 的取值范围:z 小于最大引脚数
在取值范围内,满足限制条件下,任意 GPIOx_y 可以映射到任意 PIN_z。
(“哪些管脚不能被使用”的限制条件,参考文档:AGRV2K_逻辑设置.pdf)
这里配置的 GPIO0_0,等同于代码中的 (GPIO0, GPIO_BIT0)。
样例 1:
用 pin3 引脚接 led 灯,并控制亮灯(高为亮)。
步骤一:
先做 ve 文件中定义引脚映射(gpio 使用 4-1):
步骤二:
定义使用的宏:(也可以不定义,直接在代码中使用)
步骤三:
代码中调用:
步骤四:
编译并烧录 ve 文件,编译并烧录 code;
驱动开放的 API 包含:
GPIO_SetOutput/GPIO_SetInput ---设置 IO 为输入输出
GPIO_SetHigh/GPIO_SetLow ---置高置低
GPIO_Toggle ---高低切换
GPIO_IntConfig ---配置中断触发方式
GPIO_EnableInt/GPIO_DisableInt/GPIO_ClearInt ---中断控制
GPIO_AF_ENABLE/GPIO_AF_DISABLE ---切换 GPIO 模式(如果有复用)
Gpio 中断函数 SDK 中已经默认指定:GPIOx_isr
如果要重定向为函数,通过 plic_isr[GPIOx_IRQn] = gpio_xxx_isr 的方式来设置;
样例 2:
用 pin96 接外部按键,处理按键消息;
步骤一:
在 ve 文件中配置 gpio4_5 映射到 pin96;
步骤二:
在测试代码中,编写 IO 初始化,并实现中断函数:
注:这里的中断函数 GPIO4_isr 无需程序中再次指定。
步骤三:
如果外部威廉希尔官方网站
没有上拉设计,则需要设置芯片内的上拉。
设置方式:
在\\platforms\\AgRV\\boards\\agrv2k_x0x\\board.asf 文件 中添加(下图红框内容):
内容:set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to PIN_96
上拉关键字:WEAK_PULL_UP_RESISTOR
下拉关键字:WEAK_PULL_DOWN_RESISTOR
步骤四:
编译并烧录 ve 文件,编译并烧录 code;
以上摘录自文档: AG32 驱动部分的使用.pdf
*附件:AG32驱动部分的使用.pdf
更多回帖