Shop OBEX P1 Docs P2 Docs Learn Events
I have two Propeller Memory Cards to give out. Who wants them? — Parallax Forums

I have two Propeller Memory Cards to give out. Who wants them?

David CarrierDavid Carrier Posts: 294
edited 2013-05-30 18:13 in Propeller 1
I have two Propeller Memory Cards to give out. They have a microSD card socket, a 25Q32FVSFIG 4M x 8 quad SPI flash device, and a 23LC1024-I/SN 128K x 8 quad SPI SRAM device. They are designed to plug into the header on a Propeller Demo Board or a Human Interface Board on a Propeller QuickStart, but they could also work in a breadboard, since they are essentially in a DIP format. I have attached the design with the schematic and layout, for those interested.

The reason that I want to give these away is that I know there are some of you who would want to use them right away, and are capable of doing so. I, on the other hand, would enjoy using them, but I won't get a whole lot out of them until I get caught up on Propeller GCC, its various memory models, and what it takes to implement them. I would also only have time to test them, then they would go into a bin of old PCBs, to wait for a spot on the "free" table at the next Propeller Expo. If I give them away, someone who could use one can get use out of it right away, and they can let me know if it is working for them. That last part is all I ask for in return. I need to know if all of the features work before I can okay it for production.

To make it official, here is what I need two volunteers to do:
  • Use the SPI flash memory in quad SPI mode.
  • Use the SPI SRAM in quad SPI mode.
  • Use the microSD card. (I've already done this, but it would be good to have someone else give it a try too.)
  • Send me examples of the code used, so that I can try it out too.
Here is what I will give to anyone who wants to take it on:
  • Propeller Memory Card prototype.
  • QuickStart and Human Interface Board, if requested.
  • Satisfaction in knowing that you helped the Propeller Memory Card get to market.
If you are interested please post here, or if you are too shy send me a private message. If more than two are interested, I'll pick the two who are most likely to do something with the cards. I also have parts for a few more cards, so I can send out a few kits to anyone else who wants to assemble their own. (The microSD card and its resistor networks are relatively fine pitched for hand soldering, but everything else is in relatively easy SOIC and 0603 packages.)

— David Carrier
Parallax Inc.
«1

Comments

  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-04-02 18:37
    If no one more deserving chimes in, I'd take one. I was thinking that my robot arm could store move sequences either to flash or SD, so this would be a good fit. It's on a ProtoBoard, but I have female headers I can use. I don't have an QuickStart or a human interface board to try with it, but I wouldn't object to having them. ;-)
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-02 18:48
    Your board looks nice! I already have a PropGCC XMM cache driver for a four bit SPI flash chip. I'm not sure if it's that one. I didn't know there was a 128kx8 SPI SRAM chip. A cache driver will have to be written for that one.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-02 19:07
    David Betz wrote: »
    Your board looks nice! I already have a PropGCC XMM cache driver for a four bit SPI flash chip. I'm not sure if it's that one. I didn't know there was a 128kx8 SPI SRAM chip. A cache driver will have to be written for that one.
    Okay, I guess I misunderstood. Looks like your SRAM chip is also a Quad SPI chip the same as the one rayman used on his rampage2 board. I have one of Ray's boards and have been working on a PropGCC XMM cache driver for it. I have a driver for the rampage2 flash chip done but I'm in the process of adding support for the SRAM chip as well. Once that's done, it will probably be fairly easy to make the same code work on your new board.
  • doggiedocdoggiedoc Posts: 2,243
    edited 2013-04-03 10:19
    I would like to play with one. However I don't think I could do it much justice form a testing standpoint. I do like to collect Parallax pieces though. :D:D
  • Mike GreenMike Green Posts: 23,101
    edited 2013-04-03 14:37
    David,
    I would like to try running Sphinx on this. I have a version that runs on the C3 and has provisions for a file system on flash memory in addition to the SD card system. I also have some programs that use the C3's SRAM for working storage and could try adapting those. It would also be simple to get FemtoBasic to run on this combo (QuickStart, HIB, and Memory Card). I have a version for the C3 that allows access to the flash and SRAM that could easily be modified.
    Mike
  • jazzedjazzed Posts: 11,803
    edited 2013-04-03 16:04
    David Betz wrote: »
    Your board looks nice! I already have a PropGCC XMM cache driver for a four bit SPI flash chip. ...

    David Betz, don't we need a sample of this hardware to make sure it works with Propeller-GCC?

    I suppose a Parallax person could test it ....
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-03 16:11
    jazzed wrote: »
    David Betz, don't we need a sample of this hardware to make sure it works with Propeller-GCC?

    I suppose a Parallax person could test it ....
    Eventually yes but I didn't want to claim one of only two boards for that purpose. I suppose we can wait for production boards to be available to do the final testing.
  • David CarrierDavid Carrier Posts: 294
    edited 2013-04-03 18:57
    I do have four boards built up. Two to give out, one to keep at my desk, and one to take pictures of. There was an output error when I penalized the boards, so they need a jumper wire to work. The one that I am saving for pictures doesn't have the jumper wire, to keep it virtually indistinguishable from the final product. I can send out the one I was planning to keep at my desk, and when I need one either modify the one I'm saving for pictures or build one up from the parts I have.

    I sent one to David Betz, so he can make it work with Propeller GCC. I also like Mike Green's Idea of running Sphinx and FemtoBasic on it. That will build up some examples in Spine, too.

    JasonDorie and doggiedoc,
    If I sent you each a board, could you get it working right away, or would you need examples from David Betz or Mike Green? Would either of you be comfortable with the a kit that requires surface mount assembly? I built one in less than an hour, with a fine point soldering iron, a roll of thin solder, and a pair of tweezers.The hardest part is the resistors for the microSD card and the jumper wire. You can build it without the microSD card, and you can use it in single or dual SPI mode (but not quad) without the jumper.

    How about this: David Betz and Mike Green get the first two boards. Once either one of them posts a quad-spi example that uses the flash and one that uses the SRAM, (or one example that uses both) then I will take pictures of the unmodified board, modify it and verify the posted examples, get the next revision on order, and ship the two boards out to JasonDorie and doggiedoc. If either JasonDorie or doggiedoc could use a board right away, I could ship them the modified one now, then, after the next revision is on order, modify and ship the one I am saving for pictures. If they both want them now, I can send one an assembled and modified one, and the other a kit.

    Does this work for everyone?

    Thank you,
    David Carrier
    Parallax Inc.
  • doggiedocdoggiedoc Posts: 2,243
    edited 2013-04-03 19:11
    David - I have complete confidence in my SMT soldering skills but where I'm lacking is the software side. I assume you asking for propgcc code testing for the board?
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-04-03 19:43
    I'm the opposite of Doc - I haven't done enough SMT to be sure I'd get it right, but I think I can manage the software side. I can write driver-level code if necessary, but if you're looking to test the SD or QuadFlash capability of it with XMM it'd be better to give it to someone else.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-03 20:04
    JasonDorie wrote: »
    I'm the opposite of Doc - I haven't done enough SMT to be sure I'd get it right, but I think I can manage the software side. I can write driver-level code if necessary, but if you're looking to test the SD or QuadFlash capability of it with XMM it'd be better to give it to someone else.
    I'm doing the PropGCC XMM cache driver. Once that is done, it should be easy to write C code that uses it.
  • jtilghmanjtilghman Posts: 67
    edited 2013-04-03 21:39
    If you have one left, I think it would go great on the Robot I am building using a Stingray chassis and a Prop USB board.

    If not, maybe next time. :)

    Thanks,
    jt
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-04 07:54
    I'm already working on the drivers for David's board and may have them done before it arrives. If so, I'll just test them on the real hardware and then I guess I could send it to someone else.
  • David CarrierDavid Carrier Posts: 294
    edited 2013-04-04 17:50
    Hold up, I think I want to change something on the Propeller Memory Card. (See: http://forums.parallax.com/showthread.php/145590?p=1174910#post1174910) I modified one card to match the change, minus the order swapping of the microSD chip select and shared clock pins on the header. (See the attached image)

    David Betz,
    You should be okay with the board you have, I'll just need to test everything out on the latest modified board, with a microSD card inserted, to make sure the card behaves as it should when its select line is not asserted. If you can send me the the programs you are using to test the SRAM and Flash memories in quad SPI mode, I can test them on the board I've modified.

    Everyone else,
    I can send out the boards as discussed earlier, as soon as I've verified the modified one. I'll send a kit to doggiedoc, and assembled boards to Mike Green, JasonDorie, and jtilghman. Send me a private message or email with your shipping address, and I'll get them out as soon as I can.

    — David Carrier
    Parallax Inc.
    512 x 512 - 116K
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-06 12:18
    I have a PropGCC cache driver that supports both a flash and an SRAM chip at the same time in 4 bit mode. It's currently running on the RamPage2 board which uses an SST flash chip so I'll have to update it to support the Winbond chip that is used on your new board once that board arrives. Do you know if the 25Q32FV chip uses the same command structure as the 25Q80BV chip that is only 1MB? I have code to support that smaller Winbond chip already working.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-11 16:40
    I just got David Carrier's memory board and my combined flash/SRAM driver seems to work fine with it. I've attached a zip file containing the driver and its source code. To run it use this command:
    propeller-load -b carrierx fibo-split.elf -r -t
    
    You'll need propeller-load from the propgcc distribution of course.

    carrier.zip
  • doggiedocdoggiedoc Posts: 2,243
    edited 2013-04-21 18:55
    @David Carrier - I got the board kit in and finished all but the jumper wires. Then I'll start testing.

    @David Betz - How's the software for it coming along on your end?


    Paul
  • doggiedocdoggiedoc Posts: 2,243
    edited 2013-04-21 18:55
    Sorry for the delay... it took me a few days to get to it.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-21 19:28
    doggiedoc wrote: »
    @David Carrier - I got the board kit in and finished all but the jumper wires. Then I'll start testing.

    @David Betz - How's the software for it coming along on your end?


    Paul
    The PropGCC cache driver for David's board is done. Are you interested in using the board for running C code? If so, I'll send you the driver.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-21 19:29
    doggiedoc wrote: »
    @David Carrier - I got the board kit in and finished all but the jumper wires. Then I'll start testing.

    @David Betz - How's the software for it coming along on your end?


    Paul
    The PropGCC cache driver for David's board is done. Are you interested in using the board for running C code? If so, I'll send you the driver.
  • doggiedocdoggiedoc Posts: 2,243
    edited 2013-04-22 03:51
    Yes, I was going to test running propgcc on it. My email is doc at tcah dot com.

    Thanks David!
  • Mike GreenMike Green Posts: 23,101
    edited 2013-04-22 10:23
    Here's a preliminary version of FemtoBasic for the Memory Card. It's actually "DongleBasic" which uses the USB port for its console I/O (at 9600 Baud). It's not extensively tested, but the only significant change is to the SRAM / Flash driver and that seems to work for reading at present. I'll be testing it further over the next few days and I'll substitute the PASM version of the driver for the Spin version used here. Note that this uses 1-bit SPI mode for now. I'll modify both drivers (Spin & PASM) incrementally to use 2-bit mode, then 4-bit mode SPI, then 4-bit Quad mode. This should work on the QuickStart + HID board combo or on the Demo Board without changes.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-22 10:27
    Mike Green wrote: »
    Here's a preliminary version of FemtoBasic for the Memory Card. It's actually "DongleBasic" which uses the USB port for its console I/O (at 9600 Baud). It's not extensively tested, but the only significant change is to the SRAM / Flash driver and that seems to work for reading at present. I'll be testing it further over the next few days and I'll substitute the PASM version of the driver for the Spin version used here. Note that this uses 1-bit SPI mode for now. I'll modify both drivers (Spin & PASM) incrementally to use 2-bit mode, then 4-bit mode SPI, then 4-bit Quad mode. This should work on the QuickStart + HID board combo or on the Demo Board without changes.
    Cool! Thanks Mike. I'm a bit confused about your statement about modes. Isn't 4 bit mode the same as Quad mode? Also, why bother with 2 bit mode at all?
  • Mike GreenMike Green Posts: 23,101
    edited 2013-04-22 10:35
    There are two 4-bit modes, Quad SPI and QPI. In Quad SPI mode, the command codes are sent in 1-bit mode and the address and data information is sent in 4-bit mode. In QPI mode, everything is sent in 4-bit mode which speeds things up. I probably could skip 2-bit mode, but I thought I'd try it. It won't take much effort to try it using the Spin-only driver.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-22 10:36
    Mike Green wrote: »
    There are two 4-bit modes, Quad SPI and QPI. In Quad SPI mode, the command codes are sent in 1-bit mode and the address and data information is sent in 4-bit mode. In QPI mode, everything is sent in 4-bit mode which speeds things up. I probably could skip 2-bit mode, but I thought I'd try it. It won't take much effort to try it using the Spin-only driver.
    Interesting. Does the Winbond chip support the SQI mode? I thought that was only supported on SST chips.
  • Mike GreenMike Green Posts: 23,101
    edited 2013-04-23 08:10
    The datasheet for the Winbond chip used has all the details on QPI commands and behavior.

    Attached is a corrected Memory Card Basic. I had left out the statements for low level access to Flash and SRAM. SRAM[<expr>{,<expr>}]] and FLASH[<expr>{,<expr>}] are both allowed as expressions and "pseudo-variables" on the left side of "=". The first <expr> is the address in SRAM or Flash. The second <expr> is the number of bytes (1 to 4) with a default of 1. Bytes are little-endian. There's also ERASE <expr> which erases the Flash sector containing the provided address.

    NB: Doesn't work yet ... check back tomorrow
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-23 08:48
    Mike Green wrote: »
    The datasheet for the Winbond chip used has all the details on QPI commands and behavior.

    Attached is a corrected Memory Card Basic. I had left out the statements for low level access to Flash and SRAM. SRAM[<expr>{,<expr>}]] and FLASH[<expr>{,<expr>}] are both allowed as expressions and "pseudo-variables" on the left side of "=". The first <expr> is the address in SRAM or Flash. The second <expr> is the number of bytes (1 to 4) with a default of 1. Bytes are little-endian. There's also ERASE <expr> which erases the Flash sector containing the provided address.

    NB: Doesn't work yet ... check back tomorrow
    I'll have to look for the QPI commands. I hadn't noticed them when I wrote code for this board.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-23 08:52
    Mike Green wrote: »
    The datasheet for the Winbond chip used has all the details on QPI commands and behavior.

    Attached is a corrected Memory Card Basic. I had left out the statements for low level access to Flash and SRAM. SRAM[<expr>{,<expr>}]] and FLASH[<expr>{,<expr>}] are both allowed as expressions and "pseudo-variables" on the left side of "=". The first <expr> is the address in SRAM or Flash. The second <expr> is the number of bytes (1 to 4) with a default of 1. Bytes are little-endian. There's also ERASE <expr> which erases the Flash sector containing the provided address.

    NB: Doesn't work yet ... check back tomorrow
    Have you ever tried building FemtoBasic using Eric Smith's spin2cpp translator? It would be nice to have it running on P2.
  • Mike GreenMike Green Posts: 23,101
    edited 2013-04-24 11:58
    No, I've never used spin2cpp. Maybe I should just rewrite FemtoBasic in C. It's probably time to do that anyway to clean up and simplify the whole thing, then I'd also be able to use the existing run-time library for all the I/O.

    Attached is the latest version. SRAM[<expr>{,<expr>}] and SRAM[<expr>{,<expr>}]=<expr> both work and there's a simple memory test included (memtest.bas) in the archive. Next stop ... checking the low-level Flash I/O. Note that I'm currently using the Spin-only driver.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-04-24 12:45
    Mike Green wrote: »
    No, I've never used spin2cpp. Maybe I should just rewrite FemtoBasic in C. It's probably time to do that anyway to clean up and simplify the whole thing, then I'd also be able to use the existing run-time library for all the I/O.

    Attached is the latest version. SRAM[<expr>{,<expr>}] and SRAM[<expr>{,<expr>}]=<expr> both work and there's a simple memory test included (memtest.bas) in the archive. Next stop ... checking the low-level Flash I/O. Note that I'm currently using the Spin-only driver.
    A C version compiled with the CMM memory model might fit almost as well as the Spin version and run a lot faster.
Sign In or Register to comment.