作为一个从事硬件开发多年的理工老男人,见证了 ARM从诞生到繁荣的整个历程。取代51,开始独霸江湖,我们似乎习惯了开发各类通用应用就从ST的ARM系列里寻找合适的MCU。随着国产替代的兴起,慢慢出现了兆易创新、华大、国民技术、灵动微等一系列国产方案,尤以兆易创新最为成功,可以直接替代ST的部分MCU,软件改动非常非常小。至此国产MCU进入了一个内卷的时代,没有特色,只有特别低的价格。 知道我对MCU设计的各类小产品的应用特别感兴趣,朋友给我带来了一个数字迷你示波器,特别小巧,携带非常方便。单通道,标注100Mhz带宽,500MS采样率。这样高的采样率必须使用高速AD及很高性能的处理器才行。出于好奇,我拆开了示波器,看看如何实现的。没想到硬件出奇的简单。另外一面为按键及320x240的彩屏。
从上图看到,示波器探头进来经过保护及衰减进入RS8751(250MHz的rail to rail 运放),再到高速AD(虽然48pin的AD芯片被抹掉了mark号,但很容易就查到是ADI的AD9288),后面的数据处理及显示用的是GD32F407。GD32F407最高运行频率168MHz, AD9288双通道8bit 100Mhz高速AD。从各芯片的性能上来看,虽然AD9288用双通道AD实现单通道采样时可以达到2倍(200MS)的采样速率,但是GD32F407能通过什么接口读取这么快的数据呢?仔细看板子的 PCB图,AD出来的数据口DA0~7, DB0~7都接到了GD32F407的IO端口PORT D上。
很显然,在这么高的速率下,GD407只能通过DMA的方式来不断读取端口D的数据。只要保证两者的频率一致,DMA就无需等待判断,不断读取数据即可。不得不佩服设计者的智慧,GD407的性能发挥到了极致。这种方案以极低的价格实现了极高的性能,佩服。但是不管如何,200MS的理论采样速度与产品实际标的500MS还是有点差距的。测量GD407给AD9288的时钟,在最高采样率的时候为125Mhz,超过了AD9288的标称值,只有一种可能是超频运行。以上只是方案探讨分析,有不同意见的可以留言发表,但不要乱喷,学习交流为主。 笔者由衷佩服设计者超高的软硬件设计能力,这的确给普通的设计者设置了非常高的门槛。但是在如今国产MCU如雨后春笋,层出不穷出现的时候,是否能用性价比更高的MCU来更简单地实现呢? 在ARM一统江湖的年代,RISC-V异军突起,大有不断蚕食ARM市场份额的苗头。RISC-V是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。 AGM Micro是领先的AGM32 32位MCU、可编程SoC、和异构(MCU)计算芯片和方案提供商,是一家芯片设计公司,致力于为消费电子、工控和AIoT中高量市场提供智能化的设计软件和芯片系统。AGM创立于2010年,刚开始致力于FPGA/CPLD的研发推广,在LED 户外屏驱动市场占有大半壁江山后,于3年前切入MCU市场,助力国产替代。FPGA是AGM的传统优势,推出的MCU里也保留了这一部分,这就给开发人员提供了很大的想象和发挥空间。
AGM32F系列异构芯片内部框图:
一、 超高的性价比(超高主频给了开发者更多的数据处理分析时间) RISC-V 开源内核,省去了IP授权费用,让利给了终端用户。248Mhz的超高主频,是STM32F207/407望尘莫及的。熟悉ST MCU的设计者能直接看出,内部的框图是与STM32F027非常接近的,除此之外,还有2K的FPGA,相当于4片ALTERA CPLD EPM570的容量。而这样相当于1片ST207+4片EPM570的AGM32芯片的售价也才1$多点,可以说性价比超高的。
二、 灵活的自定义接口:(高速AD数据接口的实现)
看一下数字示波器使用的高速AD9288的数据接口,你会发现这个接口非常简单,每个时钟的下降沿直接获取数据即可,这个时钟的速度高达100Mhz,普通的MCU还真没有类似这种同步机制的接口来读数据。这里如果用AGM32里的FPGA来实现就非常容易了,要不了几句Verilog语言就实现了。这里就不贴代码了,实在是太简单了。
三、 自定义的硬件加速模块(实现示波器的触发功能) 示波器的触发要求电压低于或者高于设置的电压时,开始采样后续的波形。这个电压比较就可以交给FPGA来实现。采样完电压后,FPGA先不用马上将数据发送给MCU, 而是直接进行判断,没有满足触发电压值之前丢弃所有的数据,直到满足触发条件,可以用中断的方式或者DMA流控的方式来实现。这个过程基本只要FPGA参与,MCU空闲等待即可。
四、 FPGA/MCU相互协调,最大程度发挥性能 FPGA最擅长的就是大数据量的并行采集分析处理。这125M(超频)的高速AD数据采样即使使用了DMA数据读取,也会频繁与MCU抢占AHB总线,导致MCU的运行效率及其低下。如果用FPGA来做缓存就好很多了,FPGA在读取数据后进行缓存,当达到一个DMA的burst长度后通知DMA来读取,这样会大幅减少AHB总线的抢占情况。使MCU有更多的时间来刷新波形的显示,以及一些人机界面的操作。FPGA同时还能对采集到的数据进行缩放、过滤等,尽可能帮助MCU完成波形显示前的数据处理。
五、 数字接口重定向(任何应用,2层PCB轻松完成)
这是AGM32F407 100pin的引脚描述。这里面定义的PIN_XX可以用软件定义成任意数字接口,如UART,SPI,IIC, PWM,IO等等。除了模拟部分,ADC, DAC,CMP,usb外,其它接口都能任意定义。这样根据PCB布局来调整数字接口部分的顺序,2层板就轻松搞定。这样布出来的板子不但美观大方,而且性能更加可靠,基本上不存在交叉走线的情况。
六、 可以任意定义端口驱动能力 根据需要,可以任意定义每一个端口的驱动能力,大大加强了接口的抗干扰能力 七、 防破解功能 很多产品在销售之前会抹掉主控芯片的MARK号码,防止竞争对手抄袭,包括笔者拆的这款示波器。这时候我们会根据外围电路,比如SPI flash, IIC的eeprom,UART口等对应于主控芯片的某几个引脚来猜测验证这是哪家的哪款型号。但如果你用了AGM的MCU,你会发现根本无从知晓。
啰里啰唆写了挺多的,估计要被年轻人嫌弃了。笔者写这个,可能会对原设计厂家有一定的影响,但这不是我的本意。我非常佩服设计者的设计开发能力,用GD407就实现了便携式数字示波器的功能,可见功力何等深厚。就像武侠世界里的顶尖高手一样,但是如果有一把趁手的兵器能助力你达到顶峰,你何不选择一下呢?
欢迎大家一起探讨
|