IO Device:F81801 DIO under Linux

From LEXWiKi

(Difference between revisions)
Jump to: navigation, search
(New page: == The Sample code source you can download from == Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F81801_DIO/linux/F81801_DIO_v0.2_Src_L.tar.gz F81801_DIO_v0.2_Src_L.ta...)
Current revision (09:15, 2 March 2022) (edit) (undo)
 
(7 intermediate revisions not shown.)
Line 1: Line 1:
 +
[[Category:AllowPages]]
== 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/F81801_DIO/linux/F81801_DIO_v0.2_Src_L.tar.gz F81801_DIO_v0.2_Src_L.tar.gz]
+
<Google Drive>
-
Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F81801_DIO/linux/F81801_DIO_v0.2_x32_Bin_L.tar.gz F81801_DIO_v0.2_x32_Bin_L.tar.gz]
+
Source file: [https://drive.google.com/file/d/17b9PLjA2RjtiXwYzl7mQ2BGdZxrgdw2x/view?usp=sharing F81801_DIO_v0.2L_Src]
-
[ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F81801_DIO/linux/F81801_DIO_v0.2_x64_Bin_L.tar.gz F81801_DIO_v0.2_x64_Bin_L.tar.gz]<br />
+
-
Google Drive: [https://drive.google.com/drive/folders/12xvZ9iVvx3pRAH-wuzca5WXy50Y0Rx9X?usp=sharing F81801 DIO under Linux]
+
Binary file: [https://drive.google.com/file/d/1aXGiXYvSQqlI85qUmmPyNGULCVAAWewd/view?usp=sharing F81801_DIO_v0.2L_Bin_x86]
 +
[https://drive.google.com/file/d/1V7RTabGArw_Am99kGlSm5kIdBz7XyVfn/view?usp=sharing F81801_DIO_v0.2L_Bin_x64]<br />
-
== How to use this Demo Application ==
+
<FTP>
 +
Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F81801_DIO/linux/F81801_DIO_v0.2_Src_L.tar.gz F81801_DIO_v0.2L_Src]
 +
 +
Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F81801_DIO/linux/F81801_DIO_v0.2_x32_Bin_L.tar.gz F81801_DIO_v0.2L_Bin_x86]
 +
[ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/F81801_DIO/linux/F81801_DIO_v0.2_x64_Bin_L.tar.gz F81801_DIO_v0.2L_Bin_x64]<br />
 +
 +
== How to use this Demo Application ==
 +
[[Image:F81801 DIO Linux.jpg]]
== Introduction ==
== Introduction ==
Line 16: Line 24:
{
{
outb(0x87, 0x2e);
outb(0x87, 0x2e);
-
outb(0x87, 0x2e);
+
outb(0x87, 0x2e);
if (F81801U_Read(CHIP_ID_REGISTER1) == CHIP_ID_DEFAULT_VALUE1 && F81801U_Read(CHIP_ID_REGISTER2) == CHIP_ID_DEFAULT_VALUE2)
if (F81801U_Read(CHIP_ID_REGISTER1) == CHIP_ID_DEFAULT_VALUE1 && F81801U_Read(CHIP_ID_REGISTER2) == CHIP_ID_DEFAULT_VALUE2)
Line 22: Line 30:
return FALSE;
return FALSE;
}
}
 +
=== F81801 CLOSE ===
=== F81801 CLOSE ===
void F81801U_Close()
void F81801U_Close()
Line 41: Line 50:
DWORD dwPortVal;
DWORD dwPortVal;
outb(dwAddrVal, 0x2e );
outb(dwAddrVal, 0x2e );
-
dwPortVal=inb( 0x2f );
+
dwPortVal=inb( 0x2f );
return (dwPortVal & 0x00FF);
return (dwPortVal & 0x00FF);
}
}
 +
=== F81801U WRITE ===
=== F81801U WRITE ===
void F81801U_Write(DWORD dwAddrVal, DWORD dwPortVal)
void F81801U_Write(DWORD dwAddrVal, DWORD dwPortVal)
{
{
outb(dwAddrVal, 0x2e );
outb(dwAddrVal, 0x2e );
-
outb(dwPortVal, 0x2f );
+
outb(dwPortVal, 0x2f );
}
}

Current revision

Contents

The Sample code source you can download from

<Google Drive>

Source file: F81801_DIO_v0.2L_Src

Binary file: F81801_DIO_v0.2L_Bin_x86 F81801_DIO_v0.2L_Bin_x64

<FTP>

Source file: F81801_DIO_v0.2L_Src

Binary file: F81801_DIO_v0.2L_Bin_x86 F81801_DIO_v0.2L_Bin_x64

How to use this Demo Application

Image:F81801 DIO Linux.jpg

Introduction

F81801 OPEN

BOOL F81801U_Open()
{
	outb(0x87, 0x2e);
        outb(0x87, 0x2e);

	if (F81801U_Read(CHIP_ID_REGISTER1) == CHIP_ID_DEFAULT_VALUE1 && F81801U_Read(CHIP_ID_REGISTER2) == CHIP_ID_DEFAULT_VALUE2)
           return TRUE;
	return FALSE;
}

F81801 CLOSE

void F81801U_Close()
{
	outb(0xaa,0x2e);
}

Initial internal F81801

void F81801U_Init()
{
	 F81801U_Write(Logic_Device_Number_Register, GPIO_Device_Configuration_Registers);// GPIO Device Configuration Registers (LDN CR06) 
 
	 F81801U_Write(GPIO3_Output_Enable_Register, 0xf0);//GPIO34~GPIO37 OUTPUT SET / GPIO30~GPIO33 INPUT SET
	 F81801U_Write(GPIO3_Drive_Enable_Register, 0xf0);//GPIO34~GPIO37 DRIVE SET
}

F81801U READ

DWORD F81801U_Read(DWORD dwAddrVal)
{
	DWORD dwPortVal;
	outb(dwAddrVal, 0x2e );
        dwPortVal=inb( 0x2f );

	return (dwPortVal & 0x00FF);
}

F81801U WRITE

void F81801U_Write(DWORD dwAddrVal, DWORD dwPortVal)
{
 	outb(dwAddrVal, 0x2e );
        outb(dwPortVal, 0x2f );
}

F81801U GetDigitalInput

BYTE F81801U_GetDigitalInput()
{
	CString tmp;
	BYTE byteGPIO3X = 0;
	BYTE byteData = 0;
	byteGPIO3X = F81801U_Read(GPIO3_Pin_Status_Register);
	byteData = byteGPIO3X & 0x0F;

	return byteData;
}

F81801U SetDigitalOutput

void F81801U_SetDigitalOutput(BYTE byteValue)
{
	BYTE byteData = 0;

	byteData = (byteValue & 0x01) ? byteData + 0x10 : byteData;
	byteData = (byteValue & 0x02) ? byteData + 0x20 : byteData;
	byteData = (byteValue & 0x04) ? byteData + 0x40 : byteData;
	byteData = (byteValue & 0x08) ? byteData + 0x80 : byteData;

	F81801U_Write(GPIO3_Output_Data_Register, byteData);
}
Personal tools