<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Bug in MKL25Z4.h for Initializing UART0 BDH? in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-MKL25Z4-h-for-Initializing-UART0-BDH/m-p/659597#M40458</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;UART0_BDH has only 5 bits in the divisor and the last three are used for different functions:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/8556iF09C57156D06B83E/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The macro is masking the upper 3 bits (not upper 5) and is therefore OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Nov 2016 21:23:19 GMT</pubDate>
    <dc:creator>mjbcswitzerland</dc:creator>
    <dc:date>2016-11-14T21:23:19Z</dc:date>
    <item>
      <title>Bug in MKL25Z4.h for Initializing UART0 BDH?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-MKL25Z4-h-for-Initializing-UART0-BDH/m-p/659596#M40457</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm looking at the MKL25Z4.H macros for UART0 Baud Rate Generation. The UART0_BDH_SBR(x) macro doesn't seem to take the upper five bits of x, but I believe it should. Is this a bug, am I misusing the macro, or is there a newer version of the file available?&lt;/P&gt;&lt;PRE class="language-c"&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="property macro token"&gt;#define UART0_BDH_SBR_MASK&amp;nbsp; 0x1Fu&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define UART0_BDH_SBR_SHIFT 0&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define UART0_BDH_SBR_WIDTH 5&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define UART0_BDH_SBR(x)&amp;nbsp;&amp;nbsp;&amp;nbsp; (((uint8_t)(((uint8_t)(x))&amp;lt;&amp;lt;UART0_BDH_SBR_SHIFT))&amp;amp;UART0_BDH_SBR_MASK)‍‍‍‍&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's the version information for the file:&lt;/P&gt;&lt;PRE class="language-c"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/*
** ###################################################################
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Processors:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MKL25Z128FM4
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MKL25Z128FT4
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MKL25Z128LH4
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MKL25Z128VLK4
**
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Compilers:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Keil ARM C/C++ Compiler
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Freescale C/C++ for Embedded ARM
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GNU C Compiler
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GNU C Compiler - CodeSourcery Sourcery G++
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAR ANSI C/C++ Compiler for ARM
**
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reference manual:&amp;nbsp;&amp;nbsp;&amp;nbsp; KL25P80M48SF0RM, Rev.3, Sep 2012
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rev. 2.5, 2015-02-19
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Build:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b150721
**
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Abstract:
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CMSIS Peripheral Access Layer for MKL25Z4
**
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copyright (c) 1997 - 2015 Freescale Semiconductor, Inc.
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All rights reserved.
*/&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Nov 2016 19:27:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-MKL25Z4-h-for-Initializing-UART0-BDH/m-p/659596#M40457</guid>
      <dc:creator>alexdean</dc:creator>
      <dc:date>2016-11-14T19:27:45Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in MKL25Z4.h for Initializing UART0 BDH?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-MKL25Z4-h-for-Initializing-UART0-BDH/m-p/659597#M40458</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;UART0_BDH has only 5 bits in the divisor and the last three are used for different functions:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/8556iF09C57156D06B83E/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The macro is masking the upper 3 bits (not upper 5) and is therefore OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Nov 2016 21:23:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-MKL25Z4-h-for-Initializing-UART0-BDH/m-p/659597#M40458</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2016-11-14T21:23:19Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in MKL25Z4.h for Initializing UART0 BDH?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-MKL25Z4-h-for-Initializing-UART0-BDH/m-p/659598#M40459</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, now it makes sense. The SHIFT and mask values are from the perspective of each register, rather than the value SBR which spans two registers. So the source code has to extract the upper byte of the desired SBR value before calling the macro. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Dec 2016 14:42:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-MKL25Z4-h-for-Initializing-UART0-BDH/m-p/659598#M40459</guid>
      <dc:creator>alexdean</dc:creator>
      <dc:date>2016-12-08T14:42:18Z</dc:date>
    </item>
  </channel>
</rss>

