<?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>topic SGPIO as SIMPLEX SLAVE SPI  in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/SGPIO-as-SIMPLEX-SLAVE-SPI/m-p/647669#M25680</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;on the M4 core of a board with LPC4357, I would like to implement SGPIO to get data&amp;nbsp;at 5MHz as SIMPLEX SLAVE SPI (unidirectional stream, MISO not involved).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my configuration:&lt;/P&gt;&lt;P&gt;SPI_CLK -&amp;gt; SGPIO11, SPI_CS -&amp;gt; SGPIO10 (qualifier), SPI_MOSI -&amp;gt; SGPIO12&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I cannot make SGPIO slices work to get serial data in. Watching at LPC_SGPIO regs in debug (setting breakpoints) reveals that POS is never decremented. So the swap between REG and REG_SS does not happen and my SGPIO_handler IRS is never called.&lt;/P&gt;&lt;P&gt;I double cheked that external signals reach the MCU setting those pins as standard GPIOs in multiplexer. They are able to fire related GPIO_handler ISRs.&lt;/P&gt;&lt;P&gt;Maybe I'm missing something in SGPIO configuration. I tried both single (D slice) and concatenated slices (D+O slices) without success.&lt;/P&gt;&lt;P&gt;In the following my source code and attached the screenshot with input signals.&lt;/P&gt;&lt;P&gt;I would like to know what's happening.&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;void setup_SGPIO_capture(void) {&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Connect SGPIO clock to Main_PLL&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetBaseClock(CLK_BASE_PERIPH, CLKIN_MAINPLL, true, false);&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SGPIO-&amp;gt;CLR_EN_0&amp;nbsp;&amp;nbsp; &amp;nbsp;= 0xffff;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// disable interrupting on clock&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SGPIO-&amp;gt;CLR_EN_1&amp;nbsp;&amp;nbsp; &amp;nbsp;= 0xffff;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// disable interrupting on clock&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Disable all counters (should be in this state after reset but just make sure) */&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;CTRL_ENABLED = 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set all pins as input */&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;GPIO_OENREG = 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CLK_CAPTURE_MODE&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;1)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//CLOCK FALLING EDGE&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CLKGEN_EXT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;2)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//EXTERNAL CLOCK&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define INV_QUALIFIER&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;8)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//INVERTED QUALIFIER: CS ACTIVE WHEN LOW&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define EXT_CLK_ENABLE&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//EXTERNAL PIN&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CLK_SOURCE_PIN_MODE (3&amp;lt;&amp;lt;1)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//SGPIO11&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define QUALIFIER_MODE&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(3&amp;lt;&amp;lt;5)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//EXTERNAL SGPIO&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define QUALIFIER_PIN_MODE&amp;nbsp;&amp;nbsp; &amp;nbsp;(2&amp;lt;&amp;lt;7)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//SGPIO10&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CONCAT_ENABLE &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;11)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//ENABLE&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CONCAT_ORDER&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;12)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//2 SLICES&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;PRESET[sliceD] =&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;PRESET[sliceO] = 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;COUNT[sliceD] =&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;COUNT[sliceO] = 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SLICE_MUX_CFG[sliceD] =&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SLICE_MUX_CFG[sliceO] = CLK_CAPTURE_MODE | CLKGEN_EXT | INV_QUALIFIER;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SGPIO_MUX_CFG[sliceD] = EXT_CLK_ENABLE | CLK_SOURCE_PIN_MODE | QUALIFIER_MODE | QUALIFIER_PIN_MODE | CONCAT_ORDER;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SGPIO_MUX_CFG[sliceO] = EXT_CLK_ENABLE | CLK_SOURCE_PIN_MODE | QUALIFIER_MODE | QUALIFIER_PIN_MODE | CONCAT_ENABLE | CONCAT_ORDER;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;POS[sliceD] =&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;POS[sliceO] = ((0x20*2-1)&amp;lt;&amp;lt;8) | (0x20*2-1);&amp;nbsp;&amp;nbsp; &amp;nbsp;//POS &amp;amp; PRESET&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SET_EN_1 = 1&amp;lt;&amp;lt;sliceD;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//interrupt ONLY when slice 3/D switches data register&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable counter under test to start pixel stream generation */&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;CTRL_ENABLED = (1&amp;lt;&amp;lt;sliceD) | (1&amp;lt;&amp;lt;sliceO);&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;int main(void)&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Disable interrupts&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm volatile ("cpsid i");&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // equivalent to CMSIS '__disable_irq()' function&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;setupHardware();&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize the IPC Queue */&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;IPCEX_Init();&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_SetPriority(SGPIO_INT_IRQn,0);&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear all pending interrupts in the NVIC&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile unsigned int *NVIC_ICPR = (unsigned int *) 0xE000E280;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int irqpendloop;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (irqpendloop = 0; irqpendloop &amp;lt; 8; irqpendloop++) {&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(NVIC_ICPR + irqpendloop) = 0xFFFFFFFF;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Vector table relocated to ram32&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;memcpy(SRAM_VECTOR_TABLE, (uint32_t*)0x0, VECTOR_TABLE_SIZE_8);&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SCB-&amp;gt;VTOR = (uint32_t)SRAM_VECTOR_TABLE;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//offset&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;*(SRAM_VECTOR_TABLE + 47) = (uint32_t)SGPIO_IRQHandler;&amp;nbsp;&amp;nbsp; &amp;nbsp;//47=16+31&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reenable interrupts&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm volatile ("cpsie i");&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // equivalent to CMSIS '__enable_irq()' function&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Setup SGPIO&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;setup_SGPIO_capture();&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//NVIC_ClearPendingIRQ(SGPIO_INT_IRQn);&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_EnableIRQ(SGPIO_INT_IRQn);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Enable SGPIO Interrupt&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (1) {&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MSleep(10);&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 27 Apr 2017 04:59:33 GMT</pubDate>
    <dc:creator>filippoguerzoni</dc:creator>
    <dc:date>2017-04-27T04:59:33Z</dc:date>
    <item>
      <title>SGPIO as SIMPLEX SLAVE SPI</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SGPIO-as-SIMPLEX-SLAVE-SPI/m-p/647669#M25680</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;on the M4 core of a board with LPC4357, I would like to implement SGPIO to get data&amp;nbsp;at 5MHz as SIMPLEX SLAVE SPI (unidirectional stream, MISO not involved).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my configuration:&lt;/P&gt;&lt;P&gt;SPI_CLK -&amp;gt; SGPIO11, SPI_CS -&amp;gt; SGPIO10 (qualifier), SPI_MOSI -&amp;gt; SGPIO12&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I cannot make SGPIO slices work to get serial data in. Watching at LPC_SGPIO regs in debug (setting breakpoints) reveals that POS is never decremented. So the swap between REG and REG_SS does not happen and my SGPIO_handler IRS is never called.&lt;/P&gt;&lt;P&gt;I double cheked that external signals reach the MCU setting those pins as standard GPIOs in multiplexer. They are able to fire related GPIO_handler ISRs.&lt;/P&gt;&lt;P&gt;Maybe I'm missing something in SGPIO configuration. I tried both single (D slice) and concatenated slices (D+O slices) without success.&lt;/P&gt;&lt;P&gt;In the following my source code and attached the screenshot with input signals.&lt;/P&gt;&lt;P&gt;I would like to know what's happening.&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;void setup_SGPIO_capture(void) {&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Connect SGPIO clock to Main_PLL&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chip_Clock_SetBaseClock(CLK_BASE_PERIPH, CLKIN_MAINPLL, true, false);&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SGPIO-&amp;gt;CLR_EN_0&amp;nbsp;&amp;nbsp; &amp;nbsp;= 0xffff;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// disable interrupting on clock&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SGPIO-&amp;gt;CLR_EN_1&amp;nbsp;&amp;nbsp; &amp;nbsp;= 0xffff;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// disable interrupting on clock&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Disable all counters (should be in this state after reset but just make sure) */&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;CTRL_ENABLED = 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Set all pins as input */&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;GPIO_OENREG = 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CLK_CAPTURE_MODE&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;1)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//CLOCK FALLING EDGE&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CLKGEN_EXT&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;2)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//EXTERNAL CLOCK&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define INV_QUALIFIER&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;8)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//INVERTED QUALIFIER: CS ACTIVE WHEN LOW&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define EXT_CLK_ENABLE&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//EXTERNAL PIN&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CLK_SOURCE_PIN_MODE (3&amp;lt;&amp;lt;1)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//SGPIO11&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define QUALIFIER_MODE&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(3&amp;lt;&amp;lt;5)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//EXTERNAL SGPIO&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define QUALIFIER_PIN_MODE&amp;nbsp;&amp;nbsp; &amp;nbsp;(2&amp;lt;&amp;lt;7)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//SGPIO10&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CONCAT_ENABLE &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;11)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//ENABLE&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;#define CONCAT_ORDER&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(1&amp;lt;&amp;lt;12)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//2 SLICES&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;PRESET[sliceD] =&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;PRESET[sliceO] = 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;COUNT[sliceD] =&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;COUNT[sliceO] = 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SLICE_MUX_CFG[sliceD] =&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SLICE_MUX_CFG[sliceO] = CLK_CAPTURE_MODE | CLKGEN_EXT | INV_QUALIFIER;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SGPIO_MUX_CFG[sliceD] = EXT_CLK_ENABLE | CLK_SOURCE_PIN_MODE | QUALIFIER_MODE | QUALIFIER_PIN_MODE | CONCAT_ORDER;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SGPIO_MUX_CFG[sliceO] = EXT_CLK_ENABLE | CLK_SOURCE_PIN_MODE | QUALIFIER_MODE | QUALIFIER_PIN_MODE | CONCAT_ENABLE | CONCAT_ORDER;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;POS[sliceD] =&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;POS[sliceO] = ((0x20*2-1)&amp;lt;&amp;lt;8) | (0x20*2-1);&amp;nbsp;&amp;nbsp; &amp;nbsp;//POS &amp;amp; PRESET&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;SET_EN_1 = 1&amp;lt;&amp;lt;sliceD;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//interrupt ONLY when slice 3/D switches data register&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enable counter under test to start pixel stream generation */&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LPC_SGPIO-&amp;gt;CTRL_ENABLED = (1&amp;lt;&amp;lt;sliceD) | (1&amp;lt;&amp;lt;sliceO);&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;int main(void)&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Disable interrupts&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm volatile ("cpsid i");&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // equivalent to CMSIS '__disable_irq()' function&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;setupHardware();&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Initialize the IPC Queue */&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;IPCEX_Init();&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_SetPriority(SGPIO_INT_IRQn,0);&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear all pending interrupts in the NVIC&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile unsigned int *NVIC_ICPR = (unsigned int *) 0xE000E280;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int irqpendloop;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (irqpendloop = 0; irqpendloop &amp;lt; 8; irqpendloop++) {&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(NVIC_ICPR + irqpendloop) = 0xFFFFFFFF;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Vector table relocated to ram32&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;memcpy(SRAM_VECTOR_TABLE, (uint32_t*)0x0, VECTOR_TABLE_SIZE_8);&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SCB-&amp;gt;VTOR = (uint32_t)SRAM_VECTOR_TABLE;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//offset&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;*(SRAM_VECTOR_TABLE + 47) = (uint32_t)SGPIO_IRQHandler;&amp;nbsp;&amp;nbsp; &amp;nbsp;//47=16+31&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reenable interrupts&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm volatile ("cpsie i");&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // equivalent to CMSIS '__enable_irq()' function&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Setup SGPIO&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;setup_SGPIO_capture();&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//NVIC_ClearPendingIRQ(SGPIO_INT_IRQn);&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_EnableIRQ(SGPIO_INT_IRQn);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Enable SGPIO Interrupt&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (1) {&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MSleep(10);&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Apr 2017 04:59:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SGPIO-as-SIMPLEX-SLAVE-SPI/m-p/647669#M25680</guid>
      <dc:creator>filippoguerzoni</dc:creator>
      <dc:date>2017-04-27T04:59:33Z</dc:date>
    </item>
    <item>
      <title>Re: SGPIO as SIMPLEX SLAVE SPI</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SGPIO-as-SIMPLEX-SLAVE-SPI/m-p/647670#M25681</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Code is fine, maybe it was a compilation issue.&lt;/P&gt;&lt;P&gt;Rebuilding everything fixed it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Apr 2017 07:30:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SGPIO-as-SIMPLEX-SLAVE-SPI/m-p/647670#M25681</guid>
      <dc:creator>filippoguerzoni</dc:creator>
      <dc:date>2017-04-28T07:30:44Z</dc:date>
    </item>
  </channel>
</rss>

