i-8080 Specification
Mode | 4 Channel Pulse/Dir Counter
 | 4 Channel Up/Down Counter
 | 8 Channel Frequency
 | 8 Channel Up Counter
Input frequency | 10~450K Hz (Frequency mode) 450K Hz max (Counter mode)
Input Level | Isolated | Logic Level 0 : +1V max
 |  | Logic Level 1 : +4.5V to 30V
 | TTL | Logic Level 0 : 0V to 0.8V
 |  | Logic Level 1 : 2 to 5V
Maximum Pulse Width | 1 µ sec (Frequency mode) 1 µ sec (Counter mode)
Programmable Digital Noise Filter | 1~32767 µ sec
Programmable built-in gate time | 0.33sec (Default)
Power Consumption | 1W
Display | 1 LED as Power/Communication indicator

i-8080 Pin assignments:

i-8080

Isolated Input :

Figure Isolated block diagram

TTL Input:

Figure TTL block diagram

Isolated or TTL input is selected by using JP1 to JP8 as indicated below:

文字方塊:          J1/2/3/4/5/6/7/8         J1/2/3/4/5/6/7/8                            Select isolated input       Select TTL input           (default setting)

J1 | Select A0
J2 | Select B0
J3 | Select A1
J4 | Select B1
J5 | Select A2
J6 | Select B2
J7 | Select A3
J8 | Select B3

The default jumper settings are as follows:

Figure Isolated & TTL Jumper

i-8080 Wiring Connection

Mode0: Dir/Pulse Counter Mode

Mode1: Up/Down Counter Mode

Mode2: Frequency Mode

Mode3: Up Counter Mode

i-8080 Dimension


1

Input signal model

1. Isolated Input (XOR=0)

The operational logic applied on the 8080 modules is the falling edge trigger (Normal High & active Low).
The external signal is input into an 8080 module through the isolated mechanism, with the signal being

reversed from the external signal.
This internal signal is the suggested waveform, as it doesn’t need to execute the XOR operation (XOR=0).

The solution is shown in Figure 1 below.

Figure 1 Isolated input

2. TTL Input (XOR=1)

When an external TTL signal is input into an 8080 module through the TTL mechanism, the signal will be the same as

the external signal. This internal signal isn’t the recommended waveform as it must execute the exclusive OR (XOR=1)

operation. The solution is shown in Figure 2.

3. Always XOR=0

Regardless of whether the input signal is TTL or isolated, XOR is always set to 0, and the maximum count error can

only be 1. XOR=0 can be used for all cases, if a 1-count error is acceptable.

Figure 2 TTL input

Note:

1. When XOR=0 and the 8080 module status is OPEN status ( i.e. no signals on the input terminal) ,

regardless of whether you select the TTL or Isolated mode, the signal at the C point will always be 1.

Similarly, if XOR=1 and the status is OPEN, then the signal at the C point will always be 0.

2. If the input signal is a pulse rather than a 50/50 duty cycle square waveform, then the 1-count error will

not occur as the pulse width is shorter..

Figure 3 Square and pulse waveforms


1

Digital Low Pass Filter

The 8080 has three independent 2nd-order digital noise filters, LP0, LP1 & LP2, to remove noises as follows:

Channel | Low Pass Filter
A0 | Low Pass Filter 0
B0 | Low Pass Filter 0
A1 | Low Pass Filter 1
B1 | Low Pass Filter 1
A2 | Low Pass Filter 2
B2 | Low Pass Filter 2
A3 | Low Pass Filter 2
B3 | Low Pass Filter 2

The Low Pass Filter can be either disabled or programmable from 2 µS to 65535 µS.

The Low Pass Filter will apply to all working modes, counter or frequency.

These 3 Low Pass Filters are disabled status in the default shipping. User defined program can be

used to issue a command to enable or disable the filters.

Assume that the filter clock of the Low Pass Filter is set to T, this clock is used to sample the input signal.

If one of the adjacent 2 samples is low, then the input signal will be removed as follows:

If the high width of the input signal is shorter then T, it will be filtered.

If the adjacent 2 samples are all HIGH, the input signal can pass as indicated below:

Note: the filter signal is shorter than the original input signal.

If the input signal is shorter than 2T, it may be filtered in the following manner:

The relationship between the input signal and the filter signal is as follows:

