Drivers SCS Port Devices



VAIO Wireless Presentation Mouse (HID) Driver. Microsoft USB Wireless MultiMedia Keyboard (IntelliType Pro). Port Devices (outdated). This page contains the VCP drivers currently available for FTDI devices. For D2XX Direct drivers, please click here. Installation guides are available from the Installation Guides page of the.

  1. Drivers Scs Port Devices Free
  2. Drivers Scs Port Devices Online
  • If Parallel port driver fails to load or initialize, Windows 7 startup continues without error messages.
  • This library provides Virtual COM port on USB OTG. This means, that you don’t need external USB-UART converter (like FTDI) to communicate with computer. STM32F4xx will be seen to computer like COM.
  • Virtual COM Port Driver creates virtual serial ports and connects them through a virtual null-modem cable.

Detailed Description

Display device driver stack library. See Display Device Driver Stack for more information.


The source files for the DISPLAY device driver stack library resides in the kits/common/drivers directory and follows the naming convention: displaymodule_name.c/h.


The DISPLAY device driver stack implements a common API for different types of display devices. Thus making it easy to port applications between different hardware and software platforms. Additionally the DISPLAY device driver stack implements a Platform Abstraction Layer (PAL) in order to provide abstractions of hardware and software services needed by the specific display device drivers. Thus making it easy to port the DISPLAY device driver stack itself between different platforms.

The stack provides a configuration interface via dedicated configuration files in order to suit various application and platform requirements. Please refer to DISPLAY Device Driver Stack Configuration. for more information.

There are also several example programs in order to get you started fast.

We recommend that you read through this documentation, and then proceed to build and test a few example programs in order to get started.


This section contains brief descriptions of some of the functions in the API. You will find detailed information on input and output parameters and return values by clicking on the hyperlinked function names. It may also be a good idea to study the code in the example programs.

Your application code must include one header file, display.h, which defines the user interface of the DISPLAY module which is common for all display devices.

The first step an application should do is to call the DISPLAY_Init() function which initializes the DISPLAY driver stack. This includes calling the initialization functions of all registered display device drivers which will initialize the specific display device(s) and make them readily available through the DISPLAY interface defined in display.h.

It is good practice that the user programmer checks the return value of the DISPLAY_Init() call, and for the sake of it, all calls in of the DISPLAY device driver interface. All functions in the DISPLAY device driver interface return an EMSTATUS code which indicates whether the operation was successful or not, and what type of error may have occurred. The possible error codes are listed in display.h.

The second step is typically to retrieve the properties of a DISPLAY device. This can be done by calling the DISPLAY_DeviceGet() function which receives the following two parameters:

  • displayDeviceNo which is a unique device number of one of the existing display devices in the system. Othen this value is zero because often there is just one display device in the system.
  • displayDevice which is a pointer to a DISPLAY_Device_t structure which will be populated with the properties of the specified display device if the function is successful.

If DISPLAY_DeviceGet() is successful, the specified DISPLAY_Device_t structure contains the properties of the display device. The properties include the geometry (DISPLAY_Geometry_t), the colour mode (DISPLAY_ColourMode_t) and the address mode (DISPLAY_AddressMode_t) of the display device. Additionally the DISPLAY_Device_t structure contains function pointers to the device specific functions of the display device. The user should be aware that the device driver need not support all the function pointers of the DISPLAY_Device_t structure. Therefore the user should check if the function pointer is NULL before calling it.

The pPixelMatrixDraw() function is used to move and show the contents of a framebuffer (or pixel matrix buffer) onto the display device. A pixel matrix buffer is a 'partial' framebuffer which covers only part, or the whole, of the geometry of the display.

The format of the pixel data in the pixel matrix buffer is defined by the DISPLAY_ColourMode_t. At the time of writing only two colour modi are defined in DISPLAY_ColourMode_t :

  • DISPLAY_COLOUR_MODE_MONOCHROME and
  • DISPLAY_COLOUR_MODE_MONOCHROME_INVERSE

The DISPLAY_COLOUR_MODE_MONOCHROME mode defines a pixel bit value of 0 as white, and a pixel bit value of 1 as black. The DISPLAY_COLOUR_MODE_MONOCHROME_INVERSE mode is the opposite, and thus defines a pixel bit value of 0 as black, and a pixel bit value of 1 as white.

