This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[C5517] External memory and storage questions.

I am looking to use C5517 to process and record data non-stop over a long time. The application needs about 256 KB working memory and 3 GB storage space. I am planning to attach a NAND flash memory to the EMIF and a SD card reader to the SD card interface. I would like to know:

  1. Does C5517 support only up to 16 MB memory (internal plus EMIF-attached memory) as per the technical reference manual? Or is there a way to attach a 4 GB or 8 GB NAND flash and make full use of the NAND for storage?
  2. Can its SD card interface read and write 4 GB (does not have to be continuous)? What is the maximum usable/addressable size?
  3. How many bits or bytes is one "data block" (on page 612 of the technical reference manual)?

  • An little known fact of SD cards (and some other flash based storage devices) is that they are periodically busy for for extended periods of time, up to 500 ms. (The 500 ms busy time is buried in the SD card spec.) The frequency of this occurrence varies from card to card, but increases greatly when doing partial writes (i.e. not on a 512 byte sector boundary). Therefore, you need to have enough RAM to buffer at least 500 ms of data, and only write multiples of 512 bytes.
  • One of my team members said that the 16 MB limit only applies when external memory is RAM or contains program code. I am not sure if this is true, since programs would still need a way to access the NAND using addresses.

  • Hi, 

    With respect to EMIF memory space, below are the details.

    Supports asynchronous devices

    – Up to 8MB asynchronous address range over 4 chip selects.

    – Supports 8- and 16-bit data bus widths.

     

    Supports mobile SDR SDRAM devices.

    – 8MB SDRAM address range over two chip select spaces.

    Following figure provides more details on EMIF Memory space.

    Also on SD, high capacity cards are supported (2GB and Larger). The CMD16 (SET_BLOCK_LEN) can only set the block length up to 512 bytes even for high capacity cards. Therefore, if you want to change the block length of a high capacity card, you are limited to 512 bytes. In this case, you should discard the block length read from the CSD register in the card and set the block length up to 512 bytes.

    Hope this clarifies.

    Regards

     Vasanth

  • Thanks for the reply! I have to re-think my design to use SD as storage.