if (2T<input signal) , it will pass

if (T<=input signal<=2T) , it may be filtered or passed

if (input signal <T) , it will be filtered

The software driver, ‘i8080_SetLowPassUs (int Slot, int Channel, unsigned int Us)’,

provides an parameter, Us which can be used to set the Low Pass Filter as follows:

if Us=1 and 2T =1µS then T = 0.5µS and signal<=0.5µS will be removed

if Us=2 and 2T= 2µS then T = 1 µS and signal<=1µS will be removed

if Us=N, N from 1 to 0x7fff and 2T = N µS then signal<=(N/2) µS will be removed

The Low Pass Filter range can be configured from 1µS to 32767µS. The high width of the signal < (Us/2) will be removed.

For example, if you use a function generator as signal source, the 500Hz signal & 50/50 duty cycle

will generate a 1000µS high & 1000µS low as follows:

Figure 1 Input signal=500Hz & Low Pass Filter Disable

Signal 1 = input signal=500Hz, 50/50 duty cycle

Signal 2 = input signal after Xor and Low Pass Filter, now Xor=0 and Low Pass Filter is disable.

If the Low Pass Filter is disabled, signal 2 will be the same as signal 1 in the above diagram.

If the Low Pass Filter is enabled, signal 2 will be shorter than signal 1 as shown below:

Figure 2 Input signal=500Hz & Low Pass Filter Enable=1µS

Signal 1 = input signal=500Hz, 50/50 duty cycle

Signal 2 = input signal after Xor and Low Pass Filter, now Xor=0 and the Low Pass Filter is enabled.

Nearly all pulses are passed.

Now you can find that nearly all pulses are passed. If the input signal is increased to 600Hz,

then some of the pulses are filtered as follows:

Figure 3 Input signal=600Hz & Low Pass Filter Enabled=1µS

Signal 1 = input signal=600Hz, 50/50 duty cycle.

Signal 2 = input signal after Xor and Low Pass Filter, now Xor =0 and Low Pass Filter is enabled.

Some pulses are filtered.

If the input signal is increased to 900Hz, then nearly all pulses are filtered as illustrated below:

Figure 4 Input signal=900Hz & Low Pass Filter Enabled=1µS

Signal 1 = input signal=900Hz, 50/50 duty cycle

Signal 2 = input signal after Xor and Low Pass Filter, now Xor=0 and the Low Pass Filter is enabled.

Nearly all pulses are filtered.

Because there are some frequency offset errors in the internal crystal, there may be some noises when

the input signal width = Low Pass Filter/2 as follows:

Figure 5 Input signal=1000Hz & Low Pass Filter Enabled=1µS

Signal 1 = input signal=1000Hz, 50/50 duty cycle à pulse width=500 µS

Signal 2 = input signal after Xor and Low Pass Filter, now Xor=0 and the Low Pass Filter is enabled.

Signal Pulse=500 µS=Low Pass Filter/2.

Nearly all pulses are filtered, but sometimes certain noises will not be filtered.

If the input signal is increased to 1100Hz, then all pulses will be filtered as shown in Figure 1-12:

Figure 6 Input signal=1100Hz & Low Pass Filter Enabled=1µS

In summary, apply the minimum 1µS on Low Pass Filters.

The result of the signal being processed by the Low Pass Filter as follows:

Input signal frequency(Hz) | After Low Pass Filter processing | Reference
Input signal <500Hz (Low Pass Filter=1µS) | All signals will be passed | Figure 1
Input signal =500Hz (Low Pass Filter=1µS) | All signals should be passed | Figure 2
Input signal =600Hz (Low Pass Filter=1µS) | Some signals will be filtered and some will be passed | Figure 3
Input signal =900Hz (Low Pass Filter=1µS) | Many signals will be filtered and few will be passed | Figure 4
Input signal =1000Hz (Low Pass Filter=1µS) | Nearly all signals are filtered | Figure 5
Input signal =1100Hz (>1k Hz) (Low Pass Filter=1µS) | All signals will be filtered | Figure 6

For the same reason, if the signal pulse=Low Pass Filter, certain pulses may be filtered. Therefore, it is recommended to set the cycle time of Low Pass Filter about 5% less than the cycle time of input signal pulse as shown below:

Input pulse =1 ms = 1000 µS à set Low Pass Filter <=950 µS

