Shop OBEX P1 Docs P2 Docs Learn Events
Microchip expand SPI SRAM (finally) — Parallax Forums

Microchip expand SPI SRAM (finally)

jmgjmg Posts: 15,183
edited 2013-03-05 16:34 in Propeller 1
After a long wait, finally we see more members of SPI SRAM!! - and NVSRAM too

http://www.eetimes.com/electronics-products/electronic-product-reviews/processors/4392260/Microchip-expands-serial-SRAM-lineup


* 512 Kb and 1 Mb SPI
* Speeds of up to 80 Mbps quad-SPI, or SQI, protocol,
* Two additional family members – the 23LCV512 and 23LCV1024 – offer the industry’s most cost-effective options for non-volatile, unlimited-endurance RAM, via battery backup.
They feature fast dual-SPI (SDI) throughput of 40 Mbps and low active and sleep currents.
* Serial NVSRAM devices feature high-speed operation without the high pin counts of parallel NVSRAM, and comparable power consumption to FRAM, all at a fraction of the price. Beneficial for applications such as meters, black boxes and other data recorders, which require unlimited endurance or instantaneous writes along with non-volatile storage.


Pricing starts at $1.16 each in 10,000-unit quantities for the four volatile devices.
The 23A1024 and 23LC1024 are available now for sampling and volume production.
The 23A512 and 23LC512 are expected to be available for sampling and volume production in October.

The two non-volatile devices – the 23LCV512 and 23LCV1024 – start at $1.32 each in 10,000-unit quantities, with sampling and volume production expected in October.



Hmm, I see what Microchip call NVSRAM, is not what everyone else does.
Microchip's is merely a Battery backed RAM, with a Battery Pin...

I expect that little bit of semantic gymnastics will get them into trouble
«1

