<?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 Mixing 8-bit and 16-bit devices on an 8-bit mini-FlexBus (MCF51CN128) in ColdFire/68K Microcontrollers and Processors</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Mixing-8-bit-and-16-bit-devices-on-an-8-bit-mini-FlexBus/m-p/217440#M10999</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi everyone&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to mix both 8 and 16 bit devices on a MCF51CN128 device's Flexbus.&amp;nbsp; The particular package I have only has a single chip select, so I think I'm forced to use the Flexbus in 16 bit mulitplexed mode, since I still have some 16-bit wide devices I need to talk to.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now if I want to add an 8 bit peripheral chip, and its registers are sequentially arranged on both even and odd address boundaries, what's the best way to deal with that ? Remember, I only have one chip select, not two, so I don't have the luxury of having one Flexbus chip select for 8 bit and the other for 16 bit.&amp;nbsp; Nice to dream, but .... no dice !&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Section 11.4.3 of the MCF51CN128 Reference Manual (Rev 6, which I think is the latest) shows a 32-bit longword transfer in multiplexed mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But what if I'm using a MOVE.B instruction to move a byte of data. Will bytes that are at odd addresses always be output on FB_AD[7:0] and bytes that are at even addresses be output on FB_AD[15:8] ?&amp;nbsp; The Reference Manual doesn't show a concrete example of what happens, or what happens if I try to access a 16 bit word that is misaligned ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That looks like it's going to make life tricky for my 8-bit peripherals if I have to add extra logic to steer the data bits back and forth to my peripheral chips D[7:0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any thoughts ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On a related topic, what happens to FB_AD[0] when the Flexbus is in 16 bit mode ?&amp;nbsp; Is it still driven when an odd memory access is attempted ?&amp;nbsp; In Section 11.4.1.2 of the Referenec Manual, it says to connect a 16-bit address/16-bit data device to FB_AD[16:1], which makes sense due to it having a 16 bit bus.&amp;nbsp; But it doesn't explain what FB_AD0 does during the address output period prior to FB_ALE being asserted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jason&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 09 Aug 2010 23:08:31 GMT</pubDate>
    <dc:creator>armistej</dc:creator>
    <dc:date>2010-08-09T23:08:31Z</dc:date>
    <item>
      <title>Mixing 8-bit and 16-bit devices on an 8-bit mini-FlexBus (MCF51CN128)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Mixing-8-bit-and-16-bit-devices-on-an-8-bit-mini-FlexBus/m-p/217440#M10999</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi everyone&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to mix both 8 and 16 bit devices on a MCF51CN128 device's Flexbus.&amp;nbsp; The particular package I have only has a single chip select, so I think I'm forced to use the Flexbus in 16 bit mulitplexed mode, since I still have some 16-bit wide devices I need to talk to.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now if I want to add an 8 bit peripheral chip, and its registers are sequentially arranged on both even and odd address boundaries, what's the best way to deal with that ? Remember, I only have one chip select, not two, so I don't have the luxury of having one Flexbus chip select for 8 bit and the other for 16 bit.&amp;nbsp; Nice to dream, but .... no dice !&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Section 11.4.3 of the MCF51CN128 Reference Manual (Rev 6, which I think is the latest) shows a 32-bit longword transfer in multiplexed mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But what if I'm using a MOVE.B instruction to move a byte of data. Will bytes that are at odd addresses always be output on FB_AD[7:0] and bytes that are at even addresses be output on FB_AD[15:8] ?&amp;nbsp; The Reference Manual doesn't show a concrete example of what happens, or what happens if I try to access a 16 bit word that is misaligned ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That looks like it's going to make life tricky for my 8-bit peripherals if I have to add extra logic to steer the data bits back and forth to my peripheral chips D[7:0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any thoughts ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On a related topic, what happens to FB_AD[0] when the Flexbus is in 16 bit mode ?&amp;nbsp; Is it still driven when an odd memory access is attempted ?&amp;nbsp; In Section 11.4.1.2 of the Referenec Manual, it says to connect a 16-bit address/16-bit data device to FB_AD[16:1], which makes sense due to it having a 16 bit bus.&amp;nbsp; But it doesn't explain what FB_AD0 does during the address output period prior to FB_ALE being asserted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jason&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Aug 2010 23:08:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Mixing-8-bit-and-16-bit-devices-on-an-8-bit-mini-FlexBus/m-p/217440#M10999</guid>
      <dc:creator>armistej</dc:creator>
      <dc:date>2010-08-09T23:08:31Z</dc:date>
    </item>
    <item>
      <title>Re: Mixing 8-bit and 16-bit devices on an 8-bit mini-FlexBus (MCF51CN128)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Mixing-8-bit-and-16-bit-devices-on-an-8-bit-mini-FlexBus/m-p/217441#M11000</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;P&gt;I need to mix both 8 and 16 bit devices on a MCF51CN128 device's Flexbus.&amp;nbsp; The particular package I have only has a single chip select, so I think I'm forced to use the Flexbus in 16 bit mulitplexed mode, since I still have some 16-bit wide devices I need to talk to.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;It's very likely that the second chip select is still present, simply not pinned out. So you still can configure the mini-flexbus to operate in 8-bit and 16-bit modes in different address ranges. You can generate chip select signals based on address lines. It could be as simple as using the upper address lines as chip selects.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;P&gt;But what if I'm using a MOVE.B instruction to move a byte of data. Will bytes that are at odd addresses always be output on FB_AD[7:0] and bytes that are at even addresses be output on FB_AD[15:8] ?&amp;nbsp; The Reference Manual doesn't show a concrete example of what happens, or what happens if I try to access a 16 bit word that is misaligned ?&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;The manual says this about 16-bit mode: "Up to a 20-bit address (multiplexed) with 16-bit data (write masking of upper/lower bytes not supported)." It could mean that byte writes in this mode are not allowed (lead to CPU exceptions.) Anyway, it doesn't sound very promising.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Aug 2010 01:56:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Mixing-8-bit-and-16-bit-devices-on-an-8-bit-mini-FlexBus/m-p/217441#M11000</guid>
      <dc:creator>scifi</dc:creator>
      <dc:date>2010-08-10T01:56:43Z</dc:date>
    </item>
  </channel>
</rss>

