<?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: No I2C Clock signal in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546146#M13196</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by g_mocken on Fri Jul 17 05:15:24 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I think I have found the problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;Chip_IOCON_PinMuxSet(LPC_IOCON, 1, 30, IOCON_FUNC4 | IOCON_DIGMODE_EN | IOCON_OPENDRAIN_EN);
Chip_IOCON_PinMuxSet(LPC_IOCON, 1, 31, IOCON_FUNC4 | IOCON_DIGMODE_EN | IOCON_OPENDRAIN_EN);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The digital mode was unintentionally disabled. Explicitly enabling it helps.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:30:09 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:30:09Z</dc:date>
    <item>
      <title>No I2C Clock signal</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546143#M13193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by g_mocken on Thu Jul 16 07:22:19 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am trying to use I2C on LPC4074. Below is a rough sketch of my initialization, which I derived from the "periph_i2c" sample code (which is designed for LPC43xx, though):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;void I2C0_IRQHandler(void) {
if (Chip_I2C_IsMasterActive(I2C0)) {
Chip_I2C_MasterStateHandler(I2C0);
}
else {
Chip_I2C_SlaveStateHandler(I2C0);
}
}

void test(void) {


Chip_IOCON_Init(LPC_IOCON);
Chip_IOCON_PinMuxSet(LPC_IOCON, 1, 30, IOCON_FUNC4 | IOCON_OPENDRAIN_EN);
Chip_IOCON_PinMuxSet(LPC_IOCON, 1, 31, IOCON_FUNC4 | IOCON_OPENDRAIN_EN);

Chip_I2C_Init(I2C0);
Chip_I2C_SetClockRate(I2C0, 400000);
Chip_I2C_SetMasterEventHandler(I2C0, Chip_I2C_EventHandler);
NVIC_ClearPendingIRQ(I2C0_IRQn);
NVIC_EnableIRQ(I2C0_IRQn);

static uint8_t buf[10];
static I2C_XFER_T xfer={.slaveAddr=I2C_ADDR_7BIT, .txBuff=buf, .txSz=sizeof(buf)};
Chip_I2C_MasterSend(I2C0, xfer.slaveAddr, xfer.txBuff, xfer.txSz);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I single-step test() and put a scope on SDA and SCL, then I notice a high-&amp;gt;low transition on SDA on the last line of the following LPCOpen function, which is called by Chip_I2C_MasterSend():&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;/* Enable I2C and start master transfer */
STATIC INLINE void startMasterXfer(LPC_I2C_T *pI2C)
{
/* Reset STA, STO, SI */
pI2C-&amp;gt;CONCLR = I2C_CON_SI | I2C_CON_STO | I2C_CON_STA | I2C_CON_AA;

/* Enter to Master Transmitter mode */
pI2C-&amp;gt;CONSET = I2C_CON_I2EN | I2C_CON_STA;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I would expect the clock line to show the same transition in order to make this a START condition, but SCL stays high, no interrupt trigers and the code hangs in Chip_I2C_EventHandler(), probably waiting for the START condition to complete.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you have any idea what could be wrong or missing in this setup?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:30:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546143#M13193</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:30:07Z</dc:date>
    </item>
    <item>
      <title>Re: No I2C Clock signal</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546144#M13194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by nerd herd on Thu Jul 16 07:39:52 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi g_mocken,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any particular reason why you are using the codebase for the LPC4300 series? I would start with the LPCOpen software examples for the EA LPC4088 board:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.lpcware.com%2Fcontent%2Fnxpfile%2Flpcopen-software-development-platform-lpc40xx-packages" rel="nofollow" target="_blank"&gt;https://www.lpcware.com/content/nxpfile/lpcopen-software-development-platform-lpc40xx-packages&lt;/A&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:30:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546144#M13194</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:30:08Z</dc:date>
    </item>
    <item>
      <title>Re: No I2C Clock signal</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546145#M13195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by g_mocken on Thu Jul 16 08:49:40 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: nerd herd&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;Any particular reason why you are using the codebase for the LPC4300 series? I would start with the LPCOpen software examples for the EA LPC4088 board: ...&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for pointing this out (I only have an LPCLink2 demo board, which is why I usually start with 4370 code before porting to my custom board with 4074). I quickly went through the 4088 code, and I think it is identical. It uses other pins, but that appears to be all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 27, IOCON_FUNC1);
Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 28, IOCON_FUNC1);
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since I have cannot change the design of the custom board, I cannot switch to those pins (Edit: they do not even exist for the 4074FBD80 used here), and I am still stuck with no clock signal (or with an incomplete START condition).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:30:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546145#M13195</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:30:08Z</dc:date>
    </item>
    <item>
      <title>Re: No I2C Clock signal</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546146#M13196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by g_mocken on Fri Jul 17 05:15:24 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I think I have found the problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;Chip_IOCON_PinMuxSet(LPC_IOCON, 1, 30, IOCON_FUNC4 | IOCON_DIGMODE_EN | IOCON_OPENDRAIN_EN);
Chip_IOCON_PinMuxSet(LPC_IOCON, 1, 31, IOCON_FUNC4 | IOCON_DIGMODE_EN | IOCON_OPENDRAIN_EN);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The digital mode was unintentionally disabled. Explicitly enabling it helps.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:30:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/No-I2C-Clock-signal/m-p/546146#M13196</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:30:09Z</dc:date>
    </item>
  </channel>
</rss>

