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.

MSP432E411Y-BGAEVM: MSP432E411

Part Number: MSP432E411Y-BGAEVM

In the technical reference for MSP432 LCD controller is note like this:

NOTE: When using the LCD with EPI to interface to external memory, the external code address
space 0x1000.0000 must be selected by programing the ECADR field to 0x1 in the EPI
Address Map (EPIADDRMAP) register at EPI offset 0x01C.

Does anyone know why is it? I am using external SDRAM connected to EPI interface and I only need to program ram space and size - for the space 0x6000.0000.and for normal read/write operations it works. I do not understand previous note about ECADR field.

Thanks for answer.

  • Hello Milan,

    The comment that you referenced is when LCD peripheral automatically reads data from an external memory connected to the EPI peripheral, without the intervention of Cortex-M4F, and displays on the LCD Panel.

    Thanks,
    Sai
  • Thank You for answer. Today I tried SDRAM (on address 0x6000.0000) and all works OK. I think that the note in the techref is for another type of external RAM (because I didn't set ECADR field and size and LCD DMA works fine).

    Here are my settings

    SDRAM

    void SDRAM_Init()
    {
     SDRAMPinoutSet();
     SysCtlPeripheralEnable(SYSCTL_PERIPH_EPI0);
     while (!(SysCtlPeripheralReady(SYSCTL_PERIPH_EPI0))) {};
     EPIDividerSet(EPI0_BASE, 2);
     EPIModeSet(EPI0_BASE, EPI_MODE_SDRAM);
     EPIConfigSDRAMSet(EPI0_BASE, (EPI_SDRAM_CORE_FREQ_50_100 | EPI_SDRAM_FULL_POWER | EPI_SDRAM_SIZE_512MBIT), 468);
    EPIAddressMapSet(EPI0_BASE, EPI_ADDR_RAM_SIZE_256MB | EPI_ADDR_RAM_BASE_6);// the ECADR field is not set because I am using SDRAM 
     while (EPI0->STAT & EPI_STAT_INITSEQ) {};
    }
    LCD (part of the settings, fram buffer is on th address 0x6000.0000)
     LCDRasterConfigSet(LCD0_BASE, RASTER_FMT_ACTIVE_24BPP_UNPACKED, 0);
     LCDRasterTimingSet(LCD0_BASE, &timing);
     LCDRasterPaletteSet(LCD0_BASE, LCD_PALETTE_TYPE_DIRECT, FrameBuffer, NULL, 0, 0);
     LCDRasterFrameBufferSet(LCD0_BASE, 0, FrameBuffer, FrameBufferAllocSize);
     LCDDMAConfigSet(LCD0_BASE, LCD_DMA_FIFORDY_64_WORDS | LCD_DMA_BURST_16 | LCD_DMA_BYTE_ORDER_0123);

    Thank you again

    Milan

**Attention** This is a public forum