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

From DAVE Developer's Wiki
Jump to: navigation, search
(add software details)
Line 45: Line 45:
  
 
==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:
  
TBD
+
<pre>
 +
[    0.600553] borafb_lum borafb_lum.0: fb0: Virtual frame buffer device, using 16384K of video memory @ phys 2d900000
 +
</pre>
  
 
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 Qt 4.??? demo application running on top of it.
+
The following image shows a slideshow generated with [http://linux.die.net/man/1/feh feh] image viewer on top of X Window System
 +
 
 
TBD
 
TBD

Revision as of 08:26, 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-01.jpg

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.

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 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 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:

[    0.600553] borafb_lum borafb_lum.0: fb0: Virtual frame buffer device, using 16384K of video memory @ phys 2d900000

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 a slideshow generated with feh image viewer on top of X Window System

TBD