TMS320F28335外部接口XINTF支持外部程序/数据存储器的DMA传输,由XHOLD和XHOLDA信号控制完成。当XHOLD输入一个低电平时,任何请求外部接口输出信号保持高阻状态。完成对所有外部接口的访问后,XHOLDA输出一个低电平,使外部扩展单元的输出都处于高阻状态,从而其他设备就可以控制访问外设或存储器。
当检测到有效的XHOLD信号时,可以通过XINTCNF2寄存器中的HOLD模式位使能自动产生XHOLDA信号,允许外部总线的访问。在HOLD模式下,CPU可以继续执行片上存储器的程序。当XHOLDA输出低电平时,如果要访问外部接口,将产生一个没有准备好的信息,同时会停止处理器。可以通过XINTCNF2寄存器的状态位观察XHOLD和XHOLDA的状态。
如果XHOLD有效,CPU将试图向XINTF写数据,不会缓存写的数据,同时停止CPU,写缓冲被屏蔽。
寄存器XINTCNF2中的HOLD模式位优先于XHOLD的输入信号,因此,用户可以使用代码,确定何时有XHOLD请求或要不要响应XHOLD请求。
在执行任何操作前,XHOLD输入信号要和XINTF的输入同步,同步与XTIMCLK有关。
XINTCNF2寄存器的HOLDS位反映当前的XHOLD输入同步状态。
复位时,使能HOLD模式,允许使用XHOLD请求从外部存储器引导加载程序。如果在复位过程中XHOLD信号为有效低,与正常操作一样,XHOLDA信号输出低电平。
在上电过程中,将忽略XHOLD同步锁存中不确定的值,并且时钟稳定时将会被刷新。同
步锁存不需要复位。
如果检测到XHOLD有效低,只有当所有等待的XINTF周期完成后,XHOLDA才输出低电平。如果等待的CPU周期试图访问XINTF,该周期将被锁存,并产生一个没有准备好的信息,CPU停止访问。
所谓的等待的XINTF周期是指在XINTF的FIFO队列中的周期。而等待的CPU周期是指不在FIFO队列却在内核内存总线上的周期。
需要注意的是,在XHOLDA输出一个低电平之前,XHOLD必须保持激活状态,否则将会产生不可预知的错误。