<?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>LPC Microcontrollers中的主题 Help with SPI on the Xpresso-LPC1549</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-SPI-on-the-Xpresso-LPC1549/m-p/710361#M28661</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I hope someone can help. I have an application on the LPC1549 that I'm prototyping on an LPCXpresso1549 board Rev C (OM13056). Part of the application requires sending data out an SPI port. According to the schematic of the eval board, PIO0_14 maps to SCK on the Arduino connector, PIO0_12 goes to MISO, PIO0_28 goes to MOSI and PIO0_27 goes to SSEL. I connected my device and a scope to those pins and see nothing. I've tried using both SPI0 and SPI1 and in neither case do I see anything. I'd appreciate it if someone could look at my testcase code and see what stupid thing I did wrong. Eternal thanks and beer money are in it for you if you can help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Howard&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#if defined (__USE_LPCOPEN)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#if defined(NO_BOARD_LIB)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#include "chip.h"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#include "board.h"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#include &amp;lt;cr_section_macros.h&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;// TODO: insert other include files here&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;// TODO: insert other definitions and declarations here&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#define BUFFER_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#define SPI_MODE_TEST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SPI_MODE_MASTER)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;//#define SPI_MODE_TEST&amp;nbsp; (SPI_MODE_SLAVE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#define POLLING_MODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#define LPC_SPI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SPI0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; /* Tx buffer */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static uint16_t TxBuf[BUFFER_SIZE];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; /* Rx buffer */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static uint16_t RxBuf[BUFFER_SIZE];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static SPI_CFG_T ConfigStruct;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static SPI_DELAY_CONFIG_T DelayConfigStruct;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static SPI_DATA_SETUP_T XfSetup;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static volatile uint8_t&amp;nbsp; isXferCompleted = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;/* Initialize buffer */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static void bufferInit(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t ch = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; BUFFER_SIZE; i++) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;TxBuf[i] = ch++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RxBuf[i] = 0xAA;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;int main(void) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#if defined (__USE_LPCOPEN)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read clock settings and update SystemCoreClock variable&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemCoreClockUpdate();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#if !defined(NO_BOARD_LIB)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set up and initialize all required blocks and&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // functions related to the board hardware&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_Init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the LED to the state of "On"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_LED_Set(0, true);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO: insert code here&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_Init();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SPI initialization */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_SCK_IO&amp;nbsp; , 14);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_MOSI_IO&amp;nbsp; , 28);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_MISO_IO&amp;nbsp; , 12);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_SSELSN_0_IO&amp;nbsp; , 27);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 14, (IOCON_FUNC2 | IOCON_MODE_PULLUP | IOCON_DIGMODE_EN));&amp;nbsp;&amp;nbsp; &amp;nbsp;/* SPI0_SCK */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 28, (IOCON_FUNC2 | IOCON_MODE_PULLUP | IOCON_DIGMODE_EN));&amp;nbsp;&amp;nbsp; &amp;nbsp;/* SPI0_MOSI */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 12, (IOCON_FUNC2 | IOCON_MODE_PULLUP | IOCON_DIGMODE_EN));&amp;nbsp;&amp;nbsp; &amp;nbsp;/* SPI0_MISO */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 27, (IOCON_FUNC2 | IOCON_MODE_PULLUP | IOCON_DIGMODE_EN));&amp;nbsp;&amp;nbsp; &amp;nbsp;/* SPI0_SSEL0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.Mode = SPI_MODE_MASTER;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.ClkDiv = Chip_SPI_CalClkRateDivider(LPC_SPI, 100000);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.ClockMode = SPI_CLOCK_CPHA0_CPOL0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.DataOrder = SPI_DATA_MSB_FIRST;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.SSELPol = SPI_CFG_SPOL0_LO;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SPI_Init(LPC_SPI);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SPI_SetConfig(LPC_SPI, &amp;amp;ConfigStruct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DelayConfigStruct.FrameDelay = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DelayConfigStruct.PostDelay = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DelayConfigStruct.PreDelay = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DelayConfigStruct.TransferDelay = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SPI_DelayConfig(LPC_SPI, &amp;amp;DelayConfigStruct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SPI_Enable(LPC_SPI);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bufferInit();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.Length = BUFFER_SIZE;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.pTx = TxBuf;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.RxCnt = XfSetup.TxCnt = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.DataSize = 8;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.pRx = NULL;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SPI_WriteFrames_Blocking(LPC_SPI, &amp;amp;XfSetup);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_LED_Set(1, true);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enter an infinite loop, spewing SPI data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //bufferInit();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.Length = 2; // BUFFER_SIZE;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.pTx = TxBuf;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.RxCnt = XfSetup.TxCnt = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.DataSize = 8;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TxBuf[0] = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TxBuf[1] = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.TxCnt = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SPI_WriteFrames_Blocking(LPC_SPI, &amp;amp;XfSetup);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0 ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 21 Sep 2017 13:57:13 GMT</pubDate>
    <dc:creator>howardeglowstei</dc:creator>
    <dc:date>2017-09-21T13:57:13Z</dc:date>
    <item>
      <title>Help with SPI on the Xpresso-LPC1549</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-SPI-on-the-Xpresso-LPC1549/m-p/710361#M28661</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I hope someone can help. I have an application on the LPC1549 that I'm prototyping on an LPCXpresso1549 board Rev C (OM13056). Part of the application requires sending data out an SPI port. According to the schematic of the eval board, PIO0_14 maps to SCK on the Arduino connector, PIO0_12 goes to MISO, PIO0_28 goes to MOSI and PIO0_27 goes to SSEL. I connected my device and a scope to those pins and see nothing. I've tried using both SPI0 and SPI1 and in neither case do I see anything. I'd appreciate it if someone could look at my testcase code and see what stupid thing I did wrong. Eternal thanks and beer money are in it for you if you can help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Howard&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#if defined (__USE_LPCOPEN)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#if defined(NO_BOARD_LIB)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#include "chip.h"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#include "board.h"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#include &amp;lt;cr_section_macros.h&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;// TODO: insert other include files here&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;// TODO: insert other definitions and declarations here&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#define BUFFER_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#define SPI_MODE_TEST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SPI_MODE_MASTER)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;//#define SPI_MODE_TEST&amp;nbsp; (SPI_MODE_SLAVE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#define POLLING_MODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#define LPC_SPI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SPI0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; /* Tx buffer */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static uint16_t TxBuf[BUFFER_SIZE];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; /* Rx buffer */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static uint16_t RxBuf[BUFFER_SIZE];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static SPI_CFG_T ConfigStruct;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static SPI_DELAY_CONFIG_T DelayConfigStruct;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static SPI_DATA_SETUP_T XfSetup;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static volatile uint8_t&amp;nbsp; isXferCompleted = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;/* Initialize buffer */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;static void bufferInit(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t ch = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; BUFFER_SIZE; i++) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;TxBuf[i] = ch++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;RxBuf[i] = 0xAA;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;int main(void) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#if defined (__USE_LPCOPEN)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read clock settings and update SystemCoreClock variable&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemCoreClockUpdate();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#if !defined(NO_BOARD_LIB)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set up and initialize all required blocks and&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // functions related to the board hardware&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_Init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the LED to the state of "On"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_LED_Set(0, true);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO: insert code here&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_Init();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SPI initialization */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_SCK_IO&amp;nbsp; , 14);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_MOSI_IO&amp;nbsp; , 28);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_MISO_IO&amp;nbsp; , 12);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_SSELSN_0_IO&amp;nbsp; , 27);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 14, (IOCON_FUNC2 | IOCON_MODE_PULLUP | IOCON_DIGMODE_EN));&amp;nbsp;&amp;nbsp; &amp;nbsp;/* SPI0_SCK */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 28, (IOCON_FUNC2 | IOCON_MODE_PULLUP | IOCON_DIGMODE_EN));&amp;nbsp;&amp;nbsp; &amp;nbsp;/* SPI0_MOSI */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 12, (IOCON_FUNC2 | IOCON_MODE_PULLUP | IOCON_DIGMODE_EN));&amp;nbsp;&amp;nbsp; &amp;nbsp;/* SPI0_MISO */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 27, (IOCON_FUNC2 | IOCON_MODE_PULLUP | IOCON_DIGMODE_EN));&amp;nbsp;&amp;nbsp; &amp;nbsp;/* SPI0_SSEL0 */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.Mode = SPI_MODE_MASTER;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.ClkDiv = Chip_SPI_CalClkRateDivider(LPC_SPI, 100000);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.ClockMode = SPI_CLOCK_CPHA0_CPOL0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.DataOrder = SPI_DATA_MSB_FIRST;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigStruct.SSELPol = SPI_CFG_SPOL0_LO;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SPI_Init(LPC_SPI);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SPI_SetConfig(LPC_SPI, &amp;amp;ConfigStruct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DelayConfigStruct.FrameDelay = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DelayConfigStruct.PostDelay = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DelayConfigStruct.PreDelay = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DelayConfigStruct.TransferDelay = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SPI_DelayConfig(LPC_SPI, &amp;amp;DelayConfigStruct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SPI_Enable(LPC_SPI);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bufferInit();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.Length = BUFFER_SIZE;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.pTx = TxBuf;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.RxCnt = XfSetup.TxCnt = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.DataSize = 8;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.pRx = NULL;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SPI_WriteFrames_Blocking(LPC_SPI, &amp;amp;XfSetup);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_LED_Set(1, true);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enter an infinite loop, spewing SPI data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //bufferInit();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.Length = 2; // BUFFER_SIZE;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.pTx = TxBuf;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.RxCnt = XfSetup.TxCnt = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.DataSize = 8;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TxBuf[0] = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TxBuf[1] = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XfSetup.TxCnt = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SPI_WriteFrames_Blocking(LPC_SPI, &amp;amp;XfSetup);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0 ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: andale mono,monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Sep 2017 13:57:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-SPI-on-the-Xpresso-LPC1549/m-p/710361#M28661</guid>
      <dc:creator>howardeglowstei</dc:creator>
      <dc:date>2017-09-21T13:57:13Z</dc:date>
    </item>
    <item>
      <title>Re: Help with SPI on the Xpresso-LPC1549</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-SPI-on-the-Xpresso-LPC1549/m-p/710362#M28662</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Howard Eglowstein,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; You can refer to the lpcopen code at first:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/products/microcontrollers-and-processors/arm-based-processors-and-mcus/lpc-cortex-m-mcus/developer-resources-/lpcopen-libraries-and-examples/lpcopen-software-development-platform-lpc15xx:LPCOPEN-SOFTWARE-FOR-LPC15XX" title="https://www.nxp.com/products/microcontrollers-and-processors/arm-based-processors-and-mcus/lpc-cortex-m-mcus/developer-resources-/lpcopen-libraries-and-examples/lpcopen-software-development-platform-lpc15xx:LPCOPEN-SOFTWARE-FOR-LPC15XX"&gt;LPCOpen Software for LPC15XX|NXP&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;static void Init_SPI_PinMux(void)&lt;BR /&gt;{&lt;BR /&gt;#if (defined(BOARD_NXP_LPCXPRESSO_1549))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable the clock to the Switch Matrix */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Initialize SPI0 pins connect&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; * SCK0: PINASSIGN3[15:8]: Select P0.0&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; * MOSI0: PINASSIGN3[23:16]: Select P0.16&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; * MISO0: PINASSIGN3[31:24] : Select P0.10&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; * SSEL0: PINASSIGN4[7:0]: Select P0.9&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 0, (IOCON_MODE_INACT | IOCON_DIGMODE_EN));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 16, (IOCON_MODE_INACT | IOCON_DIGMODE_EN));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 10, (IOCON_MODE_INACT | IOCON_DIGMODE_EN));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 9, (IOCON_MODE_INACT | IOCON_DIGMODE_EN));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_SCK_IO, 0);&amp;nbsp;&amp;nbsp; &amp;nbsp;/* P0.0 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_MOSI_IO, 16);/* P0.16 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_MISO_IO, 10);/* P0.10 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_SWM_MovablePinAssign(SWM_SPI0_SSELSN_0_IO, 9);&amp;nbsp;&amp;nbsp; &amp;nbsp;/* P0.9 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Disable the clock to the Switch Matrix to save power */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Configure your own SPI pin muxing here if needed */&lt;BR /&gt;#warning "No SPI pin muxing defined"&lt;BR /&gt;#endif&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can configure the PinMuxSet at first, and you don't need to select &lt;SPAN style="font-family: andale mono,monospace;"&gt;IOCON_FUNC2&lt;/SPAN&gt;.&lt;/P&gt;&lt;P&gt;Please modify the lpcopen code, spi_polling directly, then test it again.&lt;/P&gt;&lt;P&gt;If you still have problem, please check the according SPI pin wave, and let me know!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Sep 2017 03:31:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Help-with-SPI-on-the-Xpresso-LPC1549/m-p/710362#M28662</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2017-09-25T03:31:51Z</dc:date>
    </item>
  </channel>
</rss>

