<?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 External SRAM and Flexbus - Help Needed in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397749#M21963</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've hooked up an external SRAM chip to the Flexbus of a Kinetis K66.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Having written a very basic application to test that the SRAM is working ok, I've since run into problems and I think it may be related to the wiring of my Flexbus signals through to the SRAM. Just for reference, I'm using a IS61WV102416BLL chip.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My Flexbus to SRAM pin mapping is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FB_AD[15:0] = SRAM_A[15:0]&lt;/P&gt;&lt;P&gt;FB_A[19:16] = SRAM_A[19:16]&lt;/P&gt;&lt;P&gt;FB_AD[31:16] = SRAM_D[15:0]&lt;/P&gt;&lt;P&gt;FB_CS0 = SRAM_CE&lt;/P&gt;&lt;P&gt;FB_OE = SRAM_OE&lt;/P&gt;&lt;P&gt;FB_RW = SRAM_WE&lt;/P&gt;&lt;P&gt;FB_LB = SRAM_LB&lt;/P&gt;&lt;P&gt;FB_HB = SRAM_HB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm using the following code to initialize the FB:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x90000000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Address signals [19:0]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR6 = PORT_PCR_MUX(5); // FB.AD0&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR5 = PORT_PCR_MUX(5); // FB.AD1&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR4 = PORT_PCR_MUX(5); // FB.AD2&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR3 = PORT_PCR_MUX(5); // FB.AD3&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR2 = PORT_PCR_MUX(5); // FB.AD4&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR10 = PORT_PCR_MUX(5); // FB.AD5&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR9 = PORT_PCR_MUX(5); // FB.AD6&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR8 = PORT_PCR_MUX(5); // FB.AD7&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR7 = PORT_PCR_MUX(5); // FB.AD8&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR6 = PORT_PCR_MUX(5); // FB.AD9&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR5 = PORT_PCR_MUX(5); // FB.AD10&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR4 = PORT_PCR_MUX(5); // FB.AD11&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR2 = PORT_PCR_MUX(5); // FB.AD12&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR1 = PORT_PCR_MUX(5); // FB.AD13&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR0 = PORT_PCR_MUX(5); // FB.AD14&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR18 = PORT_PCR_MUX(5); // FB.AD15&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR8 = PORT_PCR_MUX(5); // FB.A16&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR9 = PORT_PCR_MUX(5); // FB.A17&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR10 = PORT_PCR_MUX(5); // FB.A18&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR11 = PORT_PCR_MUX(5); // FB.A19&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Data signals [15:0]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR17 = PORT_PCR_MUX(5); // FB.D0 [FB.AD16]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR16 = PORT_PCR_MUX(5); // FB.D1 [FB.AD17]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR11 = PORT_PCR_MUX(5); // FB.D2 [FB.AD18]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR10 = PORT_PCR_MUX(5); // FB.D3 [FB.AD19]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR9 = PORT_PCR_MUX(5); // FB.D4 [FB.AD20]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR8 = PORT_PCR_MUX(5); // FB.D5 [FB.AD21]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR7 = PORT_PCR_MUX(5); // FB.D6 [FB.AD22]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR6 = PORT_PCR_MUX(5); // FB.D7 [FB.AD23]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR15 = PORT_PCR_MUX(5); // FB.D8&amp;nbsp;&amp;nbsp; [FB.AD24]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR14 = PORT_PCR_MUX(5); // FB.D9 [FB.AD25]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR13 = PORT_PCR_MUX(5); // FB.D10 [FB.AD26]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR12 = PORT_PCR_MUX(5); // FB.D11 [FB.AD27]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR23 = PORT_PCR_MUX(5); // FB.D12 [FB.AD28]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR22 = PORT_PCR_MUX(5); // FB.D13 [FB.AD29]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR21 = PORT_PCR_MUX(5); // FB.D14 [FB.AD30]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR20 = PORT_PCR_MUX(5); // FB.D15 [FB.AD31]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Byte control signals [HB:LB]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR18 = PORT_PCR_MUX(5); // FB.BE15_8&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR17 = PORT_PCR_MUX(5); // FB.BE7_0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Chip select signal&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR1 = PORT_PCR_MUX(5); // FB.CS0#&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Read/Write signal&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR11 = PORT_PCR_MUX(5); // FB.RW#&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Output enable signal&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR19 = PORT_PCR_MUX(5); // FB.OE#&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SOPT2 |= SIM_SOPT2_FBSL(3);&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC7 |= SIM_SCGC7_FLEXBUS_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB_CSAR0 = ADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 16bit data port size&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Auto-acknowledge&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Some wait states&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Byte-enable mode so BE is asserted for read and write&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB_CSCR0 = FB_CSCR_PS(2) | FB_CSCR_AA_MASK | FB_CSCR_WS(5) | FB_CSCR_BEM_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB_CSMR0 = FB_CSMR_V_MASK | FB_CSMR_BAM(0x7);&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Enable FB_BE_15_8 and FB_BE_7_0&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB_CSPMCR = FB_CSPMCR_GROUP4(2) | FB_CSPMCR_GROUP5(2);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With the following code used to write/read back data from the SRAM:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 1) = 0x05;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 2) = 0x04;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 3) = 0x03;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 4) = 0x02;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 5) = 0x01;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 3);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 4);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 5);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The result of printf either comes out as a "90" or a "00" which is coincidental, based on the ADDR value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not convinced the wiring of the Flexbus is entirely correct but equally, I'm sure I'm missing something in the initialization.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any advice would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Kev&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 30 Jul 2015 15:09:25 GMT</pubDate>
    <dc:creator>weblar</dc:creator>
    <dc:date>2015-07-30T15:09:25Z</dc:date>
    <item>
      <title>External SRAM and Flexbus - Help Needed</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397749#M21963</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've hooked up an external SRAM chip to the Flexbus of a Kinetis K66.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Having written a very basic application to test that the SRAM is working ok, I've since run into problems and I think it may be related to the wiring of my Flexbus signals through to the SRAM. Just for reference, I'm using a IS61WV102416BLL chip.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My Flexbus to SRAM pin mapping is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FB_AD[15:0] = SRAM_A[15:0]&lt;/P&gt;&lt;P&gt;FB_A[19:16] = SRAM_A[19:16]&lt;/P&gt;&lt;P&gt;FB_AD[31:16] = SRAM_D[15:0]&lt;/P&gt;&lt;P&gt;FB_CS0 = SRAM_CE&lt;/P&gt;&lt;P&gt;FB_OE = SRAM_OE&lt;/P&gt;&lt;P&gt;FB_RW = SRAM_WE&lt;/P&gt;&lt;P&gt;FB_LB = SRAM_LB&lt;/P&gt;&lt;P&gt;FB_HB = SRAM_HB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm using the following code to initialize the FB:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x90000000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;// Address signals [19:0]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR6 = PORT_PCR_MUX(5); // FB.AD0&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR5 = PORT_PCR_MUX(5); // FB.AD1&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR4 = PORT_PCR_MUX(5); // FB.AD2&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR3 = PORT_PCR_MUX(5); // FB.AD3&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR2 = PORT_PCR_MUX(5); // FB.AD4&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR10 = PORT_PCR_MUX(5); // FB.AD5&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR9 = PORT_PCR_MUX(5); // FB.AD6&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR8 = PORT_PCR_MUX(5); // FB.AD7&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR7 = PORT_PCR_MUX(5); // FB.AD8&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR6 = PORT_PCR_MUX(5); // FB.AD9&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR5 = PORT_PCR_MUX(5); // FB.AD10&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR4 = PORT_PCR_MUX(5); // FB.AD11&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR2 = PORT_PCR_MUX(5); // FB.AD12&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR1 = PORT_PCR_MUX(5); // FB.AD13&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR0 = PORT_PCR_MUX(5); // FB.AD14&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR18 = PORT_PCR_MUX(5); // FB.AD15&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR8 = PORT_PCR_MUX(5); // FB.A16&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR9 = PORT_PCR_MUX(5); // FB.A17&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR10 = PORT_PCR_MUX(5); // FB.A18&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR11 = PORT_PCR_MUX(5); // FB.A19&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Data signals [15:0]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR17 = PORT_PCR_MUX(5); // FB.D0 [FB.AD16]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR16 = PORT_PCR_MUX(5); // FB.D1 [FB.AD17]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR11 = PORT_PCR_MUX(5); // FB.D2 [FB.AD18]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR10 = PORT_PCR_MUX(5); // FB.D3 [FB.AD19]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR9 = PORT_PCR_MUX(5); // FB.D4 [FB.AD20]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR8 = PORT_PCR_MUX(5); // FB.D5 [FB.AD21]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR7 = PORT_PCR_MUX(5); // FB.D6 [FB.AD22]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR6 = PORT_PCR_MUX(5); // FB.D7 [FB.AD23]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR15 = PORT_PCR_MUX(5); // FB.D8&amp;nbsp;&amp;nbsp; [FB.AD24]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR14 = PORT_PCR_MUX(5); // FB.D9 [FB.AD25]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR13 = PORT_PCR_MUX(5); // FB.D10 [FB.AD26]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR12 = PORT_PCR_MUX(5); // FB.D11 [FB.AD27]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR23 = PORT_PCR_MUX(5); // FB.D12 [FB.AD28]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR22 = PORT_PCR_MUX(5); // FB.D13 [FB.AD29]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR21 = PORT_PCR_MUX(5); // FB.D14 [FB.AD30]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR20 = PORT_PCR_MUX(5); // FB.D15 [FB.AD31]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Byte control signals [HB:LB]&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR18 = PORT_PCR_MUX(5); // FB.BE15_8&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR17 = PORT_PCR_MUX(5); // FB.BE7_0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Chip select signal&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTD_PCR1 = PORT_PCR_MUX(5); // FB.CS0#&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Read/Write signal&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTC_PCR11 = PORT_PCR_MUX(5); // FB.RW#&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Output enable signal&lt;/P&gt;&lt;P&gt;&amp;nbsp; PORTB_PCR19 = PORT_PCR_MUX(5); // FB.OE#&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SOPT2 |= SIM_SOPT2_FBSL(3);&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC7 |= SIM_SCGC7_FLEXBUS_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB_CSAR0 = ADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 16bit data port size&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Auto-acknowledge&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Some wait states&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Byte-enable mode so BE is asserted for read and write&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB_CSCR0 = FB_CSCR_PS(2) | FB_CSCR_AA_MASK | FB_CSCR_WS(5) | FB_CSCR_BEM_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB_CSMR0 = FB_CSMR_V_MASK | FB_CSMR_BAM(0x7);&lt;/P&gt;&lt;P&gt;&amp;nbsp; // Enable FB_BE_15_8 and FB_BE_7_0&lt;/P&gt;&lt;P&gt;&amp;nbsp; FB_CSPMCR = FB_CSPMCR_GROUP4(2) | FB_CSPMCR_GROUP5(2);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With the following code used to write/read back data from the SRAM:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 1) = 0x05;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 2) = 0x04;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 3) = 0x03;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 4) = 0x02;&lt;/P&gt;&lt;P&gt;&amp;nbsp; *((uint8_t *)ADDR + 5) = 0x01;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 3);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 4);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&amp;nbsp; f = *((uint8_t *)ADDR + 5);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("%x", f);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The result of printf either comes out as a "90" or a "00" which is coincidental, based on the ADDR value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not convinced the wiring of the Flexbus is entirely correct but equally, I'm sure I'm missing something in the initialization.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any advice would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Kev&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jul 2015 15:09:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397749#M21963</guid>
      <dc:creator>weblar</dc:creator>
      <dc:date>2015-07-30T15:09:25Z</dc:date>
    </item>
    <item>
      <title>Re: External SRAM and Flexbus - Help Needed</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397750#M21964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kev,&lt;/P&gt;&lt;P&gt;Please review following link to see if it helps.&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/docs/DOC-95536"&gt;Flexbus in MQX&lt;/A&gt; &lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jul 2015 17:40:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397750#M21964</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2015-07-30T17:40:24Z</dc:date>
    </item>
    <item>
      <title>Re: External SRAM and Flexbus - Help Needed</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397751#M21965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the link.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, the scope of the document isn't sufficient for me to see whether my Flexbus is set up correctly. I've used the Flexbus on an LCD display before and had no issue - it works perfectly - I just can't decide whether its a hardware issue on my board due to the signals being mapped incorrectly (the upper address bits) or a software initialization/configuration issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;Kevin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2015 07:28:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397751#M21965</guid>
      <dc:creator>weblar</dc:creator>
      <dc:date>2015-07-31T07:28:42Z</dc:date>
    </item>
    <item>
      <title>Re: External SRAM and Flexbus - Help Needed</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397752#M21966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok, so I guess a couple of things I've noticed following this post:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/309447"&gt;https://community.freescale.com/thread/309447&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My pin mux-ing for the upper 4 address signals was incorrect - I specified PORT_PCR_MUX(5) but it should have been PORT_PCR_MUX(6). Also, it would appear that because my data is not byte-lane shifted (BLS = 0) and resides on FB_AD[31:16] that I should be using BE_31_24 and BE_23_16 rather than BE_15_8 and BE_7_0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've changed the former, which made no difference. I'm hoping that the latter will do it!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone offer any advice on the above?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;Kevin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;UPDATE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm now more confused. The SRAM_HB and SRAM_LB signals are routed through to PORTC_18 and PORTC_19 respectively. In the reference manual, these signals (for pin mux 5) are descried as FB_BE15_8_BLS23_16_b and FB_BE7_0_BLS31_24_b. Does this now mean that I am actually using the correct ones??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2015 09:01:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397752#M21966</guid>
      <dc:creator>weblar</dc:creator>
      <dc:date>2015-07-31T09:01:15Z</dc:date>
    </item>
    <item>
      <title>Re: External SRAM and Flexbus - Help Needed</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397753#M21967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok, so having a weekend off has clearly helped - the SRAM access now works as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only thing I needed to change from my initial setup was to swap the HB/LB signals from PORTC[18] and [19] to PORTC[17] and [18] respectively, due to the fact that BLS=0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This post proved most useful:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/message/322857"&gt;https://community.freescale.com/message/322857&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Aug 2015 10:45:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397753#M21967</guid>
      <dc:creator>weblar</dc:creator>
      <dc:date>2015-08-03T10:45:42Z</dc:date>
    </item>
    <item>
      <title>Re: External SRAM and Flexbus - Help Needed</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397754#M21968</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please see &lt;A href="https://community.nxp.com/thread/364273"&gt;External SRAM and non-multiplexed Flexbus&lt;/A&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Aug 2015 20:04:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/External-SRAM-and-Flexbus-Help-Needed/m-p/397754#M21968</guid>
      <dc:creator>michaelhuslig</dc:creator>
      <dc:date>2015-08-04T20:04:07Z</dc:date>
    </item>
  </channel>
</rss>

