IO Device:F75111 CIO Utility

From LEXWiKi

(Difference between revisions)
Jump to: navigation, search
(MB Support List)
(大標題文字)
Line 15: Line 15:
*
*
****************************************************************************************** -->
****************************************************************************************** -->
-
{|class = 'sortable' border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #aaa solid; border-collapse: collapse;" id='506'
+
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #aaa solid; border-collapse: collapse;"
-
|- bgcolor = #ccccff
+
-
!Ivybridge!!BayTrail!!Apollo Lake!!Skylake/Kabylake!!Coffee Lake!!Whiskey Lake!!Card
+
|-
|-
 +
! |Ivybridge
|
|
2I847H
2I847H
-
|
+
<br>
-
1I385A/H\r
+
3I847A/D/CW/NX/NM/HW
 +
<br>
 +
3I770A/CW
 +
<br>
 +
CI847A/C
 +
CI770A/C
-
|
 
-
2I390CW\r
 
- 
-
|
 
-
2I610DW/HW\r
 
- 
-
|
 
-
CIO116-G\r
 
-
 
-
|
 
-
 
-
|
 
-
 
|-
|-
 +
! |BayTrail
|
|
-
3I8347A/CW\r
+
1I385A/H
-
 
+
1I386H
-
|
+
<br>
-
1I386HW\r
+
2I380A
-
 
+
2I385A/CW
-
|
+
2I380NX
-
2I390CW\r
+
2I385BW/EW/HW/PW
-
 
+
2I386EW
-
|
+
-
2I610HW\r
+
-
 
+
-
|
+
-
E691A\r
+
-
+
-
|
+
-
+
-
|
+
-
+
-
|-
+
-
|
+
-
3I847NX/NM
+
-
|
+
-
2I380A/NX
+
-
|
+
-
3I390AW\r
+
-
 
+
-
|
+
-
3I610DW\r
+
-
 
+
-
|
+
-
+
-
|
+
-
+
-
|
+
-
+
-
|-
+
-
|
+
-
3I847D(OEM)\r
+
-
 
+
-
|
+
2I382A
2I382A
-
|
+
<br>
-
3I390D(OEM)\r
+
3I380A/CW/NX
 +
<br>
 +
ST385W/AW/CW
-
|
 
-
PM610DW\r
 
- 
-
|
 
-
 
-
|
 
-
 
-
|
 
-
 
|-
|-
 +
! |Apollo Lake
|
|
-
3I847HW\r
+
2I390CW
 +
2I392CW
 +
<br>
 +
3I390AW
 +
3I390NX
 +
3I393NX
 +
<br>
 +
PM390CW
-
|
 
-
2I385A/BW/CW/EW/HW/PW
 
-
|
 
-
3I390NX\r
 
- 
-
|
 
-
ST610W\r
 
- 
-
|
 
-
 
-
|
 
-
 
-
|
 
-
 
|-
|-
 +
! |Skylake/Kabylake
|
|
-
CI847A/C\r
+
2I610DW/HW
-
 
+
<br>
-
|
+
3I610DW
-
3I380A/CW/D/NX
+
3I612DW
-
|
+
-
3I393NX\r
+
-
 
+
-
|
+
3I170DW/HW/NX
3I170DW/HW/NX
-
|
+
<br>
-
+
ST610W
-
|
+
<br>
-
+
CI170A/C
-
|
+
<br>
-
+
PM610DW
-
|-
+
PM170DW
-
|
+
-
3I770A/CW\r
+
-
|
 
-
3I385AW/CW
 
-
|
 
-
PM390CW\r
 
- 
-
|
 
-
CI170A/C\r
 
- 
-
|
 
-
 
-
|
 
-
 
-
|
 
-
 
|-
|-
 +
! |Coffee Lake
|
|
-
CI770A/C\r
+
CI370DW
-
|
 
-
ST385W
 
-
|
 
- 
-
|
 
-
PM170DW\r
 
- 
-
|
 
-
 
-
|
 
-
 
-
|
 
-
 
|-
|-
 +
! |Whiskey Lake
|
|
-
CI770A/C\r
+
2I810D
 +
3I810DW
-
|
 
-
ST385W
 
-
|
 
-
|
 
-
PM170DW\r
 
- 
-
|
 
-
 
-
|
 
-
 
-
|
 
-
 
|-
|-
 +
! |Card
|
|
-
CI770A/C\r
+
CIO116-G
-
 
+
E691A
-
|
+
-
ST385W
+
-
|
+
-
 
+
-
|
+
-
PM170DW\r
+
-
 
+
-
|
+
-
+
-
|
+
-
+
-
|
+
-
+
-
|-
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
+
-
|-
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
 
+
-
|
+
-
+
-
|-class='sortbottom'
+
|}
|}

Revision as of 14:15, 26 March 2019

