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.

MSPM0G1107: IOMUX/pin functions

Part Number: MSPM0G1107
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello, I am moving from another uC to this family @ our company for new products (currently NXP)... Right now, I am trying to look around and get all the information about this family which fits our needs probably... While that I found something unclear to me and I would like to clarify. It is probably a very stupid question, but I didn't find reply :) I never worked with ARM before, only with FPGA and many different cores (eg. 68K). Some clear things for ARM is not yet stored @ my head unfortunately Slight smile

In the datasheet is written (Table 6-3. Signal Descriptions): I2C0_SCL pins for 64PM package: 34 39 57 (also noted in few other places).

I found a reference to IOMUX (technical ref manual) and I checked it. As I understand, I can 'freely' map any IO pin to "any" physical pin. But table 6-3 gives some restrictions (3 pins only).

When I opened sysconfig and I tried to play with exactly same device, I could see at the same signal following options: (34) 44 (57) 8 10 36 (39) 50 (-> 5 additionals).

Generally speaking - where to found these HW/pacakge restrictions - in the PDF ? In the Sysconfig ? Or it is really full matrix ?

When I would like to change these things on fly (which is required) do I have some other limitations or just select proper BSLPINCFG1/I2CSCL_MUX_SEL ?

Additionally - where exactly to find PINCM regs/values ? In the table "Table 6-1. Pin Attributes" is column named PINCMx. If this is the right value, I would expect refference to pin 44 like in sysconfig. But there is I2C_SCL @ 34 (included in 6-3) and I2C1_SCL[9] @ 44 (not included in 6-3 but in sysconfig) and for pin 10 is I2C missing completely. Which confuses me even more :)

Thank you for showing me the right way to go.

R.

  • A given peripheral signal can be assigned to any of a few physical pins, by setting the PF value in the pin's PINCM register. The PF value for a given function for a given pin is given in square brackets ("[]") in Table 6-1. (The GPIO function is always PF=1.)

    The PINCMx column gives the index into the PINCM array in the IOMUX. The format of the PINCM register (array entry) is given in TRM (SLAU846B) Figure 10-3.

    The "extra" pins you see in sysconfig (the ones not in parentheses) are available for I2C1_SCL. Since the I2C units are identical, I think sysconfig is trying to present the option of choosing I2C1 instead.

    I've had mixed results switching the PF value on the fly (I've only really tried switching to GPIO and back), so I encourage you to try what you want to do before committing.

  • Hi Lada,

    For IO pins, only partial function is applied. The available function for each IO pins is showed in Table 6-1.

    For the same peripheral, it can be assigned to several different IO pins for the specific package, which is showed in Table 6-3.

    The PINCMx is the serial number of this IO and decoding in the SDK driverlib. If you looking at the driverlib, you will find the enumeration:

    This is not the PIN NUMBER of the physical IO PIN, which is different in each package. The PIN NUMBER could be found in the below figure:

     [PIN NUMBER: 1-64]

    General speaking, the hardware limitation is listed in Table 6-1.

    Table 6-3 could help user to do PIN assignment. Also with the sysconfig tool, it will combine the hardware limitation, and let customer choose suitable function in specific pin for their application.

    B.R.

    Sal