What Is a Best Way to Get Started with Microchip Graphics Library?

Total Page:16

File Type:pdf, Size:1020Kb

What Is a Best Way to Get Started with Microchip Graphics Library?

1. What is a best way to get started with Microchip graphics library?

2. What kind of LCD display can I use with Microchip’s graphics library?

3. What LCD technology (i.e. TFT, OLED) does Microchip graphic library support?

I want to use LCD display with xyz controller but it is not supported by the 4. Microchip graphics library. What should I do?

The display I want to use has RGB interface. Can I use it with Microchip graphics 5. library?

What kind of fonts can I use with the Microchip’s graphics library? What do I need 6. to know to use the fonts?

7. Can I use non-English fonts with the Microchip’s graphics library?

Is there an easy way to pick a color scheme rather than programming all of them 8. and trying it out?

9. How much Flash and SRAM do I need for Graphics library?

10. How much processing power does it take to run the graphics library?

The display I am planning to use has the VGA (640 x 480) resolution. Can 11. Microchip graphics library support it? OR What is a maximum supported resolution for graphics library?

12. Where can I buy the graphics displays?

13. What’s a typical cost of the graphics displays?

I have a Graphics PICtail™ Plus Daughter Board with 2.2” LCD display. I am 14. powering it with 9V power supply and the display seems a little “dim”. Is there any way I can improve brightness of the display?

1 What is a best way to get started with Microchip graphics library? . It is very easy to get started with Microchip graphics library. Obtain the Explorer 16 Starter Kit (DV164033) and Graphics PICtail™ Plus Daughter Board (AC164127) from the Development Tools Section Refer to Web Seminar 4 on “Microchip Graphics Library Architecture” from the Download and Support Section Read application note “AN1136: How to use Widgets in Microchip Graphics Library?” from the Download and Support Section Obtain the free licensed Microchip Graphics library from the Download and Support Section Refer to Microchip Graphics Library API documentation and start writing code. (Back)

2 What kind of LCD display can I use with Microchip’s graphics library? . The best option is to use LCD panels with the 8-bit CPU interface. There are two variants of 8-bit CPU interface: Intel 80 and Motorola 68K. The Microchip graphics library uses the Parallel Master Port (PMP) module to interface with these display panels, and provides support for both variants. It also supports LCD panels with SPI/I2C interface.

The Microchip graphics library also supports LCD panels with the 16-bit CPU interface. There will be some additional glue logic required for the interface. Please refer to PMP family reference manual chapter (DS39713) for details on 8 and 16-bit interface.

If the LCD panels have the RGB interface which consists of R, G, B, HSYNC (horizontal sync) and VSYNC (vertical sync) signals, please refer to FAQ #5 for interface options.

Once compatible physical interface is identified, next thing to identify is software compatibility. The graphics library software support is determined by LCD controller or graphics controller. The web seminar “Graphics LCD system and PIC24 interface” should help in understanding this concept and terminology. Please refer to LCD module datasheet to get part number for LCD controller used. Microchip graphics library has highly modular and requires one LCD controller specific ‘C’ file to support it. Microchip is continuously adding support for new LCD controllers. You should find a list of latest LCD controllers supported by the Microchip graphics library in the Overview Section of the Graphics Design Center. If the LCD controller is not in the list, please refer to FAQ #4.

(Back)

3. What LCD technology (i.e. TFT, OLED) does Microchip graphic library support? The Microchip graphic library is highly modular design and it isn’t tied to any specific LCD technology. The Microchip graphics library talks to graphics LCD controller through parallel or serial interface. The graphics LCD controller handles the LCD technology specific items. The web seminar “Graphics LCD system and PIC24 interface” should help in understanding this concept.

You should find a list of latest LCD controllers supported by the Microchip graphics library in the Overview Section of the Graphics Design Center. You should see LCD controllers supporting various technologies like STN, TFT and OLED in that list. If the LCD controller is not in the list, please refer to FAQ #4.

(Back)

I want to use LCD display with xyz controller but it is not supported by the 4. Microchip graphic library. What should I do? Please go to the Overview Section to find the latest LCD controllers supported by the Microchip graphics library. If the controller of choice is not found, you may contact your local Microchip sales and support team or web support team with LCD and LCD controller datasheet for further information about adding the controller support. This will help us prioritize LCD controller support.

Additionally, the Microchip graphics library has an open documented interface for driver support. You may take one of the existing LCD controller driver code and make some modifications to use with LCD controller of your choice. This is very easy thing to do. Please refer to Graphics Library API Help Document available with library package for details.

(Back)

