FT2000

二、ft芯片的设计

2.1最小系统

要让飞腾加电之后运行起来,必不可少的的硬件有时钟、供电、内存、调试串口、QSPI flash接口、存储。

2.1.1 时钟

所有芯片都需要时钟,飞腾芯片的时钟主要分两种:

1.芯片的主时钟48MHz

2.芯片的PCle控制器PEU的时钟100MHz。要求PEU与外设同源,也就是从同一发生器产生,HSCL电平标准,AC耦合。设计时,即使PEU不用,PCle时钟也是要接的。

2.1.2 供电

飞腾电源种类不多,需要0.8V(核电),1.2V(VDDQ),1.8V(IO)三种。其他电源基本可以直连或者通过磁珠连接到这三个电源。

2.1.3 内存

首先要说的是,飞腾桌面CPU,FT-2000/4是支持DDR3和DDR4的,到D2000芯片是只支持DDR4的。

芯片是有两个DDR控制器的,我们称为两个通道,每个控制器有四个片选信号,我们可以叫做4rank。所以 ,我们一个CPU最大的设计是:2个通道x4rank。

2.1.4 调试串口

UART接口电平为1.8VCMOS电平标准,若使用的外设不兼容1.8VCMOS电平,需进行电平转换;默认UART_1为系统调试串口,用于输出系统打印信息,波特率为115200bps,可以为TTL和RS232(都主要是RX、TX、GND)

2.1.5 QSPI接口

CPU的BIOS存放在哪里?CPU启动的时候从哪里读?

都是从QSPI接口,QSPI接口兼容SPI,且作为启动加载片外固件的唯一接口。CPU启动后,最先通过QSPI接口的QSPI_CSN0片选的Flsh芯片加载固件,来执行相关指令。固件正常执行完成,才能在后面引导OS系统启动。

QSPI Flash有16pin的、8pin的,1.8V的、3.3V的。设计时选取根据要自身的需求。并且最好选取大家常用的,飞腾兼容适配过的型号,同时建议flash最好16MB以上,8MB有点小。

2.1.6 存储

此处存储为广义的概念,也就是所有能存放OS的都可以叫做存储,SD卡、NVME、SATA、NOR flash都可以,只要能存放OS,被固件读写即可。

一般咱们PC机都是用SATA硬盘作为存储介质,飞腾CPU上没有sata接口,如果要用sata硬盘做存储,那就需要通过PCIe外扩sata。如果不想外扩,那就用NVME SSD。如果系统比较小,比如一些实时系统Vxworks啥的,那么把系统生成bin文件,放到启动用QSPI Flash剩余的空间也是可以的,当然放到SD卡里也是可以的。要求前面也说过了,只要放的下,固件能看到这个存储,能操作它就可以。

2.2CPU如何开始工作

2.2.1 上电时序

要让CPU从未加电状态到加电后工作状态,就是使CPU从S4/S5状态转到S0状态。其实就是通过外面的电源管理控制器(CPLD或EC或X100)跑一下CPU的上电时序。

上电时序跑完后,CPU就会启动,它的下一步就是读QSPI CS0接口的数据。

所以你如果不知道自己时序是不是好了,那就可以用示波器去量QSPI CS0是否有读数据的动作,同时测量一下QSPI的时钟,在固件加载前应该是380KHz。也就是CS0是否有拉低的状态。要是有拉低,那就说明CPU在尝试去读外置FLASH了,那么也就说明CPU上电正常了,已经开始工作了。

2.2.2 固件

在此,CPU的启动用的程序叫做固件

飞腾固件有两种形式,uboot或者UEFI。Uboot能引导实时系统,比如vx类的,也能引导桌面系统,但是桌面系统只能引导开源linux,换句话说就是只能引导能提供设备树的桌面系统。UEFI只能引导桌面系统,比如麒麟、ubuntu这类的。

飞腾固件我们拿uboot固件举例,它是由uboot部分和PBF部分组成的。其中uboot是提供源码的,PBF是闭源的bin文件。飞腾提供固件编译环境、编译方法指导等。

这个可以查看网上的文章:

https://blog.csdn.net/yorkworlddream/article/details/125482429?spm=1001.2014.3001.5501

