Other Parts Discussed in Thread: AM3357
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.
Other Parts Discussed in Thread: AM3357
Hi Renjith,
In AM335X TRM, Section "13.4.1.3.1 DMA Overview for MPU Bus Output" has following information:
"The DMA module requires the start and end DDR addresses to be on word-aligned byte addresses. The
MPU/LIDD bus is a halfword (16 bit) output, so both the upper and lower halfwords of the DDR memory
will be sent out. Thus, the number of data elements sent to the LIDD by the DMA must always result in an
even number of bus MPU bus transactions. In other words, a transfer of three 32-bit words from DDR will
result in six 16-bit bus transactions."
This means, LCDC DMA always transfer data in 16-bits. But my LCD interfaced with LIDD is 8-bit interface. If I use DMA to transfer the frambuffer data to LCD then every transfer 8-bits data will be lost. Is there any configuration register which decides 8-bit or 16-bit DMA transfer?
Regards,
Suchit
Hi Suchit,
Can you share the datasheet of your panel with the LCD timing generator details?
"This means, LCDC DMA always transfer data in 16-bits." -> this may not be true. Start and end address alignment are independent of DMA transfer units (in my experience of working with OMAP processors) I have 16-bit DMA in LIDD mode working for an LCD I have. Will give 8-bit a try and let you know. My guess is it should work!
Hello,
I use NHD-2.4-240320SF-CTXI-T1
for the datasheet see this link http://www.newhavendisplay.com/specs/NHD-2.4-240320SF-CTXI-T1.pdf
Suchit,
According to the datasheet it supports both 8 and 16-bit. But then you've mentioned that it supports only 8-bit 8080 interface. I'm confused as to what is the real issue.
Hi Renjith,
LCD controller supports both 8-bit and 16-bit interface, but we have used 8-bit interface only. We can't use 16-bit LCD interface because upper 8-bit LCD data lines are multiplexed with MCASP0 and we have used it in our system for audio support. Now, I want to use LCD DMA controller in LIDD mode but as per AM335X TRM, it will transfer 16-bits at a time causing 8-bits lost to me. How to configure LCD DMA controller to transfer 8-bits instead of 16-bits?
Regards,
Suchit
Even though the LIDD DMA does 16bit transfers only, I believe the regular EDMA does 8-bit transfers. So there may be a way to take 16bpp framebuffer data and use EDMA (AB transfer where ACNT = 1byte) and BSRCINDX and BDSTINDEX are set such that the result will be 8bits lower byte (LSbyte) containing framebuffer data and the upper byte (MSByte) containing junk/zeros. This way two words will contain 1 pixel worth of 16-bit data where the upper bytes are not used. So maybe you can use an EDMA transfer first and then use a LIDD DMA transfer (chained transfer?) to give you output MCU 8-bit 8080 style data?