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.

Clarifications needed on IOMM configuration of TMS570 MCU

Hi there,

We're using the 144QFP MCU and I've many questions regarding the configuration of the IOMM module.

  1. I understand how to select Input Multiplexing signals listed in the Table 4-1 of the spnu499b TRM with regard to Bit A and Bit B. Is the selection required only when we want to configure those signals as inputs?
  2. What is the logic for the GIOB[2] signal of this table? Both Bit A and Bit B use the same register bit PINMMR29[16] so the condition [A and not(B)] is impossible to satisfy, so what is the use of multiplexed pin #55 in this case?
  3. Is Table 4-16 only applicable when we want to configure a particular signal as output (Output Multiplexing)? If so how come both SCIRX and SCITX are listed in this table?
  4. Does the rule of Bit A and Bit B applies to Table 4-16?

Sorry but I think that I must have missed something important hence those questions.

Thank you!

  • Hi Chuck,

    See my comments inline:

    1. I understand how to select Input Multiplexing signals listed in the Table 4-1 of the spnu499b TRM with regard to Bit A and Bit B. Is the selection required only when we want to configure those signals as inputs?

    >> Yes, table 4-1 only lists multiplexing controls for inputs that have multiple paths.

    1. What is the logic for the GIOB[2] signal of this table? Both Bit A and Bit B use the same register bit PINMMR29[16] so the condition [A and not(B)] is impossible to satisfy, so what is the use of multiplexed pin #55 in this case?

    >> The dedicated pin (#142) is selected for GIOB[2] when PINMMR29[16] = 0, and the multiplexed pin (#55) is selected when PINMMR29[16] = 1. This is being updated in the TRM.

    1. Is Table 4-16 only applicable when we want to configure a particular signal as output (Output Multiplexing)? If so how come both SCIRX and SCITX are listed in this table?

    >> Yes, table 4-16 lists multiplexing controls for selecting output functions on terminals. SCITX and SCIRX can both be driven as output pins when in GPIO mode.

    1. Does the rule of Bit A and Bit B applies to Table 4-16?

    >> No, that rule only applies for selecting an input path for a terminal with multiple input paths. Consider the example of N2HET1[06] multiplexed with SCIRX. The function to be output on the terminal depends on the configuration of the byte PINMMR7[23:16]. By default PINMMR7[16] = 1, which selected N2HET1[06] to be output on the terminal. If you want to output SCIRX on this terminal, you need to clear PINMMR7[16] and set PINMMR7[17].

  • Thanks Sunil,

    Just want to make sure I've well understood. For those multiplexed inputs, if I want to configure to use SPI4 as peripheral (no I/O pins) and in the master mode, the sole input pin of Table 4-1 that I have to configure is SPI4SOMI, because all other are output pins (we don't use SPI4NENA). Furthermore, since SPI4CLK, SPI4SIMO and SPI4NC[0] are default output signals controlled by PINMMR23 and PINMMR24, I don't have to touch them.

    Am I stand correct?

    How about the input pin SPI4SOMI in master SPI mode, while this signal is also listed as default output at PINMMR23[24]? Should I clear this bit to zero?

    Sunil Oak said:
    1. Does the rule of Bit A and Bit B applies to Table 4-16?

    >> No, that rule only applies for selecting an input path for a terminal with multiple input paths. Consider the example of N2HET1[06] multiplexed with SCIRX. The function to be output on the terminal depends on the configuration of the byte PINMMR7[23:16]. By default PINMMR7[16] = 1, which selected N2HET1[06] to be output on the terminal. If you want to output SCIRX on this terminal, you need to clear PINMMR7[16] and set PINMMR7[17].

    Again if I want to use the SCIRX/SCITX as peripheral, all I need to configure is the SCITX multiplexed output, which is controlled by PINMMR8[0:7]. I don't need to touch the SCIRX because it would be an input pin if the SCI function is selected. Am I still stand correct?

    Regards!

  • It is true that SPI4CLK, SPI4SIMO and SPI4NC[0] are default output signals indicated by PINMMR23 and PINMMR24, but they are also marked as Alternate Function 1 and controlled in PINMMR4 and PINMMR5 registers.

    How should I interpret that? I want to configure those pins as outputs, do I have to change also PINMMR4 and PINMMR5?

    Thanks for your help.

  • Chuck,

    SPI4 signals are available as default functions only on the 337BGA package. No multiplexing configuration is necessary to use these dedicated terminals as SPI4 signals.

    On the 144QFP package, SPI4 signals are only available as alternate functions on assigned terminals. This requires multiplexing control registers' configuration. Configuration is also required for functional inputs, as this controls aspects of the I/O buffer such as pull enable/disable and pull direction.

    Consider the N2HET1[5] / SPI4SOMI / N2HET2[12] on pin 31. The function is selected using PINMMR5[16, 17, 18]. By default PINMMR5[16] is set causign N2HET1[5] to be the function selected. This means that all aspects about the I/O buffer on pin 31 are controlled by N2HET1. For example, N2HET1 terminals are pulled down by default, by virtue of the reset value of the HETPSL register.

    For a SPISOMI function, you typically require a pull-up on this input function. So it is better to choose the SPI4SOMI function on this pin 31 to get the pulls (and other I/O aspects) controlled by SPI4 registers.

    Regards, Sunil

  • Sunil,

    While your last post contains useful info, I don't seem to be able to find answers to questions of my two previous posts, which are crucial to my understanding.

    I understood from your previous answers that TRM Table 4-1 (144-pin package) is useful ONLY for the configuration of the listed terminals as inputs, and Table 4-16 (for both 144-pin and BGA package) is useful ONLY for the configuration of terminals as outputs. Those are not the cases!

    Let's take the example of my previous post. Since SCIRX and SCITX are Alternate Functions in Table 4-16 but not listed in Table 4-1, my assumption is that I need to change IOMM to setup SCITX as primary function output with accordance to Table 4-16, but leave alone SCIRX because it would be an peripheral input signal (NOT listed in Table 4-1). This didn't work after testing. while the serial TX is working properly, I have to select SCIRX as primary function in Table 4-16 in order to RX serial data from external device.

    IMHO, this finding contradicts the answers on post #2 of this thread, in which Table 4-1 was labeled for input signals and Table 4-16 for outputs.

    It is also unclear as long as the SPI4 peripheral function is concerned. Table 4-1 listed all SPI4 signals. Does this mean that if I want to use the SPI4 function, I have to configure ALL those signals even though some are not expected to be inputs? i.e. I was thinking that in master mode, I don't use SPI4SIMO as input so I don't have to configure it, and since all SPI4 OUTPUT signals at default functions at PINMMR23 andPINMMR24, I have nothing to do with Table 4-16.

    I'm obviously wrong! How come those SPI4 signals are indicated as Default Function in PINMMR23 andPINMMR24 and at the same time, Alternate Function 1 in PINMMR4 andPINMMR5?

    Is it a 144-pin and BGA packages thing? How would I know?

    Can you please give me one example on how to setup SPI4SIMO as peripheral pin in master mode (output of course)?

    It is really not clear in the TRM. I would appreciate your direct answers to my questions, as they will better let me understand.

    Regards!

  • Chuck,

    i will try to answer your questions inline so I don't miss one:

    I understood from your previous answers that TRM Table 4-1 (144-pin package) is useful ONLY for the configuration of the listed terminals as inputs, and Table 4-16 (for both 144-pin and BGA package) is useful ONLY for the configuration of terminals as outputs. Those are not the cases!

    Let's take the example of my previous post. Since SCIRX and SCITX are Alternate Functions in Table 4-16 but not listed in Table 4-1, my assumption is that I need to change IOMM to setup SCITX as primary function output with accordance to Table 4-16, but leave alone SCIRX because it would be an peripheral input signal (NOT listed in Table 4-1). This didn't work after testing. while the serial TX is working properly, I have to select SCIRX as primary function in Table 4-16 in order to RX serial data from external device.

    IMHO, this finding contradicts the answers on post #2 of this thread, in which Table 4-1 was labeled for input signals and Table 4-16 for outputs.

    >> SCITX is an output function and you need to enable this output on the terminal by configuring the correct PINMMR register. SCIRX is an input function with a single input path. This means that the terminal N2HET1[6] / SCIRX has a path from the input buffer that is connected to both the N2HET1 and the SCI module at all times (without any configuration required). As I was trying to explain in the earlier post, there are other aspects of the I/O buffer that are configured by the function that is enabled on that terminal. Consider the pull direction for example. A default N2HET1[6] function on the terminal also means that this terminal has a default internal pull-down. This is most likely what causes your test to fail. When you configure this terminal to be SCIRX, all aspects of the I/O buffer are then switched over to the configuration required by the SCIRX function. The pull direction will be switched to being a pull-up. This has no impact on the input path, hence there is no mention of SCIRX in table 4-1.

    It is also unclear as long as the SPI4 peripheral function is concerned. Table 4-1 listed all SPI4 signals. Does this mean that if I want to use the SPI4 function, I have to configure ALL those signals even though some are not expected to be inputs? i.e. I was thinking that in master mode, I don't use SPI4SIMO as input so I don't have to configure it, and since all SPI4 OUTPUT signals at default functions at PINMMR23 andPINMMR24, I have nothing to do with Table 4-16.

    I'm obviously wrong! How come those SPI4 signals are indicated as Default Function in PINMMR23 andPINMMR24 and at the same time, Alternate Function 1 in PINMMR4 andPINMMR5?

    Is it a 144-pin and BGA packages thing? How would I know?

    >> This MCU is offered in multiple packages: 337BGA / 144QFP are the only supported packages now. There were other packages originally defined (324BGA, 256BGA). SPI4 signals have dedicated terminals on the 324BGA and 256BGA packages, and the default connection to the SPI4 module is made from these dedicated terminals.

    I made a mistake in my earlier post that these SPI4 signals are available as dedicated terminals on the 337BGA package. To make the connection from the shared terminals to the SPI4 module on the 337BGA and 144QFP packages, the I/O multiplexing control registers need to be configured.

    The answer to the first question above should help understand why PINMMR configuration is required even if you are using a SPI4 function as an input function. All the SPI4 signals are multiplexed with N2HET1 signals. N2HET1 asserts a pull-down by default, while most SPI4 signals require a pull-up on the inputs.

    Can you please give me one example on how to setup SPI4SIMO as peripheral pin in master mode (output of course)?

    It is really not clear in the TRM. I would appreciate your direct answers to my questions, as they will better let me understand.

    >> Point taken. We will try to better explain the I/O multiplexing and control using diagrams and examples in a future update to the TRM.

    Let me know if I have answered all your questions.

    Regards,

    Sunil

  • Thank you for the thorough answers. Much appreciated.

    Maybe just this remaining question: How come those SPI4 signals are indicated as Default Function in PINMMR23 andPINMMR24 but at the same time, Alternate Function 1 in PINMMR4 andPINMMR5?

    Best regards.

  • SPI4 signals are the default functions on dedicated terminals on packages that are no longer in the plan. These terminals were also multiplexed and the function is selected using PINMMR23 and PINMMR24.

    SPI4 signals are only available on multiplexed terminals on the 337BGA and 144QFP packages offered. Also, SPI4 signals are not the default functions on these terminals. These SPI4 signals can be selected for the given shared terminals by configuring PINMMR4 and PINMMR5.

  • Hi Sunil,

    Although you've answered my question, the following note for Table 4-1 in the TRM is very confusing and misleading:

    For signals with a “–” in the column for dedicated input pin #, these signals do have a dedicated pad on the die. The default input for these signals comes from the dedicated pad. To be able to drive in the input from the multiplexed pins on the 144QFP package, the IOMM registers need to be configured.

    It lets me believe that those having a dedicated pad don't need to be configured, which is not true and misleading.

    Thank you.