芯航线FPGA丨FrameBuffer系统设计教程
小梅哥
2018-07-14 11:34
在嵌入式系统中,LCD屏作为最友好的人机交互方式,被大量的应用到了各个系统中。在基于ARM处理器的系统中,应用更是非常广泛。FPGA作为广义嵌入式系统的一员,自然也有很多时候需要来驱动显示屏显示一些内容,例如经常有需求要用FPGA来做液晶测试架,做显示器驱动测试卡。很多学习了FPGA的朋友都知道,FPGA驱动VGA显示器是比较轻松的,几乎每个板卡商提供的资料中都提供了有诸如显示彩条,显示图案,甚至显示简单的文字。但是,当希望显示更加复杂的内容的时候,往往就很难办到了。因为FPGA设计的是电路,是硬件,特点是头脑简单,四肢发达。而显示复杂的内容,恰恰需要一个头脑发达的控制器来执行这项任务。 在FPGA这些年的发展中,先后经历了简单逻辑扩展、复杂逻辑设计、SOPC系统和SOC系统,逻辑设计部分就不多说了,对于SOPC系统设计,Xilinx家有MicroBlaze软核、Altera家有大名鼎鼎的NIOS II软核处理器。而到了SOC时代,Xilinx家和Altera(现已被因特尔收购,成为Intel的可编程事业部)都推出了内嵌双核ARM Cortex-A9的SOC芯片,Xilinx家著名的zynq7000系列,以及Altera花了大力气在高校推广的Cyclone V SOC。 虽然随着技术的发展以及时间的推移,SOC的应用会越来越广泛,但是作为我们一般学习和使用来说,SOPC技术也还是有其使用的价值的,毕竟内嵌硬核的SOC芯片,动辄几百块,而使用软核的方案,只要40元不到的BOM成本就能完成一个系统设计,优势还是很明显的。本例,我们就带领大家使用Altera Cyclone IV系列最低端的FPGA芯片EP4CE6/EP4CE10设计的能够驱动640*480分辨率显示屏动态显示复杂内容的系统。例如显示文字,显示图片。 在之前我们讲解过RGB显示屏的驱动,RGB显示屏驱动时序和VGA驱动时序几乎完全一样,只是不同的分辨率之间,其时序参数不同。说到这个驱动480*272分辨率显示屏动态显示复杂内容,相信很多朋友并不陌生,是的,在我们之前的SOPC公开课时候,就已经给大家讲解过实现这种系统的一种方式,即使用了一片独立的SRAM来作为显示屏的显存,显示驱动模块直接读取SRAM中的数据并实时刷新显示,而NIOS II CPU则只在需要刷新显示内容的时候,才执行对SRAM的写入操作。此种方式,需要一片独立的SRAM作为显存,以及一片SDRAM作为NIOS II的运行内存。除了SRAM的使用会增加系统的BOM成本外,SRAM也会占用掉FPGA芯片较多的管脚,导致必须得使用256脚BGA方案的芯片才能够实现。因此,此种方案仅适合在对成本不太敏感高的场合使用。本节要介绍的方案,是对该系统改进优化得到的。1.EP4CE6/EP4CE10型FPGA芯片一片(30元)
2.16Mbit 或以上SDRAM芯片一片(3元,如华邦w9816g6)
4.4Mbit SPI FLASH芯片(1.5元,如W25Q80)
5.3.3V、2.5V、1.2V LDO稳压电源(AMS117系列,合计不到1元)
在显示屏上显示一帧图像,并在指定位置显示字符内容
。上述框架是我们经过分析,要实现本系统方案所需的最小硬件系统,本节我们将基于芯航线的AC620学习套件来完成FPGA的系统搭建和NIOS II软件设计。芯航线的AC620 FPGA开发板整体硬件配置高于上述分析,有助于我们进行原型验证。本系统主要在Qsys系统中完成,包含了以下IP核:altpll_0:PLL锁相环,对输入时钟进行分频和倍频,以得到两路频率为100MHz,相位相差180度的时钟信号,分别提供给系统中逻辑电路工作(包含NIOS II软核处理器)和SDRAM芯片使用。以及1路24M的时钟信号,供640*480分辨率的VGA驱动电路使用。NIOS II CPU:实现系统的控制以及显示内容的处理。SDRAM:NIOS II CPU运行内存和TFT显示图像帧缓存。onchip_memory:片上存储器,指定SGDMA要执行的数据传输,主要用作SGDMA的描述符存储器。lcd_sgdma:SGDMA IP,主要实现大量数据的高效搬运,支持流模式,效率比Avalon MM接口的DMA核高。timing_adapter:时序匹配IP核,主要用于流数据在两个不同模块间进行传递时,对部分信号加上一定延迟,使得数据和标志信号能够完全同步(说的简单点儿,就是用寄存器打拍的方式对一些信号进行延迟,使数据和控制信号对齐)。fifo:双时钟fifo,主要完成数据流的传输速度转换。SGDMA输出的数据流,是按照和存储器相同的时钟速度(本例中为100M)进行的,而在数据使用端,即VGA显示部分,是按照9M的时钟取用数据的,因此使用双时钟fifo,解决跨时钟域的问题。VGA_SINK:该IP为第三方开源IP,由友晶科技提供,主要完成Avalon ST流数据转换成VGA行场时序并驱动VGA屏进行显示。EPCS:EPCS FLASH存储器控制IP,使用该IP,使得EPCS芯片能够存储FPGA固件和NIOS II的程序。jtag_uart0:调试串口,主要用来打印一些调试信息,在设计的前期调试中很有用 为了保证整个系统能够具有较高的性能,因此让其运行在100MHz,所以需要使用PLL对外部晶振产生的50MHz输入的时钟信号进行倍频,得到两路频率为100M,相位相差90度的时钟信号。另外,还需要提供一路9MHz时钟信号供480*272分辨率的TFT屏驱动使用。关于PLL的详细添加和参数修改方式这里不再多说,仅提供设置结果: 所有设置使用默认值,等后续添加完sdram和EPCS和,将复位向量(Reset Vector)设置为epcs,将异常向量(Exception Vector)设置为sdram。结构(Architecture)为一个片选,4个bank。地址宽度(Address Width)Row地址为12、Column地址为9。片上缓存onchip_memory作为SGDMA的描述符存储器,存储SGDMA的数据传输描述内容。存储器总量选择16384Bytes(用户可以根据自己芯片的RAM容量适当增加或减小该值);选择传输模式为存储器到数据流模式(Memory To Streram);数据宽度(Data width)为16bit,该位宽与存储器(SDRAM)的Avalon MM总线宽度一致。 时序匹配IP核,主要用于流数据在两个不同模块间进行传递时,对部分信号加上一定延迟,使得数据和标志信号能够完全同步(说的简单点儿,就是用寄存器打拍的方式对一些信号进行延迟,使数据和控制信号对齐)。 如下图所示设置,所有勾选项都勾选上,输入Ready Latency设置为0,输出Ready Latency设置为1,每个数据总共有两个symbols,每个symbol含8位数据。(根据RGB数据流的实际意义,这里应该是每个数据有3个symbols,但是本设计使用的是16位色RGB565模式,即RGB总共才16位,所以在搭建系统的时候,假设只有2个symbols,只是在最终数据输出到VGA的时候,将16bit数据拆分成RGB565,分别送给VGA的R、G、B色通道) 以上各个模块,都是工作在100MHz的时钟频率下。主要完成将需要显示的数据从SDRAM中读取出来。而读取出来的数据最终是需要送到TFT显示屏上去显示的,TFT显示部分,对于本系统,数据传输速率为9M,因此就需要实现数据从100M时钟域到9M时钟域的跨时钟域传输。而实现数据流跨时钟域传输,较好的方式是使用双时钟fifo。因此,接下来就需要添加一个双时钟fifo,先将100M时钟域的数据缓存起来,然后再等待9M时钟域的读取逻辑来读取。 设置fifo的深度为512字节,每个数据含2个symbols,每个symbols由8位数据组成,即整个数据宽度为16位。时钟设置为双时钟模式(Dual Clock Mode),输入和输出都使用Avalon ST接口,使能数据包(Enable Packet Data)。这里顺带说一下,Cyclone IV E器件中的嵌入式块RAM为M9K存储器,每个器件里都有若干个M9K存储器。所谓M9K存储器,就是一个块存储器中有9Kb个存储位,每个M9K存储器可以被配置为以下模式:由于本设计中,数据是16位的,因此,如果要想仅使用一个M9K存储器就实现本Fifo,存储深度可在1到512之间任选。假如我们选择存储深度为128,那么就只占用1/4个M9K的存储容量,但是,剩下的3/4的存储容量也依旧无法单独使用,在该设计中会永远的被浪费掉,因此,不如将存储深度直接设置为512,还能保证缓存足够大,避免意外丢失数据。VGA_SINK模块是从友晶提供的设计中修改得到的,该IP原本仅支持24位色模式,而本系统,由于SDRAM为16位宽度,如果强行使用24位色模式,则必须得从SDRAM中读取两个数据才能拼接成一个像素,导致SDRAM的负载过大,从而使得系统带宽遇到瓶颈,无法正常工作,因此对该IP进行了修改,即降低为16bit的RGB565模式。(根据RGB数据流的实际意义,这里应该是每个数据有3个symbols,但是本设计使用的是16位色RGB565模式,即RGB总共才16位,所以在搭建系统的时候,假设只有2个symbols,只是在VGA_SINK模块内部,在最终数据输出到VGA的时候,进行了修改,将16bit数据拆分成RGB565,分别送给VGA的R、G、B色通道)。这里参数分别如下设置: EPCS的添加没有什么需要特别注意的,一切按照默认设置即可。 在总线连接之前,必须要先给大家讲解一下本系统的数据流向,因为本系统和我们之前在SOPC公开课时候讲过的系统架构还不太一样,本系统主要引入了Avalon ST总线。在之前公开课时候讲过的各种例子,都是基于Avalon MM总线的,所有外设IP都通过Avalon MM总线连接到NIOS II CPU上,因此总线连接是非常简单的。但是Avalon MM总线的数据搬运能力是比较弱的,无法支持高速大量的数据传输。而在基于Avalon ST总线的数据流中,NIOS II CPU实质相当于被旁路了,只起到了状态管理的作用,所有的数据流转都是模块间通过Avalon ST总线进行交互的,不需要NIOS II去执行搬运工作,因此数据的搬运效率大大提高。本节暂不对Avalon ST总线进行过多的讲解,总之,我们可以把Avalon ST总线想象成一个水管,水从水管的一头可以很容易且快速的流到另一头,不需要第三方用水瓢一瓢一瓢的去舀过去。 在整个FrameBuffer系统中,SGDMA模块是最核心的部分,他实现了对SDRAM存储器的直接读取操作,并将读到的数据最终以数据流的形式输出。SGDMA的使用相当的广泛,不仅是在本系统中,在Altera很多官方设计中也都使用了SGDMA IP核,比如PCIE 示例、千兆以太网示例、VIP示例等,关于SGDMA的详细介绍,可以参看SGDMA的用户手册,我们也希望能尽快推出SGDMA的专题讲解。这里仅对SGDMA的端口和功能进行下简述。 本系统中SGDMA被配置为存储映射模式到数据流模式,即数据的源头采用地址映射的方式组织,而数据的接收方则使用数据流的方式进行接收。在此种模式下,SGDMA总共有5个端口,分别为Avalon MM Slave接口的控制总线,Avalon MM Master接口源数据读取总线、Avalon MM Master接口的描述符写入总线和Avalon MM Master接口的描述符读取总线,以及最终的Avalon ST Source数据输出总线。csr:Avalon MM Slave接口的控制总线,与NIOS II CPU进行连接,NIOS II CPU通过该接口读写SGDMA内部的控制和状态寄存器,以实现DMA的传输控制。这也是整个数据流传输唯一需要NIOS II参与的地方。NIOS II实际就扮演了个老板的角色,安排SGDMA去做什么,SGDMA接到任务后就下去干搬运的苦力活儿了,而NIOS II这个老板,则可以坐在办公室喝喝咖啡,看看报纸,等着SGDMA把苦力干完后回来报告(中断)或者隔一段时间打个电话问问工作状态和进度(查询)。m_read:Avalon MM Master接口的源数据读取总线,该接口实现对Avalon MM总线上挂载的存储需要传输的数据源存储器的读取,例如SDRAM、DDR2 SDRAM。从这里,大家也可以看到,在Qsys搭建的系统中,不是只有NIOS II能够去读取SDRAM、DDR2等存储器,实际上,只要是Avalon MM Master接口的IP,都可以去读取这些存储器,我们甚至可以自己编写一个Avalon MM Master接口的逻辑,来取代NIOS II CPU完成各种IP核的读写操作。descriptor_write:描述符写端口,SGDMA实现数据传输需要有一个描述符,SGDMA的所有传输都是受描述符控制的,通过描述符存储SGDMA的实时传输状态。这里专门使用一个片上存储器来存储SGDMA的描述符,能够节省FPGA资源。否则,如果使用FPGA资源来实现描述符,将会带来非常大的资源消耗。descriptor_read:描述符读端口,SGDMA使用此端口读取描述符,以获得传输信息。out:数据流输出端口,从SDRAM或DDR2中读取到的数据会经由此端口流出,以提供给数据的使用端使用。对于我们分析数据流来说,可以暂时忽略csr、descriptor_write和descriptor_read端口,因为这些端口并不处于数据通路上,真正处于数据通路上的,是m_read(数据流入)和out(数据流出)端口。下图为本系统的数据流图。NIOS II CPU使用SDRAM作为运行存储器,存储程序和数据,同时,SGDMA从SDRAM中实时读取需要显示到VGA屏上的数据。NIOS II 和 SGDMA之间对SDRAM的使用仲裁由Avalon MM总线的仲裁机制自动处理。通过以上介绍,了解了系统的数据流向,就可以首先完成数据流总线的连接了。每个st 流接口的模块都有2个流端口,一个是流输入端口(in: Avalon Streaming Sink),另一个是流输出端口(out: Avalon Streaming Source)。连接时,只需将上一级模块的流out连接到下一级模块的流in端口,即可实现数据流的自动衔接。在本例中每个模块端口连接如下表所示:
当然,连接完成总线后,不要忘了连接复位网络、导出需要引出到系统顶层的信号以及中断网络。修改NIOS II的复位向量为EPCS、异常向量为SDRAM。至此,整个系统就搭建完成了,下一步就是将系统加入到Quartus II工程中。首先是将mysystem.qsys文件添加到工程,然后完成工程顶层文件的编写。这些最基本的操作,这里就不在赘述,以下为工程顶层代码:然后分配引脚,本系统在AC620开发板上的引脚分配请参照AC620开发板引脚分配表。分配引脚后,记得在quartus ii软件中设置所有双功能引脚为用户模式。至此,整个FrameBuffer系统硬件设计就完成了,下一步,我们就可以编写相应的驱动程序和应用程序,在目标板上运行了。打开NIOS II EDS软件,导入我们提供的VGA和VGA_bsp两个工程。修改setting.bsp文件中第7行和第9行两个位置为自己电脑上对应的位置。关闭文件,然后build工程。如果编译失败,提示无权限,请先关闭所有文件,然后选择整个文件夹右键获取管理员权限。编译完成后下载sof,并在nios ii eds中执行run。连接VGA显示器,就能在屏幕上显示一副美女图,如下图所示:如有更多问题,欢迎加入芯航线 FPGA 技术支持群交流学习
免责声明:
该内容由专栏作者授权发布或作者转载,目的在于传递更多信息,并不代表本网赞同其观点,本站亦不保证或承诺内容真实性等。若内容或图片侵犯您的权益,请及时联系本站删除。侵权投诉联系:
nick.zong@aspencore.com!
-
11-29学习笔记11-29学习笔记习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
-
艾迈斯欧司朗全新“样片申请”小程序,逾160种LED、传感器、多芯片组合等产品样片一触即达。轻松3步完成申请,境内免费包邮到家!本期热荐性能显著提升的OSLON® Optimal,GF CSSRML.24ams OSRAM 基于最新芯片技术推出全新LED产品OSLON® Optimal系列,实现了显著的性能升级。该系列提供五种不同颜色的光源选项,包括Hyper Red(660 nm,PDN)、Red(640 nm)、Deep Blue(450 nm,PDN)、Far Red(730 nm)及Ho
-
当前,智能汽车产业迎来重大变局,随着人工智能、5G、大数据等新一代信息技术的迅猛发展,智能网联汽车正呈现强劲发展势头。11月26日,在2024紫光展锐全球合作伙伴大会汽车电子生态论坛上,紫光展锐与上汽海外出行联合发布搭载紫光展锐A7870的上汽海外MG量产车型,并发布A7710系列UWB数字钥匙解决方案平台,可应用于数字钥匙、活体检测、脚踢雷达、自动泊车等多种智能汽车场景。 联合发布量产车型,推动汽车智能化出海紫光展锐与上汽海外出行达成战略合作,联合发布搭载紫光展锐A7870的量产车型
紫光展锐
2024-12-03 11:38
121浏览
-
概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解决的问题。本文在说明(三)的基础上,继续探讨为SiPM读出测试系统寻求合适的模拟脉冲检出方案。前四代SiPM使用的高速比较器指标缺陷 由于前端模拟信号属于典型的指数脉冲,所以下降沿转换速率(Slew Rate)过慢,导致比较器检出出现不必要的问题。尽管比较器可以使能滞回(Hysteresis)模块功
coyoo
2024-12-03 12:20
153浏览
-
最近几年,新能源汽车愈发受到消费者的青睐,其销量也是一路走高。据中汽协公布的数据显示,2024年10月,新能源汽车产销分别完成146.3万辆和143万辆,同比分别增长48%和49.6%。而结合各家新能源车企所公布的销量数据来看,比亚迪再度夺得了销冠宝座,其10月新能源汽车销量达到了502657辆,同比增长66.53%。众所周知,比亚迪是新能源汽车领域的重要参与者,其一举一动向来为外界所关注。日前,比亚迪汽车旗下品牌方程豹汽车推出了新车方程豹豹8,该款车型一上市就迅速吸引了消费者的目光,成为SUV
刘旷
2024-12-02 09:32
131浏览
-
国产光耦合器正以其创新性和多样性引领行业发展。凭借强大的研发能力,国内制造商推出了适应汽车、电信等领域独特需求的专业化光耦合器,为各行业的技术进步提供了重要支持。本文将重点探讨国产光耦合器的技术创新与产品多样性,以及它们在推动产业升级中的重要作用。国产光耦合器创新的作用满足现代需求的创新模式新设计正在满足不断变化的市场需求。例如,高速光耦合器满足了电信和数据处理系统中快速信号传输的需求。同时,栅极驱动光耦合器支持电动汽车(EV)和工业电机驱动器等大功率应用中的精确高效控制。先进材料和设计将碳化硅
-
光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
晶台光耦
2024-12-02 10:40
134浏览
-
TOF多区传感器: ND06 ND06是一款微型多区高集成度ToF测距传感器,其支持24个区域(6 x 4)同步测距,测距范围远达5m,具有测距范围广、精度高、测距稳定等特点。适用于投影仪的无感自动对焦和梯形校正、AIoT、手势识别、智能面板和智能灯具等多种场景。 如果用ND06进行手势识别,只需要经过三个步骤: 第一步&
esad0
2024-12-04 11:20
89浏览
-
RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题: 检查调试器(如ST-Link)与目标板之间的连接是否牢固。 确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题: 确保目标板和调试器都有足够的电源供应。 检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
丙丁先生
2024-12-01 17:37
111浏览
-
学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&
-
戴上XR眼镜去“追龙”是种什么体验?2024年11月30日,由上海自然博物馆(上海科技馆分馆)与三湘印象联合出品、三湘印象旗下观印象艺术发展有限公司(下简称“观印象”)承制的《又见恐龙》XR嘉年华在上海自然博物馆重磅开幕。该体验项目将于12月1日正式对公众开放,持续至2025年3月30日。双向奔赴,恐龙IP撞上元宇宙不久前,上海市经济和信息化委员会等部门联合印发了《上海市超高清视听产业发展行动方案》,特别提到“支持博物馆、主题乐园等场所推动超高清视听技术应用,丰富线下文旅消费体验”。作为上海自然
电子与消费
2024-11-30 22:03
103浏览
-
作为优秀工程师的你,已身经百战、阅板无数!请先醒醒,新的项目来了,这是一个既要、又要、还要的产品需求,ARM核心板中一个处理器怎么能实现这么丰富的外围接口?踌躇之际,你偶阅此文。于是,“潘多拉”的魔盒打开了!没错,USB资源就是你打开新世界得钥匙,它能做哪些扩展呢?1.1 USB扩网口通用ARM处理器大多带两路网口,如果项目中有多路网路接口的需求,一般会选择在主板外部加交换机/路由器。当然,出于成本考虑,也可以将Switch芯片集成到ARM核心板或底板上,如KSZ9897、
万象奥科
2024-12-03 10:24
86浏览
-
遇到部分串口工具不支持1500000波特率,这时候就需要进行修改,本文以触觉智能RK3562开发板修改系统波特率为115200为例,介绍瑞芯微方案主板Linux修改系统串口波特率教程。温馨提示:瑞芯微方案主板/开发板串口波特率只支持115200或1500000。修改Loader打印波特率查看对应芯片的MINIALL.ini确定要修改的bin文件#查看对应芯片的MINIALL.ini
cat rkbin/RKBOOT/RK3562MINIALL.ini修改uart baudrate参数修改以下目
-
温度传感器的精度受哪些因素影响,要先看所用的温度传感器输出哪种信号,不同信号输出的温度传感器影响精度的因素也不同。 现在常用的温度传感器输出信号有以下几种:电阻信号、电流信号、电压信号、数字信号等。以输出电阻信号的温度传感器为例,还细分为正温度系数温度传感器和负温度系数温度传感器,常用的铂电阻PT100/1000温度传感器就是正温度系数,就是说随着温度的升高,输出的电阻值会增大。对于输出
锦正茂科技
2024-12-03 11:50
135浏览
-
《高速PCB设计经验规则应用实践》+PCB绘制学习与验证读书首先看目录,我感兴趣的是这一节;作者在书中列举了一条经典规则,然后进行详细分析,通过公式推导图表列举说明了传统的这一规则是受到电容加工特点影响的,在使用了MLCC陶瓷电容后这一条规则已经不再实用了。图书还列举了高速PCB设计需要的专业工具和仿真软件,当然由于篇幅所限,只是介绍了一点点设计步骤;我最感兴趣的部分还是元件布局的经验规则,在这里列举如下:在这里,演示一下,我根据书本知识进行电机驱动的布局:这也算知行合一吧。对于布局书中有一句: