<?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>LPCXpresso IDE中的主题 LPC1768 SSP1 configuration</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1768-SSP1-configuration/m-p/567491#M18905</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by preethi@benengg.com on Thu Jan 03 23:54:38 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have two question on SSP1 of LPC1768&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. We have configured SSP1 as TI SSI for receiving 16 bits of data. We have connected Sclk pin to Clock of salve and MISO pin to Data pin of Slave.We have generated clock to receive data from our slave. If i send the clock then SPDR value is getting updated but RNE bit is not set thus we are not able to read SPDr value. If we send the clock again my SPDR is always 0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Can we read 18 bit data from the SSP1 which is configured as TI SSI with DSS as 9 bit and receiving SPDR value twice.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;int main()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int j;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemInit();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1Init();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;DR=0x0000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSPSend(1,0x0000,16);


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)
&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; }
 }&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void SSP1Init( void )
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t i, Dummy=Dummy;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (0x1&amp;lt;&amp;lt;10);/* Enable AHB clock to the SSP1. */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0 &amp;amp;= ~(0x3&amp;lt;&amp;lt;20);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P0.6~0.9 as SSP1 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;= ~((0x3&amp;lt;&amp;lt;12)|(0x3&amp;lt;&amp;lt;16)|(0x3&amp;lt;&amp;lt;18));
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 |= ((0x2&amp;lt;&amp;lt;12)|(0x2&amp;lt;&amp;lt;16)|(0x2&amp;lt;&amp;lt;18));

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set DSS data to 8-bit, Frame format SPI, CPOL = 0, CPHA = 0, and SCR is 15 */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;CR0 = 0x075F;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SSPCPSR clock prescale register, master mode, minimum divisor is 0x02 */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;CPSR = 0x2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( i = 0; i &amp;lt; FIFOSIZE; i++ )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dummy = LPC_SSP1-&amp;gt;DR;&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; /* clear the RxFIFO */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(SSP1_IRQn); /* Enable the SSP Interrupt */

&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;CR1 = SSPCR1_SSE;/* Master mode *//* Device select as master, SSP Enabled */

&amp;nbsp; /* Set SSPINMS registers to enable interrupts */
&amp;nbsp; /* enable all error related interrupts */
&amp;nbsp; LPC_SSP1-&amp;gt;IMSC = SSPIMSC_RORIM | SSPIMSC_RTIM;
&amp;nbsp; return;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void SSPSend( uint32_t portnum, uint16_t buf)
{
&amp;nbsp; uint32_t i;
&amp;nbsp; uint16_t Dummy = Dummy,receive[9];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( portnum == 1 )
&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; /* Move on only if NOT busy and TX FIFO not full. */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( (LPC_SSP1-&amp;gt;SR &amp;amp; (SSPSR_TNF|SSPSR_BSY)) != SSPSR_TNF );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;DR = buf;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //buf++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #if !LOOPBACK_MODE
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( (LPC_SSP1-&amp;gt;SR &amp;amp; (SSPSR_BSY|SSPSR_RNE)) != SSPSR_RNE );

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;DR=0x0000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; receive[0] = LPC_SSP1-&amp;gt;DR;
#else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until the Busy bit is cleared. */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( LPC_SSP1-&amp;gt;SR &amp;amp; SSPSR_BSY );
#endif
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp; return;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 22:24:53 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T22:24:53Z</dc:date>
    <item>
      <title>LPC1768 SSP1 configuration</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1768-SSP1-configuration/m-p/567491#M18905</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by preethi@benengg.com on Thu Jan 03 23:54:38 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have two question on SSP1 of LPC1768&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. We have configured SSP1 as TI SSI for receiving 16 bits of data. We have connected Sclk pin to Clock of salve and MISO pin to Data pin of Slave.We have generated clock to receive data from our slave. If i send the clock then SPDR value is getting updated but RNE bit is not set thus we are not able to read SPDr value. If we send the clock again my SPDR is always 0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Can we read 18 bit data from the SSP1 which is configured as TI SSI with DSS as 9 bit and receiving SPDR value twice.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;int main()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int j;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemInit();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP1Init();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;DR=0x0000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSPSend(1,0x0000,16);


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)
&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; }
 }&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void SSP1Init( void )
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t i, Dummy=Dummy;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (0x1&amp;lt;&amp;lt;10);/* Enable AHB clock to the SSP1. */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0 &amp;amp;= ~(0x3&amp;lt;&amp;lt;20);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P0.6~0.9 as SSP1 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;= ~((0x3&amp;lt;&amp;lt;12)|(0x3&amp;lt;&amp;lt;16)|(0x3&amp;lt;&amp;lt;18));
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL0 |= ((0x2&amp;lt;&amp;lt;12)|(0x2&amp;lt;&amp;lt;16)|(0x2&amp;lt;&amp;lt;18));

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set DSS data to 8-bit, Frame format SPI, CPOL = 0, CPHA = 0, and SCR is 15 */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;CR0 = 0x075F;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SSPCPSR clock prescale register, master mode, minimum divisor is 0x02 */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;CPSR = 0x2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( i = 0; i &amp;lt; FIFOSIZE; i++ )
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dummy = LPC_SSP1-&amp;gt;DR;&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; /* clear the RxFIFO */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(SSP1_IRQn); /* Enable the SSP Interrupt */

&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;CR1 = SSPCR1_SSE;/* Master mode *//* Device select as master, SSP Enabled */

&amp;nbsp; /* Set SSPINMS registers to enable interrupts */
&amp;nbsp; /* enable all error related interrupts */
&amp;nbsp; LPC_SSP1-&amp;gt;IMSC = SSPIMSC_RORIM | SSPIMSC_RTIM;
&amp;nbsp; return;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void SSPSend( uint32_t portnum, uint16_t buf)
{
&amp;nbsp; uint32_t i;
&amp;nbsp; uint16_t Dummy = Dummy,receive[9];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( portnum == 1 )
&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; /* Move on only if NOT busy and TX FIFO not full. */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( (LPC_SSP1-&amp;gt;SR &amp;amp; (SSPSR_TNF|SSPSR_BSY)) != SSPSR_TNF );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;DR = buf;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //buf++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #if !LOOPBACK_MODE
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( (LPC_SSP1-&amp;gt;SR &amp;amp; (SSPSR_BSY|SSPSR_RNE)) != SSPSR_RNE );

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SSP1-&amp;gt;DR=0x0000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; receive[0] = LPC_SSP1-&amp;gt;DR;
#else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until the Busy bit is cleared. */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( LPC_SSP1-&amp;gt;SR &amp;amp; SSPSR_BSY );
#endif
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp; return;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:24:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1768-SSP1-configuration/m-p/567491#M18905</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:24:53Z</dc:date>
    </item>
  </channel>
</rss>

