Clockworks A2B to I2S breakout module allows developers to add capability to anything that supports I2S, I2C, or GPIO. This module is intended to be locally powered. This post looks at bus (phantom) power, along with a reminder about not forgetting certain aspects of the way A2B checks for bus wiring errors.
Fig 1: Clockworks A2B module
A quick system was needed where the Clockworks module based A2B node (operating as a slave) could be bus powered to avoid the need for a separate set of power wires. The final goal was to attach some GPIO signals to the module's AD2428W GPIO lines.
While this could be assembled on to a piece of prototyping board, it was easier to use a leftover blank PCB from an old module revision. A slave bus powered isolation circuit (i.e. L7 and L8) from the schematic from the ADI A2B specification was constructed:
Fig 2: Bus powered slave schematic from ADI's spec
The hack to supply power to the module from the ended up looking like:
Fig 3: modified blank board to provide A2B power to the module
33 uH inductors were used instead of the 3.3 uH ones in the ADI guide; the value isn't all that critical and higher ones will present less concern about signal loss (though parasitic capacitance could be a problem and must be considered). The two connectors are jumpered together with the red and blue wirewrap wire, keeping in mind the polarity is reversed between upstream and down stream ports. The positive bus power is wired to the module's raw Vxx input pin via the 2nd red wire seen in the picture above. This is no intended as a production quality solution! A2B is pretty robust in terms of mangling the cabling and circuits, we've made some very ugly things work with no bit errors.
The final stack looks like:
Fig 4: A2B module and bus power extractor board
The lower left connector (Fig 4) is from the upstream device's B port. The lower right connector connects to the module's A port (upper left) and the module's B port (upper right) connects to the next downstream slave.
With the jumper in place between the two ports (using a stock Clockworks 1m A2B cable it looks like:
Fig 5: bus powered slave node with phantom power extractor hack
Plugging in the "input" to the stack from Fig 5 on to the upstream A2B master and another downstream slave in to the B port and firing up SigmaStudio for a quick check yielded an error message that the slave node had started nuclear Armageddon.
Actually the problem was simple and somewhat expected. The Clockworks module is intended for local power, and as such it has the ADI recommended 100 uF on the raw (Vxx) power input line. (actually 56 uF is the minimum recommended, 100 uF was already used elsewhere so used again here.) Ironically enough the explanation for that cap is to make sure that if there is a short on the A2B bus during probing that the local power doesn't sag too much under marginal conditions and cause the A2B chip to reset due to brown-out.
In this case the 100 uF Vxx cap on the slave node looks like a short to the upstream node. The upstream locally powered A2B part measures the VSSN current and opens the PMOS power switch on the locally powered board.
The solution is simple for use of the Clockworks module as a bus powered slave node - just remove the 100 uF cap.
With the 100 uF cap removed everything works as expected. There are no detected bit errors despite the extra pair of connectors wired with ill-matched wire and the 1m A2B jumper cable. The no load voltage drop for the phantom power is around 0.3V, which is expected; see the ADI design guide for what actual drops will be like, though those examples don't include a node intended to be locally powered being used as a phantom powered node.
Here's actual measurements of the voltage drop across the slave node of Fig 4, which were done by adding various combinations of 75 ohm resistors across the downstream node's input (on the far side of the two inductors so that it doesn't affect the data transmission, which was verified by running the BER test during this):
While Clockworks had some appropriate blanks around to hack for this application example, you probably don't. It wouldn't be too tough to do this on some generic SMT protoboard, however look for an even better solution from Clockworks later this year. In the meantime if you're using (or planning to use) the Clockworks A2B module and need to do something like this give us a shout as we probably have a few more blanks sitting around.