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.

AM3359 ZCZ package SPI1 pinmux IO Set Violation

Other Parts Discussed in Thread: AM3359

Hi!

I am trying to make a pin mux configuration for the AM3359 processor with ZCZ package.

I would like to use SPI1 interface as follows:

  • SPI1_SCLK_MUX0
  • SPI1_D0_MUX0
  • SPI1_D1_MUX0
  • SPI1_CS0_MUX0
  • SPI1_CS1_MUX0
The Pin Mux utility gives an IO Set Violation error. The user guide says that this error needs to be eliminated (http://processors.wiki.ti.com/index.php/Pin_Mux_Utility_for_ARM_MPU_Processors_v2#IO_Set_Violation_Status)
My question is why can I not use the interface with this combination?
Best Regards,
Balazs Ancsa 
Conet Ltd.
  • This pin multiplexing option is a valid IO Set.  I opened the Pin Mux Utility, selected ZCZ package, set all voltages to 3.3 volts, selected IO Set 8 for SPI1 and did not get an IO Set violation.

    Regards,
    Paul

  • IO Set 8 makes me a Conflict

    • SPI1_SCLK_MUX0
    • SPI1_D0_MUX0
    • SPI1_D1_MUX0 <-> SPI1_CS0_MUX2  (conflict)
    • SPI1_CS1_MUX0
    in this settings the SPI1_CS0_MUX0 is unused, and I would like to use that pin. Is this possible?
    Best Regards,
    Balazs
  • I would like to confirm my understanding of how you want to configure the SPI1 port.

    Are you saying you want the following pin multiplex configuration?

    Pin C18, named ECAP0_IN_PWM0_OUT, to operate as SPI1_SCLK_MUX0
    Pin E18, named UART0_CTSN, to operate as SPI1_D0_MUX0
    Pin E17, named UART0_RTSN, to operate as SPI1_CS0_MUX2
    Pin D17, named UART1_RTSN, to operate as SPI1_CS1_MUX0

    If so, this is not a valid IO Set and is not supported.

    The AM335x device contains many peripheral interfaces.  Approximately half of the AM335x terminals can multiplex up to eight signal functions.  This was done to reduce the number package terminals which reduced the package size enough for most AM335x applications.  However, this may impose significant limitations on the number of peripherals and peripheral functions available concurrently.

    Many of the AM335x peripheral inputs and output signals were multiplexed to more than one device terminal as a way to reduce the limitations of pin-multiplexing.  Multiplexing signals to multiple terminals adds a significant design complexity because each signal path needs to be properly timed with all other signals of the associated peripheral interface.  If several signals of a peripheral interface can be multiplexed to multiple terminals, the number of possible combinations can be large.  This makes it prohibitive to close timing on all possible combinations.  Therefore, the AM335x does not support all possible combinations of pin-multiplexing.  The supported combinations of pin-multiplexing for a specific peripheral interface are referred to as valid IO Sets.

    Regards,
    Paul 

  • The original signal set you requested:

    • SPI1_SCLK_MUX0
    • SPI1_D0_MUX0
    • SPI1_D1_MUX0
    • SPI1_CS0_MUX0
    • SPI1_CS1_MUX0

    is actually a valid IO Set.  The IO Set #8 is incorrect in the v2.2.1.0 version of the tool.

    The latest version (v2.3.1.0) corrects this error - it will be on ti.com soon.

    Regards,

    Michael T

  • Thank you for the explanation.

    I would like to use:

    • C18 - SPI1_SCLK_MUX0
    • E18 - SPI1_D0_MUX0
    • E17 - SPI1_D1_MUX0
    • D18 - SPI1_CS0_MUX0
    • D17 - SPI1_CS1_MUX0
    So as you described it is OK (just a Pin Mux Utility bug)
    Thanks
    Balazs
  • Hi Michael,

    What about the below SPI1 configuration? It seems to show a conflict on the peripherals list:

    Thanks in advance,

    Anthony

  • I am not sure what version of the pinmux utility the customer used on my previous post but looking at the v 2.4.1.0 this seems to be a valide IO set so I guess it is a valid config:

  • Hi,

    I have a similar issue here.

    I have the version 2.5.2 of the TI tool.

    I selected:

    A13 SPI1_CLK

    B13 SPI1_DO

    D12 SPI1_DI

    C12 SPI1_CSO

    Now, I tried the 4 possible combination for SPI1_CS1 (A15, E16, D17, C18) and they all give a IO Set Violation.

    How can I use the 2 CS on the SPI1 port?