<?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>Kinetis Microcontrollers中的主题 Re: Interfacing a K61 to an external SRAM</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252296#M7218</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just for reference - here is the current configuration that I am using for the &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;ISSI IS62WV51216BLL SRAM.&amp;nbsp; The init_hw.c file contains these two functions that I adapted for our custom board.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13914374852499943" jivemacro_uid="_13914374852499943"&gt;
&lt;P&gt;/*FUNCTION*---------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;* &lt;/P&gt;
&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp;&amp;nbsp; : _bsp_flexbus_setup&lt;/P&gt;
&lt;P&gt;* Returned Value&amp;nbsp;&amp;nbsp; :&amp;nbsp; none&lt;/P&gt;
&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; Setup FlexBus pins for early SRAM operation. SRAM is an ISSI IS62WV51216BLL.&lt;/P&gt;
&lt;P&gt;*&lt;/P&gt;
&lt;P&gt;*END*-------------------------------------------------------------------------*/&lt;/P&gt;
&lt;P&gt;static void _bsp_flexbus_setup (void) &lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define ALT5&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; 0x05&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define ALT6&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; 0x06&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define OFF_CHIP_ACCESS_ALLOW&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_MemMapPtr&amp;nbsp; pctl;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MemMapPtr&amp;nbsp;&amp;nbsp; sim = SIM_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FB_MemMapPtr&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr = FB_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable clock to FlexBus module */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sim-&amp;gt;SCGC7 |= SIM_SCGC7_FLEXBUS_MASK;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sim-&amp;gt;CLKDIV1 |= SIM_CLKDIV1_OUTDIV3(0x3);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sim-&amp;gt;SOPT2 |= SIM_SOPT2_FBSL(OFF_CHIP_ACCESS_ALLOW);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl = (PORT_MemMapPtr)PORTB_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[6] =&amp;nbsp; PORT_PCR_MUX( ALT5 ); // fb_ad[23]&amp;nbsp; used as d[7]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[7] =&amp;nbsp; PORT_PCR_MUX( ALT5 ); // fb_ad[22]&amp;nbsp; used as d[6]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[8] =&amp;nbsp; PORT_PCR_MUX( ALT5 ); // fb_ad[21]&amp;nbsp; used as d[5]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[9] =&amp;nbsp; PORT_PCR_MUX( ALT5 ); // fb_ad[20]&amp;nbsp; used as d[4]&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[10] = PORT_PCR_MUX( ALT5 ); // fb_ad[19]&amp;nbsp; used as d[3]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[11] = PORT_PCR_MUX( ALT5 ); // fb_ad[18]&amp;nbsp; used as d[2]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[16] = PORT_PCR_MUX( ALT5 ); // fb_ad[17]&amp;nbsp; used as d[1]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[17] = PORT_PCR_MUX( ALT5 ); // fb_ad[16]&amp;nbsp; used as d[0]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[18] = PORT_PCR_MUX( ALT5 ); // fb_ad[15]&amp;nbsp; used as a[15]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[19] = PORT_PCR_MUX( ALT5 ); // fb_oe_b&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[20] = PORT_PCR_MUX( ALT5 ); // fb_ad[31]&amp;nbsp; used as d[15]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[21] = PORT_PCR_MUX( ALT5 ); // fb_ad[30]&amp;nbsp; used as d[14]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[22] = PORT_PCR_MUX( ALT5 ); // fb_ad[29]&amp;nbsp; used as d[13]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[23] = PORT_PCR_MUX( ALT5 ); // fb_ad[28]&amp;nbsp; used as d[12]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl = (PORT_MemMapPtr)PORTC_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[0]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[14]&amp;nbsp; used as a[14] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[1]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[13]&amp;nbsp; used as a[13] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[2]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[12]&amp;nbsp; used as a[12] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[4]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[11]&amp;nbsp; used as a[11] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[5]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[10]&amp;nbsp; used as a[10] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[6]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[9]&amp;nbsp;&amp;nbsp; used as a[9] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[7]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[8]&amp;nbsp;&amp;nbsp; used as a[8] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[8]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[7]&amp;nbsp;&amp;nbsp; used as a[7]&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[9]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[6]&amp;nbsp;&amp;nbsp; used as a[6] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[10] = PORT_PCR_MUX( ALT5 ); // fb_ad[5]&amp;nbsp;&amp;nbsp; used as a[5] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[11] = PORT_PCR_MUX( ALT5 ); // fb_rw_b&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[12] = PORT_PCR_MUX( ALT5 ); // fb_ad[27]&amp;nbsp; used as d[11] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[13] = PORT_PCR_MUX( ALT5 ); // fb_ad[26]&amp;nbsp; used as d[10] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[14] = PORT_PCR_MUX( ALT5 ); // fb_ad[25]&amp;nbsp; used as d[9]&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[15] = PORT_PCR_MUX( ALT5 ); // fb_ad[24]&amp;nbsp; used as d[8]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[16] = PORT_PCR_MUX( ALT5 ); // fb_BE_23_16&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[17] = PORT_PCR_MUX( ALT5 ); // fb_BE_31_24&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl = (PORT_MemMapPtr)PORTD_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[1]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_cs0_b&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[2]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[4]&amp;nbsp; used as a[4]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[3]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[3]&amp;nbsp; used as a[3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[4]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[2]&amp;nbsp; used as a[2]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[5]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[1]&amp;nbsp; used as a[1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[6]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[0]&amp;nbsp; used as a[0]&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[8]&amp;nbsp; = PORT_PCR_MUX( ALT6 );&amp;nbsp; // fb_a[16]&amp;nbsp; used as a[16]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[9]&amp;nbsp; = PORT_PCR_MUX( ALT6 );&amp;nbsp; // fb_a[17]&amp;nbsp; used as a[17]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[10] = PORT_PCR_MUX( ALT6 );&amp;nbsp; // fb_a[18]&amp;nbsp; used as a[18]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable BE signals&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr-&amp;gt;CSPMCR = FB_CSPMCR_GROUP2(2);&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr-&amp;gt;CSPMCR |= FB_CSPMCR_GROUP3(2);&amp;nbsp; &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13914374641276777" jivemacro_uid="_13914374641276777" modifiedtitle="true"&gt;
&lt;P&gt;/*FUNCTION*---------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;*&lt;/P&gt;
&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp;&amp;nbsp; : _bsp_flexbus_sram_setup&lt;/P&gt;
&lt;P&gt;* Returned Value&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; Setup FlexBus for SRAM operation&lt;/P&gt;
&lt;P&gt;*&lt;/P&gt;
&lt;P&gt;*END*-------------------------------------------------------------------------*/&lt;/P&gt;
&lt;P&gt;static void _bsp_flexbus_sram_setup (const uint_32 base_address)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define ALT1&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; 0x01&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FB_MemMapPtr fb_ptr = FB_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_MemMapPtr pctl;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable external MRAM mapped on CS0 */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS0 base address */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr-&amp;gt;CS[0].CSAR = base_address;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS0 control */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr-&amp;gt;CS[0].CSCR = FB_CSCR_AA_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&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; FB_CSCR_ASET( 0x1 ) |&amp;nbsp;&amp;nbsp; // assert chip select on second clock edge after address is asserted&lt;/P&gt;
&lt;P&gt;&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; FB_CSCR_WS( 0x1 )&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; // wait state&lt;/P&gt;
&lt;P&gt;&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; FB_CSCR_PS( 2 )&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; // 16-bit data port width&lt;/P&gt;
&lt;P&gt;&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; FB_CSCR_BEM_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS0 address mask and enable */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FB_CSMR0 = FB_CSMR_BAM( 0x0007 ) |&amp;nbsp; // Set base address mask&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&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; FB_CSMR_V_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable cs signal&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // External SRAM CS2 control line.&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Control the ISSI CS2 line as a GPIO - set it high and leave it there.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl = (PORT_MemMapPtr)PORTD_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[0] = PORT_PCR_MUX(ALT1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin for GPIO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOD_PDOR |= ( 1UL &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; // set output off&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOD_PDDR |= ( 1UL &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; // enable/set as Output&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOD_PSOR = ( 1UL &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; // set the output high&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 03 Feb 2014 14:26:07 GMT</pubDate>
    <dc:creator>gorakk</dc:creator>
    <dc:date>2014-02-03T14:26:07Z</dc:date>
    <item>
      <title>Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252293#M7215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am attempting to use an ISSI external SRAM with a Kinetis K61.&amp;nbsp; The SRAM is the IS62WV51216BLL - 8M bit organized as 512K words by 16 bits.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The connections are non-multiplexed - 16 bits data, 19 bits address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is partially working at this point - I can address data up to 0x6003FFFF.&amp;nbsp; Attempting to access something at 0x60040000 or above fails - a hard fault.&amp;nbsp; My first thought is that at 0x60040000 the FB_A16 line is used&amp;nbsp; - and FB_A16 falls out of the "normal" FlexBus range.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have code to configure pins as FB_A16, FB_A17, and FB_A18 but I am unsure if something else needs to be configured as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone have any suggestions?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MCU to SRAM connections:&lt;/P&gt;&lt;P&gt;Data Lines&lt;/P&gt;&lt;P&gt;MCU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRAM&lt;/P&gt;&lt;P&gt;FB_AD16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O0&lt;/P&gt;&lt;P&gt;FB_AD17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O1&lt;/P&gt;&lt;P&gt;FB_AD18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;FB_AD19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O3&lt;/P&gt;&lt;P&gt;FB_AD20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O4&lt;/P&gt;&lt;P&gt;FB_AD21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O5&lt;/P&gt;&lt;P&gt;FB_AD22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O6&lt;/P&gt;&lt;P&gt;FB_AD23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O7&lt;/P&gt;&lt;P&gt;FB_AD24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O8&lt;/P&gt;&lt;P&gt;FB_AD25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O9&lt;/P&gt;&lt;P&gt;FB_AD26&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O10&lt;/P&gt;&lt;P&gt;FB_AD27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O11&lt;/P&gt;&lt;P&gt;FB_AD28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O12&lt;/P&gt;&lt;P&gt;FB_AD29&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O13&lt;/P&gt;&lt;P&gt;FB_AD30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O14&lt;/P&gt;&lt;P&gt;FB_AD31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O15&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Address Lines&lt;/P&gt;&lt;P&gt;MCU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SRAM&lt;/P&gt;&lt;P&gt;FB_AD0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A0&lt;/P&gt;&lt;P&gt;FB_AD1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A1&lt;/P&gt;&lt;P&gt;FB_AD2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A2&lt;/P&gt;&lt;P&gt;FB_AD3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A3&lt;/P&gt;&lt;P&gt;FB_AD4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A4&lt;/P&gt;&lt;P&gt;FB_AD5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A5&lt;/P&gt;&lt;P&gt;FB_AD6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A6&lt;/P&gt;&lt;P&gt;FB_AD7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A7&lt;/P&gt;&lt;P&gt;FB_AD8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A8&lt;/P&gt;&lt;P&gt;FB_AD9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A9&lt;/P&gt;&lt;P&gt;FB_AD10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A10&lt;/P&gt;&lt;P&gt;FB_AD11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A11&lt;/P&gt;&lt;P&gt;FB_AD12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A12&lt;/P&gt;&lt;P&gt;FB_AD13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A13&lt;/P&gt;&lt;P&gt;FB_AD14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A14&lt;/P&gt;&lt;P&gt;FB_AD15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A15&lt;/P&gt;&lt;P&gt;FB_A16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A16&amp;nbsp; |&lt;/P&gt;&lt;P&gt;FB_A17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A17&amp;nbsp; | - notice these are connected to "FB_A" and not "FB_AD"&lt;/P&gt;&lt;P&gt;FB_A18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A18&amp;nbsp; |&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the initialization code - it is based upon a FlexBus example found in the CodeWarrior MCU 10.1 Software Examples.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define SRAM_START_ADDRESS (*(volatile uint32_t*)(0x60000000))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//#define SRAM_MEMORY_WORDS&amp;nbsp;&amp;nbsp; 0x00040000&amp;nbsp;&amp;nbsp; // this gives a hard fault&lt;/P&gt;&lt;P&gt;#define SRAM_MEMORY_WORDS&amp;nbsp;&amp;nbsp; 0x0003FFFF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // this works&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void FlexbusInit(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC5 |= SIM_SCGC5_PORTB_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable Clock to PORTB&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC5 |= SIM_SCGC5_PORTC_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable Clock to PORTC&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC5 |= SIM_SCGC5_PORTD_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable Clock to PORTD&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;SCGC7 |= SIM_SCGC7_FLEXBUS_MASK;&amp;nbsp; // Enable the FlexBus controller clock&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // Set Base address&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB-&amp;gt;CS[0].CSAR = (uint32_t)&amp;amp;SRAM_START_ADDRESS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; FB-&amp;gt;CS[0].CSCR&amp;nbsp; =&amp;nbsp;&amp;nbsp; FB_CSCR_PS(2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 16-bit data port width&lt;/P&gt;&lt;P&gt;&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; | FB_CSCR_AA_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp; // auto-acknowledge&lt;/P&gt;&lt;P&gt;&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; | FB_CSCR_ASET(0x1)&amp;nbsp; // assert chip select on second clock edge after address is asserted&lt;/P&gt;&lt;P&gt;&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; | FB_CSCR_WS(0x1)&amp;nbsp;&amp;nbsp;&amp;nbsp; // 1 wait state&lt;/P&gt;&lt;P&gt;&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; | FB_CSCR_BEM_MASK&amp;nbsp;&amp;nbsp; // Byte-enable mode - byte enable signals are asserted&lt;/P&gt;&lt;P&gt;&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; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB-&amp;gt;CS[0].CSMR&amp;nbsp; =&amp;nbsp;&amp;nbsp; FB_CSMR_BAM(0x000F)&amp;nbsp; //Set base address mask for 1Mbyte address space&lt;/P&gt;&lt;P&gt;&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; | FB_CSMR_V_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable cs signal&lt;/P&gt;&lt;P&gt;&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; ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Enable BE signals&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB-&amp;gt;CSPMCR = 0x02200000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // fb clock divider 3&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM-&amp;gt;CLKDIV1 |= SIM_CLKDIV1_OUTDIV3(0x3);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // Address lines &lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[10] = (6UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_a[18]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[9]&amp;nbsp; = (6UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_a[17]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[8]&amp;nbsp; = (6UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_a[16]&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[18] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[15]&amp;nbsp; &amp;lt; - able to address up to here right now...&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[0]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[14]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[1]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[13]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[2]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[12]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[4]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[11]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[5]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[10]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[6]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[9]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[7]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[8]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[8]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[7]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[9]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[6]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[10] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[5]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[2]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[4]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[3]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[3]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[4]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[2]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[5]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[1]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[6]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[0]&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // Data lines&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[20] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[31] used as d[15]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[21] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[30] used as d[14]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[22] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[29] used as d[13]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[23] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[28] used as d[12]&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[12] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[27] used as d[11]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[13] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[26] used as d[10]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[14] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[25] used as d[9]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[15] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[24] used as d[8]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[6]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[23] used as d[7]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[7]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[22] used as d[6]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[8]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[21] used as d[5]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[9]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[20] used as d[4]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[10] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[19] used as d[3]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[11] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[18] used as d[2]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[16] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[17] used as d[1]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[17] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; fb_ad[16] used as d[0]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Control signals&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB-&amp;gt;PCR[19] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fb_oe_b&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[11] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fb_rw_b&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[1]&amp;nbsp; = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fb_cs0_b&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[17] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fb_BE15_8 UpperByte&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC-&amp;gt;PCR[16] = (5UL &amp;lt;&amp;lt;&amp;nbsp; 8);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fb_BE7_0 LowerByte&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Control the ISSI CS2 line as a GPIO - set it high and leave it there.&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD-&amp;gt;PCR[0]&amp;nbsp; = (1UL &amp;lt;&amp;lt;&amp;nbsp; 8);&lt;/P&gt;&lt;P&gt;&amp;nbsp; PTD-&amp;gt;PDOR |= 1UL &amp;lt;&amp;lt; 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; PTD-&amp;gt;PDDR |= 1UL &amp;lt;&amp;lt; 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; PTD-&amp;gt;PSOR = 1UL &amp;lt;&amp;lt; 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;from the function that accesses the memory - hard fault once 0x60040000 is accessed...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FlexbusInit();&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; printf( "\nClearing memory area...\n" );&lt;/P&gt;&lt;P&gt;&amp;nbsp; for( n = 0x00000000; n &amp;lt;= SRAM_MEMORY_WORDS; n++ )&amp;nbsp; // address offset&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint32_t*)( &amp;amp;SRAM_START_ADDRESS + n ) = 0x00;&amp;nbsp; // write&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf( "Memory clear complete\n" );&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Apr 2013 21:19:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252293#M7215</guid>
      <dc:creator>gorakk</dc:creator>
      <dc:date>2013-04-04T21:19:24Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252294#M7216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;An update on this issue - changing the Base Address Mask to 0x001F corrected the issue.&amp;nbsp; I can now address the entire SRAM. :smileyhappy:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I still don't understand why setting it to 0x000F as shown in the original post&amp;nbsp; didn't work.&amp;nbsp; The correct bits should have been masked?&amp;nbsp; If anyone has some insight to share it would be appreciated.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Apr 2013 16:03:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252294#M7216</guid>
      <dc:creator>gorakk</dc:creator>
      <dc:date>2013-04-08T16:03:36Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252295#M7217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Some processors decode the lower address bit(s) into byte selection lines. Maybe the flexbus address is a 32 bit word address and you could wire your SRAM in a way that lets you access bytes using those byte selection lines.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Jun 2013 19:45:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252295#M7217</guid>
      <dc:creator>dieterteuchert</dc:creator>
      <dc:date>2013-06-11T19:45:39Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252296#M7218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just for reference - here is the current configuration that I am using for the &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;ISSI IS62WV51216BLL SRAM.&amp;nbsp; The init_hw.c file contains these two functions that I adapted for our custom board.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13914374852499943" jivemacro_uid="_13914374852499943"&gt;