if Input pulse = 100 µS , set Low Pass Filter <= 95 µS

The minimum Low Pass Filter = 1 µS , input signal < 475K, 50/50 duty cycle

As a result, the maximum speed of the 8080 is recommended to 450K, 50/50 duty cycle


Operation Mode

Operation Mode | Description | Number of counter/frequency sets
00 | Dir/Pulse counting mode | 4 sets
01 | Up/Down counting mode | 4 sets
02 | Frequency mode | 8 sets
03 | Up counting mode | 8 sets

The input channels mapping table and working modes are indicated below:

 | Mode 00 | Mode 01 | Mode 02 | Mode 03
A0 | Pulse 0 | Up 0 | Frequency 0 | Up 0
B0 | Dir 0 | Down 0 | Frequency 1 | Up 1
A1 | Pulse 2 | Up 2 | Frequency 2 | Up 2
B1 | Dir 2 | Down 2 | Frequency 3 | Up 3
A2 | Pulse 4 | Up 4 | Frequency 4 | Up 4
B2 | Dir 4 | Down 4 | Frequency 5 | Up 5
A3 | Pulse 6 | Up 6 | Frequency 6 | Up 6
B3 | Dir 6 | Down 6 | Frequency 7 | Up 7

  • CountN = the counter value for channel N, 32bit wide, from -2147483648 to 2147483647

  • OverflowN = the counting overflow number for channel N, 16bit wide, from -32768 to 32767

  • Total Counting Value bit = 32bit + 16bit = 48bit

Mode 00: Pulse /Dir Counting

The counter operation for mode 00 (Dir/Pulse mode) is as follows:

When InB0 is used as Dir, if InB0 is High, counter_0 will be increased by one for every falling edge of InA0.

If InB0 is Low, counter_0 will be decreased by one for every falling edge of InA0.

The counter operation is given as follows:

Pulse/Dir Counter | Counting Variable | Total Counting Value
A0, B0 | Count0, Overflow0 | Count0 + Overflow0 * 2147483648
A1, B1 | Count2, Overflow2 | Count2 + Overflow2 * 2147483648
A2, B2 | Count4, Overflow4 | Count4 + Overflow4 * 2147483648
A3, B3 | Count6, Overflow6 | Count6 + Overflow6 * 2147483648

  • CountN = the counter value for channel N, 32bit wide, from -2147483648 to 2147483647

  • OverflowN = the counting overflow number for channel N, 16bit wide, from -32768 to 32767

  • Total Counting Value bit = 32bit + 16bit = 48bit

Mode 01: Up/Down Counting

The counter operation for mode 01 (Up/Down mode) is as follows:

When InA0 is used as a UP_clock and InB0 is used as a DOWN_clock. The counter_0 will be

increased by one for every falling edge of InA0 and decreased by one for every falling edge of InB0.

Up/Down Counter | Counting Variable | Total Counting Value
A0, B0 | Count0, Overflow0 | Count0 + Overflow0 * 2147483648
A1, B1 | Count2, Overflow2 | Count2 + Overflow2 * 2147483648
A2, B2 | Count4, Overflow4 | Count4 + Overflow4 * 2147483648
A3, B3 | Count6, Overflow6 | Count6 + Overflow6 * 2147483648

  • CountN = the counter value for channel N, 32bit wide, from -2147483648 to 2147483647

  • OverflowN = the counting overflow number for channel N, 16bit wide, from -32768 to 32767

  • Total Counting Value bit = 32bit + 16bit = 48bit

Mode 02: Frequency Mode

The frequency operation for mode 02 is as follows:

Frequency | Frequency Variable
A0 | Frequency0
B0 | Frequency1
A1 | Frequency2
B1 | Frequency3
A2 | Frequency4
B2 | Frequency5
A3 | Frequency6
B3 | Frequency7

Period of update time t =0.33 second is the default setting. A user defined command can be used to

change the value of t for special applications.

Frequency = Counter value / Period of scan time t

Assume t = 0.1 seconds,

If count = 1 à frequency = 1/(0.1/1) = 10 Hz

If count = 10 à frequency = 1/(0.1/10) = 100 Hz

All frequency channels will be updated every 0.1 seconds for t= 0.1 seconds.

The software driver provides three ways to adjust t.

They are Auto select, Low and High Frequency. (The default is Auto select)

