- 博客(234)
- 收藏
- 关注
原创 SNR = 6.02N + 1.76dB 公式推导
接触ADC或DAC时您一定会碰到这个经常被引用的公式,用于计算转换器理论信噪比 (SNR)。与其盲目地相信表象,不如从根本上了解其来源,因为该公式蕴含着一些微妙之 处,如果不深入探究,可能导致对数据手册技术规格和转换器性能的误解。记住,该公式 代表的是完美N位ADC的理论性能。您可以比较ADC的实际SNR与理论SNR,看看二者有 何异同。本教程首先推导N位模数转换器(ADC)的理论量化噪声,知道均方根量化噪声电压后,就 可以计算理论信噪比(SNR)。此外还会分析过采样对SNR的影响。
2024-03-12 21:00:07 1230
原创 以太网丢包问题案例分析
因此1488095的速率为一般公司测试限速的标准,在实验中发现,测试设备发包要快在某以太网进行线速测试时,发现丢包现象,但是没有发现CRC错误包,经过软件抓包,MAC收到的测试设备发出的包相同,而测试设备收到的包小于本身发出的包;
2023-04-18 20:59:29 801 9
原创 DDR设计总结
本文针对DDR的一些知识做一个统一的整理,一个项目是18年开始,基于光纤通信的一块通信板卡,作为一个开发,硬件如果按开发板设计原理图,逻辑配置一直参考原有的demo,可能会对一些基本的认识了解不够深,最近刚好发生一起由于物料问题引起的DDR不良问题,刚好有个机会,对DDR做个深入的了解,做了一个统一的梳理,同时将前前后后遇到的一些问题,都有一个总结有两个目的,一方面加深自己对DDR设计的认识,一方......
2020-04-20 22:06:48 4982 4
原创 RK3588平台开发系列讲解(PCIe开发篇4)
此情况⼀般是设备驱动还 未加载或者加载时申请MSI或者MSI-X失败导致,请参考其他驱动,使⽤pci_alloc_irq_vectors等函数 进⾏申请,详情可结合其他成熟的PCIe外设驱动做法以及参考内核中的Documentation/PCI/MSIHOWTO.txt⽂档进⾏编写和排查异常。⽬前已知 JMB585芯⽚给出的解决办法是需要重复读取BAR空间,才可以解决他们Fireware的异常,那么可以使⽤ echo 1 > /sys/bus/pci/rescan重新对链路进⾏扫描,可以修复。
2024-04-24 09:31:47 858
原创 RK3588平台开发系列讲解(PCIe开发篇3)
最后测试复位信号与电 源的时序是否与此设备的spec冲突。有的switch,如ASM2812,不论port的下游是否有设备,都会如下⾯log所⽰,申请2MB的 32-bit BAR空间。根据lspci结果我们可以看到,bus 12的switch下的2/3/a/b这四个port下⾯并⽆设备, 但却额外占⽤了总共8MB的32-bit BAR空间,导致正常设备的32-bit BAR资源不够分配。其可能的因素是低功耗⽀持异常,或可能是外设对于⾮Gen1的RC⽀持 存在问题,亦或者是其他类型的模块⼯作异常。
2024-04-24 09:24:31 695
原创 RK3588平台开发系列讲解(PCIe开发篇2)
原理图是基于IO信号的视⻆来描述硬件,IO信号是跟PHY的index强相关的,前⾯提到RK3588的controller和PHY的index可能不⼀致,所以看原理图的时候需要特别注意这⼀点。这⾥给出⼀些填写建议,并通过⽰例说明如何将原理图中的PHY和控制器对应到dts的节点。根据硬件原理图来填写dts的建议步骤:1.跟硬件⼯程师确认使⽤了⼏个PCIe设备,芯⽚的多个PCIe接口是如何分配的;2.在原理图中分别查找某个设备使⽤的PCIe数据线对应到哪个PHY的输出;
2024-04-18 10:00:00 549
原创 RK3588平台开发系列讲解(PCIe开发篇1)
RK3588共有5个PCIe的控制器,硬件IP是⼀样的,配置不⼀样,其中⼀个4Lane DM模式可以⽀持作为EP使⽤,另外⼀个2Lane和3个1Lane控制器均只能作为RC使⽤。RK3588有两种PCIe PHY,其中⼀种为pcie3.0PHY,含2个Port共4个Lane,另⼀种是pcie2.0的PHY有3个,每个都是2.0 1Lane,跟SATA和USB combo使⽤。pcie3.0 PHY的4Lane可以根据实际需求拆分使⽤,拆分后需要合理配置对应的控制器,所有配置在DTS中完成,⽆需修改驱动。
2024-04-17 09:30:00 947
原创 RK3588平台开发系列讲解(Memory Allocator开发篇)
本⽂介绍Rockchip Linux 5.10平台内存分配器相关技术。Linux 5.10新增DMA-HEAP内存分配器,代码位于drivers/dma-buf/heaps/⽬录,专⽤于分配DMABUF类型的内存;对⽤⼾空间通过ioctl返回dmabuf的索引(fd)。
2024-04-17 09:00:00 308
原创 如何准确测量电源噪声
随着科技的日益发展,电子产品上所用芯片的电源电压也越来越小,从早期的5V逐步降低到了1.2V,某些芯片的核电压甚至到了1V或更低。电压越小,芯片对电压波动也变得越敏感。通常用电源噪声来表征电源电压的波动,其要求通常是电源电压的±5%到±1.5%,有的芯片要求甚至更低。如果芯片的电源噪声没有达到规范要求,轻则影响产品的性能,重则影响整机的可靠性。因此工程师需要准确地测量电源噪声。
2024-04-11 21:17:18 347
原创 RK3588平台开发系列讲解(GMAC delay开发篇)
比如确认千兆时 CLK 的信号质量,分别在靠近接收端的位置(不要在发送端量取,发送端信号反射严 重,波形不能反应实际信号质量),测量 MAC_CLK、TX_CLK、RX_CLK 信号的波形,重点看占空 比、幅度、以及上升下降时间,测量示波器及探头带宽需大于 125M 的 5 倍,如是单端探头注意接地回 路要尽可能的短,最好是用差分探头测度,占空比控制在 45% ~ 55% 之间。如果你的项目具有千兆以太网功能,使用的是 RGMII 接口,只要有硬件差别,都需要重新做一次 delayline 的配置。
2024-04-11 19:59:32 652
原创 RK3588平台开发系列讲解(GMAC开发篇)
snps,reset-delays-us:PHY的复位时序,三个时间分别表示PHY的不同阶段的复位时序,不同的PHY的复位时序是不一样的,如果是snps,reset-active-low属性,则表示三个时间分别表示Reset pin脚拉高,拉低,再拉高的时间;如果出现了Link问题,有个排除法,即将MDC/MDIO与主控断开,与电脑直连,查看电脑端是否有同样的问题,以此排除软件上的干扰,那么需要重点排查下硬件上的影响,先测试TXN/P以及RXN/P是否有Link波形。
2024-04-10 19:48:57 682
原创 RK3588平台开发系列讲解(Pinctrl开发篇)
Rockchip pinctrl 驱动包括 Pinctrl 驱动( drivers/pinctrl/pinctrl-rockchip.c ) 和 GPIO 驱动 ( drivers/gpio/gpio-rockchip.c )。Pinctrl 驱动是主要驱动,提供 IO 的⽅法集,包括 PINMUX 、 PINCONF 和 GPIO。GPIO 驱动是完成 gpiochip 的功能,包括 GPIO 和 IRQ。
2024-04-09 19:51:15 814
原创 RK3588平台开发系列讲解(PWM开发篇)
参数 3 ,表⽰极性,为可选参数;就像 pwm.txt ⽂档⾥⾯说的, PWM 提供了⽤⼾层的接口,在 /sys/class/pwm/ 节点下⾯, PWM 驱动 加载成功后,会在 /sys/class/pwm/ ⽬录下产⽣ pwmchip0 ⽬录;4.4 及以上内核版本将 pwm_config() , pwm_enable() 和 pwm_disable() 包装在 pwm_apply_state() 函数⾥⾯,这样做的好处是可以⼀次改变⼏个 PWM 参数, 3.10 内核的 PWM 驱动还是原来的接口。
2024-04-01 20:54:55 809 1
原创 RK3588平台开发系列讲解(UART开发篇)
drivers/tty/serial/8250/8250_core.c drivers/tty/serial/8250/8250_dw.c drivers/tty/serial/8250/8250_dma.c drivers/tty/serial/8250/8250_port.c # 8250串口驱动核心 # Synopsis DesignWare 8250串口驱动 # 8250串口DMA驱动 # 8250串口端口操作 drivers/tty/serial/8250/8250_early.c。
2024-03-31 13:56:05 838
原创 RK3588平台开发系列讲解(SPI开发篇)
对于 SPI io 速率较高的情形,正常 SPI mode 可能依旧无法匹配外接器件输出延时,RK SPI master read 可能无法采到有效数据,需要启用 SPI rsd 逻辑来延迟采样时钟。
2024-03-31 13:42:06 895
原创 RK3588平台开发系列讲解(I2C开发篇)
ROCKCHIP 系列芯片为客户提供了标准 I2C 总线,方便客户实现对不同外接设备的控制和访问。I2C 总 线控制器通过串行数据(SDA)线和串行时钟 (SCL)线在连接到总线的器件间传递信息。每个器件都 有一个唯一的地址识别(无论是微控制器——MCU、LCD 驱动器、存储器或键盘接口),而且都可以作 为一个发送器或接收器(由器件的功能决定)。Rockchip I2C 控制器支持下列功能︰兼容 I2C 与 SMBus 总线仅支持主模式下的 I2C 总线。
2024-03-31 13:01:11 906
原创 RK3588平台开发系列讲解(CAN开发篇)
概率性不能收发先确认⽐特率是否是精准的,下⾯命令可以看到 can 当前的实际⽐特率以及配置信息。如果⽐特率偏差会 造成收发异常,需要根据⽐特率调整输⼊时钟,以分到精准的⽐特率。 ip -details -statistics link show can0 采样点调整,上⾯ can 命令会打印当前配置的采样点,尽量保证同⽹络中采样点⼀致。可以保障收发的稳 定性。
2024-03-30 05:54:12 693
原创 RK3588平台开发系列讲解(开发环境搭建)
推荐使⽤ Ubuntu 22.04 或更⾼版本的系统进⾏编译。其他的 Linux 版本可能需要对软件包做相应调 整。除了系统要求外,还有其他软硬件⽅⾯的要求。硬件要求: 64 位系统,硬盘空间⼤于 40G。如果您进⾏多个构建,将需要更⼤的硬盘空间。软件要求: Ubuntu 22.04 或更⾼版本系统。
2024-03-30 05:41:46 522
原创 RK3588平台开发系列讲解(硬件篇-功能外设2)
RK3588 芯片内置两个USB3.0 OTG控制器(内嵌2个USB2.0 OTG,下图绿色处),1个USB3.0 HOST 控制器,2个USB2.0 HOST控制器。这些控制器与PHY的内部复用图如下:USB3.0 OTG0 控制器支持SS/HS/FS/LS, 内嵌的USB2.0(HS/FS/LS)信号采用USB2.0 OTG PHY, 信号名见下图的红色方框内;RK3588目前仅此接口支持做Fireware的Download,应用中请务必要预留出。
2024-03-29 21:34:03 690
原创 RK3588平台开发系列讲解(硬件篇-功能接口1)
SDMMC_D[3:0],SDMMC_CMD,SDMMC_CLK,SDMMC_DET 信号在 SD 卡位置需要 放置ESD器件,需要支持SD3.0模式,ESD器件的结电容必须小于1pF,如只需支持SD2.0 模式,ESD器件的结电容可放宽到9pF。SDIO接口复用两个位置,一个在VCCIO3电源域,一个在VCCIO5电源域,只能使用其中一个, 要么全部用VCCIO3电源域,要么全部用VCCIO5电源域里,不支持有些使用VCCIO3电源域, 有些使用VCCIO5电源域;4线的数据总线宽度;
2024-03-29 21:21:39 453
原创 RK3588平台开发系列讲解(硬件篇-电源设计)
理论上遵循同一模块低压先上、高压后上;相同模块相同电压一起上电原则,不同模块间无时序要求, 待最后一个电压上电稳定后,RESETn至少保证1mS才能释放(如果RESETn还有给其它外设复位,还需 满足外设要求,一般做法是5ms-200ms内释放)。参考图推荐的典型上电顺序如下。
2024-03-27 21:39:04 1243
原创 RK3588平台开发系列讲解(硬件篇-最小系统设计)
RK3588 是一颗高性能、低功耗的应用处理器芯片,由4个Cortex-A76和4个Cortex-A55 及独立的 NEON协处理器集成,适用于ARM PC、边缘计算、个人移动互联网设备和其它多媒体产品。RK3588 内置了多种功能强大的嵌入式硬件引擎,为高端应用提供了优异的性能,支持8K@60fps 的 H.265 和VP9解码器、8k@30fps的H.264解码器和4K@60fps的AV1解码器;
2024-03-27 21:27:39 924
原创 RK3588平台开发系列讲解(固件烧录篇)
操作步骤如下: 1. 打开烧写工具,确认工具版本与 编号1是否一致 2. 点击 编号2 位置进入下载镜像页面 3. 点击 编号3 进入 rockdev/Image-rk3588_s ,选择 4. 点击 编号4 进入 parameter.txt rockdev/Image-rk3588_s ,选择 MiniLoaderAll.bin 5. 点击 编号5 进入 u-boot/ ,选择 uboot.img 6. 勾选这三个复选框(烧写uboot) 7. 检查加载路径是否与分区名字是否一样 8. 执行>
2024-03-26 20:44:10 598
原创 RK3588平台开发系列讲解(串口调试篇)
5.打开串口调试终端,如XShell、MobaXterm等,此处以。如果不是上述两个系列的驱动,则可以询问卖家获取相关信息和链接。文字的接口,如果没有可以查找文档或者网盘中相关硬件资料。,如果是其它波特率相关资料会指明,或者问询相关技术客服。工具,如果是其它电平,比如RS485,则可以准备一个。安装串口工具对应的驱动,要安装的驱动常见的有。调试串口一般为TTL电平,因此需要准备一个。,其它接口一般不需要使用。串口工具只需关注三个接口,丝印标识类似。工具,或者使用三合一串口工具。,这样方便下次选择具体串口。
2024-03-26 20:27:53 625
原创 飞腾FT2000/D2000常见报错分析
解决方法:根据主板实际电源管理器件,修改打包工具中的固件配置,主板是cpld上电时, S3 flag 选择GPIO,问题可解决。解决方案:该问题会发生在CPLD做为上电时序管控时,将GPIO0_A1按照《处理器数 据手册》中要求的上电时序处理,问题解决。解决方法:在打包配置工具中更改QSPI的速率配置,降低QSPI的速率问题可解决。解决方案:修改上电时序,将FT_POR_N信号按照数据手册要求处理,问题可解决。解决方法:须要烧录主板USB控制器的EEPROM,文件,烧录后问题可解决。原因是:上电时序不对。
2024-03-25 21:00:57 204
原创 ADC 架构 IV :Σ-Δ 型 ADC 高级概念和应用
上节已论述了 Σ-Δ 型 ADC 的基本原理。本教程将介绍一些更高级的概念,包括 空闲音、多位 Σ-Δ、MASH、带通 Σ-Δ,并提出一些示例应用。简介 教程 MT-022 已论述了 Σ-Δ 型 ADC 的基本原理。本教程将介绍一些更高级的概念,包括 空闲音、多位 Σ-Δ、MASH、带通 Σ-Δ,并提出一些示例应用。图 2 显示了两种输入信号条件下的位模式 :一种是输入信号的值为 8/16,另一种是输入信 号的值为 9/16。
2024-03-16 13:44:52 1024
原创 ADC架构III:Σ-Δ型ADC基础
Σ-Δ型ADC是现代语音频带、音频和高分辨率精密工业测量应用所青睐的转换器。高度数 字架构非常适合现代细线CMOS工艺,因而允许轻松添加数字功能,而又不会显著增加成 本。随着此转换器架构的广泛使用,了解其基本原理显得非常重要。本教程从历史展望角度介绍了Σ-Δ型ADC的各种基础知识,包括过采样、数字滤波、噪声 整形和抽取等重要概念。下节将介绍一些更高级的概念和Σ-Δ型ADC的各种应 用,如,空闲音、多位Σ-Δ、MASH和带通Σ-Δ。
2024-03-16 13:40:30 495
原创 ADC架构II:逐次逼近型ADC
数年以来,逐次逼近型ADC一直是数据采集系统的主要依靠。近期设计改良使这类ADC 的采样频率扩展至兆赫领域且分辨率为18位。ADI公司的PulSAR®系列SAR ADC采用内部 开关电容技术和自动校准,以CMOS工艺实现18位、2 MSPS性能(AD7641),而无需进行昂 贵的薄膜激光调整。在16位级别,AD7625(6 MSPS)和AD7626(10 MSPS)还代表着突破性的 技术。基本逐次逼近型ADC如图1所示。该器件根据命令执行转换。
2024-03-15 21:27:58 680
原创 ADC架构I:Flash转换器
接触ADC或DAC时您一定会碰到这个经常被引用的公式,用于计算转换器理论信噪比 (SNR)。与其盲目地相信表象,不如从根本上了解其来源,因为该公式蕴含着一些微妙之 处,如果不深入探究,可能导致对数据手册技术规格和转换器性能的误解。记住,该公式 代表的是完美N位ADC的理论性能。您可以比较ADC的实际SNR与理论SNR,看看二者有 何异同。本教程首先推导N位模数转换器(ADC)的理论量化噪声,知道均方根量化噪声电压后,就 可以计算理论信噪比(SNR)。此外还会分析过采样对SNR的影响。
2024-03-15 21:24:34 881
原创 ADC的动态参数
用于定量表示ADC动态性能的常用指标有六个,分别是:SINAD(信纳比)、ENOB(有效位 数)、SNR(信噪比)、THD(总谐波失真)、THD + N(总谐波失真加噪声)和SFDR(无杂散动态 范围)。对于这些指标,虽然大部分ADC制造商采用相同的定义,但也存在一些例外。比 较ADC时,这些指标非常重要,因此不仅要了解各指标反映哪一方面性能,而且要明白它 们之间的关系。
2024-03-12 21:07:15 812
原创 RGMII 接口调试
硬件工程师检查原理图和PCB,核查RGMII线路连接是否正确,PHY的 TX连接对端 RX,PHY的RX连接对端TX,原理图上以引脚序号+引脚名+ 引脚类型(输入还是输出)逐一核查RGMII接口各个网络,确保接口两侧均为收发对接;确认RGMII接口两侧芯片都已工作在RGMII模式,且速率均一致,SF2507V_SF2507EV通 过读取寄存器0x1358(GMAC1),0x1359(GMAC2)来查看GMAC状态,确保GMAC已配成RGMII 模式,接口已正常工作(link up);
2024-03-11 19:46:14 1722
原创 FPGA的时钟资源
7系列FPGA的时钟结构图:Clock Region:时钟区域,下图中有6个时钟区域,用不同的颜色加以区分出来Clock Backbone:从名字也能看出来,这个一个纵向贯穿整个FPGA的时钟资源,把FPGA的clock region分成了两个部分,所有的全局时钟都要从这经过。可以看到BUFG都在Clock Backbone上。Clocking Center就是Backbone中间的分割线。
2024-03-09 21:13:48 1889
原创 SSD的原理
SSD(Solid State Drive)是一种使用闪存存储芯片(NAND Flash)的存储设备。与传统的机械硬盘不同,SSD没有移动部件,因此具有更快的读写速度和更低的能耗。
2024-03-09 21:06:26 457
原创 FPGA的配置状态字寄存器Status Register
Xilinx的FPGA有多种配置接口,如SPI,BPI,SeletMAP,Serial,JTAG等;如果从时钟发送者的角度分,还可以分为主动Master(即由FPGA自己发送配置时钟信号CCLK)和被动Slave(即由外部器件提供配置所需要的时钟信号);另外还可由板上稳定晶振提供时钟信号,经由FPGA的EMCCLK接口,再从CCLK端口送出。如此多的配置形式,一旦发生配置失败怎么办?大家都知道先要查看一下板子上FPGA的DONE管脚。但绝大多数情况下,DONE管脚此时会是低电平,只能证明配置确实失败了。
2024-03-09 20:49:58 890
原创 Xilinx 7系列FPGA的配置流程
这就产生问题,因为DCI匹配需要时间,我们的问题就是,过了一段时间,DCI匹配完毕了,但是CCLK却没有了,因此FPGA一直处在Start UP的前2个Phase上,不会到DONE。如果设备计算的 CRC 值与比特流中的预期CRC值不匹配,则设备将INIT_B拉低并中止配置,此时用户必须把PROG-B引脚拉低,才能进行重新配置。在准备工作完成后,FPGA开始加载配置数据。默认情况下,CRC校验包含在配置比特流中,如果禁用CRC检查,则存在加载错误配置数据帧的风险,从而导致错误的设计行为或损坏器件。
2024-03-09 20:46:01 1243
原创 Xilinx 7系列 FPGA硬件知识系列(九)——FPGA的配置
完成FPGA初始化过程后,INIT_B被释放到高阻态,此时外部电阻器应将INIT_B拉高(将INIT_B连接到一个 的上拉电阻到VCCO_0)。当CFGBVS为GND,并且配置模式使用到BANK14/15时,VCCO_0、VCCO_14和VCCO_15必须为1.8/1.5V以避免器件损坏。当FPGA处于配置复位状态、FPGA正在初始化(清除)其配置存储器或FPGA检测到配置错误时,FPGA将该引脚驱动为低电平。
2024-03-08 22:08:15 839
原创 Xilinx 7系列 FPGA硬件知识系列(九)——FPGA的配置
在该模式下,FPGA向外部的非易失性串行数据存储器或者控制器发出CCLK时钟信号,配置数据会以串行方式载入FPGA,在前几代的FPGA中,存储器通常选择Xilinx官方的XCF串行系列存储器,并给出了相应的设计原理图,但在7系列FPGA中,这种方式被放弃了,其官方的配置文档里并无主串配置模式的相关详细描述。FPGA在驱动配置逻辑的内部振荡器中生成配置时钟信号,并在CCLK输出引脚上可见。如下图所示,在该模式下,外部处理器提供配置时钟和并行的配置数据,该模式相对于串行方式来说,配置的速度快,但设计稍微复杂。
2024-03-08 22:04:52 1113
原创 辐射发射 电磁兼容
这篇系列文章的第 4 部分针对电源转换器(特别是工业和汽车领域使用的电源转换器)在开关时产生的辐射排放阐述了一些观点。辐射电磁干扰 (EMI) 是一种在特定环境中动态出现的问题,与电源转换器内部的寄生效应、电路布局和元器件排布及其在运行时所处的整体系统相关。因此,从设计工程师的角度出发,辐射 EMI 的问题通常更具挑战性,复杂度更高,在系统主板使用多个 DC/DC 功率级时尤为如此。了解辐射 EMI 的基本机制以及测量要求、频率范围和相应限制条件至关重要。
2024-03-07 19:46:47 590
原创 Xilinx 7系列 FPGA硬件知识系列(八)——Xilinx FPGA的复位
比如,一个Xilinx FPGA中可能含有多个DLL/DCM/PLL时钟处理模块,每个模块又可以产生多个时钟信号,在各个模块内部进行时钟信号的同步是可行的,然而想让所有时钟信号同步是完全不可行的——从DCM的分布上就可以看出来:中间相隔的长距离布线对高频时钟信号的延时显著增大,进行同步自然无法做到。在这些情况下,复位信号的变化与FGPA芯片内部信号相比起来是及其缓慢的,例如,复位按钮产生的复位信号的周期至少是在毫秒级别的,而我们FPGA内部信号往往是纳米或者微秒级别的。图4给出了一个流水线复位的情况。
2024-03-07 19:37:22 2055
PCIE2.0规范,英文原版
2023-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人