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.

32 bit EMIF with 16 bit external memory

Other Parts Discussed in Thread: TMS320C6713BHi, This statement is taken from the datasheet of EMIF in C6xxx: „In reading data from these narrow-width memory spaces, the EMIF packs multiple reads into one 32-bit value. Thus, the high address bits are shifted out and accesses wrap around, if that CE space uses the entire EA bus.“ Does it mean the EMIF controller combines two 16 bit values into a 32 bit value automatically when reading from a 16 bit external memory? Owen
  • Owen,

    That quotation does not make complete sense to me, in particular the part about "if that CE space uses the entire EA bus". I do not see what relevance there is between the number of bits of the EA (address) bus and the formation of a 32-bit word from a half-word- or byte-wide memory configuration.

    The answer to your question is, yes, the EMIF will combine multiple physical bus accesses into a wider internal word size based on the internal request size and the physical data bus size.

    In the future, it will help if you can point us to the exact document and the location of the quotation, in case there are some parts that need to be pulled in to make sense or so the document can be repaired for future readers.

    Regards,
    RandyP

  • http://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=tms320c6713b&fileType=pdf In my case the higher 16 bit in EMIF mapping memory (begins at 0x90000000 for CE0) is always 0xFFFF which means the higher 16 bits are not filled with incoming data. Owen
  • Owen,

    I searched the datasheet that you reference to try to find the statement you claimed to be quoting from it. I searched for "narrow-width" since that seemed unique but did not find it in the document. Please give me an actual quotation or a detailed reference in the document for me to be able to comment to.

    Otherwise, all I can say is that you have the EMIF configured wrong or you have your board built wrong or you have programmed your Flash incorrectly. For the first, you will want to reference the EMIF User Guide for the C6713B; for the other two you will need to connect test equipment to your board to determine the fault.

    Or describe more information and ask a question.

    Regards,
    RandyP

  • Page 6 in attachment. Owen
    spra568a.pdf
  • Must the EMIF interface be configured as 32 bit or 16 bit to communicate with a 16 bit external memory? Which advantages are there for 32 bit interface? As far as I understand it makes no difference to external memories, only the higher 16 bit of mapping memory can’t be used for 32 bit mode. Owen
  • Owen,

    This is a very difficult thread for me to understand what you are thinking and what you are asking. Your 'quote' in the first post is not in the documentation, so I cannot comment on its nature or validity. There is nothing on page 6 of the app note that has a relevance to this discussion other than the MTYPE field, and your questions above about using 32-bit or 16-bit mode sounds like you need to read the EMIF Reference Guide to figure out how to use the EMIF.

    I do not understand your questions, but I think you can learn how this works by reading the EMIF Reference Guide.

    Please do that, and also consider looking at the training material on the Wiki. Search for "c6713 training" (no quotes) to find our archived training course and review the student guide, especially any discussion on the EMIF.

    Regards,
    RandyP

  • On page 6 of the above attachment "SPRA568A": In reading data from these narrow-width memory spaces, the EMIF packs multiple reads into one 32-bit value. Thus, the high address bits are shifted out and accesses wrap around, if that CE space uses the entire EA bus. That’s the right place to read. Sorry for the wrong pdf. I used ASYNC32 and ASYNC16 modes as the interface to 16 bit external flash and both work. I just wonder if there are some advantages or disadvantages using ASYNC32. Such info can’t be found in any of documents. Owen
  • Owen,

    ASYNC32 and ASYNC16 are not going to work the same, but if they both work for you then I am happy and I suppose you are, too.

    ASYNC32 is for a 32-bit physical data bus implementation on the EMIF pins. If that is what you have, that is what you would use.

    ASYNC16 is for a 16-bit physical data bus implementation on the EMIF pins. If that is what you have, then that is what you would use.

    If you use a 32-bit physical memory device implementation, you can read and write more data per EMIF clock cycle or per EMIF operation. That is the advantage.

    I would not expect you to mix the physical memory width and the EMIF configuration. That does not make sense to me. If you see a reason to do that, then you are doing something out of the ordinary, and I will salute your ingenuity and resourcefulness while also asking that you keep in mind you are doing something out of the ordinary that we cannot help you with. We document the usual way things work, not the unusual. That does not make the unusual wrong, just unsupported.

    Regards,
    RandyP