Contents

The Sample code source you can download from

Source file: CIO_Utility_Src_v2.9.2_w.zip

Binary file: CIO_Utility_Bin_v2.9.2_x32_w.zip CIO_Utility_Bin_v2.9.2_x64_w.zip

大標題文字

Ivybridge

2I847H
3I847A/D/CW/NX/NM/HW
3I770A/CW
CI847A/C CI770A/C

BayTrail

1I385A/H 1I386H
2I380A 2I385A/CW 2I380NX 2I385BW/EW/HW/PW 2I386EW 2I382A
3I380A/CW/NX
ST385W/AW/CW

Apollo Lake

2I390CW 2I392CW
3I390AW 3I390NX 3I393NX
PM390CW

Skylake/Kabylake

2I610DW/HW
3I610DW 3I612DW 3I170DW/HW/NX
ST610W
CI170A/C
PM610DW PM170DW

Coffee Lake

CI370DW

Whiskey Lake

2I810D 3I810DW


Card

CIO116-G E691A

edit table

How to use this Demo Application

 Image:CIOv2_1_2i2o.jpg  Image:CIOv2_1_4i4o.jpg Image:CIOv2_1_8i8o.jpg Image:CIO116.jpg

Attention Please:You must be install vcredist_x86.exe when first time you run the F75111_DIO.exe DEMO AP,The vcredist_x86.exe include all required DLL file.

1. Press the select your test "2i2o","4i4o","8i8o"

2. start test,select single mode or looptest

F75111 Layout Picture

Image:F75111_layout_Picture.jpg

Introduction

Initial Internal F75111 port address (0x9c)

   define GPIO1X, GPIO2X, GPIO3X to input or output 
   and Enable WDT function pin 

Set F75111 DI/DO ( sample code as below Get Input value/Set output value )

   DO: InterDigitalOutput(BYTE byteValue))
   DI: InterDigitalInput()


PULSE mode

Sample to setting GP33, 32, 31, 30 output 1mS low pulse signal.

{ 
    this->Write_Byte(F75111_INTERNAL_ADDR, GPIO3X_PULSE_CONTROL,       0x00);             //This is setting low pulse output
    this->Write_Byte(F75111_INTERNAL_ADDR, GPIO3X_PULSE_WIDTH_CONTROL, 0x01);             //This selects the pulse width to 1mS
    this->Write_Byte(F75111_INTERNAL_ADDR, GPIO3X_CONTROL_MODE,        0x0F);             //This is setting the GP33, 32, 31, 30 to output function.    
    this->Write_Byte(F75111_INTERNAL_ADDR, GPIO3X_Output_Data ,        0x0F);             //This is setting the GP33, 32, 31, 30 output data.
}

Initial internal F75111

void F75111::InitInternalF75111()
{
    this->Write_Byte(F75111_INTERNAL_ADDR,GPIO1X_CONTROL_MODE  ,0x00);        //set GPIO1X to Input  function     
    this->Write_Byte(F75111_INTERNAL_ADDR,GPIO3X_CONTROL_MODE  ,0x00);        //set GPIO3X to Input  function
    this->Write_Byte(F75111_INTERNAL_ADDR,GPIO2X_CONTROL_MODE  ,0xFF);        //set GPIO2X to Output function

    this->Write_Byte(F75111_INTERNAL_ADDR,F75111_CONFIGURATION, 0x03);        //Enable WDT OUT function
}

Set output value

void F75111::InterDigitalOutput(BYTE byteValue)
{
     BYTE byteData = 0;
     byteData = (byteData & 0x01 )? byteValue + 0x01 : byteValue;
     byteData = (byteData & 0x02 )? byteValue + 0x02 : byteValue;
     byteData = (byteData & 0x04 )? byteValue + 0x04 : byteValue;
     byteData = (byteData & 0x80 )? byteValue + 0x08 : byteValue;
     byteData = (byteData & 0x40 )? byteValue + 0x10 : byteValue;
     byteData = (byteData & 0x20 )? byteValue + 0x20 : byteValue; 
     byteData = (byteData & 0x10 )? byteValue + 0x40 : byteValue;
     byteData = (byteData & 0x08 )? byteValue + 0x80 : byteValue;           // get value bit by bit
   
     this->Write_Byte(F75111_INTERNAL_ADDR,GPIO2X_OUTPUT_DATA,byteData);    // write byteData value via GPIO2X output pin
}

Get Input value

