Skip to main content
skleftogiannis9
Associate
September 8, 2014
Question

STM32F103ZG FSMC 16-bit ili9486l lcd controller init code

  • September 8, 2014
  • 10 replies
  • 2573 views
Posted on September 08, 2014 at 11:11

Hi,

I am working on a custom board with stm32f103zg microcontroller. So far I was using an lcd touch screen with ili9341 controller (SPI serial interface) with no problem. Now I step forward creating a new board

http://wandisplay.en.alibaba.com/product/1084281324-219041321/3_5_lcd_touch_panel_KWH035ST28_F01_.html

r connected to fsmc in 16-bit parallel mode. My problem is I cant find any sample code of using this controller with stm32f fsmc. The board has no external ram, so I need to use mcu's internal memory to address fsmc and lcd.

Please, do you have any idea how to proceed? Any one else faced the same problem?

Thank you in advance

#stm32 #fsmc #ili9486l #put-on-your-pants
This topic has been closed for replies.

10 replies

waclawek.jan
Super User
September 8, 2014
Posted on September 08, 2014 at 13:18

> Please, do you have any idea how to proceed?

Connect the 16-bit bus, as if connecting a 16-bit SRAM memory - same as with the 8-bit, just simply add the extra data lines. As you don't intend to write single bytes, you don't need to connect  the FSMC_NBL signals. Initialize FSMC into 16-bit mode - again, the only difference to 8-bit is the MWID bitfield in the respective FSMC_BCR. The rest - control register layout, data-to-pixel mapping - is described quite clearly in the LCD controller's datasheet. Control registers simply use only the lower 8-bit and the upper 8-bit are ignored except for data. This controller has embedded RAM, so you don't need to use the mcu's internal RAM for pixel data.

JW

Tesla DeLorean
Guru
September 8, 2014
Posted on September 08, 2014 at 18:26

Please, do you have any idea how to proceed? Any one else faced the same problem?

I guess you'd have to put your pants on and read the

http://www.displayfuture.com/Display/datasheet/controller/ILI9486L.pdf

? Developing code from scratch is something engineers do all the time.

The STM3210E-EVAL has a 16-bit FSMC based LCD connection. Having on-board memory is not uncommon.

What software/drivers does the panel vendor provide? How's this controller materially different from many of the others? Got to be other non-STM32 examples that would be at least reasonably portable.

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
skleftogiannis9
Associate
September 9, 2014
Posted on September 09, 2014 at 10:53

The original post was too long to process during our migration. Please click on the provided URL to read the original post. https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I6g3&d=%2Fa%2F0X0000000bt1%2FAu.z7cvvpu7X_pQvkkfVn9T25odFh8g03ozmUXLzEJ8&asPdf=false
Tesla DeLorean
Guru
September 10, 2014
Posted on September 10, 2014 at 21:59

You should start be confirming that you can read the ID register correctly, and then that you can write and read back other registers. If that doesn't work, writing additional data is pointless, you'd need to review the FSMC settings, and wiring. Confirming with a scope or analyzer that the data written generates the appropriate signals, and the addresses actuate the correct REG/DATA space.

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
chivu_eng
Visitor II
November 18, 2014
Posted on November 18, 2014 at 21:10

chivu_eng
Visitor II
November 18, 2014
Posted on November 18, 2014 at 21:12

Tesla DeLorean
Guru
November 19, 2014
Posted on November 19, 2014 at 01:58

The forum doesn't work well with mobile devices, it probably doesn't work from Windows Phone either, which would explain Microsoft's fantastic performance in the mobile arena.

http://techcrunch.com/2014/11/18/after-divorcing-microsoft-nokia-reveals-an-android-tablet-the-n1-hitting-china-first/

Please try again...
Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
ranran
Senior
October 12, 2016
Posted on October 12, 2016 at 21:34

Hi Giatrakos,

Did you manage to get ili9341 work on your machine ?

Did you need to make modifications to the example code you've attached ?

Thanks,

Ran

Self.Glenn
Visitor II
October 12, 2016
Posted on October 13, 2016 at 00:13

The original post was too long to process during our migration. Please click on the provided URL to read the original post. https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I6k1&d=%2Fa%2F0X0000000buO%2FTRA0W0..jscT.ksAB6r6aQYe82pN.rilbafzohXrTJw&asPdf=false
ranran
Senior
October 13, 2016
Posted on October 13, 2016 at 08:18

Hi Glenns,

Thank you so much for the code and suggestions.

These is very helpful.

I think the main difference between our HW and yours, is that in our case, HW engineer configured ili9341 to be used as 8-bit (not 16-bits as done in your case). 

From my understanding , the device is able to work as 8-bit too.

Pprobably in my case there is no need to duplicate address by 2:

RAM base address = 0X60020000 = 0X60000000 +2 ^ 16

* 2

Thank you very much!

Ran