【GD32E231评测】二、开发感悟以及芯片介绍
[复制链接]
本帖最后由 传媒学子 于 2019-3-24 20:30 编辑
GD32E231C START 开发感悟以及芯片介绍
引言:这里总结分享一下GD32E231C-START开发板的开发感悟,然后就GD32E231芯片做一个简单探讨。
1.开发感悟 经几位大佬讨论和分析,大家一致认为这款开发板和GD32E230C START基本上兼容,除了OP-AMP运放部分,因此,大家在开发的时候,基本上可以参照GD32E230C START的资料。
GD的官网貌似没有多少开发资料,http://www.gigadevice.com/;而主要的参考资料都放在了MCU的网站,就是这个www.GD32MCU.com, 而实际上你输入那个网址就会跳转到这里http://gd32mcu.21ic.com/。因此,大家还得注册一下,然后可以下载相关资料,而上边目前关于GD32E231C的就一个datasheet. 其他的资料需要参考GD32E230.
包括keil的器件支持包,以及软件的底层驱动,暂时都要使用GD32E230的,官方在芯片宣传的时候,也指出231基本上兼容230的。
另外,一点是开发板上没有像去年GD32E350设计大赛中提供了CH340USB转串口,因此,串口需要自行准备USB转串口转换器。其它,诸如ADC,DMA,I2C,GPIO等外设的驱动是兼容的,可移植使用。
2.GD32E231芯片概览
2.1 芯片的定位
以全面优化的处理器资源和最为经济的成本优势,将创新的Arm® Cortex®-M23内核引入高速信号采集、混合信号处理、电机控制、传感器网络等工业应用场合。 什么是Arm® Cortex®-M23内核? Arm® Cortex®-M23是Cortex®-M0和Cortex®-M0+的继任者,基于最新的Armv8-M架构的嵌入式微处理器内核。采用冯诺依曼结构二级流水线,支持完整的Armv8-M基准指令集,最大限度地提高了代码的紧凑性。并兼容所有的Armv6-M指令,可以帮助工程师轻而易举地将代码从Cortex®-M0/M0+处理器转移至Cortex®-M23。全新的Cortex®-M23内核配备了单周期硬件乘法器、硬件除法器、硬件分频器、嵌套向量中断控制器(NVIC)等独立资源,并强化了调试纠错与追溯能力更易于开发。后续产品亦可以通过加载TrustZone®技术,以硬件形式支持可信和非可信软件强制隔离与防护,出色实现多项安全需求。 GD32E230系列Cortex®-M23内核MCU是具备了小尺寸、低成本、高能效和灵活性优势,并支持安全性扩展的最新嵌入式应用解决方案。
2.2 GD32E231的主要参数
从参数中我们可以看出,这款芯片定位就是中低端通用MCU控制器,主打性价比。主频72MHz, 可以满足大多数应用需要。 PWM模块可输出带死区时间控制的PWM,可应用与电机控制或者电源IGBT等控制。 功能上看,是一个性价比较高的微处理器。
2.3 GD32E231的主要架构 架构上看,M-23内核,中断控制器,DMA,72MHZ SYS CLK, 各项外设,是一个比较主流的架构,基本上和之前的差不多,由于采用arm的,所以看起来,没有太多变化,时钟来源也是多种,外设数量也是常规设置。不得不说,国产ARM的MCU在与国外厂商基本上相差无几,国产替代上几乎没有太多技术上障碍。足够大多数应用场合使用。封装也有多种选择,由于速度不是太高,因此,采用LQFP48等封装,既降低了焊接故障率,又能降低了开发者DIY的焊接难度。
2.4 GD32E231的Memory map
这个表可以说是连接硬件和软件的桥梁,是最重要的资料。以前,不是太懂这些东西,经常就忽略了这些东西,现在工作中,经常遇到memory map,接触了用FPGA自行设计MCU内核,才明白我们到底是怎样通过厂商提供的driver去控制外设的。
举个例子: GPIO的BASE地址是0x40000000;那么这是一个32-bit的CPU,我们设计中GPIO会有控制寄存器,输入寄存器,输出寄存器等等,那么,一个byte是8位,一个地址通常是一个byte, 那么32位,一个寄存器如果占用4个byte, 那么下个寄存器就是0x40000004;再下一个就是0x40000008。在实际中,同常会给一个baseaddress(基地址)+ offset(偏移), 4个偏移,就是4byte.
如果,输入寄存器地址:0x40000008,那么读取输入,再配置好输入方向后,可直接读输入寄存器的值: data = *(volatile u32*)(0x40000008);
而,驱动库,就是帮你写好如何实现这一操作的程序,其它外设也是差不多的操作,就是要区分外设上的寄存器功能,有些需要配置,有些需要读取,如何写库文件,大概就是底层工程师来如何操作和配置这些寄存器。 (上边,是我个人理解,水平有限,仅供参考。)
2.5 GD32E231的时钟体系 没什么难点,很清晰。
2.6 ADC和PWM ADC性能足够满足大多数需求,PWM模块,也是可以用于多种应用,具体描述见附件手册。
总体来讲GD32E231是与GD32E230兼容的一款 高性价比的 MCU,可以用于工业控制,机器人,飞行器,物联网等应用领域,开发难度不大,未来市场广阔,值得期待。
|