Presentation on theme: "FTDI Chip – Embedded Video Engine"— Presentation transcript:
1FTDI Chip – Embedded Video Engine Designing with the FT800750+ modules out to market between Sept to Dec 2013800+modules out to market between Q1 2014
2Agenda Introduction to “EVE” Key features and benefits Hardware and system requirementsDo you require Audio?Display connectionsDevelopment flow (software)What are display objectsFT800 ‘is not complicated’Application examples: multiple display objectsApplication creation : ClocksEVE Code CreationEVE Hardware optionsSupporting UtilitiesSupporting DocumentationVM800P Board Set up
3FTDI Chip Overview “Design Made Easy” Multiple award winning solutions for USB and Display technologyRecent introduction of two Application Orientated Controller (AOC) microcontroller familiesFree customer support‘Royalty free’ drivers and softwareTechnically qualified sales networkFull range of associated development kits and USB interface cables
4“EVE” Embedded Video Engine “ With the EVE concept, FTDI Chip is looking to change the way in which people interact with everyday technology, by providing the display, audio and touch functionality needed to create innovative new products while simultaneously being very cost effective and not placing heavy demands on the developers.”
5Typical Hardware Current designs usually require High-end µC typically 32-bit with abundant IO + external memoryHigher cost and board areaGraphics library and sometimes an Embedded OS requiredExpensive frame buffer IC required for display memoryTouch and audio implementations needed
9Have Want Where can we see these benefits? Upgrade to modern Human Machine Interface (HMI)Replace mechanical switch (expensive, bespoke)Increased functionality w/graphical feedback – e.g. display and control temperatureAesthetic versatility
10Have Want Where can we see these benefits? Replace mechanical controls – save on expense and spaceCompany logos instead of buttonsAudio feedbackAdd adverts/information within commercial environments
12Key Features and benefits The FT800’s object oriented approach renders images in a line by line fashion with 1/16th of a pixel resolutionNo expensive frame buffer (less RAM) required lowering system costAnti-AliasingAllows the FT800 to produce sharper, smoother edges with enhanced image quality, even on lower resolution displays.Alpha blending and masking algorithmsCreate shadows / 3D / fade effectsIn-built widgets for complex shapesColour DitherAllows the FT800 to calculate for 8-bit colour despite only providing pins for 6-bit (RGB – 6,6,6)Improves half-tone appearance8kbyte RAM stores display listApproximately 2000 itemsProgrammable TimingAllows the FT800 to adjust HSYNC and VSYNC timing enabling control of many different displays.
13Key Features and benefits Mono audio (single pin) output from PWM 64-voice polyphonic synthesiser– Play pre-stored sounds allowing for fast implementation of sound generation e.g. bells, chirps, beeps, alarms, clicks, DTMF tonesAudio wave playback for mono-8-bit linear PCM, 4-bit ADPCM and µ-Law coding format at sampling frequency from 8kHz to 48kHzDesigned for resistive touch screensIncludes median filtering and touch force sensing to adjust the screens sensitivity.4 wire control (X+, X-, Y+, Y-)Screen pressure alters resistance between the +/- signals with the value returned to the FT800.10 bit ADC + processing enables location to be determined.
14Select your FT800 hardware Design CycleSelect your FT800 hardwareConfirm your ControllerUtilise the appropriate compilerDesign your applicationSelect your FT800 hardwareConfirm your ControllerUtilise the appropriate compilerDesign your application
18Display Connections – RGB Swizzle What happens if the LCD Panel has a different pin out?
19Data Spreading CSPREAD Display Connections –Data Spreading CSPREADRGB Timing with CSPREAD disabledRGB Timing with CSPREAD enabledThe FT800 supports spreading of the RGB data to avoid all 18 bits transitioning at the same time.Enabling “CSPREAD” may help with system power consumption and electromagnetic compatibility(EMC) tests since fewer signals are changing simultaneously
21Startup & Config Configure the SPI/I2C interface SPI supports Mode 0 to 30MHzI2C supports up to 3.4Mbit/s2. Wake up the FT800Fundamentally a dummy read to address 0 and configure the PLL
22Startup 3. Configure the TFT display timing parameters Many displays will have different timing for horizontal and vertical sync.FT800 has a set of 10 registers to set the synchronisationFT800 has 3 additional registers to control actual pixel clocking:FT_DispPCLK – Pixel clock divisorFT_DispSwizzle – Sync of RGB pixel clockingFT_DispPCLKPol – Polarity of clock
23Startup & Config Typical values for frame synchronisation: REGISTER WQVGAVGAFT_DispWidth480320FT_DispHeight272240FT_DispHCycle548408FT_DispHOffset4370FT_DispHSync0REGISTERWQVGAVGAFT_DispHSync14110FT_DispVCycle292263FT_DispVOffset1213FT_DispVSync0FT_DispVSync12
24Startup & Config 4. Configure the TFT display touch parameters Theoretically only required if using the touch function.19 registers to control sensitivity (charge and settle) and monitor feedbackKey ones are:Reg_Touch_Mode_DefinitionReg_Touch_Charge_DefinitionReg_Touch_Settle DefinitionValues dependant upon display
25FT800 Step 2 Create the Code (part 3) Enable the LCD 5. Create the display listMultiple paths for this.Direct to 8kRAM (2000 objects)Note: An object may be visual, audio or touch.Via j1 co-processor.6. Complete and swap the display list7. Compile and load the code into the systemprocessor
30FT800 Graphic objects‘EVE’ displays are created using two primary types of objects:Primitive objects (simple shapes)Widget objectsDisplay Lists are the key to drawing images on the LCD. There are six primitives available:Points are anti-aliased points with a radius of 1 to 256 pixels.Lines are anti-aliased lines with a width of 1 to 256 pixels.
31Primitives – Basic Shapes FT800 GraphicPrimitives – Basic ShapesPOINTS – anti-aliased points, point radius is pixelsLINES – anti-aliased lines, with width of pixels (width is from center of the line to boundary)Display Lists are the key to drawing images on the LCD. There are six primitives available:Points are anti-aliased points with a radius of 1 to 256 pixels.Lines are anti-aliased lines with a width of 1 to 256 pixels.
32Primitives – Basic Shapes FT800 GraphicPrimitives – Basic ShapesLINE STRIP – anti-aliased lines, connected head-to-tailEDGE STRIP – Above, Below, Left, Right – anti aliased edge stripsLine Strips are multiple anti-aliased lines, connected head-to-tail.Edge Strips are similar to Line Strips, except the screen is filled solid in a selected direction (above, below, left or right).
33Primitives – Basic Shapes FT800 GraphicPrimitives – Basic ShapesRECTS – round-cornered anti-aliased rectangles (curvature of the corners can be adjusted using LINE WIDTH)BITMAPS – rectangular pixel arrays, in various color formatsRectangles are round-cornered, anti-aliased rectangles where the corner radius is set by the line width.Bitmaps are rectangular pixel arrays read from the object RAM. Various color formats and translations are available.
34FT800 Graphic Engine Widgets TEXT – draw text of varying font types and sizesBUTTON – draw a buttonCLOCK – draw an analog clock faceGAUGE – draw a gauge with optional pointer and tick marksGRADIENT – draw a smooth color gradientKEYS – draw a row of keysPROGRESS – draw a progress bar showing two colorsSLIDER – draw a slider bar with knobSCROLLBAR – draw a scroll barDIAL – draw a knob with an optional pointerTOGGLE – draw a selection bar with two choices (yes/no, on/off, etc.)NUMBER – draw a decimal number with optional signIn addition to the primitives available through the Display List, the FT800 provides a selection of “Widgets” through its Graphics Engine as noted in this slide. Use of these widgets only require a few commands.Other commands are available, such as SNAPSHOT (take a snapshot of the current screen), TRANSLATE (manipulate a bitmap), SKETCH (draw from the touch panel as input), LOADIMAGE (store a JPEG image) and INFLATE (decompress a file into memory). Commands are included to encapsulate Display List primitives as well. The full list of commands is available in the FT800 Programmer Guide.The graphics engine allows complex images to be drawn with minimal commands and host MCU processing. Graphics Engine commands are written to the Command Buffer section of memory. A total of 4Kbytes is available in a ring buffer.
38Sample applications (at the end) show these commands in operation. FT800 Registryand Command Set72 registers which are classified into 5 groupsGraphics Engine RegistersAudio Engine RegistersTouch Engine RegistersCo-processor Engine RegistersMiscellaneous Registers.65 Commands which are classified into 5 groupsGraphics CommandsWidget CommandsMemory CommandsBitmap CommandsOther CommandsREG_SWIZZLEREG_TOUCH_MODEREG_GPIOPOINT_SIZECMD_GRADIENTCMD_CALIBRATEProgrammers guide – detailed explanation of every command and registry entry.Sample applications (at the end) show these commands in operation.Programmers will know what they are looking at.
39Display List Functions Software –Display List FunctionsPRIMITIVES (basic shapes)BITMAPSPOINTSLINESLINE STRIPEDGE STRIP_REDGE_STRIP_LEDGE_STRIP_AEDGE_STRIP_BRECTSDRAWING ACTIONSBEGINENDVERTEX2IIVERTEX2FEXECUTION CONTROLJUMPMACROCALLRETURNDISPLAY
44Keys Code demonstrates the usage of the keys function Draws buttons with characters given as input parametersFlat and 3D effects, draw at (x,y) coordinates or centre of the displayInbuilt or custom fonts can be used for key display
52Software development prototype setup PC running Microsoft Visual studio acting as microcontrollerFTDI high speed SPI cableFT800 Basic module to control 4.3" display with display and black bezel enclosure
58FT800Q IC48 pin VQFN packageTape and Reel (2500 pcs) or Tray (250 pcs) packaging optionsRoHS Compliant-40Deg C to +85 Deg C Operating Temperature
59VM800C (Credit Card) Development Hardware Development board containing with FT800Includes connector for RGB video timing and touch control signals to the displayIncludes audio ampIncludes connector to mate with external MCU via SPIMay be supplied with or without displayDisplay support for 3.5”, 4.3” and 5.0 “ QVGA and WQVGA displayswithout display or with display
60VM800B (Basic) Development Hardware Development board containing with FT800Support for 3.5”, 4.3” and 5.0 “ QVGA and WQVGA displaysPrecision fitted bezel in black or pearlIncludes audio ampIncludes connector to mate with external MCU via SPI
63VM800P Plus Module Plus module with on board Atmega MCU Support for 3.5”, 4.3” and 5.0 “ QVGA and WQVGA displaysAudio amplifier & speakerPrecision fitted bezel in black or pearlUSB micro – power/programmingSD Card slot – BMP`s audio filesBattery operation – Real Time Clock
66EVE Support UtilitiesSOFTWARE:Sample application including FT_GPU.h and Hardware Abstraction Layer (HAL).Img_cvt windows utility for formatting images such that EVE can use themAud_cvt windows utility for formatting audio files such that EVE can use themfnt_cvt windows utility for formatting fonts to bitmaps such that EVE can use themAll available fromConversion tools that allow you to convert an image, audio file of font into a format that the EVE series recognises.
73Load a programDownload the Example 13- FT_App_Signals sample app from the web site:Unzip to a new folder, double click on the project FT_App_Signals.ino, found within: \Downloads\FT_App_Signals\FT_App_Signals\Project\Aurdino\FT_App_Signals\FT_App_Signals.inoThis will automatically open the Ardunio IDE tool chain.
80Load a program SD card images Download the Example 22- Refrigerator sample app from the web site:Unzip to a new folder, FT_App_Refrigerator.ino,found within: \FT800_DEMOAPP_Refrigerator_V1.1\FT800_DEMOAPP_Refrigerator_V1.1\FT800_DEMOAPP_Refrigerator_V1.1\Project\Arduino\FT_App_Refrigerator
81Load a program SD card images Copy contents of Test folder to VM800P SD cardDouble click on the project FT_App_Refrigerator.ino, found within: \FT800_DEMOAPP_Refrigerator_V1.1\FT800_DEMOAPP_Refrigerator_V1.1\FT800_DEMOAPP_Refrigerator_V1.1\Project\Arduino\FT_App_Refrigerator