IO Device:F75113 under Linux(32bit & 64bit)

From LEXWiKi

(Difference between revisions)
Jump to: navigation, search
(New page: Category:AllowPages == The Sample code source you can download from == Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F75113/Window_VS2010/F75113v2.0_src.rar F75113...)
Current revision (16:51, 15 November 2017) (edit) (undo)
 
(11 intermediate revisions not shown.)
Line 2: Line 2:
== The Sample code source you can download from ==
== The Sample code source you can download from ==
-
Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F75113/Window_VS2010/F75113v2.0_src.rar F75113v2.0_src.rar]
+
Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F75113/Linux/F75113_linux_src.tar.gz F75113_linux_src.tar.gz]
-
Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F75113/Window_VS2010/F75113v2.0_bin_x86.rar F75113v2.0_bin_x86.rar]
+
Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F75113/Linux/F75113v2.0_linux_bin_x64.tar.gz F75113v2.0_linux_bin_x64.tar.gz]
-
Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F75113/Window_VS2010/F75113v2.0_bin_x64.rar F75113v2.0_bin_x64.rar]
+
Static function library file:
 +
[ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F75113/Linux/Fintek_GPIO&WDT&EEPROM&I2C_Linux_V1.14.zip Fintek_GPIO&WDT&EEPROM&I2C_Linux_V1.14.zip]
 +
 
 +
F75113 SPEC: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F75113/Linux/F75113_V0.17P.rar F75113_V0.17P.rar]
We do the demo test with a test tool which DIx connect to DOx with Relay.
We do the demo test with a test tool which DIx connect to DOx with Relay.
Line 12: Line 15:
== How to use this Demo Application ==
== How to use this Demo Application ==
-
[[Image:F75113picter.jpg]]
+
[[Image:F75113_linux.jpg]]
-
1. Press the "Test" button to test CIO1 function
+
1. Press the "Start" button to test CIO1 function
-
2. Press the "C2test" button to test CIO2 function
+
2. Press the "Start" button to test CIO2 function
-
3. Press the "C3test" button to test CIO3 function
+
3. Press the "Start" button to test CIO3 function
-
4. Press the "C4test" button to test CIO4 function
+
4. Press the "Start" button to test CIO4 function
5. WDT is not run because MB not have F75113 and WDT_RST-
5. WDT is not run because MB not have F75113 and WDT_RST-
- 
-
If the next picture appears
 
- 
-
[[Image:t3.jpg]]
 
- 
-
MB no LPC or the drive placement is wrong
 
- 
-
Drive the location for the next picture
 
- 
-
[[Image:F75113v2.0folder.jpg]]
 
== F75113 GPIO Picture ==
== F75113 GPIO Picture ==
Line 39: Line 32:
== Introduction ==
== Introduction ==
- 
-
=== F75113 driver connection ===
 
- 
-
hinstLib = LoadLibrary(L"Fintek.dll");
 
-
if (hinstLib == NULL)
 
-
{
 
-
if(Application->MessageBoxW(L"Load fail Fintek.dll,Continued?",L"Error",16+4)==IDNO)
 
-
{
 
-
Application->Terminate();
 
-
}
 
-
return;
 
-
}
 
=== GPIO Status Register Write ===
=== GPIO Status Register Write ===
-
SETINT2PROC ProcAdd;
+
init_fintek_sio(eSIO_TYPE_F81866, 0 ,&sio_data)
-
char *endptr;
+
ActiveSIO(sio_data.ic_port, sio_data.key);
-
char Numbers[] = "0x20";
+
CHECK_RET(_EnableGPIO(0x06 , eGPIO_Mode_Enable));
-
char Value[] = "0xF0";
+
CHECK_RET(_SetGpioOutputEnableIdx( 0x06 , eGPIO_Direction_Out));
-
ProcAdd = (SETINT2PROC) GetProcAddress(hinstLib, "GPIO_LPC_W");
+
CHECK_RET(_SetGpioDriveEnable( 0x06 , eGPIO_Drive_Mode_OpenDrain));
-
if (NULL != ProcAdd)
+
CHECK_RET(_SetGpioOutputDataIdx( 0x06 , 1));
-
{
+
DeactiveSIO(sio_data.ic_port);
-
if (! (*ProcAdd)( strtol(Numbers, &endptr, 16), strtol(Value, &endptr, 16)))
+
-
{
+
-
ShowMessage("Write Fail");
+
-
}
+
-
}
+
=== GPIO Status Register Read ===
=== GPIO Status Register Read ===
-
GETINT2PROC ProcAdd1;
+
init_fintek_sio(eSIO_TYPE_F81866, 0 ,&sio_data)
-
int datatest;
+
ActiveSIO(sio_data.ic_port, sio_data.key);
-
char NRtest[] = "0x22";
+
CHECK_RET(_EnableGPIO(0x06 , eGPIO_Mode_Enable));
-
ProcAdd1 = (GETINT2PROC) GetProcAddress(hinstLib, "GPIO_LPC_R");
+
CHECK_RET(_SetGpioOutputEnableIdx( 0x06 , eGPIO_Direction_In));
-
if (NULL != ProcAdd1)
+
CHECK_RET(_GetGpioInputDataIdx( 0x06 , &data));
 +
DeactiveSIO(sio_data.ic_port);
 +
 
 +
=== GPIO Comparison ===
 +
 +
CHECK_RET(_GetGpioInputDataIdx (0x10,&BDIO_data));
 +
if((BDIO_data == 1) & (BDIO_startvalue_data == 0) )
 +
{
 +
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton2), TRUE);
 +
}
 +
CHECK_RET(_GetGpioInputDataIdx (0x11,&BDI1_data));
 +
