VE配置对于一般的嵌入式开发者比较陌生,不清楚是怎么一回事。VE配置对于AG32 MCU+CPLD混合编程来说,非常重要。VE里主要包括了4大部分:PLL(系统时钟,最大5路输出),MCU信号与引脚绑定,CPLD信号与引脚绑定,以及MCU与CPLD之间的信号关联。Prepare Logic以后,系统会自动生成一个CPLD的顶层用户入口。
之前一直提到的AG32与其他芯片(比如ST、GD)在使用上有一个很大的差异点,是AG32的IO引脚并不是定死的,而是配置的。就是通过这个VE文件来实现的。所有可配置的MCU信号,见《AGRV2K_逻辑设置.PDF》。Mcu里用到哪个信号就在VE里配置对应引脚,没用到的不用配置。
下面以100pin封装开发板作为示例:
#PLL 部分:
SYSCLK 100 #配置系统时钟频率,M为单位。407最高频率可到248M
HSECLK 8 #使用的外部晶振频率,M为单位,建议取值范围 4~16
#MCU与引脚:
UART0_UARTRXD PIN_69 #串口0的收引脚
UART0_UARTTXD PIN_68 #串口0的发引脚
GPIO6_2 PIN_23 #IO_Button1
GPIO6_4 PIN_24 #IO_xxxx
I2C0_SDA PIN_36 #I2C0
I2C0_SCL PIN_35 #I2C0
#CPLD与引脚:
CPLD_TX PIN_17:OUTPUT #CPLD一个发送信号绑定到PIN_17
#CPLD与MCU:
GPIO4_1 iocvt_chn:OUTPUT #MCU GPIO4_1 信号与 CPLD iocvt_chn相连。
在书写格式中,前边为信号量的名称,后边为PIN脚编号。
配置的限制:
1. 只有少数几个外设不能配置引脚(芯片定死了引脚):
包括:ADC/DAC/CMP、USB、MAC,以及硬件的JTAG/OSC/RTC/VDD/GND。
如果使用到这些外设,只能使用对应引脚。
如果不用这些外设,空闲出来的引脚可以被用于其他用途。
2. 在可配置的项中,注意相互间的少量冲突;
在《AGRV2K_逻辑设置.pdf》中有详细描述。
另外:不可配置的引脚(ADC、USB这些),在32pin/48pin/64pin/100pin上的对应是不同的。注意区分。