The pixel matrix buffer format for the monochrome modi is defined as a byte array where

  • bit 0 of the 0th byte is pixel 0 on line 0, top left on the display,
  • bit 1 of the 0th byte is pixel 1 on line 0,
  • ...,
  • bit 7 of the 15th byte is pixel 127 on line 0,
  • bit 0 of the 16th byte is pixel 0 on line 1,
  • ...,
  • bit 7 of the 2047th byte is pixel 127 on line 127, bottom right on the display.

Some device drivers may need/want to support a pixelMatrix allocation function, pointed to by pPixelMatrixAllocate , in order to handle device specific data structures related to the pixel matrix buffers. The pixel matrix buffers allocated with the pPixelMatrixAllocate function may also include control data/padding in order to accomodate for efficient use of the underlying hardware. If the stride member of DISPLAY_Geometry_t structure is bigger than the width member, the pixel matrix buffer contains such control data, and should not be overwritten by the user, unless the user knows how to handle this data (which is usually not necessary).

The user can make use of graphic libraries such as EMWIN and GLIB in order to draw graphical objects in the pixel matrix buffers. Please refer to the documentation of EMWIN and/or GLIB in reptile/emwin/src/Doc and reptile/glib respectively. The documentation of GLIB is embedded in the source code.

NOTE: There is an issue with EMWIN that does not allow drawing on framebuffers of size 128x128 which happens to the size of the Sharp Memory LCD model LS013B7DH03. The DISPLAY interface supports a workaround that allows the user to allocate bigger framebuffers (pixelMatrix buffers) by using the userStride parameter which is included in the DISPLAY interface when EMWIN_WORKAROUND is defined. Therefore, in order to use EMWIN on the LS013B7DH03, the user must define EMWIN_WORKAROUND (typically in displayconfigapp.h) and request a userStride of at least 160 bits, not 128 bits which is the real width (in pixels) of the LS013B7DH03.

The pPixelMatrixClear function clears the contents of the pixel matrix buffer by setting it all to the default background colour.

The pDriverRefresh function should be called if the system resources. e.g. bus clock frequency, has undergone any changes. The pDriverRefresh function will recalibrate internal parameters associated with the display devices.


This section contains a brief introduction to writing device drivers for specific display devices that can run properly in the DISPLAY device driver stack.

If you want to implement a new DISPLAY device driver, basically you need to implement an initialization function that populates a DISPLAY_Device_t data structure with the properties of the display device. At least the geometry DISPLAY_Geometry_t, the colour mode DISPLAY_ColourMode_t, the address mode DISPLAY_AddressMode_t, and the pPixelMatrixDraw function must be implemented. Whether the rest of the device specific functions may need to be implemented depends on the type of display device and application requirements. Also, the device driver programmer should be aware that the upper layers and examples of the DISPLAY device driver stack does not support all types of display devices and is continually being updated for new display devices. Therefore the upper layers and examples may need to be updated in order for existing software to work with a new display device driver.

We recommend to study the existing DISPLAY device driver(s). At the time of writing this text, there exists only one DISPLAY device driver for the Sharp Memory LCD (model LS013B7DH03) implemented in displayls013b7dh03.c/h.

When the DISPLAY_Device_t data structure is properly populated it should be registered in the DISPLAY module by calling the DISPLAY_DeviceRegister function (declared in displaybackend.h) with a pointer to the DISPLAY_Device_t structure as parameter. This will make the display device available via the DISPLAY interface which is used by existing upper layer modules, examples and applications directly.

In order to automatically initialize the new display device driver from withing the DISPLAY_Init function, the driver initialization function can be added to the list of initialization functions in displayconfig.h :

The displayconfig.h file should also include #define inclusion constants for the specific display device drivers included in the system. Typically there is only one display device, however some systems may add more than one display devices if present.

Additionally, we recommended to implement a platform abstraction layer in order to facilitate for easy porting of the display device driver between different hardware and software platforms. The displaypal.h file declares an interface that abstracts the platform specifics required by the Sharp Memory LCD (model LS013B7DH03) device driver implemented in displayls013b7dh03.c. And displaypalemlib.c implements the PAL functions on top of EMLIB. A new device driver may need additional hardware and software services and the displaypal.h can be extended to support any such device.