&lt;P&gt;/*FUNCTION*---------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;* &lt;/P&gt;
&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp;&amp;nbsp; : _bsp_flexbus_setup&lt;/P&gt;
&lt;P&gt;* Returned Value&amp;nbsp;&amp;nbsp; :&amp;nbsp; none&lt;/P&gt;
&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; Setup FlexBus pins for early SRAM operation. SRAM is an ISSI IS62WV51216BLL.&lt;/P&gt;
&lt;P&gt;*&lt;/P&gt;
&lt;P&gt;*END*-------------------------------------------------------------------------*/&lt;/P&gt;
&lt;P&gt;static void _bsp_flexbus_setup (void) &lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define ALT5&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; 0x05&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define ALT6&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; 0x06&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define OFF_CHIP_ACCESS_ALLOW&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_MemMapPtr&amp;nbsp; pctl;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MemMapPtr&amp;nbsp;&amp;nbsp; sim = SIM_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FB_MemMapPtr&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr = FB_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable clock to FlexBus module */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sim-&amp;gt;SCGC7 |= SIM_SCGC7_FLEXBUS_MASK;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sim-&amp;gt;CLKDIV1 |= SIM_CLKDIV1_OUTDIV3(0x3);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sim-&amp;gt;SOPT2 |= SIM_SOPT2_FBSL(OFF_CHIP_ACCESS_ALLOW);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl = (PORT_MemMapPtr)PORTB_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[6] =&amp;nbsp; PORT_PCR_MUX( ALT5 ); // fb_ad[23]&amp;nbsp; used as d[7]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[7] =&amp;nbsp; PORT_PCR_MUX( ALT5 ); // fb_ad[22]&amp;nbsp; used as d[6]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[8] =&amp;nbsp; PORT_PCR_MUX( ALT5 ); // fb_ad[21]&amp;nbsp; used as d[5]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[9] =&amp;nbsp; PORT_PCR_MUX( ALT5 ); // fb_ad[20]&amp;nbsp; used as d[4]&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[10] = PORT_PCR_MUX( ALT5 ); // fb_ad[19]&amp;nbsp; used as d[3]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[11] = PORT_PCR_MUX( ALT5 ); // fb_ad[18]&amp;nbsp; used as d[2]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[16] = PORT_PCR_MUX( ALT5 ); // fb_ad[17]&amp;nbsp; used as d[1]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[17] = PORT_PCR_MUX( ALT5 ); // fb_ad[16]&amp;nbsp; used as d[0]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[18] = PORT_PCR_MUX( ALT5 ); // fb_ad[15]&amp;nbsp; used as a[15]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[19] = PORT_PCR_MUX( ALT5 ); // fb_oe_b&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[20] = PORT_PCR_MUX( ALT5 ); // fb_ad[31]&amp;nbsp; used as d[15]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[21] = PORT_PCR_MUX( ALT5 ); // fb_ad[30]&amp;nbsp; used as d[14]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[22] = PORT_PCR_MUX( ALT5 ); // fb_ad[29]&amp;nbsp; used as d[13]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[23] = PORT_PCR_MUX( ALT5 ); // fb_ad[28]&amp;nbsp; used as d[12]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl = (PORT_MemMapPtr)PORTC_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[0]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[14]&amp;nbsp; used as a[14] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[1]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[13]&amp;nbsp; used as a[13] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[2]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[12]&amp;nbsp; used as a[12] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[4]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[11]&amp;nbsp; used as a[11] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[5]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[10]&amp;nbsp; used as a[10] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[6]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[9]&amp;nbsp;&amp;nbsp; used as a[9] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[7]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[8]&amp;nbsp;&amp;nbsp; used as a[8] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[8]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[7]&amp;nbsp;&amp;nbsp; used as a[7]&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[9]&amp;nbsp; = PORT_PCR_MUX( ALT5 ); // fb_ad[6]&amp;nbsp;&amp;nbsp; used as a[6] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[10] = PORT_PCR_MUX( ALT5 ); // fb_ad[5]&amp;nbsp;&amp;nbsp; used as a[5] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[11] = PORT_PCR_MUX( ALT5 ); // fb_rw_b&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[12] = PORT_PCR_MUX( ALT5 ); // fb_ad[27]&amp;nbsp; used as d[11] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[13] = PORT_PCR_MUX( ALT5 ); // fb_ad[26]&amp;nbsp; used as d[10] &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[14] = PORT_PCR_MUX( ALT5 ); // fb_ad[25]&amp;nbsp; used as d[9]&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[15] = PORT_PCR_MUX( ALT5 ); // fb_ad[24]&amp;nbsp; used as d[8]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[16] = PORT_PCR_MUX( ALT5 ); // fb_BE_23_16&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[17] = PORT_PCR_MUX( ALT5 ); // fb_BE_31_24&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl = (PORT_MemMapPtr)PORTD_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[1]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_cs0_b&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[2]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[4]&amp;nbsp; used as a[4]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[3]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[3]&amp;nbsp; used as a[3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[4]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[2]&amp;nbsp; used as a[2]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[5]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[1]&amp;nbsp; used as a[1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[6]&amp;nbsp; = PORT_PCR_MUX( ALT5 );&amp;nbsp; // fb_ad[0]&amp;nbsp; used as a[0]&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[8]&amp;nbsp; = PORT_PCR_MUX( ALT6 );&amp;nbsp; // fb_a[16]&amp;nbsp; used as a[16]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[9]&amp;nbsp; = PORT_PCR_MUX( ALT6 );&amp;nbsp; // fb_a[17]&amp;nbsp; used as a[17]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[10] = PORT_PCR_MUX( ALT6 );&amp;nbsp; // fb_a[18]&amp;nbsp; used as a[18]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable BE signals&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr-&amp;gt;CSPMCR = FB_CSPMCR_GROUP2(2);&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr-&amp;gt;CSPMCR |= FB_CSPMCR_GROUP3(2);&amp;nbsp; &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13914374641276777" jivemacro_uid="_13914374641276777" modifiedtitle="true"&gt;
&lt;P&gt;/*FUNCTION*---------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;*&lt;/P&gt;
&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp;&amp;nbsp; : _bsp_flexbus_sram_setup&lt;/P&gt;
&lt;P&gt;* Returned Value&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;
&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; Setup FlexBus for SRAM operation&lt;/P&gt;
&lt;P&gt;*&lt;/P&gt;
&lt;P&gt;*END*-------------------------------------------------------------------------*/&lt;/P&gt;
&lt;P&gt;static void _bsp_flexbus_sram_setup (const uint_32 base_address)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define ALT1&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; 0x01&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FB_MemMapPtr fb_ptr = FB_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT_MemMapPtr pctl;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable external MRAM mapped on CS0 */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS0 base address */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr-&amp;gt;CS[0].CSAR = base_address;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS0 control */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fb_ptr-&amp;gt;CS[0].CSCR = FB_CSCR_AA_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&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; FB_CSCR_ASET( 0x1 ) |&amp;nbsp;&amp;nbsp; // assert chip select on second clock edge after address is asserted&lt;/P&gt;
&lt;P&gt;&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; FB_CSCR_WS( 0x1 )&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; // wait state&lt;/P&gt;
&lt;P&gt;&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; FB_CSCR_PS( 2 )&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; // 16-bit data port width&lt;/P&gt;
&lt;P&gt;&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; FB_CSCR_BEM_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS0 address mask and enable */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FB_CSMR0 = FB_CSMR_BAM( 0x0007 ) |&amp;nbsp; // Set base address mask&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&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; FB_CSMR_V_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable cs signal&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // External SRAM CS2 control line.&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Control the ISSI CS2 line as a GPIO - set it high and leave it there.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl = (PORT_MemMapPtr)PORTD_BASE_PTR;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pctl-&amp;gt;PCR[0] = PORT_PCR_MUX(ALT1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set pin for GPIO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOD_PDOR |= ( 1UL &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; // set output off&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOD_PDDR |= ( 1UL &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; // enable/set as Output&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOD_PSOR = ( 1UL &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; // set the output high&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Feb 2014 14:26:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252296#M7218</guid>
      <dc:creator>gorakk</dc:creator>
      <dc:date>2014-02-03T14:26:07Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252297#M7219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi &lt;STRONG style="font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;A href="https://community.nxp.com/people/gorakk"&gt;gorakk&lt;/A&gt;&lt;/STRONG&gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to modify to use your example in 8bits ?. &lt;/P&gt;&lt;P&gt;DMA_8bits to Sram ( IS62WV10248 ).&lt;/P&gt;&lt;P&gt;or&amp;nbsp; IS62WV51216&amp;nbsp; also works with 8bit? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P&gt;Carlos.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Oct 2014 20:01:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252297#M7219</guid>
      <dc:creator>CCandido</dc:creator>
      <dc:date>2014-10-15T20:01:20Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252298#M7220</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Allen,&lt;/P&gt;&lt;P&gt;//#define SRAM_MEMORY_WORDS&amp;nbsp;&amp;nbsp; 0x00040000&amp;nbsp;&amp;nbsp; // this gives a hard fault&lt;/P&gt;&lt;P&gt; for( n = 0x00000000; n &amp;lt;= SRAM_MEMORY_WORDS; n++ )&amp;nbsp; // address offset&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint32_t*)( &amp;amp;SRAM_START_ADDRESS + n ) = 0x00;&amp;nbsp; // write&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From the above code, you&amp;nbsp; access the external memory with 32 bits data, so all the memory byte space you accessed is 0x40000*4=0x10 0000, it exceeds the space you defined by the &lt;/P&gt;&lt;P&gt; FB-&amp;gt;CS[0].CSMR&amp;nbsp; =&amp;nbsp;&amp;nbsp; FB_CSMR_BAM(0x000F) which is from 0x6000 0000 to 0x600F FFFF,&lt;/P&gt;&lt;P&gt;that is why there is hard fault.&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;XiangJun Rong&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 06:25:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252298#M7220</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2014-10-17T06:25:06Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252299#M7221</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Carlos,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To access with 8 bits you would do something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14135577259007573" jivemacro_uid="_14135577259007573"&gt;