The default configuration data is as follows:

Auto Frequency = The frequency channel will be updated every 330 millisecond ;

Low Frequency = The frequency channel will be updated every 1000 millisecond ;

High Frequency = The frequency channel will be updated every 100 millisecond ;

Mode 03: Up Counting

The counter operation for mode 03 is as follows:

Counter_0 will increment by one for every falling edge of InA0

Up Counter | Counting Variable | Total Counting Value
A0 | Count0, Overflow0 | Count0 + Overflow0 * 4294967296
B0 | Count1, Overflow1 | Count1 + Overflow1 * 4294967296
A1 | Count2, Overflow2 | Count2 + Overflow2 * 4294967296
B1 | Count3, Overflow3 | Count3 + Overflow3 * 4294967296
A2 | Count4, Overflow4 | Count4 + Overflow4 * 4294967296
B2 | Count5, Overflow5 | Count5 + Overflow5 * 4294967296
A3 | Count6, Overflow6 | Count6 + Overflow6 * 4294967296
B3 | Count7, Overflow7 | Count7 + Overflow7 * 4294967296

The counter operation is as follows:

  • CountN = current counter value for channel N, 32bit wide, from 0 to 4294967295

  • OverflowN = The counting overflow number for channel N, 16bit wide, from 0 to 65535

  • Total Counting Value = CountN + OverflowN * 4294967296

  • Total Counting Bit = 32bit + 16bit = 48bit


1

EEPROM

The 8080 is equipped with 128bytes (64 words) of EEPROM, allowing the user

to save both system and channel configuration data.

The read/write units for EEPROM are 2bytes, the address 0~31 of EEPROM

is for user design, and address 32~63 is used by 8080 system configuration.

The limitation of EEPROM can be rewrite 1,000,000 times.


I-8080 Slave Command Sets

Command | Description
$AASiCjARRFF | Set One Channel Configuration
$AASiCjB | Read One Channel Configuration
$AASiCj6 | Clear Counter
$AASiCj5S | Set Channel Counter Start / Stop Status
$AASiCj5 | Read Channel Counter Start / Stop Status
#AASi | Read All Channel Data
#AASiCj | Read One Channel Data
#AASiCjR | Clear Counter Value After Read One Channel Value
#AASiCjV | Read Channel Counter Value And Overflow Value
$AASiCj7 | Read One Channel Overflow Value
$AASiCj0 | Read One Channel Digital Filter Scale
$AASiCj0DDDDD | Set One Channel Digital Filter Scale


I-8000 Command Sets

Command
$AASiCjARRFF
Description
This command is used to set the Counter Frequency module mode and data format
in the specified Slot of the I-8000 system.
Syntax
$AASiCjARRFF[CHK](cr)
$ | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. i = 0 ~ 7
A | command character for setting configuration
RR | mode of the module. RR = 0 ~ FFh bit_10 = 00 --> Dir/Pulse Mode = 01 --> Up/Down Mode = 10 --> Frequency Mode = 11 --> Up Count Mode bit_32 are valid for Frequency Mode bit_32 = 00 --> Auto Select = 01 --> Select Low Frequency = 10 --> Select High Frequency = 11 --> Stop this channel bit_4 = 1 --> Enable Low Alarm bit_5 = 1 --> Enable High Alarm bit_6 = 1 --> Enable Low Pass filter bit_7 = 0 --> Xor =0 --> non-invert this channel bit_7 = 1 --> Xor =1 --> invert this channel
FF | data format of the module. FF = 0x00 decimal format FF= 0x02 hex decimal format
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | !AA [CHK](cr)
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
! | delimiter for valid command
? | delimiter for invalid command
AA | address number of the I-8000 system. AA= 00 ~ FFh
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | $01S1C0A4302
Response | !01
Description | Set Channel 0 as Up counter and Enable Low Pass filter and data format as hex decimal The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080

Back to Previous Page