对应B站视频:

https://www.bilibili.com/video/BV1h94y197ry/

https://www.bilibili.com/video/BV1ce4y197ze/

https://www.bilibili.com/video/BV1Fg411Z761/

里面将固件编译配置方法讲的很清楚了,我这里就不展开讲了。总而言之一句话,就是飞腾提供的固件配置环境和操作方法,能让一个没有搞过配置的硬件工程师都能很容易的把CPU的核心数、内存、PCIe等进行配置。

固件编译完是一个bin文件,这个文件我们要通过烧片机写器把它烧到我们QSPI FLASH,这个flash烧好后,放到CPU QSPI CS0接口上,CPU开机后就会去读flash里的内容了。所以为了调试方便,我们需要两个东西,一个是烧片机写器,一个就是尽量在CPU QSPI CS0接口上接一个调试座。

烧写器产品很多,这里示例的是硕飞的烧写器和它对应的16pin的转接座,当然你要是用8pin的flash,那就用8pin的转接座。(硕飞公司看到可以联系我打钱哈,●ˇ∀ˇ●)

焊接到PCB上调试座主要就是方便flash的取换,因为调试中固件可能经常要改参数,要是没有这个调试座,flash就要来来回回的拆下来烧写再焊上这样。

图片

硕飞公司各烧写器支持器件列表:

https://www.sflytech.com/devlist.asp?model=SP20P/SP20X/SP20F/SP20B

2.2.3  系统

系统的引导我们下面也要分几种不同的情况进行说明

系统采用固件系统说明
桌面系统Uboot系统只能是在其他地方,将硬盘分好区,在指定位置放好设备树、系统镜像、文件系统后,拔下来放到我们最终的板卡上,使用uboot通过设备引导系统启动
UEFI可以在最终板卡上,使用类似x86+windows的那种方法,把系统iso放到U盘里,在UEFI下通过U盘来安装系统。系统引导时,是采用grub启动系统。
实时系统Uboot把系统镜像bin文件放到存储器中,使用uboot命令找到bin,引导启动。

设计资源获取

资源类型获取渠道
硬件芯片手册,设计demo等联系飞腾FAE
PCIe外设、QSPI Flash等硬件兼容外设列表

通过飞腾官网→技术支持→硬件服务

https://phytium.com.cn/class/137

软件Uboot、UEFI源码和固件编译环境等   联系飞腾FAE     
飞腾linux内核        联系飞腾FAE
Vx BSP、裸跑、Yocto、Android、openHarmony等其他资源

通过gitee代码仓库

https://gitee.com/phytium_embedded

技术支持

飞腾有自己的技术支持平台,是网页版的,有基于飞腾的项目要做,通过销售渠道或者技术渠道,找到飞腾的FAE。在技术支持平台注册账号,建立项目,从项目获取资料开始,所有的技术问题,包括设计中有问题,都可以从技术支持平台上提工单要到支持,很方便。

(主要提示:一定要找飞腾技术支持部的FAE)

注册和登录网址:

https://serviceplus.phytium.com.cn/

注册完账号,要找飞腾FAE给审核账号。

三、基于飞腾芯片的调试

3.1 环境准备

序号设备名称用途要求
1串口线用于连接飞腾CPU调试串口根据硬件设计,要是TTL串口就用TTL串口线,要是RS232电平,就用RS232串口线
2PC机        用于运行串口调试软件建议有两种,一种就是SecureCRT,另外一种就是纯字符型串口助手,比如sscom。因为SecureCRT它会解析终端命令比如退格、清屏啥的,导致log存的有的时候不全。所以要用sscom这类不执行终端命令的串口调试助手把所有的串口信息都存下来。
3万用表用来测量CPU各个电阻抗,保证没有焊接短路
4示波器必要时用来测量QSPI 接口波形。必要时用来测量电源纹波。

3.2 静态测量

3.2.1 测量静态阻抗

将万用表打到电阻档,然后分别测量Vcore、VDDQ、VTT的静态阻抗。

3.2.2测量电压

在确保电路没有存在电路短路的情况下,对电路板进行上电,查看电路板上的核电压、内存电压、IO口电压、3.3V电压、5V电压等是否正确。

