IO Device:F75113 SMbus under Linux(64bit)

From LEXWiKi

(Difference between revisions)
Jump to: navigation, search
(How to use this Demo Application)
(How to use this Demo Application)
Line 9: Line 9:
== How to use this Demo Application ==
== How to use this Demo Application ==
 +
 +
Before you use this
 +
 +
please enter F75113set.sh and read the Readme.txt enter command
 +
 +
after all you can open the program
[[Image:SMBUSLinux.JPG]]
[[Image:SMBUSLinux.JPG]]
Line 19: Line 25:
4. Press the "C4test" button to test CIO4 function
4. Press the "C4test" button to test CIO4 function
- 
-
If the next picture appears
 
- 
-
[[Image:t3.jpg]]
 
- 
-
MB no SMBus or the drive placement is wrong
 
== F75113 GPIO Picture ==
== F75113 GPIO Picture ==

Revision as of 14:34, 20 November 2018

Contents

The Sample code source you can download from

Source file: Linux_F75113_SMBUSv1.0L_src.tar.gz

Binary file for x64: Linux_F75113_SMBUSv1.0L_bin.tar.gz

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

How to use this Demo Application

Before you use this

please enter F75113set.sh and read the Readme.txt enter command

after all you can open the program

Image:SMBUSLinux.JPG

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

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

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

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

F75113 GPIO Picture

Image:t5.jpg

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

 SETINT2PROC ProcAdd;
 char *endptr;
 char Numbers[] = "0x20";
 char Value[] =   "0xF0";
 ProcAdd = (SETINT2PROC) GetProcAddress(hinstLib, "GPIO_SMBus_W");
 if (NULL != ProcAdd)
 {
   if (! (*ProcAdd)( strtol(Numbers, &endptr, 16), strtol(Value, &endptr, 16)))
   {
     ShowMessage("Write Fail");
   }
 }

GPIO Status Register Read

 GETINT2PROC ProcAdd1;
 int datatest;
 char NRtest[] = "0x22";
 ProcAdd1 = (GETINT2PROC) GetProcAddress(hinstLib, "GPIO_SMBus_R");
 if (NULL != ProcAdd1)
 {
   if (! (*ProcAdd1)( strtol(NRtest, &endptr, 16), &datatest))
   {
     ShowMessage("Read Fail");
   }
 }

GPIO Comparison

 if( data == 0xF0 )
 {
  ((CStatic *)GetDlgItem(IDC_LED_DO0))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green)));
  ((CStatic *)GetDlgItem(IDC_LED_DO1))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green)));
  ((CStatic *)GetDlgItem(IDC_LED_DO2))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green)));
  ((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_SMBus_W");
   if (NULL != ProcAdd)
    {
     if (! (*ProcAdd)( strtol(N9, &endptr, 16), strtol(V9, &endptr, 16)))
      {
       ShowMessage("Write Fail");
      }
    }
    if (hinstLib != NULL)
    {
     FreeLibrary(hinstLib);
    }
Personal tools