Go Down

Topic: 23K256 SRAM Issues [solved] (Read 2134 times) previous topic - next topic

Feb 23, 2013, 02:12 am Last Edit: Feb 25, 2013, 02:58 pm by JimEli Reason: 1
I've spent the better part of 2 days attempting to get SPI 23K256 RAM chips to communicate with an arduino. I've tried 3 arduino boards (168, 328 & uno), two 23K256 chips, wired them with and without voltage dividers and logic level shifters.

I've tried several SPI and SPISRAM libraries found on the internet.

I've also read countless reports of others having similar issues and come to the conclusion these chips hate me. I view anyone claiming they've made this work skeptically.

At this point I'm contemplating sacrificing animals to the God of Peripheral Interfaces. For the sake of stray neighborhood cats, any advice would be appreciated.


You did
At this point I'm contemplating sacrificing
you more then likely supplied them with sacrificing 5 volts

Code: [Select]

Part Number VCC Range Page Size Temp. Ranges Packages
23K256 2.7-3.6V 32 Byte I, E P, SN, ST
23A256 1.5-1.95V 32 Byte I P, SN, ST

I powered the chips off the arduino 3v3 pin and ran CS, SI and SCK thru a spark fun Logic Level Shifter (and also ran them thru an adafruit nxp0108 breakout board). I tired using 1k8/3k3 R voltage dividers too and with and without a pullup on CS. I get data out of the chip, but its gibberish. Thx.


Did you pull the HOLD pin high?

BTW, you might be interested to know there is now an SPI SRAM chip with
larger store size, which runs at 5V or 3.3V, and comes in DIP8 besides SOIC8.
I'm using this chip, and it's much more convenient than SOIC8 and 3.3V.


Although this may not be a factor, the other thing is, if you use a pin other
than Arduino D10 for CS, you still have to set D10 = output, else the SPI
peripheral will revert to slave mode.


Is that a "feature" a bug or just a gotcha? would seem to me to be more valuable If the cs pin could be set rather than accommodated for. This topic has raised it's head many times under different seeming subjects only for this to be the "Fix"..

--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

I think we're on to something here. Let me release this cat and try an experiment. I'll report back...

Feb 23, 2013, 05:54 pm Last Edit: Feb 24, 2013, 01:53 am by JimEli Reason: 1
For anyone struggling with this, here is how I solved it:

Used the following components and wire routing:
(1) Arduino Uno
(2) Microchip 23K256
(3) SparkFun Logic Level Converter (BOB08745)
(4) 10K Resistor

Code: [Select]

Arduino--Logic Conv--23K256
GND------HV GND------VSS

Please note, no cats were harmed during the entirety of this experiment.


OP, so what was your original problem?

DE, the D10 must be configured to output when not used as CS, is clearly a gotcha.

OP, so what was your original problem?

It appears it was the HOLD pin. Thank you. Thank you. Thank you.

Go Up