&lt;P&gt;&amp;nbsp; printf( "\nClearing memory area...\n" );&lt;/P&gt;
&lt;P&gt;&amp;nbsp; for( n = 0x00000; n &amp;lt; 0x04FF; n++ )&amp;nbsp; // address offset&lt;/P&gt;
&lt;P&gt;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(volatile uint8_t*)( &amp;amp;MRAM_START_ADDRESS + n ) = 0x00;&amp;nbsp; // write&lt;/P&gt;
&lt;P&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp; printf( "Memory clear complete\n" );&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Allen&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 14:56:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252299#M7221</guid>
      <dc:creator>gorakk</dc:creator>
      <dc:date>2014-10-17T14:56:16Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252300#M7222</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;XiangJun Rong,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Thank you for the explanation&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Allen&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 14:57:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252300#M7222</guid>
      <dc:creator>gorakk</dc:creator>
      <dc:date>2014-10-17T14:57:06Z</dc:date>
    </item>
    <item>
      <title>Re: Interfacing a K61 to an external SRAM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252301#M7223</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with this configuration, the DMA can work in 8bits of writing?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;source_8bits:&amp;nbsp;&amp;nbsp;&amp;nbsp; DMA to&amp;nbsp; Sram_8bits ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P&gt;Carlos.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Oct 2014 15:33:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Interfacing-a-K61-to-an-external-SRAM/m-p/252301#M7223</guid>
      <dc:creator>CCandido</dc:creator>
      <dc:date>2014-10-17T15:33:27Z</dc:date>
    </item>
  </channel>
</rss>

