Small demo program I2C - PCF8574 showing that I2C class is not working on LPC4088

Dependencies:   mbed

Committer:
karelv
Date:
Sun Dec 07 13:54:14 2014 +0000
Revision:
0:c3cff0038502
demo program for I2C

Who changed what in which revision?

UserRevisionLine numberNew contents of line
karelv 0:c3cff0038502 1 #include "mbed.h"
karelv 0:c3cff0038502 2
karelv 0:c3cff0038502 3 DigitalOut myled(LED4);
karelv 0:c3cff0038502 4 I2C i2c(p9, p10);
karelv 0:c3cff0038502 5
karelv 0:c3cff0038502 6 // Connections made:
karelv 0:c3cff0038502 7 // SDA to pin9 of LPC4088 QSB
karelv 0:c3cff0038502 8 // SCL to pin10 of LPC4088 QSB
karelv 0:c3cff0038502 9 // on I2C bus is PCF8574 connected at sub-address 0 (0x40).
karelv 0:c3cff0038502 10 // all supplied at 3.3V
karelv 0:c3cff0038502 11 // no external pullup (Assuming that I2C-class is using 5K internal pullup)
karelv 0:c3cff0038502 12 //
karelv 0:c3cff0038502 13
karelv 0:c3cff0038502 14 // this example does not work on my LPC4088 QSB.
karelv 0:c3cff0038502 15 // mbed: 92:4fc01daae5a5
karelv 0:c3cff0038502 16 //
karelv 0:c3cff0038502 17 // note When I connect an external pulldown! (not pullup) of 10K on SDA & SCL it seems to work
karelv 0:c3cff0038502 18 // This is not logical.
karelv 0:c3cff0038502 19
karelv 0:c3cff0038502 20 void
karelv 0:c3cff0038502 21 i2cIoWrite (char address, char data)
karelv 0:c3cff0038502 22 {
karelv 0:c3cff0038502 23 i2c.start ();
karelv 0:c3cff0038502 24 i2c.write (address);
karelv 0:c3cff0038502 25 i2c.write (data);
karelv 0:c3cff0038502 26 i2c.stop ();
karelv 0:c3cff0038502 27 }
karelv 0:c3cff0038502 28
karelv 0:c3cff0038502 29
karelv 0:c3cff0038502 30 int
karelv 0:c3cff0038502 31 main()
karelv 0:c3cff0038502 32 {
karelv 0:c3cff0038502 33 i2c.frequency (100000);
karelv 0:c3cff0038502 34
karelv 0:c3cff0038502 35 while (1)
karelv 0:c3cff0038502 36 {
karelv 0:c3cff0038502 37 myled = 1;
karelv 0:c3cff0038502 38 i2cIoWrite (0x40, 0x55);
karelv 0:c3cff0038502 39 wait(0.5);
karelv 0:c3cff0038502 40 myled = 0;
karelv 0:c3cff0038502 41 i2cIoWrite (0x40, 0xAA);
karelv 0:c3cff0038502 42 wait (0.5);
karelv 0:c3cff0038502 43 }
karelv 0:c3cff0038502 44 }