<?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: Double Buffered I2C Difficulties (eg. KL27)</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453611#M27005</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;I linked to the KL03 board, which the last question was about. Go one level up to find all supported boards.&lt;/P&gt;&lt;P&gt;There is no mention of I2C problems at the KL43 link since there are none known (same fix for all double-buffered parts).&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 05 Jul 2016 15:32:32 GMT</pubDate>
    <dc:creator>mjbcswitzerland</dc:creator>
    <dc:date>2016-07-05T15:32:32Z</dc:date>
    <item>
      <title>Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453594#M26988</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Although the migration guide for moving from the KL25 to the KL27 [&lt;A href="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4997.pdf" title="http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4997.pdf"&gt;http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4997.pdf&lt;/A&gt; ] states that the fact that the KL27 has double-buffered I2C has no impact on the software it has been known for some time that KL25 (or other KL or K parts) I2C code will not run correctly on a KL27.&lt;/P&gt;&lt;P&gt;Furthermore, the recommended software flow diagram for the KL27 in its user's manual is rather different from that in the KL25 user's manual.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So finally this source or difficulties was analysed in some detail by testing an I2C master/slave configuration involving a KL25 (standard single-buffered I2C which causes no troubles) and a KL27 (with the new double-buffered design).&lt;/P&gt;&lt;P&gt;Tests were alternated between the KL25 being master to the KL27 slave and the KL27 being master to the KL27. The behavour (interrupt and status register reactions) were compared and workarounds made in the KL27 software until operation was correct for all tests in both configurations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The attached drawings show the results, indicating the differences (some minor and having no software impact) and others requiring extra interrupt handling to avoid the original driver either hanging in interrupt loops (on KL27) or the (KL27) I2C master sending rubbish when it should send the slave address.&lt;/P&gt;&lt;P&gt;For simplicity, the double-buffered capabilities (queuing two bytes) is not utilised so that the reasons for incompatibility with standard KL I2C drivers is obvious.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note the worst behaviour found (detailed also in the drawings) was that it is not possible to send a "repeated start condition" by writing the repeated start control and sending the slave address (as the KL25 does) because the KL27 will then send the repeated start but with a slave address equal to the last data byte that it had sent. The only way to do this that could be identified was to command the repeated start, wait for it to actually have completed on the bus (using the KL27's new start condition interrupt) and then sending the required address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If any one has comments (or personal experience) I would be interested in hearing them.&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;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Kinetis: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis.html" rel="nofollow"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;KL25: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL25Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL25Z.html&lt;/A&gt;&lt;SPAN&gt; / &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/TWR-KL25Z48M.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/TWR-KL25Z48M.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;KL27: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL27Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL27Z.html&lt;/A&gt;&lt;SPAN&gt; / &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/Capuccino-KL27/Capuccino-KL27.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/Capuccino-KL27/Capuccino-KL27.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;For the complete "out-of-the-box" Kinetis experience and faster time to market&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7ed529;"&gt;:smileyinfo: Out-of-the-box support for 46 Kinetis boards and 10 IDEs (&lt;EM&gt;460 combinations from a single code source with no porting required&lt;/EM&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Oct 2015 03:11:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453594#M26988</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-10-12T03:11:43Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453595#M26989</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Mark Butcher wrote:&lt;/P&gt;&lt;P&gt;Note the worst behaviour found (detailed also in the drawings) was that it is not possible to send a "repeated start condition" by writing the repeated start control and sending the slave address (as the KL25 does) because the KL27 will then send the repeated start but with a slave address equal to the last data byte that it had sent. The only way to do this that could be identified was to command the repeated start, wait for it to actually have completed on the bus (using the KL27's new start condition interrupt) and then sending the required address.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Sadly I had to waste far to much time discovering that for my self a few weeks ago.&amp;nbsp; Makes me lose faith that Freescale actually tests parts before inflicting them on us.&lt;/P&gt;&lt;P&gt;It is not that Repeated Start is an uncommon thing to do on I2C.&amp;nbsp; Their own Accelerometers actually require Repeated Start and they don't like having stuttering bytes on the bus. :-(&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do hope Freescale issues a proper errata to save future people from such a waste of time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You for the detailed report.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Oct 2015 11:56:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453595#M26989</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2015-10-14T11:56:29Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453596#M26990</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Bob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the feedback - if I understand correctly you confirm the repeated start behavior - did you solve it the same way as I or did you find another solution?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As reference, there is another report of difficulties that I made (at the time I decided to avoid I2C in the new devices so it is only now that I finally had no choice but to get to the bottom of it). &lt;A href="https://community.nxp.com/message/460444"&gt;KL43 I2C problem&lt;/A&gt; Here there is a confirmation of a difficulty when debugging where the master will send infinite clocks - for the attached investigation I didn't use the debugger but instead a logic analyser with the driver setting codes on some ports to see register vaues and interrupt timings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have received information of a new errata being prepared for the KL17/KL27 but there is no reference to these items as far as I can see:&lt;/P&gt;&lt;P&gt;"I2C: Slave does not hold bus between byte transfers and may result in lost data"&lt;/P&gt;&lt;P&gt;"I2C: Address match wake-up from low-power mode cannot receive data"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first one points out that some of the slave's bus holding characteristics are not operational and so software should be as fast as possible to avoid underruns (I could imagine some relation to the infinite clocks at the master) or use DMA (although DMA at a slave is often not possible because many slave devices need to process each byte received in order to decide what to do next).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But it also &lt;EM&gt;concerns&lt;/EM&gt; me that "practically" it hasn't been possible to use the master mode with repeated starts without workarounds since its behavior is otherwise incorrect, but there is no confirmation of such difficulties from the manufacturer. It &lt;EM&gt;surpises&lt;/EM&gt; me that the migration guide states that there is no software impact although "practically" drivers working normally on other parts fail (even catastrophically). That is also why I prefer to make reports so that information is available and can be compared with other users' experiences - either to identify what "we" are doing wrong in the process and correct it the right way or to identify perhaps why the issues are not identified by the manuafacturer's own testing.&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>Wed, 14 Oct 2015 12:28:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453596#M26990</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-10-14T12:28:31Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453597#M26991</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Mark Butcher wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi Bob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the feedback - if I understand correctly you confirm the repeated start behavior - did you solve it the same way as I or did you find another solution?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As reference, there is another report of difficulties that I made (at the time I decided to avoid I2C in the new devices so it is only now that I finally had no choice but to get to the bottom of it). &lt;A _jive_internal="true" data-containerid="2019" data-containertype="14" data-objectid="460444" data-objecttype="2" href="https://community.nxp.com/message/460444#460444"&gt;KL43 I2C problem&lt;/A&gt; Here there is a confirmation of a difficulty when debugging where the master will send infinite clocks - for the attached investigation I didn't use the debugger but instead a logic analyser with the driver setting codes on some ports to see register vaues and interrupt timings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have received information of a new errata being prepared for the KL17/KL27 but there is no reference to these items as far as I can see:&lt;/P&gt;&lt;P&gt;"I2C: Slave does not hold bus between byte transfers and may result in lost data"&lt;/P&gt;&lt;P&gt;"I2C: Address match wake-up from low-power mode cannot receive data"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first one points out that some of the slave's bus holding characteristics are not operational and so software should be as fast as possible to avoid underruns (I could imagine some relation to the infinite clocks at the master) or use DMA (although DMA at a slave is often not possible because many slave devices need to process each byte received in order to decide what to do next).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But it also &lt;EM&gt;concerns&lt;/EM&gt; me that "practically" it hasn't been possible to use the master mode with repeated starts without workarounds since its behavior is otherwise incorrect, but there is no confirmation of such difficulties from the manufacturer. It &lt;EM&gt;surpises&lt;/EM&gt; me that the migration guide states that there is no software impact although "practically" drivers working normally on other parts fail (even catastrophically). That is also why I prefer to make reports so that information is available and can be compared with other users' experiences - either to identify what "we" are doing wrong in the process and correct it the right way or to identify perhaps why the issues are not identified by the manuafacturer's own testing.&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;/BLOCKQUOTE&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the feedback - if I understand correctly you confirm the repeated start behavior - did you solve it the same way as I or did you find another solution?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As reference, there is another report of difficulties that I made (at the time I decided to avoid I2C in the new devices so it is only now that I finally had no choice but to get to the bottom of it). &lt;A _jive_internal="true" data-containerid="2019" data-containertype="14" data-objectid="460444" data-objecttype="2" href="https://community.nxp.com/message/460444#460444"&gt;KL43 I2C problem&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;After seeing what the I2C was doing on my bus analyzer I went looking to see if anyone else was having issues.&amp;nbsp; When I saw your KL43 report, the parent of the KL27, I gave up on the hardware and did a I2C Bit-Banger.&amp;nbsp; Not happy about the wasted time in the required busy loops now nor of the wasted time in the shipping schedule.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I believe I've run into two other issues with the KL27.&amp;nbsp; I just posted one about CLKOUT[Bus] not appearing to work correctly.&amp;nbsp; I'd appreciate your input in looking at my code to see if I'm missing something.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The other issue has to do with the KL27 bootloader when having NMI programmed to be the BOOT# pin.&amp;nbsp; I need to look at this closer before making a report.&amp;nbsp; What I'm seeing is that if I assert BOOT# and use blhost to flash the part all works as expected.&amp;nbsp; Now I raise BOOT# and assert the RESET# pin I expect my code to start running right away, it doesn't.&amp;nbsp; It still appears to enter the bootloader as tho a bit in the part got latched keeping it thinking BOOT# is still asserted.&amp;nbsp; Only way to get my code to run immediately is to cycle power, which clears the effect of having had BOOT# asserted, which will be unacceptable in my final product.&amp;nbsp; Have you run into anything like this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Oct 2015 12:58:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453597#M26991</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2015-10-14T12:58:30Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453598#M26992</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Bob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Strangely I only just noticed this response/question.&lt;/P&gt;&lt;P&gt;I have however already commented on the CLKOUT (as you know).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have avoided the new internal loaders (disabling it so that it can't impact). &lt;EM&gt;Unless one is using the smallest chip where there wouldn't be enough space to keep a boot loader&lt;/EM&gt; I don't consider the internal ones as beneficial:&lt;/P&gt;&lt;P&gt;- a bed of nails in production to the SWD and a good programming software is more practical&lt;/P&gt;&lt;P&gt;- in the field USB-MSD is 'by-far' the best updating method (rather than the USB-HID that the internal loader uses) &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>Fri, 30 Oct 2015 04:16:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453598#M26992</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-10-30T04:16:01Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453599#M26993</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have avoided the new internal loaders (disabling it so that it can't impact). &lt;EM&gt;Unless one is using the smallest chip where there wouldn't be enough space to keep a boot loader&lt;/EM&gt; I don't consider the internal ones as beneficial:&lt;/P&gt;&lt;P&gt;- a bed of nails in production to the SWD and a good programming software is more practical&lt;/P&gt;&lt;P&gt;- in the field USB-MSD is 'by-far' the best updating method (rather than the USB-HID that the internal loader uses) &lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;We differ there.&amp;nbsp; Been using the bed of nails or getting the chips programmed by distributor in other products&lt;/P&gt;&lt;P&gt;May be a difference in quantity?&lt;/P&gt;&lt;P&gt;In some product lines we are doing 80,000 units per year.&lt;BR /&gt;Any built in bootloader is a benefit to us even if it is to just load our own bootloader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you know of any KL43/KL27 Bare Metal USB-MSD bootloaders?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As to my original question:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In "6.3.3 Boot sequence" of the KL27RM it says that if BOOTPIN_OPT=0 then boot from ROM is forced.&lt;BR /&gt;To me that says that if BOOTCFG0 (NMI)# is not asserted then my code in flash will run.&amp;nbsp; &lt;/P&gt;&lt;P&gt;Sadly that is not always the case.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With FOPT set thus:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[I'll also be really ticked if the forum software once again hoses my code. :-(]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * FOPT:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 7:BOOTSRC_SEL1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x80U&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 6:BOOTSRC_SEL0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x40U&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 00 = Flash, 01 = Reserved, 10/11 = ROM&lt;/P&gt;&lt;P&gt;&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; 5:NV_FOPT_FAST_INIT_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20U&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 = Fast&lt;/P&gt;&lt;P&gt;&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; 4:NV_FOPT_LPBOOT1_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10U&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; See bit zero&lt;/P&gt;&lt;P&gt;&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; 3:NV_FOPT_RESET_PIN_CFG_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08U&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 = Disabled Reset.&lt;/P&gt;&lt;P&gt;&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; 2:V_FOPT_NMI_DIS_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x04U&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 = Disable NMI&lt;/P&gt;&lt;P&gt;&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; 1:BOOTPIN_OPT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02U&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 = Force boot from ROM if BOOTCFG0 asserted.&lt;/P&gt;&lt;P&gt;&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; 0:NV_FOPT_LPBOOT0_MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01u&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 00 /8 VLPR on exit reset&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 01 /4 VLPR on exit reset&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 /2 RUN on exit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp; 11 /1 RUN on exit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x38U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&amp;lt; Non-volatile Flash Option Register, offset: 0xD NV_FOPT Disable NMI pin.&amp;nbsp; Boot from Flash not ROM */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At each reset the part still goes into the ROM bootloader after bootloading and after BOOTCFG0# has been set high before reseting.&lt;/P&gt;&lt;P&gt;I expect the part to just jump to my code when BOOTCFG0# is high at *ANY* reset.&lt;/P&gt;&lt;P&gt;What have I missed?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I added this to my vectors.c to get it to work after the initial reset after boot.&lt;/P&gt;&lt;P&gt;Still have to endure the five second wait after the software update. :-(&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * Indicates the boot source, the boot source remains set until the&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * next System Reset or software can write logic one to clear the&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * corresponding mode bit.&amp;nbsp; While either bit is set, the NMI input&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * is disabled and the vector table is relocated to the ROM base&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * address at 0x1C00_0000. These bits should be cleared by writing&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * logic one before executing any code from either Flash or SRAM.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; if( 0U != (RCM_MR &amp;amp; RCM_FM_FORCEROM_MASK) )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RCM_FM = 0U;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RCM_MR = RCM_MR_BOOTROM_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To me it really seems like the chip did not read the documentation...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Oct 2015 12:37:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453599#M26993</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2015-10-30T12:37:11Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453600#M26994</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Bob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would also accept using the internal loader to load a more suitable loader for field usage when it proved a suitable/practical method, whereby it is also possible to then disable the loader in case it causes any probems (such as start-up delays).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that Freescale has some errate for the ROM loaders so, since the loader code is just a loader software burned ito ROM, I expect that it will develop with time (as comparison, NXP's internal serial loaders in their LPC2xxx family originally had quite nasty bugs but fortunately they had a method which allowed updating them in the field too). If you think that the loader has a bug it is best to enter a service request (this can be done from your account at freescale.com).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB-MSD Loaders:&lt;/P&gt;&lt;P&gt;I am always confused when the term Bare-Metal is used to specify a SW's requirement but if it means that interrupts and DMA are still allowed to be used and modular code written then I have such for KL27 and KL43 at the links here (Windows 8.1 and MAC OS X conform):&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;KL27: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL27Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL27Z.html&lt;/A&gt;&lt;SPAN&gt; / &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/Capuccino-KL27/Capuccino-KL27.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/Capuccino-KL27/Capuccino-KL27.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;KL43: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL43Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL43Z.html&lt;/A&gt;&lt;SPAN&gt; / &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/TWR-KL43Z48M.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/TWR-KL43Z48M.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;They build with KDS, CW, IAR, Keil, Crossworks, Greenhill, Atollic, CooCox, VisualStudio or a GCC make file.&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;P&gt;&lt;/P&gt;&lt;P&gt;P.S. Unfortunately the forums handling of posted code is not at all good - it works only when there are no comments in the code (because it confuses the white space between code and comments as table entries).&lt;BR /&gt;I have resorted to posting code as html by placing it in a &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt; area. The problem with this is that it will all be on a single line so then add &amp;lt;br&amp;gt; to each line ending too. As long as the code is not too long it is worth the effort to avoid it looking like garbled junk when trying to show someone snippets and such, without having to resort to attaching it (which no one will probably ever look at).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Oct 2015 13:43:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453600#M26994</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-10-30T13:43:07Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453601#M26995</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN style="font-family: inherit; line-height: 1.5;"&gt;...&lt;BR /&gt;&lt;BR /&gt;Note that Freescale has some errate for the ROM loaders...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB-MSD Loaders:&lt;/P&gt;&lt;P&gt;I am always confused when the term Bare-Metal is used to specify a SW's requirement...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: inherit; line-height: 1.5;"&gt;... attaching it (which no one will probably ever look at).&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I'll track down the erratas.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'Bare-Metal' to me is no CW/KDS/Funny magical black boxes/no vendor supplied stacks (usually do to much, frequently buggy and in Freescale case have code for processors long forgotten hanging around with to many #IF making it hard to do code inspections).&lt;/P&gt;&lt;P&gt;All of those things are great if you are in a hurry and care nothing about code quality (think DO-178C).&lt;/P&gt;&lt;P&gt;My stuff needs to be MISRA compliant and not cause Lint to freak out.&amp;nbsp; Rare to find that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exactly how do you attach something?&lt;/P&gt;&lt;P&gt;Using Chrome I'm not seeing a way to do it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Oct 2015 15:39:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453601#M26995</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2015-10-30T15:39:10Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453602#M26996</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To post attachments activate the "Use advanced editor" in the top right hand corner of the box.&lt;/P&gt;&lt;P&gt;Then you will get an "Attach" link in the right hand bottom corner of the form.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So it sounds as though I am half-way there to "bare-metal" code:&lt;/P&gt;&lt;P&gt;- IDE independent (works in 10 IDEs)&lt;/P&gt;&lt;P&gt;- No black-magic tricks (hand-crafted over &amp;gt; 10 years of intensive use and optmisation and feedback from &amp;gt; 4'000 users)&lt;BR /&gt;- Processor independent (works on all Kinetis, Coldfires - and several other processor families)&lt;BR /&gt;- No vendor supplied stack (all written, tested, commented and documented by supporting engineer - TCP/IP, USB, FAT etc. so no gluing together various open source findings and passing the buck into an open-source vacuum in case of any issues)&lt;/P&gt;&lt;P&gt;- Fully testable/verifiable in simulation environment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Where it falls down for you is that it uses some #if defines to allow a single code to be used on multiple processors and families (and also to enable/disable various features) which you may not like. The simulator does solve this though because it makes it very easy to step through the used code and, using VisualStudio, it is also easy to just view used code (also Eclipse allows this but is not very reliable).&lt;/P&gt;&lt;P&gt;And I didn't go for MISRA compliances (or a sub-set of the compliance rules) since it is generally quite a rare demand. I may have a go one day though.&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;P&gt;&lt;/P&gt;&lt;P&gt;P.S. Below is a representation of the serial loader, which supports various techniques (newest being USB-MSD host, whereby host and device can be used at the same time so that it either connects to a PC host or else loads new code from a memory tick - in fact two boards can be connected together via USB and they can clone software between each other using this OTG capability). Using a set of defines individual modes can be selected or multiple ones combinations, which then operate on any Kinetis board with the required peripherals. This gives just for the Kinetis family over 1'000 combinations and so it wouldn't be possible to maintain if there were an indivdual project for each type and combination.&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/28694i15D2EC513699C646/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;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Oct 2015 18:51:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453602#M26996</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-10-30T18:51:33Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453603#M26997</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;To post attachments activate the "Use advanced editor" in the top right hand corner of the box.&lt;/P&gt;&lt;P&gt;Then you will get an "Attach" link in the right hand bottom corner of the form.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Where it falls down for you is that it uses some #if defines to allow a single code to be used on multiple processors and families (and also to enable/disable various features) which you may not like. The simulator does solve this though because it makes it very easy to step through the used code and, using VisualStudio, it is also easy to just view used code (also Eclipse allows this but is not very reliable).&lt;/P&gt;&lt;P&gt;And I didn't go for MISRA compliances (or a sub-set of the compliance rules) since it is generally quite a rare demand. I may have a go one day though.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;This is the advanced editor and there is no link for attachments in any corner.&amp;nbsp; In lower right&amp;nbsp; it says @Mention and ! App and something to let me expand the box.&amp;nbsp; ! App sends me to some store.&amp;nbsp; Sorry, I'm not buying an attachment link.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The way around #if is to use structure tables of function pointers and separate code by directories via the build system.&amp;nbsp;&amp;nbsp; Somewhat the abstraction layer that your drawing shows.&amp;nbsp; That prevents files from becoming megaliths.&amp;nbsp; Some #if are fine when they out weigh the number of lines of code, as some Freescale does, there are to many.&amp;nbsp; I build 17 variations for both ARM and AVR from the same code base.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Start with just simple rule set for Lint and build up to MISRA a bit a time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Most people run Lint the first time get overwhelmed with the number of warnings&amp;nbsp; and run away screaming about the tool being hard to use. :-(&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finds errors like this that I see just about everyplace:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define FUNCTION() x = 1; y = 1&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Oct 2015 19:55:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453603#M26997</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2015-10-30T19:55:38Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453604#M26998</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have no problems with Chrome (using it to send this):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&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/28740iD59EB57C4CD766BD/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;2. &lt;SPAN style="text-decoration: underline;"&gt;Click&lt;/SPAN&gt; on "Use advanced editor" to get&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_0.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/28865i50D074741C39D03B/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_0.png" alt="pastedImage_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;3. Attach - I just attached something to be sure.&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>Fri, 30 Oct 2015 21:33:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453604#M26998</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-10-30T21:33:55Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453605#M26999</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Mark Butcher wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Bob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have no problems with Chrome (using it to send this):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&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/52364i915F7651F770ADA4/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;2. &lt;SPAN style="text-decoration: underline;"&gt;Click&lt;/SPAN&gt; on "Use advanced editor" to get&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_0.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/52375iD946479E8FE249F5/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_0.png" alt="pastedImage_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;3. Attach - I just attached something to be sure.&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;/BLOCKQUOTE&gt;&lt;P&gt;The system asked me a while ago if I always wanted to use the advance editor and I said yes so there is nothing in that corner asking any more.&lt;/P&gt;&lt;P&gt;If anything when I told it to always use the advance editor it may have stuck me permanently in the unadvanced editor.&amp;nbsp; I'll try a different browser on a different system someday.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;System also doesn't let you send messages to people you want to send messages to, probably as a spam prevention.&lt;/P&gt;&lt;P&gt;Wanted to tell you that you had a dead link: &lt;A href="http://www.utasker.com/kinetis/kinetis.html" title="http://www.utasker.com/kinetis/kinetis.html"&gt;http://www.utasker.com/kinetis/kinetis.html&lt;/A&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Nov 2015 12:53:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453605#M26999</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2015-11-03T12:53:16Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453606#M27000</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know where to find the option to always use the advanced mode but it sounds as though your are stuck in the standard view and so can't post attachments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It seems that it is now only possible to send messages to peple who are following you; I am now following you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The link is indeed bad because there is a /kinetis/ too many in it. However I didn't see where you took the link from since all of the ones that I find in posts (including the one in this thread) are correct (?)&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>Tue, 03 Nov 2015 15:07:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453606#M27000</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-11-03T15:07:10Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453607#M27001</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;It came from the bottom of this page: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/Capuccino-KL27/Capuccino-KL27.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/Capuccino-KL27/Capuccino-KL27.html&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Nov 2015 15:47:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453607#M27001</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2015-11-03T15:47:43Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453608#M27002</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm having the same problem with the KL03Z if you have a solution please let me know! I have wasted so much time with this!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jul 2016 17:43:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453608#M27002</guid>
      <dc:creator>saul_2510</dc:creator>
      <dc:date>2016-07-01T17:43:41Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453609#M27003</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 have attached the uTasker I2C driver as reference (supports master or slave, and single or doubled buffered devices).&lt;/P&gt;&lt;P&gt;It has been used successfully in industrial and consumer products based on KL parts with double-buffering and intensive use of repeated starts etc. (eg. communication with I2C based processor, touch screen controller polling and various monitoring devices at the same time) so solves all known issues with the newer I2C controller.&lt;/P&gt;&lt;P&gt;This is available integrated into the uTasker project and simulated in its KL simulator so generally allows any project to be developed faster and more reliably than traditional download/debug cycling (as well as giving an immediate solution to the I2C issues).&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;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KL03Z.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KL03Z.html&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Jul 2016 20:38:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453609#M27003</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2016-07-01T20:38:42Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453610#M27004</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are a good Mind Reader.&amp;nbsp; :-)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I just got back to beating on this problem last week.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However the link you posted does not seem to be the correct one.&lt;/P&gt;&lt;P&gt;Nor did I see any mention of I2C issues at:&lt;BR /&gt;&lt;A href="http://www.utasker.com/kinetis/FRDM-KL43Z.html" title="http://www.utasker.com/kinetis/FRDM-KL43Z.html"&gt;µTasker FRDM-KL43Z support&lt;/A&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jul 2016 12:29:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453610#M27004</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2016-07-05T12:29:02Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453611#M27005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;I linked to the KL03 board, which the last question was about. Go one level up to find all supported boards.&lt;/P&gt;&lt;P&gt;There is no mention of I2C problems at the KL43 link since there are none known (same fix for all double-buffered parts).&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jul 2016 15:32:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453611#M27005</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2016-07-05T15:32:32Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453612#M27006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Form software as not showing any attachment until I expanded the thread completely.&lt;/P&gt;&lt;P&gt;I really hate this form software. :-(&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jul 2016 17:22:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453612#M27006</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2016-07-05T17:22:28Z</dc:date>
    </item>
    <item>
      <title>Re: Double Buffered I2C Difficulties (eg. KL27)</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453613#M27007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many thanks!&lt;/P&gt;&lt;P&gt;I've just spent a day trying to figure why our K10 I2C code doesn't work on KL17. It's the repeated start issue.&lt;/P&gt;&lt;P&gt;BTW - I'm finding that the I2C bit rates don't agree with the calculated. Has anyone else noticed this?&lt;/P&gt;&lt;P&gt;eg I2C-&amp;gt;F = 0x1b with 16MHz clock gives me 117.65kbps. Ref manual (rev 5, Jan 2016) says /128 so should be 125kbps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Martin.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jul 2016 15:30:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Double-Buffered-I2C-Difficulties-eg-KL27/m-p/453613#M27007</guid>
      <dc:creator>Xlerb</dc:creator>
      <dc:date>2016-07-14T15:30:23Z</dc:date>
    </item>
  </channel>
</rss>

