<?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のトピックSPI EEPROM - configuration problem ?</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/SPI-EEPROM-configuration-problem/m-p/552299#M12237</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by masterboy on Fri Mar 01 00:57:43 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a problem with configuration and function of SPI on my LPCXpresso LPC1769. I would like to load data from EEPROM (Michrochip 25LC256) to MCU, but I can not load basic command LOAD STATUS REGISTER.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;

#ifdef __USE_CMSIS
#include "LPC17xx.h"
#endif

#include &amp;lt;cr_section_macros.h&amp;gt;
#include &amp;lt;NXP/crp.h&amp;gt;

// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;

int main(void) {

LPC_SC-&amp;gt;CLKSRCSEL = (1 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SOURCE OF CLK (EXT 12 MHz)
LPC_SC-&amp;gt;PLL0CFG = (0 &amp;lt;&amp;lt; 16) | (11 &amp;lt;&amp;lt; 0); // N = 1 a M = 12 (PLL0 = 288 MHz)
LPC_SC-&amp;gt;PLL0CON = (3 &amp;lt;&amp;lt; 0);&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 PLL0
LPC_SC-&amp;gt;PLL0FEED = (0xAA &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CONFIRM SEQUENCE FOR PLL0
LPC_SC-&amp;gt;PLL0FEED = (0x55 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CONFIRM SEQUENCE FOR PLL0
LPC_SC-&amp;gt;CCLKCFG = (2 &amp;lt;&amp;lt; 0);&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; // DIVIDER FOR CPU CLOCK (288 / 3 = 96 MHz)

LPC_SC-&amp;gt;PCONP = (1 &amp;lt;&amp;lt; 8) | (1 &amp;lt;&amp;lt; 15);&amp;nbsp;&amp;nbsp;&amp;nbsp; // CONNECT SPI, GPIO

LPC_GPIO0-&amp;gt;FIODIR = (1 &amp;lt;&amp;lt; 18) | (1 &amp;lt;&amp;lt; 16) | (1 &amp;lt;&amp;lt; 15); // P0.18 (SPI MOSI), P0.16 (SPI SSEL), P0.15 (SPI Clock) =&amp;gt; Vystup

LPC_PINCON-&amp;gt;PINSEL0 = (3 &amp;lt;&amp;lt; 30);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // P0.15 -&amp;gt; SCK (SPI Clock)
LPC_PINCON-&amp;gt;PINSEL1 = (3 &amp;lt;&amp;lt; 4) | (3 &amp;lt;&amp;lt; 2) | (3 &amp;lt;&amp;lt; 0); // P0.18 -&amp;gt; MOSI, P0.17 -&amp;gt; MISO, P0.16 -&amp;gt; SSEL

LPC_SC-&amp;gt;PCLKSEL0 |= (1 &amp;lt;&amp;lt; 16); // DIVIDER OF SPI (1:1)
LPC_SPI-&amp;gt;SPCCR = (24 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp; // DIVIDER SPI Clock (24 =&amp;gt; 96 / 24 = 4 Mhz)
LPC_SPI-&amp;gt;SPCR = (1 &amp;lt;&amp;lt; 5);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SET SPI MASTER

LPC_SPI-&amp;gt;SPDR = 0b00000101;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // READ STATUS REGISTER OF EEPROM
while (!(LPC_SPI-&amp;gt;SPSR &amp;amp; (1 &amp;lt;&amp;lt; 7))); // WAITING TO COMPLETE TRANSFER

while(1) {

}
return 0 ;
}

&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Result of this code is that value of LPC_SPI-&amp;gt;SPDR is 0xFF. I think that is not correct value. Where is a problem?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 23:34:10 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T23:34:10Z</dc:date>
    <item>
      <title>SPI EEPROM - configuration problem ?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/SPI-EEPROM-configuration-problem/m-p/552299#M12237</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by masterboy on Fri Mar 01 00:57:43 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a problem with configuration and function of SPI on my LPCXpresso LPC1769. I would like to load data from EEPROM (Michrochip 25LC256) to MCU, but I can not load basic command LOAD STATUS REGISTER.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;

#ifdef __USE_CMSIS
#include "LPC17xx.h"
#endif

#include &amp;lt;cr_section_macros.h&amp;gt;
#include &amp;lt;NXP/crp.h&amp;gt;

// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;

int main(void) {

LPC_SC-&amp;gt;CLKSRCSEL = (1 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SOURCE OF CLK (EXT 12 MHz)
LPC_SC-&amp;gt;PLL0CFG = (0 &amp;lt;&amp;lt; 16) | (11 &amp;lt;&amp;lt; 0); // N = 1 a M = 12 (PLL0 = 288 MHz)
LPC_SC-&amp;gt;PLL0CON = (3 &amp;lt;&amp;lt; 0);&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 PLL0
LPC_SC-&amp;gt;PLL0FEED = (0xAA &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CONFIRM SEQUENCE FOR PLL0
LPC_SC-&amp;gt;PLL0FEED = (0x55 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CONFIRM SEQUENCE FOR PLL0
LPC_SC-&amp;gt;CCLKCFG = (2 &amp;lt;&amp;lt; 0);&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; // DIVIDER FOR CPU CLOCK (288 / 3 = 96 MHz)

LPC_SC-&amp;gt;PCONP = (1 &amp;lt;&amp;lt; 8) | (1 &amp;lt;&amp;lt; 15);&amp;nbsp;&amp;nbsp;&amp;nbsp; // CONNECT SPI, GPIO

LPC_GPIO0-&amp;gt;FIODIR = (1 &amp;lt;&amp;lt; 18) | (1 &amp;lt;&amp;lt; 16) | (1 &amp;lt;&amp;lt; 15); // P0.18 (SPI MOSI), P0.16 (SPI SSEL), P0.15 (SPI Clock) =&amp;gt; Vystup

LPC_PINCON-&amp;gt;PINSEL0 = (3 &amp;lt;&amp;lt; 30);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // P0.15 -&amp;gt; SCK (SPI Clock)
LPC_PINCON-&amp;gt;PINSEL1 = (3 &amp;lt;&amp;lt; 4) | (3 &amp;lt;&amp;lt; 2) | (3 &amp;lt;&amp;lt; 0); // P0.18 -&amp;gt; MOSI, P0.17 -&amp;gt; MISO, P0.16 -&amp;gt; SSEL

LPC_SC-&amp;gt;PCLKSEL0 |= (1 &amp;lt;&amp;lt; 16); // DIVIDER OF SPI (1:1)
LPC_SPI-&amp;gt;SPCCR = (24 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp; // DIVIDER SPI Clock (24 =&amp;gt; 96 / 24 = 4 Mhz)
LPC_SPI-&amp;gt;SPCR = (1 &amp;lt;&amp;lt; 5);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SET SPI MASTER

LPC_SPI-&amp;gt;SPDR = 0b00000101;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // READ STATUS REGISTER OF EEPROM
while (!(LPC_SPI-&amp;gt;SPSR &amp;amp; (1 &amp;lt;&amp;lt; 7))); // WAITING TO COMPLETE TRANSFER

while(1) {

}
return 0 ;
}

&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Result of this code is that value of LPC_SPI-&amp;gt;SPDR is 0xFF. I think that is not correct value. Where is a problem?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:34:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/SPI-EEPROM-configuration-problem/m-p/552299#M12237</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:34:10Z</dc:date>
    </item>
    <item>
      <title>Re: SPI EEPROM - configuration problem ?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/SPI-EEPROM-configuration-problem/m-p/552300#M12238</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Fri Mar 01 03:34:04 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;Where is a problem? &lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;You don't understand what SPI (or SSP) is ;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Chapter '2.5 Read Status Register Instruction' of 25AA256/25LC256 dataheet shows Figure 2-6: CS low, write 8bits, read 8bits, CS high. You are just writing&amp;nbsp; :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So is there a special reason why you don't use a sample (SSP?) where you can learn how this stuff is working :confused:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:34:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/SPI-EEPROM-configuration-problem/m-p/552300#M12238</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:34:11Z</dc:date>
    </item>
  </channel>
</rss>