3.2.3 加电前准备

前面静态做完,加电前的准备工作基本就没啥了,主要就是不管你是用CPLD还是EC还是X100,加电前一定要把上电时序保证了,至少你编程是照着时序去实现的。千万不要连上电时序控都没控,着急的就上电。

其次,就是固件要编好了,烧到了flash中,并且flash已经放到了调试座上,也就是CPU可以通过QSPI CS0接口去读flash里的固件了。

3.4 加电

3.4.1 调试串口打印

3.4.1.1 能进shell

进了shell,我们就可以敲命令了。

uboot飞腾是在公版的上面改的,所有命令都是兼容的,我们可以搜uboot命令就可以了。环境变量的:Printenv、setenv、saveenv。寄存器读写:md、mw。PCIe外设扫描:pci e。

UEFI也是兼容公版UEFI的。寄存器读写:mm。PCIe外设扫描:pci。网络:ifconfig、ping。

3.4.1.2 不能进入shell

串口有打印,但是卡半截,不能跑到shell,这里绝大多数都是硬件问题。我们要根据打印来判断可能的故障点。

这个问题点很多,我们后面也是单独出文章来说明。这里单独提示一点,串口卡了这时候要用示波器测纹波了。因为固件已经开始跑了,如果纹波很大,可能会出现卡在很多位置,这个就没法判断了,所以固件咋调都过不去,纹波是必须要量的,尤其是核电的,不能超5%。

3.4.2串口无打印

加电后串口都没有打印,那么我们首先就是要用示波器量下QSPI的时钟片选

QSPI 接口作为启动加载片外固件的唯一接口。CPU上电后后,通过QSPI接口的QSPI_CSN0片选的Flash芯片加载固件,来执行相关指令。因此需要查看 QSPI 的时钟信号(QSPI读固件之前时钟以及读完之后固件配置的时钟),QSPI读固件之前时钟频率应为380KHz左右,网安版的应该是4.6MHz。

QSPI的时钟片选:

串口无打印各种可能性分析

QSPI时钟和片选故障可能性解决方法
看上电时序,测量系统时钟测量上电时序,保证与手册一致。测量系统时钟,保证满足芯片要求
Flash是否适配过查飞腾官网适配型号,看是否进行过兼容适配
Flash电平与CPU电平是否一致,因为有的设计可能采用了3.3V flash,接到CPU上时往了过电平转换芯片了要是真是电压不一致,尽量就是换电平一致的flash芯片再试试了
Flash有没有虚焊。Flash各个脚都测测,都量量的吧
测量CPU芯片调试串口的管脚处,看看是否有波形,有可能是串口通路上串口芯片或者调试串口线或者串口软件啥的有问题呢

3.5系统引导

使用uefi去安装引导系统,请看文章:

https://blog.csdn.net/yorkworlddream/article/details/124866224

使用uboot去制作系统,引导系统,请参考仓库说明:

https://gitee.com/phytium_embedded/phytium-linux-buildroot

附录:其余文章汇总

内容

链接

飞腾技术支持平台

https://serviceplus.phytium.com.cn/

飞腾固件编译指导

https://blog.csdn.net/yorkworlddream/article/details/125482429?spm=1001.2014.3001.5501

https://www.bilibili.com/video/BV1h94y197ry/

https://www.bilibili.com/video/BV1ce4y197ze/

https://www.bilibili.com/video/BV1Fg411Z761/

飞腾外设兼容列表

https://phytium.com.cn/class/137

飞腾gitee代码仓库

https://gitee.com/phytium_embedded

uefi去安装引导系统

https://blog.csdn.net/yorkworlddream/article/details/124866224

uboot去制作系统,引导系统

https://gitee.com/phytium_embedded/phytium-linux-buildroot

硕飞烧写器支持列表

https://www.sflytech.com/devlist.asp?model=SP20P/SP20X/SP20F/SP20B

昆仑固件

http://www.kunluntech.com.cn/lxwm

百敖固件

http://www.byosoft.com.cn/rhgm/index.jhtml

科华固件

http://hngkyh.com/index.php?c=about&a=detail&id=14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值