拿到兆易创新科技的GD32103E EVAL开发板还是颇为意外的,记得第一次接触这公司是在去年夏天,那时因为一个项目,申请使用了这公司的SPI Flash样品,而在此过程中令我印象最深刻的不是产品本身有多出众,而是兆易的技术支持及时、给力。兆易创新科技是一家主要致力于各类存储器,控制器以及周边产品设计研发的芯片公司,但在微控制器领域算是一个新星,不过如今随着嵌入式闪存作为MCU的另一种差异化产品在市场有不错的反响,这无疑对兆易创新科技进军MCU领域有着得天独厚的优势。
回到GD32103E EVAL板卡,这是一块基于GD32F103ZET6微控制器的开发板,长宽为160mm*110mm,相比一般的开发板要大。
GD32103E EVAL开发板背面
板卡背面只有几个基于微控制器GD32F103ZET6电路的无源器件电阻、电容、电感。
硬件篇
为了对整个板卡的构造有个细致的了解,我们拆下LCD模块,对板卡的硬件做一个详细介绍。
LCD模块正面(带有4线电阻屏)
LCD模块背面
LCD模块背面搭载一个由深圳矽普特提供的4线触摸IC--XPT2046,主要功能是通过两次A/D转换查出被按屏幕的位置,触摸信号线I/O口的可承受电压范围为1.5V~5.25V。
LCD模块与主板的接口是一个32PIN的双排针接口,LCD模块通过塑料螺丝以及排针与主板固定。
板卡供电模块
GD32103E EVAL开发板主要由5V mini USB线或者5V DC适配器供电,通过SW1开关切换,并且通过5V转3.3V的线性稳压器AMS1117输出可供微控制器GD32F103ZET6直接使用的工作电压。
RTC供电方式及开发板启动模式
板卡的RTC除了通过线性稳压器输出的3.3V电压工作,亦可以通过板载电池供电,板卡预留了后备电池的电池槽及切换供电方式的跳帽JP0。
开发板的启动模式同样可以通过JP2、JP3跳帽进行设置,在板卡上有白色丝印标明。
音频电路以及SD卡功能
比较特别的是GD32103E EVAL开发板附带了音频电路,这是一般开发板上不常带有的功能,其中音频的数模转换用的是Ti 的24 位低功耗立体声音频 DAC芯片--PCM1770,这是在消费类电子产品设计中用的非常多的一款产品。
然而由于信号存在复用的关系,音频功能和SD功能无法同时工作,只能通过JP20跳帽切换使用。
GD32103E EVAL开发板存储器
回顾整个板子,我们不难发现,GD32103E EVAL开发板在存储器扩展上面尽心尽力,有并行的Nand Flash、串行的SPI Flash以及I2C接口的EEPROM。开发板的外设接口众多,从另一方面也应证了GD32F103ZET6外设资源确实丰富。
开发板的设计中规中矩,很常见的布局,大量的外设接口用于评估微控制器的资源。可惜的是板上没有板载的调试模块,因此使用时还需要配备一个支持M3内核的仿真器(比如J-link)。GD32F103ZET6采用了0.11um工艺,主频提高到了108MHz,加上微控制器中的gFlahs专利技术提高片上Flash存储访问速度,代码效率大幅提高。
作为国内第一款设计开发的通用32位微控制器GD32F103系列目标就是瞄准了STM32F103系列,兆易创新表示价格会非常有吸引力。模仿然后超越是国内公司也是后发者经常采用的一个策略。从硬件来看GD32F103已经是一个青出于蓝的通用微控制器,完备接口,大量复用外设资源,更快的工作频率,更高效代码执行。
软件篇
介绍完硬件,不能免俗的也来说说GD32103E EVAL开发板的软件环境。作为一家进军MCU领域的新型科技公司,在软件上的短板是无法规避的,我们且看兆易创新是如何克服这个问题的。
因为GD32F103ZET6微控制器基于M3内核,故通用的IDE工具如MDK-ARM、IAR等都能使用,又可以通过移植现成的STM32F103系列的库文件、程序来搭建其框架,只是在某些地方需要做一些修改。
以MKD-ARM软件为例,要使软件正确工作在GD32F103ZET6微控制器上,必须完成两个必要步骤:
1.修改启动时间,将宏定义#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) 修改为0xFFFF
选择Flash的编程算法
完成这两步,基本的下载调试就没问题了,然而代码的移植不是一簇而就的,虽然跟STM32F103系列产品为PIN-TO-PIN,但是由于内部结构不同,部分库文件、程序都需要做一些改动。比如:
在应用中编程
GD32F103系列的Erase和Program时间都要比STM32稍微长些,所以要延长GD32的Erase和Program的时间,具体在宏定义EraseTimeout和ProgramTimeout中延长时间。
Erase和Program时间
延迟计数
我们知道,因为GD32采用了Flash访问的零等待技术,GD32访问Flash的速度比STM32要快,所以若程序采用类似循环计数,需要适当增加计数量,如原来计数量的40%~50%。
通过第三方ISP软件下载程序
通过软件方面的了解,我们看到了无法规避的短板,就目前而言,GD32103E EVAL开发板只能通过STM32F103系列的框架进行自身产品的研发,软件的例程也是基本移植STM32F103系列的,客户在使用产品时需要一定的技术支持,在软件上兆易确实还有很长一段路要走。
上电操作
相信大部分人都有这么一种思维,在实际操作中,一切参数都是浮云。正因为这样,苹果公司的手机能凭借着极佳的用户体验在众多高配置的旗舰手机中脱颖而出。所以不妨带着客观的态度再看GD32103E EVAL开发板的上电启动。
将LCD模块装回GD32103E EVAL主板,插上mini USB线上电启动。板卡内置的是一个触摸屏显示,于是笔者就寻思着写了个eeboard的Logo,结果发生了点有趣的事情,屏幕上在未触摸的区域也出现了触摸点显示。
中断点亮LED例程
与同样基于Cortex-M3内核的产品比较
基于Cortex-M3内核的产品在市面上成熟的方案或是资料非常多,之前我们也提到,GD32F103系列与ST公司的STM32F103系列产品是PIN-TO-PIN兼容的。这不,我们做个对比,GD32F103ZET6微控制器相对应与ST产品线中的STM32F103ZE,主要有三点的提升:
将时钟频率由72MHz提升到了108MHz
将自身高速内核与gFlash专利技术结合起来,实现内核访问Flash零等待
兆易GD32F103系列采用的是ARM公司的Cortex-M3第二版内核R2P1,相较于ST公司的STM32F103系列的R1P1版内核BUG更少
这样的产品无疑使兆易拥有一大批现成的潜在用户,主要面对的问题是如何说服这些客户转投到自己的产品上来。
尽管Cortex-M3作为ARM公司M系列中早期的一款产品,但在现今市场上光彩依旧,如时下最流行的Iphone5s手机中的协处理器M7,同样是基于M3内核,只不过定位于实时数据的采集。所以,我们有理由相信兆易这款针对意法半导体STM32F103系列产品的兼容+创新的微控制器必然存在它的市场空间。
评价
兆易创新GD32F103ZET6微控制的嵌入式闪存解决方案完全成了意法半导体的STM32F103系类产品的双胞胎系列--大容量的嵌入式FLASH、丰富的外设,但在此基础上又增加了自己独有的内核访问FLASH零等待的专利技术,在兼容的基础上又实现了创新。
不过,硬件上的优点并没有掩盖掉软件上的短板。
第一,通用的IDE软件如MDK-ARM、IAR都未针对兆易微控制器的优化
第二,库文件、程序除了需要移植STM32F103系列产品,还需要适当的做修改。
当然,软件的完善不是一朝一夕的事,任重而道远。
总之,MCU不错,开发板、软件还需提升。
小结
介绍了GD32103E EVAL开发板硬件、软件、开发环境以及和同类产品的比较,从其核心微控制器GD32F103ZET6丰富的外设,独有的访问Flash零等待技术我们看到了一个典型式的中国式创新科技公司,但是在软件上的短板还需要时间来提升。在这基础上,价格、中文技术支持、地理优势或许会是兆易创新争夺市场的令一个重要筹码。