This section contains a description of the configuration interface of the DISPLAY device driver stack. The configuraion interface consists of a set of configuration files:

  • One for each module in the DISPLAY device driver stack, where the platform default configurations are specified.
  • One for each application called displayconfigapp.h in which the user can specify application specific configurations and override defaults if desired.
  • And one that ties everything together by including all configuration files, called displayconfigall.h (included in display.h).

Normally the application programmer just need to deal with the application specific configuration file displayconfigapp.h which typically should be minimalistic and easy to setup. Below is a list of the typical configuration parameters that the application programmer may need to relate to on a given platform/kit:

The rest of this section lists and describes the configuration parameters included in the module configuration files which are set to default values specific for the kit/platform. Each development kit from Silicon Labs that supports the DISPLAY Device driver stack includes a unique set of these configuration files in the kits/kit_name/config folder.


DISPLAY Module Configuration

This section includes descriptions of the configuration parameters for the DISPLAY Module specified in displayconfig.h.


Sharp Memory LCD Configuration

This section includes descriptions of the configuration parameters for the Sharp Memory LCD Device Driver specified in displayls013b7dh03config.h.


PAL Configuration

This section includes descriptions of the configuration parameters for the PAL (Platform Abstraction Layer) specified in displaypalconfig.h.


TEXTDISPLAY Configuration

The configuration of the TEXTDISPLAY and RETARGETTEXTDISPLAY is described in TextDisplay Library and Retarget TextDisplay Module.

Data Structures

struct DISPLAY_Device_t
struct DISPLAY_Geometry_t

Macros

#define DISPLAY_EMSTATUS_INVALID_PARAMETER (DISPLAY_EMSTATUS_BASE | 3)
#define DISPLAY_EMSTATUS_NOT_ENOUGH_MEMORY (DISPLAY_EMSTATUS_BASE | 1)
#define DISPLAY_EMSTATUS_NOT_INITIALIZED (DISPLAY_EMSTATUS_BASE | 5)
#define DISPLAY_EMSTATUS_NOT_SUPPORTED (DISPLAY_EMSTATUS_BASE | 4)
#define DISPLAY_EMSTATUS_OK (0)
#define DISPLAY_EMSTATUS_OUT_OF_RANGE (DISPLAY_EMSTATUS_BASE | 2)

Typedefs

typedef enum DISPLAY_AddressMode_tDISPLAY_AddressMode_t
typedef enum DISPLAY_ColourMode_tDISPLAY_ColourMode_t
typedef struct DISPLAY_Device_tDISPLAY_Device_t
typedef struct DISPLAY_Geometry_tDISPLAY_Geometry_t
typedef void * DISPLAY_PixelMatrix_t
typedef EMSTATUS(* pDisplayDeviceDriverInitFunction_t) (void)

Enumerations

enum DISPLAY_AddressMode_t {
DISPLAY_ADDRESSING_BY_ROWS_ONLY,
DISPLAY_ADDRESSING_BY_ROWS_AND_COLUMNS
}
enum DISPLAY_ColourMode_t {
DISPLAY_COLOUR_MODE_MONOCHROME,
DISPLAY_COLOUR_MODE_MONOCHROME_INVERSE
}

Functions

EMSTATUS DISPLAY_DeviceGet (int displayDeviceNo, DISPLAY_Device_t *device)
Get the display device data structure corresponding to the device number. More...
EMSTATUS DISPLAY_DeviceRegister (DISPLAY_Device_t *device)
Register a display device. More...
EMSTATUS DISPLAY_DriverRefresh (void)
Refresh all DISPLAY devices. More...
EMSTATUS DISPLAY_Init (void)
Initialize the DISPLAY module. More...

Macro Definition Documentation

#define DISPLAY_EMSTATUS_INVALID_PARAMETER (DISPLAY_EMSTATUS_BASE | 3)

Invalid parameter.

Definition at line 48 of file display.h.

#define DISPLAY_EMSTATUS_NOT_ENOUGH_MEMORY (DISPLAY_EMSTATUS_BASE | 1)

Not enough memory.

Definition at line 46 of file display.h.

Referenced by DISPLAY_DeviceRegister().

#define DISPLAY_EMSTATUS_NOT_INITIALIZED (DISPLAY_EMSTATUS_BASE | 5)

