ENDAT-3857 USERS MANUAL
UNICORN COMPUTER CORP.
25
2-5. Digital I/O
Pin define:
J2: Digital I/O Header (2x7 with 2.0mm)
Pin No. Function Pin No. Function
1 +5V 2 +5V
3 DIO-OUT0 4 DIO-IN0
5 DIO-OUT1 6 DIO-IN1
7 DIO GND 8 DIO GND
9 DIO-OUT2 10 DIO-IN2
11 DIO-OUT3 12 DIO-IN3
13 +3.3V 14 +3.3V
Digital I/O port address:
This function is support by onboard super I/O chip; it can be control easily by
change the register of super I/O chip via I/O port “2Eh” and “2Fh”. Please see
the sample code of below for implement. Voltage tolerance: +/- 5% with 0V to
+5V.
Sample code for input (using Turbo C/C++ 3.0):
bit No 7 6 5 4 3 2 1 0
Map
DIO-I3 DIO-I2 DIO-I1 DIO-I0 NA NA NA NA
Sample code for input (using Turbo C/C++ 3.0)
#define input_port 0x2f // Digital input data port
Unsigned char read_data;
outportb(0x2e,0x87); //Unlock register
outportb(0x2e,0x87); //Unlock register
outportb(0x2e,0x07); //set Logic Device number pointer
outportb(0x2f,0x07); //set Logic Device number
outportb(0x2e,0x30); //set Device Active
outportb(0x2f,0x04); // set Bit 2 =GPIO2 ; 0=Inactive / 1= Active Default: FCh
outportb(0x2e,0xE8); // set GPIO Output / Input Port
outportb(0x2f,0xF0); // 0=Output/ 1=Input
// Bit 0~3 DIO-O0~ DIO3 / Bit4~7 DIO-I0~DIO-I3.
outportb(0x2e,0xE9); //Read DIO-Input register.
//Bit7~Bit4 = DIO-I3~DIO-I0.(Read Only)
read_data=inportb(input_port); // Read digital input data
printf("DIO-Input=%02X\n",read_data); //Show digital input data on screen