if((BDI1_data == 1) & (BDI1_startvalue_data == 0) )
{
{
-
if (! (*ProcAdd1)( strtol(NRtest, &endptr, 16), &datatest))
+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton4), TRUE);
-
{
+
}
-
ShowMessage("Read Fail");
+
CHECK_RET(_GetGpioInputDataIdx (0x12,&BDI2_data));
-
}
+
if((BDI2_data == 1) & (BDI2_startvalue_data == 0) )
 +
{
 +
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton6), TRUE);
 +
}
 +
CHECK_RET(_GetGpioInputDataIdx (0x13,&BDI3_data));
 +
if((BDI3_data == 1) & (BDI3_startvalue_data == 0) )
 +
{
 +
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton8), TRUE);
}
}
-
=== GPIO Comparison ===
+
=== F75113 driver delete ===
-
+
on_window1_destory (GtKObject *object,
-
if( data == 0xF0 )
+
gpointer user_data)
{
{
-
((CStatic *)GetDlgItem(IDC_LED_DO0))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green)));
+
sFintek_sio_data sio_data;
-
((CStatic *)GetDlgItem(IDC_LED_DO1))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green)));
+
DeactiveSIO(sio_data.ic_port);
-
((CStatic *)GetDlgItem(IDC_LED_DO2))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green)));
+
gtk_main_quit();
-
((CStatic *)GetDlgItem(IDC_LED_DO3))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green)));
+
-
if( data2 == 0x01 )
+
-
{
+
-
((CStatic *)GetDlgItem(IDC_LED_DI0))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green)));
+
-
((CStatic *)GetDlgItem(IDC_LED_DI1))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Red)));
+
-
((CStatic *)GetDlgItem(IDC_LED_DI2))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Red)));
+
-
((CStatic *)GetDlgItem(IDC_LED_DI4))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Red)));
+
-
}
+
-
.....
+
}
}
-
=== F75113 driver delete ===
 
- 
-
char N9[] = "0x10";
 
-
char V9[] = "0x00";
 
-
ProcAdd = (SETINT2PROC) GetProcAddress(hinstLib, "GPIO_LPC_W");
 
-
if (NULL != ProcAdd)
 
-
{
 
-
if (! (*ProcAdd)( strtol(N9, &endptr, 16), strtol(V9, &endptr, 16)))
 
-
{
 
-
ShowMessage("Write Fail");
 
-
}
 
-
}
 
-
if (hinstLib != NULL)
 
-
{
 
-
FreeLibrary(hinstLib);
 
-
}
 

Current revision

Contents

The Sample code source you can download from

Source file: F75113_linux_src.tar.gz

Binary file: F75113v2.0_linux_bin_x64.tar.gz

Static function library file: Fintek_GPIO&WDT&EEPROM&I2C_Linux_V1.14.zip

F75113 SPEC: F75113_V0.17P.rar

We do the demo test with a test tool which DIx connect to DOx with Relay. 

How to use this Demo Application

Image:F75113_linux.jpg

1. Press the "Start" button to test CIO1 function

2. Press the "Start" button to test CIO2 function

3. Press the "Start" button to test CIO3 function

4. Press the "Start" button to test CIO4 function

5. WDT is not run because MB not have F75113 and WDT_RST-

F75113 GPIO Picture

Image:t5.jpg

Introduction

GPIO Status Register Write

init_fintek_sio(eSIO_TYPE_F81866, 0 ,&sio_data)
ActiveSIO(sio_data.ic_port, sio_data.key);
CHECK_RET(_EnableGPIO(0x06 , eGPIO_Mode_Enable));
CHECK_RET(_SetGpioOutputEnableIdx( 0x06 , eGPIO_Direction_Out));
CHECK_RET(_SetGpioDriveEnable( 0x06 , eGPIO_Drive_Mode_OpenDrain));
CHECK_RET(_SetGpioOutputDataIdx( 0x06 , 1));
DeactiveSIO(sio_data.ic_port);

GPIO Status Register Read

init_fintek_sio(eSIO_TYPE_F81866, 0 ,&sio_data)
ActiveSIO(sio_data.ic_port, sio_data.key);
CHECK_RET(_EnableGPIO(0x06 , eGPIO_Mode_Enable));
CHECK_RET(_SetGpioOutputEnableIdx( 0x06 , eGPIO_Direction_In));
CHECK_RET(_GetGpioInputDataIdx( 0x06 , &data));
DeactiveSIO(sio_data.ic_port);

GPIO Comparison

 CHECK_RET(_GetGpioInputDataIdx (0x10,&BDIO_data));
 if((BDIO_data == 1) & (BDIO_startvalue_data == 0) )
 {
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton2), TRUE);
 }
 CHECK_RET(_GetGpioInputDataIdx (0x11,&BDI1_data));
 if((BDI1_data == 1) & (BDI1_startvalue_data == 0) )
 {
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton4), TRUE);
 }
 CHECK_RET(_GetGpioInputDataIdx (0x12,&BDI2_data));
 if((BDI2_data == 1) & (BDI2_startvalue_data == 0) )
 {
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton6), TRUE);
 }
 CHECK_RET(_GetGpioInputDataIdx (0x13,&BDI3_data));
 if((BDI3_data == 1) & (BDI3_startvalue_data == 0) )
 {
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton8), TRUE);
 }

F75113 driver delete

 on_window1_destory         (GtKObject    *object,
                           gpointer      user_data)
 {
    sFintek_sio_data sio_data;
    DeactiveSIO(sio_data.ic_port);
    gtk_main_quit();
 }
Personal tools