Command
$AASiCjB
Description
This command is used to read the Counter Frequency module's mode
data format in the specified Slot of the I-8000 system.
Syntax
$AASiCjB[CHK](cr)
$ | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
B | command of read configuration
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | !AARRFF[CHK](cr) for specified channel mode and data format
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
! | delimiter for valid command
AA | address number of the I-8000 system. AA= 00 ~ FFh
? | delimiter for invalid command
RR | mode of the module. RR = 0 ~ FFh bit_10 = 00 --> Dir/Pulse Mode = 01 --> Up/Down Mode = 10 --> Frequency Mode = 11 --> Up Count Mode bit_32 are valid for Frequency Mode bit_32 = 00 --> Auto Select = 01 --> Select Low Frequency = 10 --> Select High Frequency = 11 --> Stop this channel bit_4 = 1 --> Enable Low Alarm bit_5 = 1 --> Enable High Alarm bit_6 = 1 --> Enable Low Pass filter bit_7 = 0 --> Xor =0 --> non-invert this channel bit_7 = 1 --> Xor =1 --> invert this channel
FF | data format of the module. FF = 0x00 decimal format FF= 0x02 hex decimal format
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | $01S1C0B
Response | !014300
Description | Channel 0 is Up counter and Enable Low Pass filter ; data format is hex decimal The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
$AASiCj6
Description
This command is used to clear the specified channel of Counter Frequency module's value in the specified Slot of the I-8000 system.
Syntax
$AASiCj6[CHK](cr)
$ | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
6 | command of read configuration
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | !AA[CHK](cr)
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
! | delimiter for valid command
AA | address number of the I-8000 system. AA= 00 ~ FFh
? | delimiter for invalid command
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | $01S1C06
Response | !01
Description | Clear dhannel 0 counter value of counter/ frequency module The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
$AASiCj5S
Description
This command is used to set the specified channel of Counter Frequency module's Counter status
in the specified Slot of the I-8000 system.
Syntax
$AASiCj5S[CHK](cr)
$ | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
5 | Read Counter Start /Stop status
S | Stop / Start status of Counter S=0 stop the counter S=1 start the counter
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | !AA[CHK](cr)
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
! | delimiter for valid command
? | delimiter for invalid command
AA | address number of the I-8000 system. AA= 00 ~ FFh
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | $01S1C050
Response | !01
Description | Set Channel 0 to "Stop" status. The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
$AASiCj5
Description
This command for the Counter Frequency module
to read specified channel's Counter status
in the specified Slot of the I-8000 system.
Syntax
$AASiCj5[CHK](cr)
$ | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
5 | Read Counter Start /Stop status
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | !AAS[CHK](cr)
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
! | delimiter for valid command
? | delimiter for invalid command
AA | address number of the I-8000 system. AA= 00 ~ FFh
S | Stop / Start status of Counter S=0 stop the counter S=1 start the counter
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | $01S1C05
Response | !011
Description | Channel 0 is at "Start" status. The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
#AASi
Description
This command for the Counter Frequency module
to read all channel's Counter or Frequency value
in the specified Slot of the I-8000 system.
Syntax
#AASi[CHK](cr)
# | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | >HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH[CHK](cr) for 8 channels Counter or Frequency values in Hexdecimal format >DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD[CHK](cr) for 8 channels Counter or Frequency values in Decimal format
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
> | delimiter for valid command
? | delimiter for invalid command
HHHHHHHH | 32 bits up counter value (00000000~FFFFFFFFh) 32 bits up counter value (00000000~7FFFFFFFh) 32 bits down counter value(80000001~8FFFFFFFh)
EEEEEEEE | 32 bits input value (00000000~FFFFFFFFh)
DDDD | 16 bits output value (0000~FFFFh)
EEEE | 16 bits input value (0000~FFFFh)
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | @01S1
Response | >88442211
Description | Channel 0, 4, 9, 13, 18, 22, 27 and 31 are on. The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
#AASiCj
Description
This command for the Counter Frequency module
to read specified channel's Counter or Frequency value
in the specified Slot of the I-8000 system.
Syntax
#AASiCj[CHK](cr)
# | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | >HHHHHHHH [CHK](cr) for specified channel's Counter or Frequency values in Hex decimal format >DDDDDDDDDD[CHK](cr) for specified channel's Counter or Frequency values in Decimal format
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
> | delimiter for valid command
? | delimiter for invalid command
HHHHHHHH | 32 bits up counter value (00000000~FFFFFFFFh) 32 bits up counter value (00000000~7FFFFFFFh) 32 bits down counter value(80000001~8FFFFFFFh)
DDDDDDDDDD | 32 bits input value (00000000~FFFFFFFFh)
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | #01S1C0
Response | >805306367 in decimal format >2FFFFFFF in hex decimal format
Description | Channel 0 counter value is 805306367 in decimal or 2FFFFFFF in hex decimal . The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
#AASiCjR
Description
This command for the Counter Frequency module
to read specified channel's Counter value and reset the counter of the specified channel in the specified Slot of the I-8000 system.
Syntax
#AASiCjV[CHK](cr)
# | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
R | command to read counter value and reset the counter
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | >HHHHHHHH [CHK](cr) for specified channel's Counter or Frequency values in Hex decimal format >DDDDDDDDDD[CHK](cr) for specified channel's Counter or Frequency values in Decimal format
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
> | delimiter for valid command
? | delimiter for invalid command
HHHHHHHH | 32 bits up counter value (00000000~FFFFFFFFh) 32 bits up counter value (00000000~7FFFFFFFh) 32 bits down counter value(80000001~8FFFFFFFh)
DDDDDDDDDD | 32 bits input value (00000000~FFFFFFFFh)
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | #01S1C0R
Response | >805306367 in decimal format >2FFFFFFF in hex decimal format
Command | #01S1C0
Response | >0000000000 in decimal format >00000000 in hex decimal format
Description | If use #01S1C0R to read channel 0 counter value, the result is 805306367 in decimal or 2FFFFFFF in hex decimal and then use #01S1C0 to read the counter value ,the result value is 0 . The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
#AASiCjV
Description
This command for the Counter Frequency module
to read specified channel's counter and overflow value
in the specified Slot of the I-8000 system.
Syntax
#AASiCjV[CHK](cr)
# | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
V | command to read counter and overflow value
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | >HHHHHHHHXXXX [CHK](cr) for specified channel's counter and overflow value in Hex decimal format >DDDDDDDDDDVVVVV[CHK](cr) for specified channel's counter and overflow value in Decimal format
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
> | delimiter for valid command
? | delimiter for invalid command
HHHHHHHH | 32 bits up counter value (00000000~FFFFFFFFh) 32 bits up counter value (00000000~7FFFFFFFh) 32 bits down counter value(80000001~8FFFFFFFh)
DDDDDDDDDD | 32 bits input value (00000000~FFFFFFFFh)
XXXX | 16 bit overflow value in hex decimal format (0000~FFFFh)
VVVVV | 16 bits overflow value in decimal format (00000~65535)
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | #01S1C0V
Response | >80530636700001 in decimal format >2FFFFFFF0001 in hex decimal format
Description | Channel 0 counter value is 805306367 and overflow is 1 in decimal or counter value is 2FFFFFFF and overflow is 1 in hex decimal . The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
$AASiCj7
Description
This command for the Counter Frequency module
to read specified channel's Counter overflow value
in the specified Slot of the I-8000 system.
Syntax
$AASiCj7[CHK](cr)
$ | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
7 | command to read overflow value
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | !AADDDDD[CHK](cr) !AAHHHH[CHK](cr)
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
! | delimiter for valid command
? | delimiter for invalid command
AA | address number of the I-8000 system. AA= 00 ~ FFh
DDDDD | overflow value in decimal format 0 ~ 65535
HHHH | overflow value in hex decimal format 0000h ~ FFFFh
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | $01S1C07
Response | !0100010 in decimal format !01000A in hex decimal format
Description | The overflow value is 10 at Channel 0 . The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
$AASiCj0
Description
This command for the Counter Frequency module
to read specified channel's Counter low pass filter setting value
in the specified Slot of the I-8000 system.
Syntax
$AASiCj0[CHK](cr)
$ | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
0 | command to read low pass filter setting value
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | !AADDDDD[CHK](cr)
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
! | delimiter for valid command
? | delimiter for invalid command
AA | address number of the I-8000 system. AA= 00 ~ FFh
DDDDD | low pass filter setting value in decimal format 0 ~ 65535
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | $01S1C00
Response | !0100001 in decimal format
Description | The low pass filter setting value is 1 at Channel 0 . The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command
$AASiCj0DDDDD
Description
This command for the Counter Frequency module
to set specified channel's Counter low pass filter
in the specified Slot of the I-8000 system.
Syntax
$AASiCj0DDDDD[CHK](cr)
$ | a delimiter character
AA | address number of the I-8000 system. AA= 00 ~ FFh
Si | slot number of the module. i = 0 ~ 3 or 0 ~ 7
Cj | channel number of the module. j = 0 ~ 7
0 | command to read low pass filter setting
DDDDD | low pass filter setting 0 ~ 65535
[CHK] | 2 characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the command
Response