BYTE F75111::InterDigitalInput()
{
    BYTE byteGPIO1X = 0;
    BYTE byteGPIO3X = 0;
    BYTE byteData   = 0;

    this->Read_Byte(F75111_INTERNAL_ADDR,GPIO1X_INPUT_DATA,&byteGPIO1X) ;   // Get value from GPIO1X
    this->Read_Byte(F75111_INTERNAL_ADDR,GPIO3X_INPUT_DATA,&byteGPIO3X) ;   // Get value from GPIO3X	

    byteGPIO1X = byteGPIO1X  & 0xF0;                                        // Mask unuseful value
    byteGPIO3X = byteGPIO3X  & 0x0F;                                        // Mask unuseful value

    byteData = ( byteGPIO1X & 0x10 )? byteData + 0x01 : byteData;
    byteData = ( byteGPIO1X & 0x80 )? byteData + 0x02 : byteData;
    byteData = ( byteGPIO1X & 0x40 )? byteData + 0x04 : byteData;	
    byteData = ( byteGPIO3X & 0x01 )? byteData + 0x08 : byteData;
	
    byteData = ( byteGPIO3X & 0x02 )? byteData + 0x10 : byteData;
    byteData = ( byteGPIO3X & 0x04 )? byteData + 0x20 : byteData;
    byteData = ( byteGPIO3X & 0x08 )? byteData + 0x40 : byteData;
    byteData = ( byteGPIO1X & 0x20 )? byteData + 0x80 : byteData;           // Get correct DI value from GPIO1X & GPIO3X
	
    return byteData;
}

define F75111 pin in F75111.h

//--------------------------------------------------------------------------------------------------------
#define    F75111_INTERNAL_ADDR        0x9C   //  OnBoard  F75111 Chipset
#define    F75111_EXTERNAL_ADDR        0x6E   //  External F75111 Chipset
//--------------------------------------------------------------------------------------------------------
#define    F75111_CONFIGURATION        0x03   //  Configure GPIO13 to WDT2 Function
//--------------------------------------------------------------------------------------------------------
#define    GPIO1X_CONTROL_MODE         0x10   //  Select Output Mode or Input Mode
#define    GPIO2X_CONTROL_MODE         0x20   //  Select GPIO2X Output Mode or Input Mode 
#define    GPIO3X_CONTROL_MODE         0x40   //  Select GPIO3X Output Mode or Input Mode 
//--------------------------------------------------------------------------------------------------------
#define    GPIO1X_INPUT_DATA           0x12   //  GPIO1X Input
#define    GPIO3X_INPUT_DATA           0x42   //  GPIO3X Input
//--------------------------------------------------------------------------------------------------------
#define    GPIO2X_OUTPUT_DATA          0x21   //  GPIO2X Output
//--------------------------------------------------------------------------------------------------------
#define    GPIO1X_PULSE_CONTROL        0x13   //  GPIO1x Level/Pulse Control Register
                                              //  0:Level Mode 
                                              //  1:Pulse Mode
#define    GPIO1X_PULSE_WIDTH_CONTROL  0x14   //  GPIO1x Pulse Width Control Register
#define    GP1_PSWIDTH_500US           0x00   //  When select Pulse mode:	500	us.
#define    GP1_PSWIDTH_1MS             0x01   //  When select Pulse mode:	1	ms.
#define    GP1_PSWIDTH_20MS            0x02   //  When select Pulse mode:	20	ms.
#define    GP1_PSWIDTH_100MS           0x03   //  When select Pulse mode:	100	ms.
//--------------------------------------------------------------------------------------------------------
#define    GPIO2X_PULSE_CONTROL        0x23   //  GPIO2x Level/Pulse Control Register
                                              //  0:Level Mode 
                                              //  1:Pulse Mode
#define    GPIO2X_PULSE_WIDTH_CONTROL  0x24   //  GPIO2x Pulse Width Control Register
#define    GP2_PSWIDTH_500US           0x00   //  When select Pulse mode:	500	us.
#define    GP2_PSWIDTH_1MS             0x01   //  When select Pulse mode:	1	ms.
#define    GP2_PSWIDTH_20MS            0x02   //  When select Pulse mode:	20	ms.
#define    GP2_PSWIDTH_100MS           0x03   //  When select Pulse mode:	100	ms.
//--------------------------------------------------------------------------------------------------------
#define    GPIO3X_PULSE_CONTROL        0x43   //  GPIO3x Level/Pulse Control Register
                                              //  0:Level Mode 
                                              //  1:Pulse Mode
#define    GPIO3X_Output_Data          0x41   //  GPIO3x Output Data Register 
#define    GPIO3X_PULSE_WIDTH_CONTROL  0x44   //  GPIO3x Pulse Width Control Register
#define    GP3_PSWIDTH_500US           0x00   //  When select Pulse mode:	500	us.
#define    GP3_PSWIDTH_1MS             0x01   //  When select Pulse mode:	1	ms.
#define    GP3_PSWIDTH_20MS            0x02   //  When select Pulse mode:	20	ms.
#define    GP3_PSWIDTH_100MS           0x03   //  When select Pulse mode:	100	ms.
//--------------------------------------------------------------------------------------------------------
Personal tools