Comments

  • RaymanRayman Posts: 14,826
    edited 2012-08-13 16:48
    SQI would be nice. Don't see it on the product page though...
  • RaymanRayman Posts: 14,826
    edited 2012-08-13 16:55
    Wow, that's really nice! Too bad we didn't convince Chip to add native SQI support to Prop II...
  • jazzedjazzed Posts: 11,803
    edited 2012-08-13 18:07
    Rayman wrote: »
    Wow, that's really nice! Too bad we didn't convince Chip to add native SQI support to Prop II...

    Actually we did to a point. As long as it responds to the SPI read command it can be used for boot. Then the same device can be accessed as a 4 bit part after startup (and 2x 4 bit parts read a byte at a time). I begged Chip personally for this in late October and kept up to date with whether the pin configuration actually would be implemented correctly since. Kye verified it last week.
  • jmgjmg Posts: 15,183
    edited 2012-08-13 18:08
    Rayman wrote: »
    Wow, that's really nice! Too bad we didn't convince Chip to add native SQI support to Prop II...

    Yes, such devices were clearly going to arrive sometime....
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-13 18:10
    jazzed wrote: »
    Actually we did to a point. As long as it responds to the SPI read command it can be used for boot. Then the same device can be accessed as a 4 bit part after startup (and 2x 4 bit parts read a byte at a time). I begged Chip personally for this in late October and kept up to date with whether the pin configuration actually would be implemented correctly since. Kye verified it last week.
    You have to set SIO2 and SIO3 high in order to use single bit mode because in that mode those are interpreted as /WE and /HOLD.
  • jazzedjazzed Posts: 11,803
    edited 2012-08-13 18:14
    David Betz wrote: »
    You have to set SIO2 and SIO3 high in order to use single bit mode because in that mode those are interpreted as /WE and /HOLD.

    That's a board issue. The problem before according to the spec was that CLK and DATA were in the wrong order causing data bits to be non-contiguous.
  • jmgjmg Posts: 15,183
    edited 2012-08-13 18:14
    jazzed wrote: »
    Actually we did to a point. As long as it responds to the SPI read command it can be used for boot. Then the same device can be accessed as a 4 bit part after startup (and 2x 4 bit parts read a byte at a time). I begged Chip personally for this in late October and kept up to date with whether the pin configuration actually would be implemented correctly since. Kye verified it last week.

    Yes, but that is not quite native hardware - instead you use valuable horsepower just wiggling pins and shuffling nibbles, slowly.

    Execute in place is getting common on chips these days, and that uses native hardware to run a QSPI (or even DDR.QSPI) as a code fetch mechanism.
    It removes, or softens, a constraint of cheaper FAB process, which is 'less memory than everyone else'..
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-13 18:16
    jazzed wrote: »
    That's a board issue. The problem before according to the spec was that CLK and DATA were in the wrong order causing data bits to be non-contiguous.
    That's not really a board issue since you can't just pull those pins high and still use them for data in four bit mode.
  • jmgjmg Posts: 15,183
    edited 2012-08-13 18:17
    jazzed wrote: »
    The problem before according to the spec was that CLK and DATA were in the wrong order causing data bits to be non-contiguous.

    Do you mean the physical Pin-mapping was not done thinking of QuadSPI at all, but that is now fixed, and so simpler Software support results ?
  • jazzedjazzed Posts: 11,803
    edited 2012-08-13 18:23
    jmg wrote: »
    Do you mean the physical Pin-mapping was not done thinking of QuadSPI at all, but that is now fixed, and so simpler Software support results ?

    Essentially it was not explicitly specified. The P8x32a chip legacy had SCL/SDA in the wrong place, and I assumed the worst (the new spec doesn't show any connections other than XI/XO power ground and data pins).
    David Betz wrote: »
    you can't just pull those pins high and still use them for data in four bit mode.

    Why not?
  • jazzedjazzed Posts: 11,803
    edited 2012-08-13 18:26
    jmg wrote: »
    Yes, but that is not quite native hardware - instead you use valuable horsepower just wiggling pins and shuffling nibbles, slowly.

    Yup. That's why I said "to a point."
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-13 18:26
    Well, ummm... I suppose you can. I guess the Propeller pin can pull them down again when it uses them for 4 bit data. Never mind...
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-08-13 18:27
    Very nice! http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en559069

    So - 1 megabit is 128 kilobytes. That should be enough for some decent sized C programs. Use the cache driver similar to the SD one?

    I see it is a "future product". I wonder if we could emulate this in hardware with two 23S17 chips and a 128 to 512k sram chip?
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-13 18:28
    Dr_Acula wrote: »
    Very nice! http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en559069

    So - 1 megabit is 128 kilobytes. That should be enough for some decent sized C programs. Use the cache driver similar to the SD one?

    I see it is a "future product". I wonder if we could emulate this in hardware with two 23S17 chips and a 128 to 512k sram chip? You could then drop in the microchip alternative when it comes out.
    We already have a SPI SRAM cache driver that should work fine with these parts.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-08-13 18:33
    We already have a SPI SRAM cache driver that should work fine with these parts.

    You mean with existing spi sram chips? Are they the 32 kilobyte ones? That is just a little small for my C programs, but 128k would do nicely.

    Thinking aloud, if you have lots of 32k chips, you presumably need lots of chip selects. I wonder if one could share clk, di and do for an SD card and lots of SPI ram chips, and have a MCP23008 on the I2C bus to select which SPI device to use?
  • jmgjmg Posts: 15,183
    edited 2012-08-13 18:43
    Dr_Acula wrote: »
    I see it is a "future product". I wonder if we could emulate this in hardware with two 23S17 chips and a 128 to 512k sram chip?

    Drop 23LC1024 into findchips.com :)
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-13 18:57
    Dr_Acula wrote: »
    You mean with existing spi sram chips? Are they the 32 kilobyte ones? That is just a little small for my C programs, but 128k would do nicely.

    Thinking aloud, if you have lots of 32k chips, you presumably need lots of chip selects. I wonder if one could share clk, di and do for an SD card and lots of SPI ram chips, and have a MCP23008 on the I2C bus to select which SPI device to use?
    Yes with the existing ones but I suspect it will also work with the new larger ones. You're right that 32k doesn't buy you much but it does allow you to use all of hub memory for data.
  • jmgjmg Posts: 15,183
    edited 2012-08-13 18:59
    David Betz wrote: »
    That's not really a board issue since you can't just pull those pins high and still use them for data in four bit mode.

    You are partly right here. At least pull-up resistors would need to be added, as the default 1 bit Boot code is likely to float them.

    The Boot code could define them as HI, and save the resistors.

    On a Prop 2, I think I'd prefer a defined and documented QuadSPI loader pin allocate, as pins are not quite as precious as on a Prop 1, and performance will matter more.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-08-13 19:04
    Drop 23LC1024 into findchips.com

    Nice one :) Microchip are the only ones with them at the moment, but they do have thousands in stock.

    This really hits the sweet spot for C programs. 128k for program and 32k in hub for data and it is one little 8 pin chip. So many other external ram solutions either use lots of pins, or lots of chips. This really opens up a lot of possibilities. Time to fire up Eagle and test out some ideas!
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-13 19:08
    Dr_Acula wrote: »
    Nice one :) Microchip are the only ones with them at the moment, but they do have thousands in stock.

    This really hits the sweet spot for C programs. 128k for program and 32k in hub for data and it is one little 8 pin chip. So many other external ram solutions either use lots of pins, or lots of chips. This really opens up a lot of possibilities. Time to fire up Eagle and test out some ideas!
    Load off of SD card?
  • jazzedjazzed Posts: 11,803
    edited 2012-08-13 19:08
    Dr_Acula wrote: »
    Nice one :) Microchip are the only ones with them at the moment, but they do have thousands in stock.

    This really hits the sweet spot for C programs. 128k for program and 32k in hub for data and it is one little 8 pin chip. So many other external ram solutions either use lots of pins, or lots of chips. This really opens up a lot of possibilities. Time to fire up Eagle and test out some ideas!

    You could try SpinSocket Flash with up to 32MB of flash and SpinSocket SRAM with 8 of these chips for 1MB.
    Just SpinSocket Flash with one Flash chip and one SRAM chip could work too. I need to finish the drivers though.

    As you can see, I've been waiting for these chips :)
  • jmgjmg Posts: 15,183
    edited 2012-08-13 19:08
    David Betz wrote: »
    Yes with the existing ones but I suspect it will also work with the new larger ones.

    With minor changes. The new parts have 24 bit address, so are more compatible with QSPI Flash parts, and they do have the Quad Mode opcodes, which then expect all transactions in Nibbles.

    That is slightly different wrt the Flash, which have a choice of
    * 1-bit (8 CLKS) for opcode, thereafter Nibbles for 24 bit address (6 clocks) & data etc
    * A sticky opcode mode via M4-5, which can just repeat Adr.Data, all as Nibbles

    The Winbond QSPI Flash parts also have 2 bytes turnaround, vs 1 byte on QSPI @ Microchip.

    So a common library could be used, with a couple of Flash/SRAM decisions.
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-13 19:09
    jmg wrote: »
    With minor changes. The new parts have 24 bit address, so are more compatible with QSPI Flash parts, and they do have the Quad Mode opcodes, which then expect all transactions in Nibbles.

    That is slightly different wrt the Flash, which have a choice of
    * 1-bit (8 CLKS) for opcode, thereafter Nibbles for 24 bit address (6 clocks) & data etc
    * A sticky opcode mode via M4-5, which can just repeat Adr.Data

    The Winbond QSPI Flash parts also have 2 bytes turnaround, vs 1 byte on QSPI @ Microchip.

    So a common library could be used, with a couple of Flash/SRAM decisions.
    Sounds like our existing SQI flash driver could probably be uses as a basis for a driver for these new chips. Are they actually shipping yet?
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-08-13 19:29
    Load off of SD card?

    Lots of possibilities. In the IDE you could replicate the F10 and F11 of the proptool and F10 sends it to SPI ram during the development stage and then F11 sends it to more permanent storage such as flash or SD card when it is finished.

    Thinking about a simple demo board and the pins available. 2 for eeprom, 2 for download, 2 for keyboard, 4 for SD card, 4 for this sram, 8 for shared VGA/TV (add resistors for the one you want) and 2 for audio output. That is 24 pins leaving 8 spare. There are many other combinations, but this is one that would be very cheap to make and would be able to run decent C programs doing clever things that are hard to do in Spin like reloading cogs multiple times with new code on the fly.

    Of course Spin could use this board, but by the time you put in the buffer for VGA, the keyboard driver, SD driver and audio driver, there is hardly any code space left for your program. But with C, and this one little sram chip, you can have lots of space for a program. And do things like use more of the hub ram for screen buffer so get better screen resolution. It really opens up a lot of possibilities.
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-13 19:30
    I just ordered a few chips from Microchip. I'll work on a cache driver once they arrive.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-08-13 20:54
    Sounds great. Pondering my thoughts on post #26 a little more, do you need 4 pins do drive one of these sram chips or could you leave /CS always enabled and do it with 3 pins?
  • jmgjmg Posts: 15,183
    edited 2012-08-13 21:17
    Dr_Acula wrote: »
    Sounds great. Pondering my thoughts on post #26 a little more, do you need 4 pins do drive one of these sram chips or could you leave /CS always enabled and do it with 3 pins?

    /CS would always be needed as it re-primes the Opcode state engine..
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2012-08-13 21:23
    jmg,

    Thanks for posting: those are some seriously interesting chips! BTW, although you've never divulged your location, the title of this thread gives it away. AFAIK, only Brits refer to collective nouns, such as companies, in the plural. :)

    -Phil
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2012-08-13 21:34
    /CS would always be needed as it re-primes the Opcode state engine..

    Thanks jmg. I think this could be a very simple little board. Back to Eagle...
Sign In or Register to comment.