UART to I2C master(s) converter, targetting to emulate SC18IM700(NXP) chip

Dependencies:   mbed

UART to I2C master(s) converter, targetting to emulate SC18IM700(NXP) chip

Features

up to 4x I2C master

  • for LPC824 implement, we can use up to 4 channels of I2C masters
    • 1x Fm+ and 3x Fm I2C channels
  • for LPC1768 implement, we can use up to 2 channels of I2C masters
    • 2x Fm I2C channels
  • for LPC11U35 implement, only one channel for I2C master, but program uses USB CDC class for UART communication (means no external USB-Serial converter chip)
    • 1x Fm+ I2C channels

1x SPI master

up to 2x 8bit GPIO

Tested Platforms

LPC824

LPC1768

LPC11U35

Quote:

LPC11U35 implement requires importing USBDevice library to use USBSerial class

visit https://github.com/K4zuki/tinyI2C for more information

Committer:
k4zuki
Date:
Tue Aug 30 18:31:12 2016 +0000
Revision:
0:b597ed665b76
Child:
36:ffbd9829c8d1
restart from empty

Who changed what in which revision?

UserRevisionLine numberNew contents of line
k4zuki 0:b597ed665b76 1 /*
k4zuki 0:b597ed665b76 2 tinyI2C_11U3x.h
k4zuki 0:b597ed665b76 3 */
k4zuki 0:b597ed665b76 4
k4zuki 0:b597ed665b76 5 static const uint8_t chip_id = ID_LPC11UXX;
k4zuki 0:b597ed665b76 6
k4zuki 0:b597ed665b76 7 #define isI2C1 // unused(always enabled)
k4zuki 0:b597ed665b76 8 I2C dev1( P0_5, P0_4 );
k4zuki 0:b597ed665b76 9
k4zuki 0:b597ed665b76 10
k4zuki 0:b597ed665b76 11 #undef isI2C2
k4zuki 0:b597ed665b76 12 #undef isI2C3
k4zuki 0:b597ed665b76 13 #undef isI2C4
k4zuki 0:b597ed665b76 14
k4zuki 0:b597ed665b76 15 #undef isUART
k4zuki 0:b597ed665b76 16 #define isUSBUART
k4zuki 0:b597ed665b76 17
k4zuki 0:b597ed665b76 18 #include "USBSerial.h"
k4zuki 0:b597ed665b76 19 USBSerial pc;
k4zuki 0:b597ed665b76 20
k4zuki 0:b597ed665b76 21 #define isHWSPI
k4zuki 0:b597ed665b76 22 #undef isSWSPI
k4zuki 0:b597ed665b76 23 SPI _spi(P0_9, P0_8, P0_10); // mosi, miso, sclk
k4zuki 0:b597ed665b76 24 DigitalOut _cs(P0_7); // CS
k4zuki 0:b597ed665b76 25
k4zuki 0:b597ed665b76 26 #define isGPIO0 // unused(always enabled)
k4zuki 0:b597ed665b76 27 DigitalInOut _GPIO00(P0_22);
k4zuki 0:b597ed665b76 28 DigitalInOut _GPIO01(P0_11);
k4zuki 0:b597ed665b76 29 DigitalInOut _GPIO02(P0_12);
k4zuki 0:b597ed665b76 30 DigitalInOut _GPIO03(P0_13);
k4zuki 0:b597ed665b76 31 DigitalInOut _GPIO04(P0_14);
k4zuki 0:b597ed665b76 32 DigitalInOut _GPIO05(P0_15);
k4zuki 0:b597ed665b76 33 DigitalInOut _GPIO06(P0_16);
k4zuki 0:b597ed665b76 34 DigitalInOut _GPIO07(P0_23);
k4zuki 0:b597ed665b76 35
k4zuki 0:b597ed665b76 36 #define isGPIO1
k4zuki 0:b597ed665b76 37 DigitalInOut _GPIO10(P1_15);
k4zuki 0:b597ed665b76 38 DigitalInOut _GPIO11(P0_17);
k4zuki 0:b597ed665b76 39 DigitalInOut _GPIO12(P0_18);
k4zuki 0:b597ed665b76 40 DigitalInOut _GPIO13(P0_19);
k4zuki 0:b597ed665b76 41 DigitalInOut _GPIO14(P1_19);
k4zuki 0:b597ed665b76 42 DigitalInOut _GPIO15(P0_20);
k4zuki 0:b597ed665b76 43 DigitalInOut _GPIO16(P0_2 );
k4zuki 0:b597ed665b76 44 DigitalInOut _GPIO17(P0_21);
k4zuki 0:b597ed665b76 45