0

I'm using an external sram (256kbx16b), with 16 bit data and 18 bit address, and I cannot read/write to the external sram when I'm accessing anything using the msb (addr bits 16 and 17).

accessing anything that does not require these bites (anything with addr bits 0-15) works just fine.

I found when I disconnect the 16 and 17 addr bits and tie them either high or low it works fine, but when these bits are connected to the PSoC 5lp and being selected by the emif component (an External Memory InterFace) it displays a random static value, I am expecting a specific set of changing values.

I have also verified the signals coming out of the psoc for address bits 16 and 17, and they seem to behave just as any of the other address bits are behaving. If I disconnect both the 16 and 17 wires, and then plug them in individually, whatever port on the psoc that was addressing the 16th or 17th bit freezes the data on my lcd.

the transfers to the ext sram are done via dma, while the reads are done directly using a pointer to the memory, this worked fine for previous srams, although they were 1Mbx8b instead.

this is consistent across gpio pins.

I'm using 512kbx16 sram: CY7C1041D

The sram is async.

again read/write with the PSoC works for all addresses on the sram that doesn't address using the upper 2 msb's.

Does anyone know what is going on?

scarlso9
  • 195
  • 3
  • 14
  • 2^18 is 256k. Is it really 512kx16b or 256kx16b? – kkrambo Jan 29 '16 at 01:43
  • This question seems better suited for the Electrical Engineering stack exchange. And include the relevant portion of your schematic when you post there. – kkrambo Jan 29 '16 at 01:47
  • a simple googling of the part number shows it as 256Kx16. but you should still be able to control all 19 address bits. so perhaps that is not really the part you have. A very simple test is to do a memory test where you fill each location with its address or a version of the address that wont roll around part way, so address>>2. then after filling read that back and see if it does roll around somewhere indicating you dont have as much ram as you think. – old_timer Jan 29 '16 at 02:03
  • naturally double check your wiring. also if the PSoC has some configuration on size check that that is correct and/or if the access to this space is banked or windowed in some way insure you are accessing it correctly within the PSoC. basically do a test with the scope with single accesses to insure the address bit you think you are presenting is the one that shows on the bus. – old_timer Jan 29 '16 at 02:04
  • Are you seeing this on every board or only one of the boards shows this problem. is it a software problem, a hardware design problem, or a manufacturing problem, try to isolate it down to one of those. – old_timer Jan 29 '16 at 02:06
  • yes that was a typo it is 256kbx16b. I have verified it is the part that I have, I can try the memory test but I have done seimialr things and it only messes up when I access those upper bits. – scarlso9 Jan 29 '16 at 20:20
  • I have double checked my wiring, the configuration is set properly, I will verify again that I am looking where I think I am looking. I only have two boards at the moment, and both are functioning the same way. – scarlso9 Jan 29 '16 at 20:22

0 Answers0