TI论坛
直播中

王秀珍

8年用户 1547经验值
私信 关注
[问答]

请教关于CPLD对DSP flash的地址扩展

对于PEG封装的5509,他只有14跟地址总线,外接19跟地址总线的flash就必须对地址进行扩展。我找了些资料,上面说:用CPLD 实现锁存译码使D[5 :0] 具有数据/地址复用功能, 为Flash 存储器提供高6位地址。那就是说flash的地址是由DSP的低12位和复用后的地址总线作为高6位组成,但是这个能保证数据总线复用过来的高6位的地址能按照地址总线那样递增吗。附件中是flash扩展的原理图。

回帖(4)

余少虹

2018-7-31 08:03:18
高6位地址不是DSP的地址总线, 不会自动递增, 需要CPLD使其递增, DSP的14根地址线会自动递增, 所以当需要访问大于16K空间时, 需要先设置CPLD, 输出相应的高6位地址.
举报

王秀珍

2018-7-31 08:10:01
引用: vuywsdfwf 发表于 2018-7-31 08:03
高6位地址不是DSP的地址总线, 不会自动递增, 需要CPLD使其递增, DSP的14根地址线会自动递增, 所以当需要访问大于16K空间时, 需要先设置CPLD, 输出相应的高6位地址.

谢谢shine!那照这么说的话,是不是我只需要根据DSP的地址线来判断,例如CPLD检测到DSP最高位A13发生变化,直接通过CPLD译码相应的高6位地址,就相当于38译码器一样。电路中完全可以不用加6跟数据总线?
举报

余少虹

2018-7-31 08:15:58
引用: 站着幻想 发表于 2018-7-31 08:10
谢谢shine!那照这么说的话,是不是我只需要根据DSP的地址线来判断,例如CPLD检测到DSP最高位A13发生变化,直接通过CPLD译码相应的高6位地址,就相当于38译码器一样。电路中完全可以不用加6跟数据总线?

只检测到A13发生变化, 不一定是超过16K, 要A0~A13都为1才表示下一个递增地址会大于16K
如果你的应用只有从0地址依次递增读写flash, 那可以通过A0~A13地址线的变化来告知CPLD译码输出相应的高位地址. 但如果要随机访问, 或者访问某个16k block的话, 这种方法就行不通了, 一般我们是通过DSP写CPLD寄存器告知CPLD DSP将要访问哪个16k的block. 建议参考下面DSK5416 CPLD外扩高位地址线的原理.
http://c5000.spectrumdigital.com/dsk5416/
举报

王秀珍

2018-7-31 08:21:43
引用: vuywsdfwf 发表于 2018-7-31 08:15
只检测到A13发生变化, 不一定是超过16K, 要A0~A13都为1才表示下一个递增地址会大于16K
如果你的应用只有从0地址依次递增读写flash, 那可以通过A0~A13地址线的变化来告知CPLD译码输出相应的高位地址. 但如果要随机访问, 或者访问某个16k block的话, 这种方法就行不通了, 一般我们是通过DSP写CPLD寄存器告知CPLD DSP将要访问 ...

好的,谢谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分