<?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: Kinetis KL25z I2C basic configuration in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471232#M28481</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ulrich,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; After you configure the I2C module, you need to transfer the I2C data, then you can see the i2c clock in the sck pin.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Besides, you should better add the external pullup resistor in the sck, sda pin.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Attached it the KL25 i2c driver, you can refer to it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Any question, please let me know!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 25 Apr 2016 02:14:19 GMT</pubDate>
    <dc:creator>kerryzhou</dc:creator>
    <dc:date>2016-04-25T02:14:19Z</dc:date>
    <item>
      <title>Kinetis KL25z I2C basic configuration</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471227#M28476</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'm trying to configure the I2C for the Kinetis Kl25z dev board (in codewarrior as bareboard project). I want to use the PTE0 and PTE1 pins for the I2C-Communication. The I2C should be configured for 50kHz.&lt;/P&gt;&lt;P&gt;My question, I configured the I2C Modul, like this:&lt;/P&gt;&lt;P&gt;_____________________________________________________________________________________________&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include "derivative.h" /* include peripheral declarations */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //I2C clock on&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_I2C1_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&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; //Port clocks on&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 = SIM_SCGC5_PORTA_MASK | SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTC_MASK |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5_PORTD_MASK | SIM_SCGC5_PORTE_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Set PIN as I2C1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR0 = PORT_PCR_MUX(6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR1 = PORT_PCR_MUX(6);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;&amp;nbsp;&amp;nbsp; //I2C Frequency Divider&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_F = 0x27;&amp;nbsp;&amp;nbsp;&amp;nbsp; //I2C to 50kHz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&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; I2C1_C1 = 0x50; //Enable I2C Modul&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_C1 |= I2C_C1_IICEN_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; 100; i++);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C1_C1 = 0x50;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&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;If the I2C is configured right, there should be a clock signal with 50kHz?&lt;/P&gt;&lt;P&gt;What register is missing to activaite the I2C Clock, I have no Clock signal on SCL?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 11:43:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471227#M28476</guid>
      <dc:creator>us1</dc:creator>
      <dc:date>2016-04-22T11:43:32Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis KL25z I2C basic configuration</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471228#M28477</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well,&lt;/P&gt;&lt;P&gt;I don't need a corrected code, It would help if someone has a functional i2c implementation -&amp;nbsp; bareboard.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 14:53:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471228#M28477</guid>
      <dc:creator>us1</dc:creator>
      <dc:date>2016-04-22T14:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis KL25z I2C basic configuration</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471229#M28478</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;You can refer the example I2C bareboard project for kl25z given in Code Warrior. It uses Process Expert component and communicates with on board accelerometer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Rini&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 23 Apr 2016 04:27:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471229#M28478</guid>
      <dc:creator>rinipatel</dc:creator>
      <dc:date>2016-04-23T04:27:57Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis KL25z I2C basic configuration</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471230#M28479</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 wanted to do it without Process Expert, because I need to edit the whole code, so Process Expert is not helpful at all.&lt;/P&gt;&lt;P&gt;Is there no one which has a working i2c example, like it should be done after the ref.book? :smileycry:&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 23 Apr 2016 07:15:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471230#M28479</guid>
      <dc:creator>us1</dc:creator>
      <dc:date>2016-04-23T07:15:05Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis KL25z I2C basic configuration</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471231#M28480</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;The following is the basic configuration of I2C1 on ports PTE0 and PTE1 on the KL25:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;POWER_UP(4, SIM_SCGC4_I2C1);&amp;nbsp; // enable clock to module&lt;/P&gt;&lt;P&gt;_CONFIG_PERIPHERAL(E, 0,&amp;nbsp; (PE_0_I2C1_SDA | PORT_ODE | PORT_PS_UP_ENABLE)); // I2C1_SDA on PE0 (alt. function 6)&lt;/P&gt;&lt;P&gt;_CONFIG_PERIPHERAL(E, 1,&amp;nbsp; (PE_1_I2C1_SCL | PORT_ODE | PORT_PS_UP_ENABLE)); // I2C1_SCL on PE1 (alt. function 6)&lt;/P&gt;&lt;P&gt;I2C1_F= 0x32;&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; // set about 50kHz with 40MHz bus frequency&lt;/P&gt;&lt;P&gt;I2C1_C1 = (I2C_IEN);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enable I2C controller (0x80)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[complete code should check for bus-lockup and recovery before starting too]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;See &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.freescale.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KL25Z.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KL25Z.html&lt;/A&gt;&lt;SPAN&gt; and/or &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.freescale.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FTWR-KL25Z48M.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/TWR-KL25Z48M.html&lt;/A&gt;&lt;SPAN&gt; in case you prefer a complete industrial-quality solution (compatible with all Kinetis parts, including first and second generation parts with double-buffering - working around all erratas).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In your case I think there are three basic problems:&lt;/P&gt;&lt;P&gt;1. You haven't enabled open-drain mode with pull-ups on the ports (although the pull-ups are optional if there are external ones available)&lt;/P&gt;&lt;P&gt;2. The value 0x50 written to I2C1_C1 enables interrupts and master mode but don't actually enable the I2C operation&lt;/P&gt;&lt;P&gt;3. I2C master only generates clocks when actually sending data - if you don't send data the bus remains in high-impedance state so it is normal that there is no clock&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;SPAN&gt;I2C user's guide: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.freescale.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fdocs%2FuTasker%2FuTaskerIIC.PDF" rel="nofollow" target="_blank"&gt;http://www.utasker.com/docs/uTasker/uTaskerIIC.PDF&lt;/A&gt;&lt;/P&gt;&lt;P&gt;[1 on 1 support available in English, German and French if ever needed]&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 23 Apr 2016 19:43:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471231#M28480</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2016-04-23T19:43:27Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis KL25z I2C basic configuration</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471232#M28481</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ulrich,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; After you configure the I2C module, you need to transfer the I2C data, then you can see the i2c clock in the sck pin.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Besides, you should better add the external pullup resistor in the sck, sda pin.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Attached it the KL25 i2c driver, you can refer to it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Any question, please let me know!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Apr 2016 02:14:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471232#M28481</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-04-25T02:14:19Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis KL25z I2C basic configuration</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471233#M28482</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/kerryzhou"&gt;kerryzhou&lt;/A&gt;​,&lt;/P&gt;&lt;P&gt;thank you very much. Is there a example for SMBus as well?&lt;/P&gt;&lt;P&gt;thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 May 2016 22:40:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471233#M28482</guid>
      <dc:creator>us1</dc:creator>
      <dc:date>2016-05-04T22:40:44Z</dc:date>
    </item>
    <item>
      <title>Re: Kinetis KL25z I2C basic configuration</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471234#M28483</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ulrich,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I just have this I2C driver, actually the SMBus is nearly the same as I2C, you can modify the I2C driver to fulfill the SMBUS requirement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;Jingjing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 May 2016 02:26:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Kinetis-KL25z-I2C-basic-configuration/m-p/471234#M28483</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2016-05-05T02:26:35Z</dc:date>
    </item>
  </channel>
</rss>

