<?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 Re: MPC5675K and parallel GPIO Pad Data In Register in MPC5xxx</title>
    <link>https://community.nxp.com/t5/MPC5xxx/MPC5675K-and-parallel-GPIO-Pad-Data-In-Register/m-p/313013#M384</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Seems there could be timing issue&amp;nbsp; when accessing the external memory. Unless that code is interrupted or other core accesses/modifies “dest” area. If the latter one is not a case, check if there is always enough time between RE assertion and data read (to follow memory specification) and also the time between RE&amp;nbsp; negation and assertion again.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Have you checked the reading with the scope or some analyzer? Try to compare the values in buffer for&amp;nbsp; single reading and for repeated one (use 2 buffers here, do not write to single one). Is the result somehow comparable? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Petr&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Apr 2014 11:07:57 GMT</pubDate>
    <dc:creator>PetrS</dc:creator>
    <dc:date>2014-04-10T11:07:57Z</dc:date>
    <item>
      <title>MPC5675K and parallel GPIO Pad Data In Register</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5675K-and-parallel-GPIO-Pad-Data-In-Register/m-p/313012#M383</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We have an application running in decoupled parallel mode (DPM) on a MPC5675K.&lt;/P&gt;&lt;P&gt;A Samsung K9F1G08 Flash is connected via GPIOs where GPIO[0]..[7] are connected to I/O0..7 of the flash module.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If we read a huge amount of data from the flash device we get a lot of ECC errors and sometimes at least one byte is completely wrong.&lt;/P&gt;&lt;P&gt;While reading the data we use a gpio to toggle RE line of the flash device and read in the data via the parallel GPIO Pad Data In Register 0 (SIUL.PGPDI[0]).&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We tried to read PGPDI[0] twice and the errors are gone like:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void psp_nand_gpio_read ( uint8_t * dest, uint32_t length )&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; RE_HI;&lt;/P&gt;&lt;P&gt;&amp;nbsp; WE_HI;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while ( length-- )&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RE_LO;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait some time. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wait_nand( PULSE_WIDTH );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Read data. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *dest = ( *(volatile uint8_t *)( SIUL_BASE + 0x0C40u ) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *dest++ = ( *(volatile uint8_t *)( SIUL_BASE + 0x0C40u ) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RE_HI;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;} /* psp_nand_gpio_read */&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If we do that we are able to read all bytes without error. If we read only once we will get errors.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The question is what can cause that behaviour?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Apr 2014 13:07:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5675K-and-parallel-GPIO-Pad-Data-In-Register/m-p/313012#M383</guid>
      <dc:creator>CorderBollie</dc:creator>
      <dc:date>2014-04-09T13:07:20Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5675K and parallel GPIO Pad Data In Register</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5675K-and-parallel-GPIO-Pad-Data-In-Register/m-p/313013#M384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Seems there could be timing issue&amp;nbsp; when accessing the external memory. Unless that code is interrupted or other core accesses/modifies “dest” area. If the latter one is not a case, check if there is always enough time between RE assertion and data read (to follow memory specification) and also the time between RE&amp;nbsp; negation and assertion again.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Have you checked the reading with the scope or some analyzer? Try to compare the values in buffer for&amp;nbsp; single reading and for repeated one (use 2 buffers here, do not write to single one). Is the result somehow comparable? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt;"&gt;Petr&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2014 11:07:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5675K-and-parallel-GPIO-Pad-Data-In-Register/m-p/313013#M384</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2014-04-10T11:07:57Z</dc:date>
    </item>
  </channel>
</rss>