Feature/option not supported.

Definition at line 50 of file display.h.

Referenced by DISPLAY_DeviceGet(), DISPLAY_DeviceRegister(), and DISPLAY_DriverRefresh().

#define DISPLAY_EMSTATUS_NOT_SUPPORTED (DISPLAY_EMSTATUS_BASE | 4)

Feature/option not supported.

Definition at line 49 of file display.h.

EMSTATUS codes of the display interface. Operation successful.

Definition at line 45 of file display.h.

Referenced by DISPLAY_DeviceGet(), DISPLAY_DeviceRegister(), DISPLAY_DriverRefresh(), DISPLAY_Init(), RETARGET_TextDisplayInit(), and TEXTDISPLAY_New().

#define DISPLAY_EMSTATUS_OUT_OF_RANGE (DISPLAY_EMSTATUS_BASE | 2)

Parameters out of range.

Definition at line 47 of file display.h.

Referenced by DISPLAY_DeviceGet().

Typedef Documentation

typedef enum DISPLAY_AddressMode_tDISPLAY_AddressMode_t
typedef enum DISPLAY_ColourMode_tDISPLAY_ColourMode_t

Display device data structure, including a specification of how the display device behaves.

typedef struct DISPLAY_Geometry_tDISPLAY_Geometry_t

Pixel matrix handle.

Definition at line 81 of file display.h.

typedef EMSTATUS(* pDisplayDeviceDriverInitFunction_t) (void)

Display device driver init function pointer type. The displayconfig.h file includes a table that contains the default display devices to initialize.

Definition at line 163 of file display.h.

Enumeration Type Documentation

Drivers

Display device address modes.

Enumerator
DISPLAY_ADDRESSING_BY_ROWS_ONLY

Display device is addressed by rows only. I.e. a full line of pixel data is required to update a single pixel.

DISPLAY_ADDRESSING_BY_ROWS_AND_COLUMNS

Display device is addressed by both rows and columns. I.e. single pixel updates is supported.

Drivers Scs Port Devices Free

Definition at line 68 of file display.h.

Display device colour modes.

Enumerator
DISPLAY_COLOUR_MODE_MONOCHROME

White = pixel bit value = 0, Black = pixel bit value = 1

DISPLAY_COLOUR_MODE_MONOCHROME_INVERSE

Black = pixel bit value = 0, White = pixel bit value = 1

Definition at line 58 of file display.h.

Function Documentation

EMSTATUS DISPLAY_DeviceGet (int displayDeviceNo,
DISPLAY_Device_t * device
)

Get the display device data structure corresponding to the device number.

Parameters
[in]displayDeviceNoUnique device number of one of the display devices in the system.
[out]devicePointer to a DISPLAY_Device_t structure which will be populated with the properties of the specified display device if the function is successful.
Drivers scs port devices list
Returns
EMSTATUS code of the operation.

Definition at line 139 of file display.c.

References DISPLAY_EMSTATUS_NOT_INITIALIZED, DISPLAY_EMSTATUS_OK, and DISPLAY_EMSTATUS_OUT_OF_RANGE.

Referenced by RETARGET_TextDisplayInit(), and TEXTDISPLAY_New().

EMSTATUS DISPLAY_DeviceRegister (DISPLAY_Device_t * device)

Register a display device.

Parameters
deviceThe display device structure which specifies the properties of the display.
Returns
EMSTATUS code of the operation.

Definition at line 172 of file display.c.

References DISPLAY_EMSTATUS_NOT_ENOUGH_MEMORY, DISPLAY_EMSTATUS_NOT_INITIALIZED, and DISPLAY_EMSTATUS_OK.

Refresh all DISPLAY devices.

This function requests all DISPLAY device drivers to update their internal state with respect to system resource changes, like a bus clock frequency. This function may need to be called after system changes.

Returns
EMSTATUS code of the operation.

Definition at line 97 of file display.c.

References DISPLAY_EMSTATUS_NOT_INITIALIZED, DISPLAY_EMSTATUS_OK, and DISPLAY_Device_t::pDriverRefresh.

Initialize the DISPLAY module.

Returns
EMSTATUS code of the operation.

Definition at line 64 of file display.c.

Drivers Scs Port Devices Online

References DISPLAY_EMSTATUS_OK.