The display I want to use has RGB interface. Can I use it with Microchip graphics 5. library? The PIC24 device cannot drive RGB display directly so one needs an interface chip to convert PMP interface to RGB interface. The SSD1906 chip from Solomon Systech is example of one such implementation. This graphics controller has 256KB of RAM for image buffer. Therefore, it will be a 2-chip (PIC24FJ and SSD1906) solution.

Another option is to use CPLD or FPGA to convert CPU interface to RGB interface. This may require use of external RAM. This will be a 3-chip solution.

Microchip intends to do a reference design in the future to explain this concept.

(Back)

6. What kind of fonts can I use with the Microchip’s graphics library? What do I need to know to use the fonts? The Microchip graphics library font support is similar to Microsoft Windows. All character height is same and has variable width so width of ‘l’ will be different than ‘M’. All windows fonts may be used with the graphics library. The Microchip graphics library comes with a PC utility that allows easy way to convert raster fonts (*.fnt files) and true type fonts (*.ttf files) for use with library.

The font is a copyrighted material so please ensure that you have rights to use it. You may find free fonts distributed under Open Font License (OFL) agreement. Some of the fonts distributed under OFL may be found here. http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=OFL_fonts

You may also buy fonts at reasonable prices from many clipart websites.

If you want to edit fonts like image for better result then you need to use font editor. You may also create new fonts with font editor. One such freeware editor Fony is available at http://hukka.furtopia.org . Another example is http://fontforge.sourceforge.net.

(Back)

7. Can I use non-English fonts with the Microchip’s graphics library? Yes. The library operates with 8-bit character encoded strings (ASCII). It covers languages defined in ISO 8859 standards. The non-roman characters are defined as part of the extended ASCII table. This will support all languages which has less than 128 characters.

Microchip is working on Unicode encoding to support Asian languages with more than 128 characters. (Back)

8. Is there an easy way to pick a color scheme rather than programming all of them and trying it out? There are quite a few resources available on web to help with color scheme picking. Some of them are: http://www.colorschemer.com/online.html - Choosing colors and obtaining the hex code equivalent of the color. http://www.easyrgb.com/index.html - Color calculator, color matching, color calibration, color harmonies, and etc. http://www.brucelindbloom.com/index.html?ColorCalculator.html – The fundamentals of color, color calculator, color management, and etc.

It is possible that the color reproduced by your graphics LCD display may not perfectly match the colors on your PC and may require some tuning.

(Back)

9. How much Flash and SRAM do I need for Graphics library? The Flash and SRAM requirements may change with each release. It is documented in the ReadMe file of each release. The resource requirements for non-blocking configuration in V1.0 are:

Function Heap Per SRAM #of Flash (Bytes) Instance (?) (Bytes) Instructions (Bytes) Primitive - Blocking 0 16 1868 2802 - Non- 0 76 2054 3081 blocking Driver 0 12 2180 3270 (S6D0129) GOL 20 Per Style 24 1286 1929 Scheme Window 23 Y 2 510 765 Check Box 21 Y 2 650 975 Radio 25 Y 12 720 1080 Button Picture 21 Y 9 434 651 Static Text 21 Y 8 490 735 Button 27 Y 8 724 1086 23 Y 9 602 903 Slider 32 Y 20 1454 2181 Progress 24 Y 6 676 1014 Bar Custom 22 Y 6 402 603 Control Demo List Box 28 Y 6 1266 1989 Edit Box 25 Y 2 634 951 Meter 39 Y 24 1518 2277 Dial 30 Y 8 646 969 Everything 234 16246 24369 Included The heap is a dynamic memory requirement. It is released when screen is destroyed. Please consider screen with maximum number of objects to calculate worse case SRAM requirement. If for worse case you have 6 buttons, 2 sliders and 2 edit box on screen that utilizes three style schemes then worse case dynamic memory requirement will be 6*27 + 2*32 + 2*25 + 3*20; 336 bytes. The SRAM requirement in column 4 doesn’t change based on number of instances. If object is included in code then it will take fix amount of SRAM irrespective of its usage.

Each font may require 7 – 10KB of program memory. This is for English fonts. This requirement may change for other languages with additional characters.

Images require additional memory. The memory requirement for images depends on color depth and size.

The fonts and images can be stored in internal memory or external memory. The external memory can be anything serial EEPROM, parallel Flash, SD card etc. The application provides physical interface code for these devices.

(Back)

10. How much processing power does it take to run the graphics solution? The processing power varies greatly based on the type of graphics, its size, color-depth and refresh rate. Please watch demo video on the Introduction Section of the Graphics Design Center as a reference to this FAQ. The display used for video is 2.8”, 16-bit color, QVGA resolution TFT display. All numbers were taken with CPU running at full 16 MIPS speed on PIC24F device.

