______________________________________________________________________________
Windows CE 5.0 UART Driver for PC Card Devices
Copyright (C) 2008 Oxford Semiconductor Inc.

Supported devices: OXCF950, OXCFU950
______________________________________________________________________________

____________________________
Driver Installation 
____________________________

The com16950.dll driver can be installed using two methods:
       A. Using Catalog item (CEC file)
       B. Using CAB file.
       
A. Installing driver as a Catalog Item
--------------------------------------
1. Install Windows CE 5.00 Platform Builder (PB) to the development PC

2. Double click the batch file "CopyDriverToWinCERoot.bat" to execute it. 
   This batch file will prompt the user to enter the WINCEROOT (e.g. C:\WINCE500).
   The batch file will then copy all files and sub-folders of the driver to the 
   WINCEROOT. The following directory structure shall be seen:
   
   
	C:\WINCE500\OXSEMI
	               |------UARTS
	               |        |
	               |        |-----....
	               |        |-----COM16950
	               |        |-----PDD16950
	               |        |-----SER16950
	               |        |-----MDD16950
	               |        |-----INC
	               |        \-----....
	               |
	               \------....

3. Start PB and open a OS image workspace. It is assumed that a OS image is already
   built and sysgened.

4. Click “File->Manage Catalog Items to start “Manage Catalog Items" dialog

5. Click “Import…” button to start “Import Catalog Features” dialog and import 
   cec file, “com16950.cec”, present under %WINCEROOT%\OXSEMI\UART\COM16950.
   Next, click OK.
   
6. In the 'Catalog' window, COM16950 catalog item will be present under "Third Party\device drivers\serial". 
   Add "COM16950" feature to the platform by right-clicking on it and choosing “Add to OS Design”

7. Clicking "Project->Set Project Build Order.." to start a "Workspace Project
   Build Order" dialog and, if required, rearrange project build order as shown:
        
	    ISR16950
        PDD16950
        SER16950
        MDD16950
        COM16950
        
8. Next, make sure "Make Run-Time Image After Build" is selected and "Clean Before Building" is deselected.
   These options are found under “Build Project".
   
9. Next, to build the project into the Run-Time OS image, click on "Build Project -> Build All Prijects"

10. The OS image named NK.BIN will be generated which will contain the com16950.dll
    driver. 
   
11. Download the OS image to the target (CEPC).

______________________________________________________________________________

B. Installing using CAB file
----------------------------
1. The OS image should be loaded on the target before proceeding.

2. Depending on the target, use the right CAB file.
            For X86 Target: Use com16950.X86.CAB
            For ARM Target: Use com16950.ARM.CAB

3. Place the appropirate CAB file into some folder on the target device.

4. Double click on the CAB file and the installation will start.

5. After the installation finishes, the driver is ready to use.

Note: CAB file installation is the best way to install drivers for 
      PCMCIA/PC Card devices.
     
______________________________________________________________________________

Modifying the reg file - com16950.reg
______________________________________________________________________________

Crystal Frequency
_________________

The driver performs auto detection of the crystal frequency if no value has been
specified in the reg file (i.e. com16950.reg). Please note that the auto detection 
algorithm is very accurate but involves time consuming operations. This will delay the 
loading of the driver (and in turn the OS) depending on the number of ports.

The value of the crystal frequency can be specified in the registry. This is done
by using the subkey "CrystalFrequency" in the reg file.

For example:  "CrystalFrequency"=dword:1194000
where in the value '1194000' is the hexadecimal value for 18,432,000Hz.

The crystal value are expressed in HEXADECIMAL, and NOT DECIMAL.

Here's a list of likely frequencies, and their hexadecimal equivalents:

    Frequency (Hz)    Hexadecimal equivalent
    --------------    ----------------------
        60,000,000    3938700
        50,000,000    2FAF080
        48,000,000    2DC6C00
        18,432,000    1194000
        16,000,000    F42400
        14,745,600    E10000
         7,372,800    708000
         1,843,200    1C2000
         
Interrupt triggering and flow control levels
____________________________________________

Four level control values can be defined in "com16950.reg" file (brackets indicate
the corresponding 16950 registers, to where the values will be stored when device
driver being loaded):

    "RxIntTrigLevel" ------ Receive Interrupt Triggering Level (RTL)
    "TxIntTrigLevel" ------ Transmit Interrupt Triggering Level (TTL)
    "FlowCtrlLowLevel" ---- Automatic Flow Control Lower Trigger Level (FCL)
    "FlowCtrlHighLevel" --- Automatic Flow Control Higher Trigger Level (FCH)

The level value are expressed in HEXADECIMAL, NOT DECIMAL. For example, to set
the Receive Interrupt Triggering Level to 95, the following line should exist
under the corresponging key:

    "RxIntTrigLevel"=dword:5F

	
______________________________________________________________________________

Modifying the inf file - com16950.inf
______________________________________________________________________________

The com16950.inf file is used to generate the CAB files. CAB files for X86 and 
ARM processor can be generated.

The user might want to modify some of the values in the inf file (just like
modifying the reg file). The basics is similar to the ones explained in the reg 
file section. Main difference is the syntax where in the path in the registry is 
specified for each subkey. Also, all numerical values are in DECIMAL (unlike reg
file where it is in HEXADECIMAL).

After making changes to the inf file, refer to the next section to see how to 
generate the CAB files.
________________________________________________________________________________

CAB files generation
____________________

1. Click on "Platform->Settings.." then choose target platform release build
   configuration (for example, "Intel PXA27x Dev Platform:ARMV4I_Release")
   
2. Rebuild OS ("Build OS->Build and Sysgen") or Rebuild the driver only ("Build 
   Project->Build All")
   
3. Depending on the target of the CAB file, double click on the right batch file.
          For X86 Target: Use GenerateCabX86.bat
          For ARM Target: Use GenerateCabARM.bat
          
4. The cab files will be generated in the same folder.

________________________________________________________________________________

Branding / Configuration File using Oxide:
___________________________________________

The driver supports branding and customization. The user can generate a branding
(or configuration) file using Oxford Semiconductor's Oxide. Using this file, the 
user can specify values for crystal frequency, fifo levels, line driver values 
etc. 

To support branding files, a few changes need to be made to the reg file:
        
        Add the following two entries to the reg file:
            
                "BrandingFile"="pcmcia_branding_file.oxbc"
                "ReadBrandFile"=dword:1
                
        Where "pcmcia_branding_file.oxbc" is the name of the branding file. This
        branding file must be kept in the following folder:
                %WINCEROOT%\OXSEMI\UARTS\BrandingFiles
        The subkey "ReadBrandFile" specifies the driver whether to read the 
        mentioned branding file or not. The value of '1' means the driver will
        read the file.
        
The branding file is also used by the Set Uart (SUART) Configuration utility to 
modify its user interface.
                
________________________________________________________________________________

