Difference between revisions of "BELK-AN-005: Interfacing BoraEVB to thin film electroluminescent display"

From DAVE Developer's Wiki
Jump to: navigation, search
(Enabling frame buffer driver in linux kernel)
Line 31: Line 31:
 
The following picture shows simplified block diagram of the design. In principle the structure of the design is the same of the one described in [[AN-BELK-004:_Interfacing_BoraEVB_to_TFT_LCD_display|AN-BELK-004]].
 
The following picture shows simplified block diagram of the design. In principle the structure of the design is the same of the one described in [[AN-BELK-004:_Interfacing_BoraEVB_to_TFT_LCD_display|AN-BELK-004]].
  
[[File:An-belk-005-01.jpg|700px]]
+
[[File:An-belk-005-02.png|700px]]
  
 
LCD is driven by a controller implemented in PL that fetches pixel data from frame buffer and periodically refreshes physical screen. LCD controller provides configuration registers that are mapped in the following address range:
 
LCD is driven by a controller implemented in PL that fetches pixel data from frame buffer and periodically refreshes physical screen. LCD controller provides configuration registers that are mapped in the following address range:
Line 39: Line 39:
  
 
Every pixel on the display has 2 possible states, ON (light pixel) or OFF (dark pixel).On the frame buffer, the memory is mapped with 8bit for pixel. A byte of value 0xFF represents a ON pixel, and all the other values (0xFE to 0x00) represent a OFF pixel.
 
Every pixel on the display has 2 possible states, ON (light pixel) or OFF (dark pixel).On the frame buffer, the memory is mapped with 8bit for pixel. A byte of value 0xFF represents a ON pixel, and all the other values (0xFE to 0x00) represent a OFF pixel.
 +
 +
The following picture shows the block diagram of the Vivado project:
 +
 +
[[File:An-belk-005-02.jpg|800px]]
  
 
At the following URL the Vivado design is available for download: TBD. Please note that, even if this application note is based on BELK 2.2.0, this design has been implemented with Vivado 2013.4
 
At the following URL the Vivado design is available for download: TBD. Please note that, even if this application note is based on BELK 2.2.0, this design has been implemented with Vivado 2013.4
Line 45: Line 49:
  
 
==Enabling frame buffer driver in linux kernel==
 
==Enabling frame buffer driver in linux kernel==
 
+
To enable frame buffer driver TBD
To enable frame buffer driver user need to:
 
* get the pre-built binaries from TBD
 
 
 
Kernel and device tree can also be build with the following procedure:
 
* update Bora kernel repository (as described [[Bora_Embedded_Linux_Kit_(BELK)#Updating_the_repositories_from_BELK_2.1.0_to_BELK_2.2.0|here]])
 
* checkout ''bora-feat-lcd-support'' branch (using ''git checkout bora-feat-lcd-support'' command)
 
* build the updated kernel source as usual
 
 
 
Put the binaries on the first (FAT32) partition of your BELK 2.2.0 SD card, overwriting the original one when needed. Please note that you need the following files:
 
* boot.bin
 
* bora.dtb
 
* uImage
 
* fpga.bin
 
* uEnv.txt
 
 
 
Insert the SD card into BoraEVB and turn on the board.
 
  
 
During kernel bootstrap, the following messages are printed out on console, indicating framebuffer driver has been loaded succesfully:
 
During kernel bootstrap, the following messages are printed out on console, indicating framebuffer driver has been loaded succesfully:
  
<pre>
+
TBD
[    0.600553] borafb_lum borafb_lum.0: fb0: Virtual frame buffer device, using 16384K of video memory @ phys 2d900000
 
</pre>
 
 
 
You will also see two [https://en.wikipedia.org/wiki/Tux Tux] on the top left corner of the LCD, indicating that this Linux system has two cores.
 
  
 
Once the kernel has completed boot, frame buffer can be accessed from user space applications via <code>/dev/fb0</code> device file (for more details please refer to https://www.kernel.org/doc/Documentation/fb/framebuffer.txt).
 
Once the kernel has completed boot, frame buffer can be accessed from user space applications via <code>/dev/fb0</code> device file (for more details please refer to https://www.kernel.org/doc/Documentation/fb/framebuffer.txt).
  
The following image shows a slideshow generated with [http://linux.die.net/man/1/feh feh] image viewer on top of X Window System
+
The following image shows Qt 4.??? demo application running on top of it.
 
 
 
TBD
 
TBD

Revision as of 10:38, 3 September 2015

History[edit | edit source]

Version Date BELK version Notes
1.0.0 2.2.0 First release

Introduction[edit | edit source]

This application note shows how to interface BoraEVB to 5.7" thin film electroluminescent display Lumineq EL 320.240.36-HB. This project is based on 2.2.0. Reading of AN-BELK-004 is recommended since many concepts are shared by these two application notes.

For more information about Lumineq part, please refer to http://lumineq.com/en/product-tags/diagonal-size-57-2.

Physical interfacing[edit | edit source]

To interface the display a small adapter board is needed. On BoraEVB side it is connected to JP17 and JP23 headers. It connects to display through a flat cable that is plugged onto JP3 header. At this URL TBD schematics are available for download.

Also the following changes need to be made on BoraEVB in order to provide LCD 12V and 5V power supplies:

  • remove D12, D13, RP62, RP64
  • wire D1.1 to JP23.2
  • wire D1.1 to JP23.4
  • wire C164.1 to JP23.1
  • wire C164.1 to JP23.3

Block diagram and Vivado design[edit | edit source]

The following picture shows simplified block diagram of the design. In principle the structure of the design is the same of the one described in AN-BELK-004.

An-belk-005-02.png

LCD is driven by a controller implemented in PL that fetches pixel data from frame buffer and periodically refreshes physical screen. LCD controller provides configuration registers that are mapped in the following address range: TBD

To implement frame buffer, a portion of main SDRAM is used. This area is allocated at runtime by linux frame buffer driver.

Every pixel on the display has 2 possible states, ON (light pixel) or OFF (dark pixel).On the frame buffer, the memory is mapped with 8bit for pixel. A byte of value 0xFF represents a ON pixel, and all the other values (0xFE to 0x00) represent a OFF pixel.

The following picture shows the block diagram of the Vivado project:

800px

At the following URL the Vivado design is available for download: TBD. Please note that, even if this application note is based on BELK 2.2.0, this design has been implemented with Vivado 2013.4

There are also two GPIO, controlled by the linux driver, that manage the power supply of the display (5V and 12V from BoraEVB to Lumineq Display).

Enabling frame buffer driver in linux kernel[edit | edit source]

To enable frame buffer driver TBD

During kernel bootstrap, the following messages are printed out on console, indicating framebuffer driver has been loaded succesfully:

TBD

Once the kernel has completed boot, frame buffer can be accessed from user space applications via /dev/fb0 device file (for more details please refer to https://www.kernel.org/doc/Documentation/fb/framebuffer.txt).

The following image shows Qt 4.??? demo application running on top of it. TBD