AGRV2K应用指南

11 min read
AG32入门文档

·AGRV2KL100 Pin-Out

可用IO总数:76个。

·AGRV2KL64 Pin-Out

可用IO总数:47个。

·AGRV2KL48 Pin-Out

可用IO总数:32个。

·AGRV2KQ32 Pin-Out

可用IO总数:24个。

·AGRV2K 封装图

·电源与配置电路

AGRV2K需3.3V Vcc供电,通过Compact-JTAG两线(TCK/TMS)方式进行烧写,使用J-LINK下载器或AGM Blaster专用下载器(CMSIS-DAP模式),请参考下图:

NC为悬空脚,请勿接任何电源或信号。
NRST为软复位管脚,低有效,可用于外部控制复位。由于NRST有内部上拉,如不需要外部控制,也可以作为NC悬空,上电后会自动复位。
AGRV2K的3.3V建议单独一路供电,需采用磁珠与PCB上其它3.3V供电进行隔离,以确保器件的稳定供电。

·软件开发流程

1.)软件安装:
解压缩或执行安装文件,安装Supra软件。注意安装目录不能有中文或空格。执行文件为bin目录中的Supra.exe。
运行Supra,选择菜单File -> Import license,选择license目录中的licence.txt文件并导入。
2.)新建项目:
新建一工程目录,路径同样不能有中文或空格。打开Supra,在该目录中新建project,设置项目目录和名称。进入Tools -> Migrate:

Target Directory默认为新建的工程目录,Migrate from directory不填,输入设计名称(这里范例名称为led),Device选AGRV2K系列型号。选择ve文件(管脚分配文件)。IP文件为预先产生的PLL、RAM等IP,Native模式下不用填。


选择对应开发Mode:Native选项(AGM Supra综合工具),Synplicity选项(第三方综合工具,例如Synplify,Mentor等),Compatible选项(兼容Altera Quartus II的综合工具)。
下面主要介绍Native mode的设计流程,这个流程仅支持Verilog语言的设计输入。如使用Compatible设计方式,可参考3.0+版本Manual文档。
现AGRV2K新建工程已锁定Native mode,在File->Setting菜单里,增加了一个Experimental项。填入AGRV_FULL_MODE,可以关闭Native锁定操作。


Mode默认选择Native,点next,进入下一步。
其中的ve文件为IO管脚位置设置,可通过任意文本编辑器自行编辑产生。管脚名称请参考前面的管脚说明表格(PIN_1,PIN_2格式),全局时钟信号或PLL输入时钟要选IO_GB管脚。
ve文件格式如下(管脚设计名称+空格+封装管脚名称,#为注释符):

3.)项目设计:
这一步为加入项目的设计文件,包括用到的所有Verilog(*.v)文件,可添加多个文件。

点击Next,会进行综合并产生网表文件.vqm,没有出错则继续Next下一步。


4.)项目编译:
Supra里继续执行Next,开始进行编译。编译选项,默认即可。如果只是重复编译,也可以在Tools->Compile菜单里直接打开这个编译界面。

编译成功后即可得到最终烧写文件,led.bin。

Win10/11 OS下,正常编译最后一步会利用Python功能产生led_batch.bin。这是用于离线烧录的芯片完整bin文件。如果WIN7或以下OS,最后这步会出错,如已产生led.bin,可以先忽略。在supra中可正常烧录的。

5.)芯片烧写:
Supra软件中选Tools –> Program,AGRV2K仅支持JLINK或CMSIS-DAP,选择正确的Cable。速度默认即可。
可以先点击Query device ID,查看是否检测到器件,正确ID为:40200001
选择编程文件led.bin,点击program开始烧写文件。如没有出现错误信息,显示“done with code 0”,即烧写成功,程序开始运行。

勾选下面的Full Chip erase before program,可以在烧录前擦除芯片程序,并写入默认设置启动项。
勾选Lock after program,则芯片烧录后打开加密锁功能,无法读取出内部程序数据。另外,可以选择Erase功能,进行程序的擦除。

·安装下载器驱动

AGRV2K的下载器仅支持JLINK或AGM DAP-LINK。
WIN下JLINK需安装驱动。运行supra目录中提供的zadig-2.8.exe文件,点击菜单Options – List all devices,选择下面的Jlink。有的版本Jlink会显示为BULK…等,驱动显示为已安装的原Jlink驱动。

点击Replace Driver按键,把Jlink原驱动替换为WinUSB版本。

安装成功后,Jlink驱动显示WinUSB。

WIN10及以上OS,DAP-LINK免安装驱动。WIN7中同样需要按上述流程给DAP-LINK安装驱动。

·内部IP的使用

1.)PLL
AGRV2K器件支持1个PLL。在Supra中添加IP(Tools -> Create IP -> Create PLL)。
PLL输入时钟管脚要选IO_GB管脚,即全局时钟管脚。否则编译会出错,无法布线到PLL输入信号。
PLL IP名称可以自定义,Type要用PLLVE,Feedback Mode这里可忽略。然后根据设计需要选择补偿模式,输入输出时钟的特性要求。
点击Generate按钮,即可产生ip文件。

Verilog文件中调用IP,可参考下面代码。一般只需用到clkin,resetn,clkout和lock,注意clkfb和clkfbout需直连,其它信号按如下代码默认设置即可。

2.)RAM
AGRV2K器件支持4个M9K Block(1K Byte),共4K Byte空间。同样在Supra里Create Memory IP。Type选择BRAM9K,总共不要超过4K Byte的容量。可根据需要选择单口,双口等属性。


3.)内部晶振
AGRV2K器件内部有一8MHz晶振,可作为逻辑设计的时钟输入,也可接入PLL,并支持精度自校准。
设计中使用这个晶振的时钟输入,需要在ve文件中指定时钟输入管脚位置为PIN_OSC,如:

并在项目的设置文件,如led.asf中加入语句:

工程编译完成后,烧录界面,Program需选择“Full chip erase before program”。
Program后显示的信息中包含“Info : Oscillator calibrated with value xx”即表示内部晶振已打开并校准,可以正常使用。
某些JLINK下载器时钟精度较差,利用JLINK校准后,时钟输出频率会偏差较大。建议用AGM DAP-LINK。

·IO特性设置

在工程的设置文件(*.asf,默认为空的文本文件)中加入相关语句,可以设置如下IO特性。这里xxx为代码中IO的名称。
1.)上拉电阻:
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to xxx
2.)下拉电阻:
set_instance_assignment -name CFG_KEEP -to xxx 2’b01 -extension
3.)驱动电流:
set_instance_assignment -name CURRENT_STRENGTH -to xxx 8MA
默认是8MA,可以设置范围2-30mA,偶数值。


注意:上边一行添加完后,务必在后边添加回车换行(保证这行不是文件最后一行)。

·外部时钟输入

全局管脚IO_GB只能接入有源晶振,进入系统时钟网络,及接入PLL。
Supra 2025之后版本,支持AGRV2K CPLD使用无源晶体作为系统时钟输入,和AG32 MCU一样接入OSC_IN和OSC_OUT管脚。

VE管脚文件设为PIN_HSE,如:

下载bin文件时,选中“Enable HSE clock”即可。

·订货信息

AGRV2K为AGM软件中的型号,实际是AG32 MCU系列芯片中的逻辑部分。所以芯片封装丝印为AG32 MCU的AG32VF系列型号。订货时只需参考MCU型号的对应封装,即可作为AGRV2K系列CPLD使用。