<?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 LPC1778 SPI Transmission in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SPI-Transmission/m-p/519679#M3288</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lewy on Fri Oct 17 03:53:40 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have encountered a complicated problem during boot up of my company's new PCB board. I hope someone had similar issue and can provide me with an advice.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Briefly:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I use SSP1 module in SPI mode. Here is setup 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;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINSEL_ConfigPin(0, 7, 2);
PINSEL_ConfigPin(0, 8, 2);
PINSEL_ConfigPin(0, 9, 2);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP_CFG_Type t_Config;

t_Config.Databit = SSP_DATABIT_8;
t_Config.CPHA = SSP_CPHA_FIRST;
t_Config.CPOL = SSP_CPOL_HI;
t_Config.Mode = SSP_MASTER_MODE;
t_Config.FrameFormat = SSP_FRAME_SPI;
t_Config.ClockRate = freq;

SSP_Init(LPC_SSP1, &amp;amp;t_Config);
SSP_Cmd(LPC_SSP1, ENABLE);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Because I had some communication issues with SD card thru SPI interface I have disconnected SCK0 MOSI0 MISO0 from everything except pull-ups (47k). I have shorted MOSI and MISO on mcu pins.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the code I use to test correctness of received bytes:&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u32 freq = 15000000;
FsSpiInit(freq);
u8 data = 0;
const u8 dataPat = 0xaa;
for( ;; ) {

LPC_SSP1-&amp;gt;DR = dataPat;
while (LPC_SSP1-&amp;gt;SR &amp;amp; 0x10) 
&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; {}
data = LPC_SSP1-&amp;gt;DR;

if (data != dataPat) {
Led2On();
RtosDelayMs(100);
Led2Off();
}
else {
Led1On();
RtosDelayMs(100);
Led1Off();
}

if (JP0GetState() == 0) {
if (freq == 30000000) {
freq = 5000000;
}
else {
freq += 5000000;
}
FsSpiInit(freq);
}
RtosDelayMs(5);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And here is the magic stuff:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When freq is equal or bellow 15MHz everything is fine but at 20MHz every bit change 0-&amp;gt;1 produces 0 as received bit &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;etc: xF8-&amp;gt;xF8, x8F-&amp;gt;x87, xAA-&amp;gt;x80, xFF-&amp;gt;xFF, x7F-&amp;gt;x3F, x67-&amp;gt;x23 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is regular and happens all the time at 20MHz. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What is most interesting is that the signals on SCK MOSI and MISO all 100% all right. Amplitudes, setup and hold times are in specification range. I have checked each bit with oscilloscope at 10ns sec/div. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have also checked the GND and 3V3&amp;nbsp; and the overshot and undershot are 0,2V which is all right I think. I tried to change mcu clock (120,108, 72, 60) as PCLK (120,60,108,54,18-the SCK was 18MHz and still the same error occurs)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have 3 prototypes of the PCB and each behaves the same way. The LPC1778 are rev E. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have lost whole week trying to find the answer. I will appreciate any help&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:41:10 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:41:10Z</dc:date>
    <item>
      <title>LPC1778 SPI Transmission</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SPI-Transmission/m-p/519679#M3288</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lewy on Fri Oct 17 03:53:40 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have encountered a complicated problem during boot up of my company's new PCB board. I hope someone had similar issue and can provide me with an advice.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Briefly:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I use SSP1 module in SPI mode. Here is setup 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;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINSEL_ConfigPin(0, 7, 2);
PINSEL_ConfigPin(0, 8, 2);
PINSEL_ConfigPin(0, 9, 2);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSP_CFG_Type t_Config;

t_Config.Databit = SSP_DATABIT_8;
t_Config.CPHA = SSP_CPHA_FIRST;
t_Config.CPOL = SSP_CPOL_HI;
t_Config.Mode = SSP_MASTER_MODE;
t_Config.FrameFormat = SSP_FRAME_SPI;
t_Config.ClockRate = freq;

SSP_Init(LPC_SSP1, &amp;amp;t_Config);
SSP_Cmd(LPC_SSP1, ENABLE);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Because I had some communication issues with SD card thru SPI interface I have disconnected SCK0 MOSI0 MISO0 from everything except pull-ups (47k). I have shorted MOSI and MISO on mcu pins.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the code I use to test correctness of received bytes:&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u32 freq = 15000000;
FsSpiInit(freq);
u8 data = 0;
const u8 dataPat = 0xaa;
for( ;; ) {

LPC_SSP1-&amp;gt;DR = dataPat;
while (LPC_SSP1-&amp;gt;SR &amp;amp; 0x10) 
&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; {}
data = LPC_SSP1-&amp;gt;DR;

if (data != dataPat) {
Led2On();
RtosDelayMs(100);
Led2Off();
}
else {
Led1On();
RtosDelayMs(100);
Led1Off();
}

if (JP0GetState() == 0) {
if (freq == 30000000) {
freq = 5000000;
}
else {
freq += 5000000;
}
FsSpiInit(freq);
}
RtosDelayMs(5);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And here is the magic stuff:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When freq is equal or bellow 15MHz everything is fine but at 20MHz every bit change 0-&amp;gt;1 produces 0 as received bit &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;etc: xF8-&amp;gt;xF8, x8F-&amp;gt;x87, xAA-&amp;gt;x80, xFF-&amp;gt;xFF, x7F-&amp;gt;x3F, x67-&amp;gt;x23 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is regular and happens all the time at 20MHz. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What is most interesting is that the signals on SCK MOSI and MISO all 100% all right. Amplitudes, setup and hold times are in specification range. I have checked each bit with oscilloscope at 10ns sec/div. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have also checked the GND and 3V3&amp;nbsp; and the overshot and undershot are 0,2V which is all right I think. I tried to change mcu clock (120,108, 72, 60) as PCLK (120,60,108,54,18-the SCK was 18MHz and still the same error occurs)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have 3 prototypes of the PCB and each behaves the same way. The LPC1778 are rev E. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have lost whole week trying to find the answer. I will appreciate any help&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:41:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SPI-Transmission/m-p/519679#M3288</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:41:10Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1778 SPI Transmission</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SPI-Transmission/m-p/519680#M3289</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lewy on Mon Oct 27 02:14:11 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have an update to the issue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It seems that the SSP1 module has problems receiving data at frequency over 15MHz in SPI mode. There is no issue with SSP0 module working with the same hardware configuration. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Has anyone experienced similar problems with SSP1? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The PCB is cut down to minimal configuration (power, crystal) with MOSI1 connected directly to MISO1.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:41:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1778-SPI-Transmission/m-p/519680#M3289</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:41:11Z</dc:date>
    </item>
  </channel>
</rss>

