This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCM9211: 71h Settings

Part Number: PCM9211

Hi,

Need your good advice on PCM9211 registers setting on port group MPIO_C.

When MPIO_C is used as functions such as AUXIN1 or ADC or others other than DIR flags output or GPIO (register 6Fh),  how should the register 71h be set?

It wasn't stated in the datasheet when this register is effective.

Whereas for registers 76h, 77h and 7Ah, it is mentioned that it is effective only when MPIO_C is assigned as DIR flags output or GPIO.

 

Thanks.

  • Hi Philip,

    As you may already know, PCM9211 has12 multi-purpose I/O (MPIO) pins are grouped into three banks, each wwith four pins: MPIO_A, MPIO_B, and MPIO_C. Register 6Fh allows one to configure the group function and by default, MPIO_C is assigned to be AUXIN1.

    In your application, if you intend to use the MPIO_C to AUXIN1, you can leave the register 71h to default value. This register is relevant ONLY if the MPIO_C function is set to DIR Flags output or GPIO as shown below -

    Hope this clarifies your question.

    Best regards,
    Ravi

  • Hi Ravi,

    Thank you for the information.

    I have another question.

    MPIO_B is assigned to be used as AUXIN2, and detected no audio at AUXIN2 port with below settings during initialization.

    Each writable registry was written at least once during device initialization (due to software spec).

    The registry 71h and 79h was not set to 0 due to the understanding that it was not relevant when MPIO_B is used as AUXIN2.

    Unexpectedly, this caused the problem of no audio data detected at AUXIN2 port.

    Registry

    Name

    Value

    6Fh

    MPBSEL

    000

    71h

    MPB0SEL
    MPB1SEL
    MPB2SEL
    MPB3SEL

    1
    1
    1
    1

    79h

    GIOB0DIR
    GIOB1DIR
    GIOB2DIR
    GIOB3DIR

    1
    1
    1
    1

     

    Using below default settings solved the problem.

    Registry

    Name

    Value

    6Fh

    MPBSEL

    000

    71h

    MPB0SEL
    MPB1SEL
    MPB2SEL
    MPB3SEL

    0
    0
    0
    0

    79h

    GIOB0DIR
    GIOB1DIR
    GIOB2DIR
    GIOB3DIR

    0
    0
    0
    0

    Can you help to explain why this issue occurred?

    Was it because the registry 71h and 79h was set even though it was not needed that caused the problem?

    Or is was due to the sequence of setting the registers?

    Currently the registers are set according to the sequence 6Fh > 71h > 79h.

    Can you kindly help to advise the root cause for the no audio issue at AUXIN2 port ?

    Thanks.

  • Hi Ravi,

    Sorry to ask. Do you have any good feedback on my additional question as below?

    Need your kind advice, thanks.

    I have another question.

    MPIO_B is assigned to be used as AUXIN2, and detected no audio at AUXIN2 port with below settings during initialization.

    Each writable registry was written at least once during device initialization (due to software spec).

    The registry 71h and 79h was not set to 0 due to the understanding that it was not relevant when MPIO_B is used as AUXIN2.

    Unexpectedly, this caused the problem of no audio data detected at AUXIN2 port.

    Registry

    Name

    Value

    6Fh

    MPBSEL

    000

    71h

    MPB0SEL
    MPB1SEL
    MPB2SEL
    MPB3SEL

    1
    1
    1
    1

    79h

    GIOB0DIR
    GIOB1DIR
    GIOB2DIR
    GIOB3DIR

    1
    1
    1
    1

     

    Using below default settings solved the problem.

    Registry

    Name

    Value

    6Fh

    MPBSEL

    000

    71h

    MPB0SEL
    MPB1SEL
    MPB2SEL
    MPB3SEL

    0
    0
    0
    0

    79h

    GIOB0DIR
    GIOB1DIR
    GIOB2DIR
    GIOB3DIR

    0
    0
    0
    0

    Can you help to explain why this issue occurred?

    Was it because the registry 71h and 79h was set even though it was not needed that caused the problem?

    Or is was due to the sequence of setting the registers?

    Currently the registers are set according to the sequence 6Fh > 71h > 79h.

    Can you kindly help to advise the root cause for the no audio issue at AUXIN2 port ?

    Thanks.

  • Hi Philip,

    As far as the registers in question goes, the sequence of settings should not matter in this case.

    Based on the DS, it does not outline the direct connection between the the values set to MPBxSEL &GIOBxDIR bits if the MPBSEL[2:0]=000. I am currently trying to locate the design details to better understand the connection. Is there a reason you were setting those bits to '1'? 

    Also, when you say no audio detect, can you please elaborate on the same? When you apply the I2S audio input stream to AUXIN2, are you trying to route it to MPO? or do you want it to be converted to another format? for ex: S/PDIF?

    Please let me know your requirements and i'll be more than happy to provide you w the full configuration of the device. Thanks for your patience.

    Best regards,
    Ravi 

  • Hi Ravi,

    Thanks for your reply.
    Please kindly find some feedback as below.

    Question: Is there a reason you were setting those bits to '1'?
    Reply: Those bits were set to ‘1’ due to the previous project development source code implementation, it ports were set for GPIO usage.
    Now it is to be used for the AUXIN2 function.
    When setting the registers, it was assumed then that the registry setting MPBxSEL & GIOBxDIR would have no effect, so it was left unchanged.
    Only when the related registers for setting AUXIN2 was set, that was how this problem was found.

    Question: Also, when you say no audio detect, can you please elaborate on the same? When you apply the I2S audio input stream to AUXIN2, are you trying to route it to MPO? or do you want it to be converted to another format? for ex: S/PDIF?
    Reply: The I2S audio input is sent to AUXIN2 to route it to the Main output port, also as I2S audio.
    The no audio detect refers to the MPIO_Bx ports as having insufficient voltage.
    The ports normally operate at 3.3V, but when the problem occurred, the maximum voltage was only around 1.3V.
    So it was assumed that due to the low voltage, no audio could be detected by PCM9211, thus no sound output.
    When the default registry settings were used, the voltage had returned to the normal 3.3V, no hardware changes were made.

    Looking for your good advice and your feedback. If you need any additional information, please do ask, thanks.

    Best Regards,
    Philip
  • Hi Ravi,

    My email address is philip.law@marubunarrow-asia.com

    I think it would be faster if we can directly communicate this issue through email.

    Thanks for your strong support.

    Best Regards.

  • Hi Philip,

    As mentioned in my email, Register 0x71 configures the MPIO_B flag/GPIO settings. If you select the GPIO, then the register 0x79 sets the I/O direction control.  If the 0x71 is configured as DIR, the value of 0x79 is ignored.

    • When 0x71 is set to DIR (0x00), there is no consequence of setting 0x79 to 0xFO as it’s ignored.
    • When 0x71 is set to GPIO (0xF0), then the direction of this pin is output but you are applying the input clocks/data on this pin at the same time as they are configured as output. Hence you see the observed behavior.

    Hope this explains the issue observed. Thanks!

    Best regards,
    Ravi