1
\$\begingroup\$

I'm reading the datasheet of the USB controller PIDUSBD12, but I can't understand what the goal of the A0 pin.

enter image description here

In the controller there is a data bus (D0-7) and this A0 pin, the datasheet says that the latter is used when communicating with a demultiplexed device, but if it is talking with a demultiplexed device shouldn't there be two different buses, say, D[0-7] and A[0-7], what does this pin do?

\$\endgroup\$
1
  • \$\begingroup\$ It is rather ambiguous. It looks like when they same multiplexed, they mean multiple devices on the same bus. So you could have two PDIUSB12 devices sharing the same parallel bus, and you communicate to each one by addressing them. So the normal interaction is ADDRESS or COMMAND then DATA. If you only have one PDIUSB12 device on the parallel bus, then you can skip the ADDRESS part altogether, and toggle between commands and pipe data with an I/O line instead (A0). Instead of there being a seperate A and D bus, it looks like you just pipe in the address through the DATA bus, and then your data. \$\endgroup\$
    – Oliver
    Commented May 18, 2015 at 14:40

1 Answer 1

1
\$\begingroup\$

When used with non-multiplexed data/address buses, the A0 pin determines whether the byte is command or data. The rest of the address lines from the MPU/MCU should be decoded to enable CS_N appropriately for selecting the device.

When used with multiplexed data/address buses, the A0 pin is ignored and instead the multiplexed A0 (on D0 when the address is being latched, i.e. when ALE falls) is used to determine the mode. The other 7 address bits are ignored, and should be decoded for CS_N as normal.

\$\endgroup\$
6
  • \$\begingroup\$ I don't get it. In non-multiplexed buses A0 is used to determine is the byte is an address or a byte, instead in multiplexed buses it is used to determine the mode. What which mode? \$\endgroup\$
    – zer0uno
    Commented May 18, 2015 at 15:38
  • \$\begingroup\$ Whether the byte on the data bus is a command byte or a data byte. \$\endgroup\$ Commented May 18, 2015 at 15:41
  • \$\begingroup\$ Mh, pretty difficult. :-/ If I want to send a 8-bit data how can I if the D0 is used to determine the mode? \$\endgroup\$
    – zer0uno
    Commented May 18, 2015 at 15:54
  • \$\begingroup\$ D0 is only used to determine the mode when the multiplexed bus is strobing the address. When it is strobing the data, it is data. \$\endgroup\$ Commented May 18, 2015 at 16:13
  • \$\begingroup\$ I'm misunderstaing. In a multiplexed case:I want to send a data, so before I need to specify the address and after the data. So I send the address and pull down the ALE, once I have done this I send the data. What A0 (D0) is doing here? \$\endgroup\$
    – zer0uno
    Commented May 18, 2015 at 16:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.