AnsweredAssumed Answered

ADV7513 remapping I2S input channels to HBR subpackets

Question asked by kBogdan on Dec 3, 2015
Latest reply on Jan 19, 2016 by kBogdan


I am configuring the ADV7513 HDMI transmitter for accepting the compressed audio stream over the I2S bus.  I realized that I need to do remapping of the I2S input channels to obtain the desired stream on the HDMI output.  I need to swap left and right channels inside each frame.  According to the ADV7513 programming manual I can do that using the registers 0x0E - 0x11. 

For normal I2S mode I remap the channels by setting the above registers to:

0x0E = 0x08  -> map 0 to 1, and 1 to 0

0x0F = 0x1a -> map 2 to 3 and 3 to 2

0x10 = 0x2c -> map 4 to 5 and 5 to 4

0x11 = 0x3e -> map 6 to 7 and 7 to 6


When the original stream results in the following HDMI packet

SP0: ch:0  ch:1

SP1: ch:2  ch:3

SP2: ch:4  ch:5

SP3: ch:6  ch:7


The above mapping works as expected giving me

SP0: ch:1  ch:0

SP1: ch:3  ch:2

SP2: ch:5  ch:4

SP3: ch:7  ch:6


However, when using HBR mode the same register settings have quite different effect on the stream.  It seems that instead of swapping the left/right channels the pairs of channels are swapped instead.  The resulting HDMI packet looks like this:

SP0: ch:2 ch:3

SP1: ch:0  ch:1

SP2: ch:6  ch:7

SP3: ch:4  ch:5

Is this expected behavior?  How can I achieve the same mapping in HBR mode as in Normal I2S mode?

Thanks for your help.