The button test screen takes approximately 230mS at 16 MIPS to draw screen. After that each button click animation takes lesser time. Buttons with both bitmap and text (Gradient and duck bitmap buttons) takes around 25mS to draw for press effect. The button with text takes approximately 16mS. The bigger the button longer it will take. Please remember that for user interface, response time of 0.5 – 1 second for screen change and few 100mS for visual feedback is very responsive to human eyes.

The progress bar screen in slow mode takes anything from 11 – 21% of CPU power at 16MIPS. The actual processing power mainly depends on the text being displayed. The text like ‘1%’ takes way less CPU power than ‘100%’ due to smaller graphics content. When we press how fast PIC24F can go, we try to run it very fast. It’s unrealistic application where you update progress bar this fast and still go through each and every percentage point. This demo is mainly done to show performance of the library and device capability. In fast mode the CPU resource requirement varies from 52% to 90%. At this speed we run into LCD bus speed issue. The display used requires 1 wait state on bus so fastest parallel bus speed is 8 MHz. Some display supports 16 MHz parallel bus speed. In that case we’ll need lesser CPU power for same operation.

On the meter screen, the meter on left (with filled curve) takes longer to draw. It takes around 95mS to draw meter initially with value being displayed. After that each needle movement updates takes 0.79mS to draw. If text is also updated then it takes 1.16mS. This is a very small percentage of the available CPU power.

The ECG screen is setup for update with live data. It reads data from RAM buffer and updates the screen. The refresh rate has been setup for worse case ECG of 120 bits per second. This screen takes 6 to 12% of CPU resources at 16 MIPS. The peak in ECG requires update to lot more points so may take up to 12% of CPU resources. (Back)

The display I am planning to use has the VGA (640 x 480) resolution. Can 11. Microchip graphics library support it? OR What is a maximum supported resolution for graphics library? The Microchip graphics library has compile time options to define the display resolution. It doesn’t limit library to any maximum resolution. The maximum supported resolution depends on the type of graphics being displayed, the required update rate (fps) and available CPU resources.

The FAQ above shows some performance numbers for QVGA, 16-bit color display. The VGA display requires 4x more data transfer then QVGA display so same graphics above if scaled appropriately to VGA resolution will require 4x more processing power or will take 4x longer to draw. This may still be acceptable for menu/ icons kind of user interface as far as it can provide reasonably fast user response.

Most VGA displays have RGB interface so please refer to FAQ #5 for interface options.

(Back)

12. Where can I buy the graphics displays? The graphics LCD displays can be found from almost all major LCD vendors, some of them are: Truly Semiconductor Limited (America Sales, Asia Sales) Microtips Technology (America Sales, Asia Sales) Orion Display Technology (America Sales, Asia Sales) Varitronix Tianma (America Sales, Asia Sales, Europe Sales) OSD Displays Densitron Multi-Inno (Back)

1 What is a typical cost of the graphics displays? 3 . In recent times, the cost of graphics display has come down significantly. You may see two kinds of graphics displays. One is targeted for consumer market like cell phones. These displays are of smaller size usually less than 3” in size, QVGA resolution and 18- bit color are quite common.

The typical 1.8”, 18-bit color displays with resolution of 176 x 120 pixels are available for USD 9 to 13 in a volume of 1K units. The 2.8” 18-bit color QVGA display with resistive touch screen is available for USD 18 to 24 for a volume of 1K units. Please remember this is a typical cost. There are quite a few factors that affect pricing so this information is no way intended to cover all varieties.

The pricing mentioned above is for telecom displays. Some of these displays have shorter product life so display may be end of life (EOL) in a few years. Therefore, you may want to put multiple connectors on your board so if one display gets EOL you can switch to different one. The other kind of graphics displays are targeted for industrial market. These displays offer longer life cycle and may be more expensive than displays mentioned above. Please check with your display vendors for more information about “industrial displays”.

(Back)

1 I have a Graphics PICtail™ Plus Daughter Board with 2.2” LCD display. I am 4 powering it with 9V power supply and the display seems a little “dim”. Is . there any way I can improve brightness of the display? The 2.2” display on Graphics PICtail™ Plus Daughter Board uses 3 series LED for backlight. The Explorer 16 has diode D2 for reverse polarity protection on power supply. This results in around 8.3V for backlight. That may not provide enough current for some boards. One option to improve brightness is to use 10 – 12V power supply where 10V is preferred option. Another option is to short the diode D2 on Explorer 16. If you do that then ensure that the power supply polarity is correct. Otherwise, you may damage the board.

(Back)

Back to Recommended Parts

Recommended publications