Non Volatile RAM (F-RAM & NVSRAM) Forum Discussions
Hi,
I write a sequence as below, And I am using CY14B512Q2A IC with out auto store circuit.
step 1: send 0X19 , //Disabling auto store
Step 2: send 0X3C, // store it in nonvolitile memory
Step3: write "Ganesh" into address 00 to 05, // writing some Data in IC using write command
Step4: Swith OFF the module //switch OFF power for the circuit.
Step5: Switch ON the module //Switch ON Power supply.
Step6: Reading from the adress 00 to 05, and i get "Ganesh".
if you see the above steps what i did is writing a data("Ganesh")in SRAM as per data sheet. but after disconnect the power this data should not be there in the particular adress. but in my case the data is there. and i can read it every time.
Please anybody tell me what is mistake in the Steps i follwed.
Show LessHi,
I am having difficulty sending software controlled autostore disable. I think I am interpreting the datasheet reads incorrectly. Is there a more detailed document regarding the software commands?
The data sheet states that sequential reads of 0x4e38, 0xb1c7, 0x83e0, 0x7c1f, 0x703f, 0x8b45. The CY14B108N has 19 address pins while there are only 16 pins defined with these hex address.
I have assumed that A18,A17,A16 are set to zero and not used.
A15 - A0 <-address bits used
0100 1110 0011 1000 <- binary first read
4 E 3 8 <- First read
Thus,
(A15 = 0, A14=1, A13=0, A12=0) = 4xh
(A11=1, A10=1, A9=1, A8=0) = Exh
etc.....
This should be straight forward, but I notce there is small print in datasheet under truth table that states.....
6. While there are 20 address lines on the CY14B108L (19 address lines on the CY14B108N), only the 13 address lines (A14–A2) are used to control software modes.
Rest of the address lines are don’t care.
Again, there are 16 bits defined in the hex value but now with this statement only 12 bits matter?
Can someone please explain this?
I have attached waveform of the 6 reads, does this look correct?
Thanks,
Rad
Show LessHi,
Anyone have any ideas of what I should check, regarding why my first address always contains 0000h upon power-up restore, even though the rest of the locations appear to contain what was stored using autostore. All of my SRAM writes and reads are correct it is only upon restore that the first address read is incorrect and all zeros.
Thanks,
Rad
Show LessI have a table stored in part of the STK14CA8-N25I nvSRAM. This table is stored first time at the production line at the begining of the product life. The table is NOT supposed to be updated during the unit life cycle. Every power-up the table is being read from the memory and used by the product functionality.
Unfortunately, in several units the table was disrupted and few bits, in random places, changes their value from '0' to '1'. (The memory nas NOT erased or "run over", just disrupted in some random bits).
It sounds very similar to the Single Enent Upset (SEU) described in AN15979 but it occurs too much frequent.
Have you meet this phenomena before in nvSRAM devices ? do you have recomandations how to solve this memory disruption ?
Show LessDear Sir,
I am using the CY14B101P for one of application for data logging. Following design support from you:
1. Operating voltage: I am planning to provide 3.3V regulated voltage to the NVSRAM.
Is it okay or any suggestions?
2. Controller Interface: My uC operates with 5V. 5V-3.3V & 3.3V-5V converter using transistor (BC848) were used in between the uC & NVSRAM.
Is it okay or any suggestions?
3. 3.6V battery Ni-Cd battery, I am planning to provide to NVSRAM, after suitable voltage drop (3.2V), using 2 diodes in series.
Is it okay or any suggestions?
4. I am planning to charge the Ni-Cd battery using 5V supply with a suitable diode & resistor combination. Shall I charge the battery, when connected to NVSRAM, with the presence of 3.3v supply to NVSRAM?
Kindly send your reply.
With regards,
Jayaraj.A
Show LessHi,
I'm running linux on an MPC8308, trying to access a CY14B256Q2A SPI nvSRM and I'm having dificulties. To avoid having to write my own driver, I'm utilizing an existing Freescale driver for the SPI controller in the 8308 (spi_fsl_spi), and an existing interface driver that sits on top of that (spidev specifically if it matters) and I'm unable to even read the status register of the nvSRAM. I'm pretty sure the problem is in the way these two drivers work but I want to confirm it with you since the datasheet for the nvSRAM isn't explicit either way.
To read the status register the device needs to have CS asserted, SPICLK started, and 0x5 clocked onto MOSI. On the first clock following the read status reg command the MSB of the status register gets clocked out on MISO. My question is, what happens if the clock stops for a period of time between the LSB of the commnd and the MSB of the result? I've scoped the signals and what I see is eight clock pulses with the read status reg command, then clock goes silent for about 20msec and then starts back up (CS is held low the entire time), but it appears no data is clocked out of the nvSRAM when the clock starts back up. Does the part require that clock be continuous for the entire transaction?
The fact that burst reads are possible as long as CS is held low implies that the clock can start and stop without impacting the part, but it's not totally clear.
Thanks.
Bruce
Show Lessunable to write in the alternative locations after 0xFFFEO in CY14B108K nvRAM.. attached the screen shot..
please help me how to resolve this...
Thanks.
Show LessI having some trouble setting the real time clock with this particular NVRAM device. The exact sequence of events is as follows:
1. WREN
2. Write 0x02 to RTC register 0x00.
3. WREN
4. Write 7 bytes to RTC registers 0x09-0x0f.
5. WREN
6. Write 1 byte to RTC register 0x01.
7. WREN
8. Write 0x00 to RTC register 0x00.
Each of the above steps is standalone SPI transaction; the CS is pulled low for each and returns high before the next step. All values are legal BCD according to the data sheet. However, reading the RTC registers yields incorrect data and several bytes with values outside valid BCD values, which seems to mean that incorrect BCD data was loaded to begin with.
Show LessHi
As we know that we guarantee a data retention period of 20 years and a endurance of 1000k store cycles,
But my question is that, does the data retention period decrease as we approach the limit of endurance ?
i.e. say we have done the 999,999 th store operation, Can we still guarantee a data retention of 20 years before the final store?
Thanks
Akhi
Show LessI am interfacing an FPGA with a CY14B101NA-ZS25XIT (x16 NVSRAM). During RTL simulations using BHE\ and BLE\ controlled sram writes, unwritten data is getting corrupted with "z's". For example, I want to write bits DQ15-DQ8 but leave bits DQ7-DQ0 untouched. I use a BHE\ controlled sram write, the high byte gets written to the value I want, however, the lower byte gets corrupted with "z's".
Is this the behavior of the CY14B101NA for byte mode writes?
I was under the impression that bye mode writes would only write the byte selected and leave the other byte alone.
Do I need to read the sram word, modify the byte I want to write, and rewrite the entire word back?
Is this a model issue?
Any feedback would be greatly appreciated to we may find another solution that does meet our requirement. Below is a snippet of verilog code that does the supposed data corruption.
always@( CE_bar or WE_bar or OE_bar or Address or dataIO )
begin
if ((CE_bar==1'b0) && (WE_bar==1'b0)) // Write in progress!
begin
Address1 <= Address;
Address2 <= Address1;
dataIO1[15:8] <= (!BHE_bar) ? dataIO[15:8] : 8'bz ;
dataIO1[7:0] <= (!BLE_bar) ? dataIO[7:0] : 8'bz ;
temp_array0[Address1] <= dataIO1[15:0] ;
end
end