The DX300 Digital I/O Expander is a multifunctional and versatile part. It converts up to three simple inputs to XBus outputs or one XBus input to up to three simple outputs, so it can be used as a signal multiplexer/demultiplexer. This part consumes no power and costs ¥1.
Usage[]
The DX300 has three simple I/O pins in one side and three XBus pins in the other. Each side can be in either input mode or output mode and the part's behavior depends on the requests to each pin. It also has three internal flip-flops that can be set and read by both sides.
The names of the internal flip-flops are not documented, so they will be called p0', p1' and p2' as each one is directly linked to one simple I/O pin with similar name. The XBus pins' names are also not documented and will called x0, x1, and x2.
Writing to the simple I/O side[]
Each simple I/O pin is directly linked to one flip-flop and can be used to set it. The signals are treated as digital, meaning values up to 50 will set a flip-flop to 0 and values above 50 will set a flip-flop to 1. Unconnected pins default to 0.
input pins | flip-flops | ||||
---|---|---|---|---|---|
p0 | p1 | p2 | p0' | p1' | p2' |
0 | 100 | 0 | 0 | 1 | 0 |
99 | 66 | 33 | 1 | 1 | 0 |
50 | 49 | 0 | 0 | 0 | 0 |
Reading from the simple I/O side[]
Each simple I/O pin will output its corresponding flip-flop value as a 0 or a 100.
flip-flops | output pins | ||||
---|---|---|---|---|---|
p0' | p1' | p2' | p0 | p1 | p2 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 100 |
1 | 1 | 1 | 100 | 100 | 100 |
Writing to the XBus side[]
When a XBus signal writes to the DX300, each digit of the number will set a flip-flop: the ones will set p0, the tens will set p1 and the hundreds will set p2. Non-zero digits set a flip-flop to 1 and zeros set a flip-flop to 0 and the sign is ignored, that is, the values -103 and 103 are treated as the same.
input pins | flip-flops | ||
---|---|---|---|
x0/x1/x2 | p0' | p1' | p2' |
30 | 0 | 1 | 0 |
42 | 1 | 1 | 0 |
-907 | 1 | 0 | 1 |
Reading from the XBus side[]
When a read request is send to the XBus side, the DX300 will output a number in the form 100*p2 + 10*p1 + p0 and clear all flip flops to zero.
flip-flops | output pins | ||
---|---|---|---|
p0' | p1' | p2' | x0/x1/x2 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 |
0 | 1 | 1 | 110 |
Conflict resolution[]
Altough the DX300 has three XBus pins, only one can be used at a time. If two or more parts request to read from or write to a DX300's XBus pin at the same time they will be acessed with the priority x2 > x1 > x0.
In game description[]
Control the world with the DX300 digital I/O expander! This unique and useful part can read or write up to three on/off signals at once over simple I/O or XBus. It is sure to find its ideal application in answering many of your control and signal processing needs. Contact us to request samples.