Valid Command | !AA[CHK](cr)
Invalid Command | ?AA[CHK](cr)
Syntax error or communication error may get no response.
! | delimiter for valid command
? | delimiter for invalid command
AA | address number of the I-8000 system. AA= 00 ~ FFh
[CHK] | 2-characters of Checksum
(cr) | Character Return(0x0D) for denote the end of the response
Example

Command | $01S1C0000001
Response | !01
Description | Set Channel 0's low pass fiter setting value to be 1 . The module is plug in slot 1 of the I-8000 system (address =01h).
Modules
I-8080


Command/Response String and Checksum
Command/Response Format
Command Format | (Leading)(Address)(Command)[CHK](cr)
Response Format | (Leading)(Address)(Response)[CHK](cr)

(Leading) | Leading character, like ~, $, #, @, %, !, ?, >.
(Address) | Address of specificed module, from 00 to FF. For some command like #**, the address is ** for all modules.
(Command/Response) | Command with parameters or response with data.
[CHK] | 2-character checksum. If the CheckSum is disabled, no [CHK] here.
(cr) | end-of-command character, character return(0Dh)

Calculate Checksum
  1. Calculate ASCII sum of all characters of (Leading), (Address) and (Command)(or (Response)).
  2. Mask the sum of string with 0ffh, or said only take the last 2 digits of the hex value of the sum.
    For example, if the sum is 01BCh, take the "BC" as the [CHK].

