我用的是P89C669 单片机,外接了Lattice M4A5的CPLD,以及外部SRAM(SAMSUNG K6*4008C1F 512K)。
通过CPLD来扩展地址线,具体接法如下:
单片机P0口直接与SRAM的8位数据线(D7-D0) 连接, 作为低8位地址(A0-A7)和数据线(D0-D7)
单片机的P2口(A8-A15)与SRAM的高地址(A8-A15)连接,同时也与CPLD连接
CPLD 另外再输出SRAM的(A16-A18)
另外单片机的WR接到CPLD的某个I/O口,再有CPLD另一个IO口接到SRAM的WE; RD直接接到SRAM的OE,同时也接到CPLD的某个IO口。CPLD某个IO口接到SRAM的片选CS
通过以上连接就实现了:SRAM所需要的19位地址线, 以及OE和WE以及片选CS。这样就应该可以读写SRAM了。
但是测试的时候总是失败,先写到SRAM的某个地址,然后再从该地址读出数据,读出来的数据总是错误的,而且是个固定的值。
后来干脆直接在CPLD里给出片选信号CS,以及A16-A18,和WE信号,这样只把SRAM当作64K来使用,仍然读出错误的数据。线路连接应该没有问题,检查了好几次了。不知为何?
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |