<?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>8-bit Microcontrollers中的主题 ESCI arbiter function on MC908QB8 and baud rate detection</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130001#M2282</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;Hello all,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;There appears to be ambiguity in the MC908QB8 data sheet.&amp;nbsp; In section 13.9.1, and with SCIACTL register bit ACLK = 0, it is stated that "Arbiter counter is clocked with the bus clock divided by four."&amp;nbsp; However, in section 13.9.3, again with ACLK = 0, "The counter is clocked with one half the bus clock."&amp;nbsp; Obviously one of the sections has to be incorrect, but not sure which one.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;I wish to consider using the arbiter function for baud rate detection - I wonder if others have used it for this purpose.&amp;nbsp; Firstly I need to differentiate between&amp;nbsp;a couple&amp;nbsp;of&amp;nbsp;baud rates, and select a standard rate, based on the receipt of one of a few different incoming characters.&amp;nbsp; I guess this should be relatively straight forward.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;The second part of the problem is probably more complex.&amp;nbsp; I have perceived limitations with using the internal oscillator of the MCU in conjunction with ESCI usage&amp;nbsp;- the long term frequency stability is probably not quite adequate for continued reliability.&amp;nbsp; The simplest solution is to use an external crystal.&amp;nbsp; However, this consumes two I/O pins of a 16-pin device, a heavy penalty in some instances.&amp;nbsp; If I can automatically adjust the ESCI baud rate to exactly match the incoming baud rate, and do this "on the fly", I may be able to utilise the internal oscillator.&amp;nbsp; I could adjust either the oscillator trim or the ESCI prescale register to compensate for frequency drift.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;I would be interested to hear if others have accomplished baud rate measurement and trimming, and the actual&amp;nbsp;strategy utilised.&amp;nbsp; There doesn't seem to be very much published information on this topic.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;Regards,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;Mac&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 13 Sep 2006 02:25:52 GMT</pubDate>
    <dc:creator>bigmac</dc:creator>
    <dc:date>2006-09-13T02:25:52Z</dc:date>
    <item>
      <title>ESCI arbiter function on MC908QB8 and baud rate detection</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130001#M2282</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;Hello all,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;There appears to be ambiguity in the MC908QB8 data sheet.&amp;nbsp; In section 13.9.1, and with SCIACTL register bit ACLK = 0, it is stated that "Arbiter counter is clocked with the bus clock divided by four."&amp;nbsp; However, in section 13.9.3, again with ACLK = 0, "The counter is clocked with one half the bus clock."&amp;nbsp; Obviously one of the sections has to be incorrect, but not sure which one.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;I wish to consider using the arbiter function for baud rate detection - I wonder if others have used it for this purpose.&amp;nbsp; Firstly I need to differentiate between&amp;nbsp;a couple&amp;nbsp;of&amp;nbsp;baud rates, and select a standard rate, based on the receipt of one of a few different incoming characters.&amp;nbsp; I guess this should be relatively straight forward.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;The second part of the problem is probably more complex.&amp;nbsp; I have perceived limitations with using the internal oscillator of the MCU in conjunction with ESCI usage&amp;nbsp;- the long term frequency stability is probably not quite adequate for continued reliability.&amp;nbsp; The simplest solution is to use an external crystal.&amp;nbsp; However, this consumes two I/O pins of a 16-pin device, a heavy penalty in some instances.&amp;nbsp; If I can automatically adjust the ESCI baud rate to exactly match the incoming baud rate, and do this "on the fly", I may be able to utilise the internal oscillator.&amp;nbsp; I could adjust either the oscillator trim or the ESCI prescale register to compensate for frequency drift.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;I would be interested to hear if others have accomplished baud rate measurement and trimming, and the actual&amp;nbsp;strategy utilised.&amp;nbsp; There doesn't seem to be very much published information on this topic.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;Regards,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;Mac&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Sep 2006 02:25:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130001#M2282</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-09-13T02:25:52Z</dc:date>
    </item>
    <item>
      <title>Re: ESCI arbiter function on MC908QB8 and baud rate detection</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130002#M2283</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have no experience with it yet, just planned to get closer in the near future, but I have found some AN when having a look at 908EY16. AN2575 for example describes ICG trimming and ESCI prescaler baud rate adjustment. Probably You can find some useful tips there.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Blaise34&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Sep 2006 13:39:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130002#M2283</guid>
      <dc:creator>Blaise34</dc:creator>
      <dc:date>2006-09-13T13:39:38Z</dc:date>
    </item>
    <item>
      <title>Re: ESCI arbiter function on MC908QB8 and baud rate detection</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130003#M2284</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi Mac,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The GT has an ESCI as well and shows /2 in both places.&lt;/DIV&gt;&lt;DIV&gt;The QB doc is 1 year old and the GT 2 years old.&lt;/DIV&gt;&lt;DIV&gt;The ESCI section is almost word for word with the QB just looking like a later/improved/added to version.&lt;/DIV&gt;&lt;DIV&gt;This leads me to guess that a deliberate attempt was made to change it to /4 but only the obvious location was done and the less obvious one missed.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Although I guess you are looking for a better answer than this....&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I also guess you are going to be unlikely to find many experts with this if a glaring error like this has gone un-noticed for so long.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards David&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Sep 2006 17:16:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130003#M2284</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2006-09-13T17:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: ESCI arbiter function on MC908QB8 and baud rate detection</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130004#M2285</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Dear guys,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;EY16, QB8 ESCI &lt;U&gt;should&lt;/U&gt; read:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;ACLK = 0: with one quarter of the ESCI Input clock (= Bus or Bus x 4, see CONFIG2_ESCIBSRC)&lt;BR /&gt;And for ACLK = 1: with one quarter of the ESCI input clock divided by the ESCI prescaler.&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I enclosed&amp;nbsp;a Clock tree.&lt;/DIV&gt;&lt;DIV&gt;Cheers,&lt;/DIV&gt;&lt;DIV&gt;Alban.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Sep 2006 17:36:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130004#M2285</guid>
      <dc:creator>Alban</dc:creator>
      <dc:date>2006-09-13T17:36:38Z</dc:date>
    </item>
    <item>
      <title>Re: ESCI arbiter function on MC908QB8 and baud rate detection</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130005#M2286</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Thankyou Alban.&amp;nbsp; The diagram considerably clarifies the situation, and shows how "muddled" is the current datasheet.&amp;nbsp; The block diagram Fig. 13.2 also confuses the issue.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Sep 2006 00:38:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130005#M2286</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-09-15T00:38:06Z</dc:date>
    </item>
    <item>
      <title>Re: ESCI arbiter function on MC908QB8 and baud rate detection</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130006#M2287</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello all,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;A further question concerning the arbiter -&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Does anyone know if the counter continues to count (from zero) once the overflow bit AROVFL bit is set?&amp;nbsp; If it does, this would effectively give a 10-bit counter, and could be very useful for lower baud rates.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt; &lt;HR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;An observation re measurement of bit period.&amp;nbsp; If the ACLK=1 mode&amp;nbsp;(pulse width measurement) is used, for any received character with an &lt;U&gt;odd&lt;/U&gt; ASCII value, and assuming the arbiter counter is cleared during the previous receive ISR, the arbiter should measure the period of the start bit.&amp;nbsp; For the ACLK=0 mode (negative edge to negative edge), the number of bit periods measured will have more variation, depending on the&amp;nbsp;received character, and would always be at least two bit periods, including the start bit - not quite as useful.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;However, for tha ACLK=1 mode, the nominal count per bit period will depend on the baud divisor (BD) value, but will be independent of the FD prescaler setting.&amp;nbsp; Since the nominal count value would be 16*BD (assuming BPD=1),&amp;nbsp;the value of BD should not be less than 4 in order to reduce the baud measurement uncertainty to better than plus/minus 1 percent.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;For automatic adjustment to allow for internal oscillator drift, I believe a simple strategy would be to increment or decrement the SCPSC prescale register value, to maintain a measured bit period value of 16*BD.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2006-09-18&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;03:15 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 11:59:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/ESCI-arbiter-function-on-MC908QB8-and-baud-rate-detection/m-p/130006#M2287</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-09-18T11:59:30Z</dc:date>
    </item>
  </channel>
</rss>

