背景:项目使用到了一款PCIe Gen4的Switch芯片用于高速数据的交换,芯片型号为PM40028,制造商为microchip。


前期工作:

初期参考Demo板设计了电路。

回板后按照原厂要求进行测量,测量电源电压、电源纹波、电源的上电时序,100MHz时钟,复位信号,这些都没有问题了。

然后使用chiplink工具进行配置,配置一些ID,ECC校验,IO之类的内容,再结合官网上的固件,在linux环境中编译出一个.data格式的文件,将这个文件使用裸芯片的方式(使用的是Dediprog的SF700工具)烧写进外置的flash芯片中,再上电,理论上就可以成功启动,并且从UART中打印出一些log。

 问题描述:

但是在这一步里面遇到了问题,上电后串口一直空空的,没有打印信息。我们反复测量硬件部分,也检查软件配置,同时也对串口部分的电路进行测试(因为他的串口是1.8V电平,我们这里使用了一个电平转换芯片,因此也做了些响应的测试),还是没有效果;

又因为这款芯片是指定了一些flash型号的,因此我们也更换了列表中的其他几款的flash(BGA24封装,这次可是把焊接技术练好了)进行测试,但都不行;

用逻辑分析仪测量PM40028与FLASH之间的QSPI芯片,发现芯片发出了读取的命令,但总是读了几下就停住了,看这数据量就觉得远远不够。

我们还以为是QSPI的数据在传输过程中传错了,又拿有源探头去测量,发现信号的质量是很不错的,没有啥问题。

 问题解决:

最终,我们是在芯片的boot引脚设置的位置发现了异常,我们的boot引脚中有一个是用来设置启动时是按照4B方式还是3B方式启动的,我们的配置是4B,但是从逻辑分析仪抓出来的数据中,发现地址一直是3B方式,似乎有些不对应。

我们想过更换容量更小的flash来测试,修改boot引脚设置为3B来测试。但新的flash还没有到货时,我们只修改了boot引脚时,却发现整机电流跑上来了,而且串口竟然打出来数据了。通了!


最终问题的根因也不知道是什么,芯片手册中写道:如果使用的flash大于等于16MB,就是用4B模式,否则使用3B模式。我们使用的是512Mbit(64MB),理应使用4B,但是就是不可用,更改为3B后竟然神奇的通了。

虽然这一部分通了,芯片能够启动了,但是后续的工作才是更重要的:PCIe Gen4 那16Gbps的速率不知道实际上能跑到多少,还有switch内部的非透明桥的协议配置,估计还会遇到不少困难~

PCIe Switch PM40028调试相关推荐

  1. PLX PCIe Switch使用

    作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 Exploring th ...

  2. PCIe Switch高级功能及应用

    PCI-E Switch芯片,估计不少人已经听说过这个东西了.但是估计多数人对其基本功能知之甚少.PCI-E Switch作为最先进的生产力,已经被广泛应用在了传统存储系统,以及少量品牌/型号的服务器 ...

  3. 飞腾S2500平台PCIe SWITCH下热插拔验证

    飞腾S2500平台PCIe SWITCH下热插拔验证 插拔前主板PCIe设备情况 对PCIe外设进行热插拔 对PCIe外设进行重新枚举,并分配资源 对新的PCIe外设进行功能测试 插拔前主板PCIe设 ...

  4. 一次 MDIO 配置 switch 的调试过程,88e1512 switch mv88e6xxx

    一次 MDIO 配置 switch 的调试过程 1.什么是 MDIO 物理层时序 总线的电平协议类似 IIC 的协议.有两线通讯,一条时钟 MDC,一条数据 MDIO.但是数据的表示和 IIC 有些许 ...

  5. hisi3559平台PCIE转USB调试(转)

    hisi3559平台PCIE转USB调试(转) 版权声明:转载请注明出处. https://blog.csdn.net/zhenglie110/article/details/80564906 第1章 ...

  6. PCIE switch 非透明桥

    非透明桥,可以把PCIE switch分为几个单独的虚拟switch部分,每一部分都有USP和0或更多的下游端口.这就可以使switch连接多个RC. 每个RC可以枚举自己PCIe域的设备. NT E ...

  7. [Android6.0][RK3399] PCIe 转 SATA 调试步骤

    Author: Younix Platform: RK3399 OS: Android 6.0 Kernel: 4.4 Version: v2017.04 一PCI 设备调试手段 busybox ls ...

  8. PCIE知识点-008:PCIE switch的结构

    1.Switch基本结构 Switch结构图如图1-3所示,switch包含一个upstream port和若干个downstream port,upstream port和downstream po ...

  9. Pcie(igb)网卡调试总结:tx uint hang异常解决方法

    前段时间做pcie网卡的适配工作,使用的网卡是Intel 1350; 环境是ARM 利用ismod xx.ko 安装上驱动后,会产生一个内核警告的异常,然后之后的通讯就会持续产生tx unit han ...

最新文章

  1. 宏基因组QIIME2专题讨论群
  2. 对复杂业务组件在实际开发过程中被调用的反思
  3. 算法 快速求一个整数的7倍
  4. kubernetes 1.5 + nginx负载均衡 + jenkins集群 实战(一)
  5. 如何用python新建文件夹_用Python编写一个每天都在系统下新建一个文件夹的脚本...
  6. Android textview 获取url,获取电话号码
  7. MySQL懒查询_mysql 联查的基本命令
  8. 【转】Objective-C 属性特性(assign , retain , copy , readonly , readwrite , atomic , nonatomic)...
  9. keil5图标变成白色_【网上最简单】Chrome安装后打不开任何页面 amp; 改名后图标变成小白块[30秒解决]...
  10. java web 导出excel_javaweb导出excel表格
  11. Cloudera 公司研发工程师,Kudu 发明人Todd Lipcon:Kudu,Storage for Fast Analytics on fast Data
  12. 洛谷P1548 [NOIP1997 普及组] 棋盘问题
  13. 华为策略路由加等价路由_思科华为路由器如何利用route-map配置双wan口策略路由...
  14. 从冰雪盛会的幕后赛场,看数字建设者如何保障大型赛事
  15. SPA(单页面web应用)和MPA(多页面web应用)
  16. 第十届蓝桥杯JavaB组省赛真题
  17. 什么是垂直搜索引擎(之二)
  18. onmp mysql端口_ONMP 安装教程
  19. jvm什么时候会触发full gc
  20. Android内核开发 Goldfish Linux Kernel编译及安卓虚拟机测试

热门文章

  1. AcrGIS Desktop10.5软件安装详细教程(地图工具篇.1)
  2. mariadb通用二进制格式安装
  3. MAB建模规范-Stateflow状态机建模规范
  4. Serv-U的反弹攻击及其利用时间:2006-12-20 11:09来源:中国网管联盟 作者:网管整理 点击:899次...
  5. ios 输入法扩展_如何给iOS系统原生输入法导入词库
  6. 【电脑讲解】电脑D盘不见了怎么恢复
  7. 开发Unity3D空战类插件 现代战机武器系统
  8. 如何使用Python创建一个自定义视频播放器
  9. ScriptManager的几个属性和方法
  10. Linux centos 64位 mysql安装教程