<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>MQX Software Solutions中的主题 pin multiplexing</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/pin-multiplexing/m-p/195847#M4050</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am making a custom pcb which will have the exact same processor as the k60 tower (except in LQFP). Does anyone know where I can set SPI 2 to specific pins in MQX or really any of the peripherals to my desired pins on the chip. I plan on modeling the board closely to the towers connections but where can I find the pin multiplexing code in MQX?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 07 Jan 2012 11:36:11 GMT</pubDate>
    <dc:creator>dnappier</dc:creator>
    <dc:date>2012-01-07T11:36:11Z</dc:date>
    <item>
      <title>pin multiplexing</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/pin-multiplexing/m-p/195847#M4050</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am making a custom pcb which will have the exact same processor as the k60 tower (except in LQFP). Does anyone know where I can set SPI 2 to specific pins in MQX or really any of the peripherals to my desired pins on the chip. I plan on modeling the board closely to the towers connections but where can I find the pin multiplexing code in MQX?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 07 Jan 2012 11:36:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/pin-multiplexing/m-p/195847#M4050</guid>
      <dc:creator>dnappier</dc:creator>
      <dc:date>2012-01-07T11:36:11Z</dc:date>
    </item>
    <item>
      <title>Re: pin multiplexing</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/pin-multiplexing/m-p/195848#M4051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Its randomly shrewn about in the init_* bsp files. I personally didn't like the setup and instead set up my own way of doing it:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I put these in the board specific header (e.g. the replacement for twrk60n512.h):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define BSP_PTA4_CFG&amp;nbsp;&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(GPIO) | PORT_PCR_ODE_MASK | PORT_PCR_DSE_MASK) /* LED RED DL1 */&lt;BR /&gt;#define BSP_PTA10_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(GPIO) | PORT_PCR_PE_MASK)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* BSP_ANALOG_PULLUP_1 */&lt;BR /&gt;#define BSP_PTA11_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(GPIO))&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CAN_STB1 */&lt;BR /&gt;#define BSP_PTA12_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(ALT2) | PORT_PCR_DSE_MASK)&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CAN0_TX */&lt;BR /&gt;#define BSP_PTA13_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(ALT2) | PORT_PCR_PFE_MASK)&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CAN0_RX */&lt;BR /&gt;#define BSP_PTA14_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(ALT3) | PORT_PCR_DSE_MASK)&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0_TX */&lt;BR /&gt;#define BSP_PTA15_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(ALT3) | PORT_PCR_PFE_MASK)&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0_RX */&lt;BR /&gt;#define BSP_PTA16_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(ALT3) | PORT_PCR_DSE_MASK)&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0_RTS */&lt;BR /&gt;#define BSP_PTA17_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(ANLG))&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0_CTS&amp;nbsp; - Used as GPIO to enable RS485 RX*/&lt;BR /&gt;#define BSP_PTA24_CFG&amp;nbsp;&amp;nbsp; (PORT_PCR_MUX(GPIO))&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CAN_STB2 */&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;which set up the pin muxing and then these macros to define the lwgpio port/pin info:&lt;/P&gt;&lt;P&gt;#define BSP_SPI_FLASH_WP_N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LWGPIO_PORT_E | LWGPIO_PIN6)&lt;BR /&gt;#define BSP_SPI_FLASH_HOLD_N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LWGPIO_PORT_E | LWGPIO_PIN7)&lt;/P&gt;&lt;P&gt;#define BSP_ANALOG_PULLUP_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LWGPIO_PORT_A | LWGPIO_PIN10)&lt;/P&gt;&lt;P&gt;#define BSP_ANALOG_PULLUP_2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LWGPIO_PORT_B | LWGPIO_PIN4)&amp;nbsp;&lt;BR /&gt;#define BSP_ANALOG_PULLUP_3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LWGPIO_PORT_B | LWGPIO_PIN5)&amp;nbsp;&lt;BR /&gt;#define BSP_ANALOG_PULLUP_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LWGPIO_PORT_B | LWGPIO_PIN6)&amp;nbsp;&lt;BR /&gt;#define BSP_ANALOG_PULLUP_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LWGPIO_PORT_B | LWGPIO_PIN7)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then I added a function to init_hw.c:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void _bsp_pinmux_init(void)&lt;BR /&gt;{&lt;BR /&gt;#ifdef BSP_PTA0_CFG&lt;BR /&gt;&amp;nbsp;PORTA_PCR0 = BSP_PTA0_CFG;&lt;BR /&gt;#endif&lt;BR /&gt;#ifdef BSP_PTA1_CFG&lt;BR /&gt;&amp;nbsp;PORTA_PCR1 = BSP_PTA1_CFG;&lt;BR /&gt;#endif&lt;BR /&gt;#ifdef BSP_PTA2_CFG&lt;BR /&gt;&amp;nbsp;PORTA_PCR2 = BSP_PTA2_CFG;&lt;BR /&gt;#endif&lt;BR /&gt;#ifdef BSP_PTA3_CFG&lt;BR /&gt;&amp;nbsp;PORTA_PCR3 = BSP_PTA3_CFG;&lt;BR /&gt;#endif&lt;BR /&gt;#ifdef BSP_PTA4_CFG&lt;BR /&gt;&amp;nbsp;PORTA_PCR4 = BSP_PTA4_CFG;&lt;BR /&gt;#endif&lt;BR /&gt;#ifdef BSP_PTA5_CFG&lt;BR /&gt;&amp;nbsp;PORTA_PCR5 = BSP_PTA5_CFG;&lt;BR /&gt;#endif&lt;BR /&gt;#ifdef BSP_PTA6_CFG&lt;BR /&gt;&amp;nbsp;PORTA_PCR6 = BSP_PTA6_CFG;&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;/* etc until all pins are set */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And added this function to init_hw.c:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void _bsp_io_defaults(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LWGPIO_STRUCT pin_struct;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_init(&amp;amp;pin_struct, BSP_SPI_FLASH_WP_N,&amp;nbsp;&amp;nbsp;&amp;nbsp; LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_LOW);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_init(&amp;amp;pin_struct, BSP_SPI_FLASH_HOLD_N,&amp;nbsp; LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_LOW);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_init(&amp;amp;pin_struct, BSP_ANALOG_PULLUP_1,&amp;nbsp;&amp;nbsp; LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_LOW);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_init(&amp;amp;pin_struct, BSP_ANALOG_PULLUP_2,&amp;nbsp;&amp;nbsp; LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_LOW);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lwgpio_init(&amp;amp;pin_struct, BSP_ANALOG_PULLUP_3,&amp;nbsp;&amp;nbsp; LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_LOW);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*etc until all pins have the correct defaults set */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then I called both:&lt;/P&gt;&lt;P&gt;void kinetis_init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; /* Disbale the watchdog timer */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; kinetis_wdt_disable();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Set up the system clock */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; pll_init();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Disable memory protection */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; _bsp_mpu_disable();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Enable clock to peripheral modules */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; kinetis_clock_enable();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initializes the i/o pins to the correct function and defaults */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _bsp_io_defaults();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configures the Processor Pin Muxes */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; _bsp_pinmux_init();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And then you go all you have to do is modify your board header to define the ports, pins, and muxing scheme&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 08 Jan 2012 10:07:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/pin-multiplexing/m-p/195848#M4051</guid>
      <dc:creator>BryGuyH</dc:creator>
      <dc:date>2012-01-08T10:07:45Z</dc:date>
    </item>
  </channel>
</rss>

