硬件上2812外接一SRAM,通过2812外部接口XINTF总线去访问SRAM,发现XINTF总线时序在运行的过程中会变化。开始以为是由于程序太大,导致改写了
XINTF配置寄存器,但后来写了个简单的测试程序,异常现象依然会出现,且通过仿真器检查XINTF配置寄存器里的值都是所初始化的值,没有变化。
不管是下载到RAM中调试还是下载到2812内部FLASH中跑程序,均会出现上述现象。
具体情况如下:
1、 主程序:
主程序主要功能:对外部SRAM地址0x01写入0x8F80,然后循环读取对比,错误时给个亮灯信号,并打印出读出数据和循环次数,且程序while(1)停止。
2、 XINTF配置函数:选择了ZONE6区域
3、 RAM读写函数
4、 CMD文件
5、 Lib选择rts2800_ml.lib
6、 仿真结果
循环到66次时,出错了。
7、 Xintf时序
绿色为nXZCS6AND7信号,粉色为nXRD信号。示波器截图中可看出,正常状态时,XINTF外部接口读时序nXRD信号有效时间为1.2us,
在运行到第66次时,却变成120ns左右,从而导致我读取数据失败。此时通过仿真器检查XINTF配置寄存器值都是我初始化值,但是nXRD有效时间
却变短了,为什么会造成这原因?!
希望TI技术支持能看看我这是TMS320F2812固有的问题,还是我软件初始化或配置没设置好的原因,谢谢。