Cannot write into CYC1059DV33

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
SeBo_4571966
Level 1
Level 1

I'm having a problem with CYC1059DV33, probably because this is my first time ever attempt to use any SRAM.

It reads as ones, even if I input 0x55 or 0xFF or 0x00.

What I noticed via debugging:

1. I set address, for example 0

2. I output something, for example 0x55

3. I keep OE high

4. I measure voltage, it is 0V where logical 0 and 3.3V where logical 1

5. The moment I lower WE the positions that have logical 0 become 0.83V instead of 0V, consumption jumps up about 15-20mA.

6. And when I read address 0, all 8 pins are always 1.

When I read datasheet it states that Input low must not exceed 0.8V.

Well, is this voltage jump to 0.83V normal?

Did I damaged pins somehow?

Can you advice, maybe this behaviour is known and means something?

Part of my schematic:

CY7c1059DV33.png

Thanx, Sergiy

0 Likes
2 Replies
PradiptaB_11
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

Hi Sergiy,

The controller should drive the SRAM data pins once you have pulled the WE low. The controller should drive the pins according to the data to be written in the memory. Are you saying the controller is not driving the pins accordingly.

Can you provide us a read and write wave forms/ scope shots so that we can see how is the device responding. I am assuming you are following all the timing specifications for a read and write operation as per the datasheet.

After a power cycle are you able to read the memory and get a random chunk of data (not all lines should be 1) ?  What about reading other address ? Can you tell us if the power supply is clean to the device.

Thanks,

Pradipta.

0 Likes
SeBo_4571966
Level 1
Level 1

Hi Pradipta

Thanx for your suggestions.

Can you provide us a read and write wave forms/ scope shots so that we can see how is the device responding. I am assuming you are following all the timing specifications for a read and write operation as per the datasheet.

I don't have equipment to provide wave forms. I'm using multimeter to measure voltages and debug mode in Atmel Studio. I put a breakpoint in the code and "step over" each command manually, so for sure it just cannot be too fast:

-- set address

-- output data

-- lower WE

-- rise WE

-- repeat it 10 times for addresses 0 to 9

Between each of this step I measure levels with multimeter. I can tell 100% that voltage levels of the byte of data to be written is correct, addresses are correct, WE down and up is correct.

Then code reads data:

-- I change MCU outputs to inputs

-- set address

-- lower OE

-- read the data <-- PROBLEM

-- rise OE

After a power cycle are you able to read the memory and get a random chunk of data (not all lines should be 1) ?  What about reading other address ?

I did all above operations on 10 subsequent memory addresses from 0 to 9 by manually "stepping over" in debugger and measuring all A0-A9, IO0-IO7, WE and OE voltages.

And here is the problem -- MCU reads them like 0x03 or 0x83 but measuring voltages on those outputs gives me anything from 0.8V to 0.84V. And because this is neither LOW nor HIGH, some MCU pins recognize this strange voltage as low, some as high.

For sure it must be either 0 or 3.3V, it cannot be 0.8x.

I'm going to order another chip to see if there is any difference. I might burnt it because I did re-sorder it after soldering wrong way around, though I did not powered it up in a wrong position.

Also if MCU pins were outputs and memory pins were also outputs at the same time, what happens in this case? They burn?

That is why I asked if 0.8xV means something. A burnt output or similar?

Regards, Sergiy

0 Likes