<?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: External Bus Interface on MC9S12XDP512 in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/External-Bus-Interface-on-MC9S12XDP512/m-p/379195#M10801</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;I am not sure you have read AN2708 &lt;A href="http://www.freescale.com/files/microcontrollers/doc/app_note/AN2708.pdf" title="http://www.freescale.com/files/microcontrollers/doc/app_note/AN2708.pdf"&gt;http://www.freescale.com/files/microcontrollers/doc/app_note/AN2708.pdf&lt;/A&gt; and real examples &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-93594"&gt;https://community.freescale.com/docs/DOC-93594&lt;/A&gt; but it could help you to better understand.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Especially page 11, you will see word read and write from even and odd addresses with 3 stretch cycles.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;In reality the MCU is 8bit. The memory you have connected to the MCU is not able to be addresed by bytes so I do not know application reason of your flash - code or data. If it is code then I see issue because you are not able to access bytes of the external memory. For this purpose memory with UDS and LDS pins should be used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So:&lt;/P&gt;&lt;P&gt;*((unsigned int *far) 0x200001) reads word from bytes 0x200001,0x200002&lt;/P&gt;&lt;P&gt;*((unsigned int *far) 0x200002) reads word from bytes 0x200002,0x200003&lt;/P&gt;&lt;P&gt;*((unsigned int *far) 0x200003) reads word from bytes 0x200003,0x200004&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The result is that if you read word from odd address (misaligned access) then the access is split into two phases. One reads upper byte of the result word from lower address of aligned word and the second reads lower byte of the result word from upper address of aligned word at higher address. Probably complicated explanation, so=&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;address&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;&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; 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; 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; 2&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; 3&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; 4&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; 5&lt;/P&gt;&lt;P&gt;aligned words address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W0H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W0L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W1H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W1L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W2H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W2L&lt;/P&gt;&lt;P&gt;misaligned words address&amp;nbsp;&amp;nbsp;&amp;nbsp; x&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; W0H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W0L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W1H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W1L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W2H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W2L&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The word access to the bus is always aligned so reading of the word from misaligned address is split into two phases.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Best Regards, Ladislav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Nov 2014 19:21:35 GMT</pubDate>
    <dc:creator>lama</dc:creator>
    <dc:date>2014-11-05T19:21:35Z</dc:date>
    <item>
      <title>External Bus Interface on MC9S12XDP512</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/External-Bus-Interface-on-MC9S12XDP512/m-p/379194#M10800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hallo,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I use the external bus interface of the MC9S12XDP512 Microcontroller to connect an external Flash. The flash is a 32Mbit, organized as 2Mx16, memory (SST39VF3201B). The following pins are connected with the controller pins (Show attachment).&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Following settings are made in software:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;MMCCTL0 = 0x02; // Enable \CS1&lt;/P&gt;&lt;P&gt;MMCCTL1 = 0x01 // Enable the Flash or ROM in the memory map&lt;/P&gt;&lt;P&gt;MODE = 0xA0; // Normal expanded mode - bus enabled&lt;/P&gt;&lt;P&gt;EBICTL0 = 0x36; // High byte enable and ADDR21:1&lt;/P&gt;&lt;P&gt;EBICTL1 = 0x02; // Stretch = 3cycles&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;When I read from memory, following happens:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unsigned int data = *((unsigned int *far)0x200001);&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-&amp;gt; ADDR1 is set to 1&amp;nbsp; -&amp;gt; OK&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unsigned int data = *((unsigned int *far)0x200002);&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-&amp;gt; ADDR1 is set to 0&amp;nbsp; -&amp;gt; OK&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-&amp;gt; ADDR2 is set to 0&amp;nbsp; -&amp;gt; Why not 1?&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unsigned int data = *((unsigned int *far)0x200003);&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-&amp;gt; ADDR1 is set to 0&amp;nbsp; -&amp;gt; Why not 1?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-&amp;gt; ADDR2 is set to 1&amp;nbsp; -&amp;gt; OK&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there something wrong?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Nov 2014 08:12:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/External-Bus-Interface-on-MC9S12XDP512/m-p/379194#M10800</guid>
      <dc:creator>manuelschmidber</dc:creator>
      <dc:date>2014-11-05T08:12:16Z</dc:date>
    </item>
    <item>
      <title>Re: External Bus Interface on MC9S12XDP512</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/External-Bus-Interface-on-MC9S12XDP512/m-p/379195#M10801</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;I am not sure you have read AN2708 &lt;A href="http://www.freescale.com/files/microcontrollers/doc/app_note/AN2708.pdf" title="http://www.freescale.com/files/microcontrollers/doc/app_note/AN2708.pdf"&gt;http://www.freescale.com/files/microcontrollers/doc/app_note/AN2708.pdf&lt;/A&gt; and real examples &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-93594"&gt;https://community.freescale.com/docs/DOC-93594&lt;/A&gt; but it could help you to better understand.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Especially page 11, you will see word read and write from even and odd addresses with 3 stretch cycles.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;In reality the MCU is 8bit. The memory you have connected to the MCU is not able to be addresed by bytes so I do not know application reason of your flash - code or data. If it is code then I see issue because you are not able to access bytes of the external memory. For this purpose memory with UDS and LDS pins should be used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So:&lt;/P&gt;&lt;P&gt;*((unsigned int *far) 0x200001) reads word from bytes 0x200001,0x200002&lt;/P&gt;&lt;P&gt;*((unsigned int *far) 0x200002) reads word from bytes 0x200002,0x200003&lt;/P&gt;&lt;P&gt;*((unsigned int *far) 0x200003) reads word from bytes 0x200003,0x200004&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The result is that if you read word from odd address (misaligned access) then the access is split into two phases. One reads upper byte of the result word from lower address of aligned word and the second reads lower byte of the result word from upper address of aligned word at higher address. Probably complicated explanation, so=&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;address&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;&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; 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; 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; 2&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; 3&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; 4&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; 5&lt;/P&gt;&lt;P&gt;aligned words address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W0H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W0L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W1H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W1L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W2H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W2L&lt;/P&gt;&lt;P&gt;misaligned words address&amp;nbsp;&amp;nbsp;&amp;nbsp; x&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; W0H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W0L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W1H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W1L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W2H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W2L&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The word access to the bus is always aligned so reading of the word from misaligned address is split into two phases.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Best Regards, Ladislav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Nov 2014 19:21:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/External-Bus-Interface-on-MC9S12XDP512/m-p/379195#M10801</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2014-11-05T19:21:35Z</dc:date>
    </item>
  </channel>
</rss>

