微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > HPI 接口在TI SOC 的应用详解

HPI 接口在TI SOC 的应用详解

时间:09-10 来源:互联网 点击:
6. HPI 常见故障案例分析

    在HPI 应用调试过程中,常遇到的问题分为:写数据不成功,读数据不正确,HRDY 常高。这些问题通常都是由于时序不正确造成的,下面结合实际应用当中的案例进行分析。

1.1 写数据不成功

案例的硬件连接如下:



    首先关注核心信号HSTROBE 由DSP_CS,ARM_WR(HDS1),ARM_RD(HDS2)产生,从下面时序图可以看出ARM_WR 的下降沿是最后产生的,所以写操作时HSTROBE 的下降沿反应的是ARM_WR 的下降沿。

写HPIC 的时序截图如下:



写HPID 的时序截图如下:



    两个时序图显示主机送出的数据111b 在HSTROBE(ARM_WR)的下降沿后,很快被改变成其它值000b。在写HPID 的时序截图中,第一个HSTROBE 的下降后,HPI 送出HRDY 信号,然后数据线被改变,首先判断HPI 对主机的命令做出了响应,通过HRDY 信号的出现时机,说明HPI 判断这是一个读操作,可以判断为HSTROBE 的下降沿采样HR/W信号不正确。

    从硬件连接来看,HSTROBE(HR/W)要采样HR/W,HCNTL0/1 来判断主机命令,HR/W的与HSTROBE 为同一信号源,且同为下降沿,HR/W与HSTROBE 的下降沿之间的setup 时间不够,采样HR/W的电平状态出现误判,认为是高电平读命令,HPI 对读命令的响应则是在第一个HSTROBE 的下降沿之后送出HRDY 信号,并在HRDY 之后,HPI 送出数据到总线上。

    对于该问题,需要对参与HSTROBE 逻辑译码的HR/W信号的下降沿做延时处理,可在逻辑电路如CPLD 或FPGA 里实现,以确保HSTROBE 的下降沿采样到稳定的HR/W电平。

1.2 读数据不正确

     通常表现为读读HPIC,HPIA 正常,但读HPID 不正常,前半字为0,后半字正确,对同一个地址读两次,第二次的数据完全正确。

    在案例中,用示波器观察HCS 与HRDY 之间的时序关系,发现HCS 的上升沿在HRDY 的上升沿之前,即主机在HPI 数据有效之前结束了访问周期。HRDY 的上升沿其实是因为HCS 的结束而拉高的,并非数据真正有效。



    用户由于没有在硬件上将HRDY 与主机PowerPC 的TA 信号互连,没有硬件握手机制,于是从软件配置上加大主机的总线访问周期,即增加HCS 的宽度,故障现象没有变化。

    原因分析:读HPID 与HPIC,HPIA 时序不同,读HPID 操作需要HPI DMA 从HPIA 所指向的地址读数据到HPID,会有时间上的延时。而读HPIC 和HPIA 直接从寄存器读数据,没有延时,所以读HPIC,HPIA 是正确的。在读HPID 时,HPI 会在第一个HSTROBE 的下降沿后将HRDY 置位,指示数据未准备好的忙状态,主机应当在总线上插入等待周期,数据准备好后HPI 清除HRDY,主机才可以结束总线周期,通过HCS 的上升沿将有效数据锁存。

    HSTROBE 的下降沿到数据有效之间的延时与芯片及HPI 接口的工作频率相关,以C5502,C5501 为例,在芯片手册中,这个延时参数H1 在SYSCLK1 与CPU 时钟的分频为4 时,最大延时为12*2H+20(ns),H=SYSCLK1/2,在HPI 启动期间,PLL 没有倍频,处于旁通状态,系统输入时钟就是CPU 的工作时钟,SYSCLK1默认分频为CPU 时钟的4 分频,以输入时钟为25MHz 为例,最大延时为:

    这个时间长度通常超出了主机端总线周期的软件配置范围,所以通过软件配置增加HCS 的宽度不一定能满足HRDY 的最大延时要求。在有的DSP 芯片手册上只提供了HRDY 的最小延时,最大延时与芯片的优先级设置,及系统配置相关而不确定,比如与系统中其它主模块如EDMA 同时访问DDR,那么延时与HPI 的优先级,EDMA 的优先级,EDMA 的burst 长度,以及DDR 的命令排序等配置相关,这样通过延长主机的总线访问周期,更加不可靠。

    解决办法:在硬件设计之初,一定要利用HRDY 硬件握手信号[2][3]。虽然有的芯片HPIC 寄存器提供了HRDY 软件握手方式,只能做为弥补硬件设计之初遗漏HRDY 硬件握手信号的权宜之计,软件轮循HRDY 的办法会带来额外的开销,降低HPI 总线的吞吐率,增加主机软件实现的复杂度。而且有的芯片HPI 不支持HRDY 软件查询方法,只能通过硬件HRDY 保证数据的有效性。

1.3 HRDY 常高

    有的系统在长时间运行中偶尔出现HRDY 常高,导致主机端总线访问异常,需要重新上电才能恢复HPI 的正常操作。这种故障是由于HPI 状态机出现异常。

从实际故障定位中总结出以下几点原因:

A.      HPI 的高低半字访问的顺序访问被其它HPI 访问打断:在复用模式下,一个完整的HPI 访问是由高低半字两次访问组成,需要严格保证,否则会破坏HPI 的状态机,从而导致不可预期的后果。

B.      主机通过HPI 访问了DSP 内部的保留空间,或者破坏了DSP 的程序,数据空间,导致DSP 运行异常,进而导致HPI 状态机异常。

C.      主机的HSTROBE 信号有毛刺,或者信号完整性不好,如下图中HCS(些案例HSTROBE 是由HCS 控制)的上升沿的回勾,都会导致HPI 误判断为主机的新的访问的开始,从而打乱了高低半字的访问顺序要求,导致HPI 状态机的错乱。



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top