Example
  • Command string : $012
    1. Sum of string = `$'+`0'+`1'+`2' = 24h+30h+31h+32h = B7h

    2. The checksum is B7h, and [CHK] = "B7"

    3. Command string with checksum : $012B7(cr)

  • Response string : !01070600
    1. Sum of string : `!'+`0'+`1'+`0'+`7'+`0'+`6'+`0'+`0' =
      21h + 30h + 31h + 30h + 37h + 30h + 36h + 30h + 30h = 1AFh

    2. The checksum is AFh, and [CHK] = "AF"

    3. Response string with checksum : !01070600AF
      4. (cr)


I-8000Series User's Manual

On-Line User's Manual Master And Slave
Item | Description
Slave In the slave mode the I-8000 Series can be controlled by the host machine as a distributed I/O front ends.It receive the command from the host by the comunication port, then explain the command and execute the command. So it waste the time to receive command,explain command and echo result.It can't be use for the control that must take care of the timing.
It advantage is easy to use, user doesn't take care of the hardware structure. The user only need to know how the command work.
Master | In the Master mode the I-8000 Series can operate as an embedded application. The user must write himself application program and download into main control unit.
What is MASTER/SLAVE of I-8000 Series ? The 8K485.EXE is a SLAVE firmware, it can be download into the main control unit & make it act as a SLAVE device similar to 7000 series. When the I-8000 series(8410/8810) is shipping, it is download with AUTOEXEC.BAT & 8K485.EXE.So the I-8000 series(8410/8810) will automatically execute the 8K485.EXE when the power is applied (INIT* pin OPEN). When the 8410/8810 execute the 8K485.EXE, it is a SLAVE device. If the INIT* pin & INIT* COM pin are short together,user can download new user program into 8410/8810 to make it act as a MASTER device.
When the 8411/8811 is shipping, it is master.Only the MIniOS7 in the main control unit.
How to change the 8410/8810 to a MASTER device ? The working steps are giving as following:
  • step 1: short the INIT* pin & INIT*COM pin together
  • step 2: power up & download user's application program & AUTOEXEC.BAT into 8410/8810
  • step 3: power down & open the INIT* pin
  • step 4: power up, the 8410/8810 will start to execute user's program & act as a MASTER device.
How to change the 8411/8811 to a Slave device ? The working steps are giving as following:
  • step 1: short the INIT* pin & INIT*COM pin together
  • step 2: power up & download 87K485.EXE & AUTOEXEC.BAT into 8411/8811
  • step 3: power down & open the INIT* pin
  • step 4: power up, the 8411/8811 will start to execute 87K485.EXE & act as a SLAVE device.