Go Down

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

JimEli

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.

be80be

You did
Quote
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

JimEli

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.

oric_dan

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.

http://www.digikey.com/scripts/dksearch/dksus.dll?vendor=0&keywords=23lc1024

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.


Docedison

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"..

Bob
--> 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

JimEli

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

JimEli

#6
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
D13------TXH/TXL-----SCK
D12------------------MISO
D11------TXH/TXL-----MOSI
D10------------------CS
3V3------LV
5V-------HV
GND------HV GND------VSS
3V3------------------HOLD
3V3------[10KR]------CS


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

oric_dan

OP, so what was your original problem?

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


JimEli


OP, so what was your original problem?


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

Go Up