Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions Marlin/Configuration_adv.h
Original file line number Diff line number Diff line change
Expand Up @@ -2449,6 +2449,14 @@

#endif // HAS_L64XX

// @section i2cbus

//
// I2C Master ID for LPC176x LCD and Digital Current control
// Does not apply to other peripherals based on the Wire library.
//
//#define I2C_MASTER_ID 1 // Set a value from 0 to 2

/**
* TWI/I2C BUS
*
Expand Down Expand Up @@ -2477,10 +2485,10 @@
* echo:i2c-reply: from:99 bytes:5 data:hello
*/

// @section i2cbus

//#define EXPERIMENTAL_I2CBUS
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#if ENABLED(EXPERIMENTAL_I2CBUS)
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
#endif

// @section extras

Expand Down
7 changes: 3 additions & 4 deletions Marlin/src/HAL/HAL_LPC1768/include/i2c_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@

#ifdef TARGET_LPC1768

#include "../../../inc/MarlinConfigPre.h"
#include "i2c_util.h"

#define U8G_I2C_OPT_FAST 16 // from u8g.h
Expand All @@ -43,13 +42,13 @@ void configure_i2c(const uint8_t clock_option) {
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Portnum = 0;
#if USEDI2CDEV_M == 0
#if I2C_MASTER_ID == 0
PinCfg.Funcnum = 1;
PinCfg.Pinnum = 27; // SDA0 / D57 AUX-1 ... SCL0 / D58 AUX-1
#elif USEDI2CDEV_M == 1
#elif I2C_MASTER_ID == 1
PinCfg.Funcnum = 3;
PinCfg.Pinnum = 0; // SDA1 / D20 SCA ... SCL1 / D21 SCL
#elif USEDI2CDEV_M == 2
#elif I2C_MASTER_ID == 2
PinCfg.Funcnum = 2;
PinCfg.Pinnum = 10; // SDA2 / D38 X_ENABLE_PIN ... SCL2 / D55 X_DIR_PIN
#endif
Expand Down
12 changes: 7 additions & 5 deletions Marlin/src/HAL/HAL_LPC1768/include/i2c_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,17 @@
* HAL_LPC1768/include/i2c_util.h
*/

#ifndef USEDI2CDEV_M
#define USEDI2CDEV_M 1 // By default use I2C1 controller
#include "../../../inc/MarlinConfigPre.h"

#ifndef I2C_MASTER_ID
#define I2C_MASTER_ID 1
#endif

#if USEDI2CDEV_M == 0
#if I2C_MASTER_ID == 0
#define I2CDEV_M LPC_I2C0
#elif USEDI2CDEV_M == 1
#elif I2C_MASTER_ID == 1
#define I2CDEV_M LPC_I2C1
#elif USEDI2CDEV_M == 2
#elif I2C_MASTER_ID == 2
#define I2CDEV_M LPC_I2C2
#else
#error "Master I2C device not defined!"
Expand Down
6 changes: 3 additions & 3 deletions Marlin/src/HAL/HAL_LPC1768/u8g/LCD_I2C_routines.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@

#ifdef TARGET_LPC1768

#include "../include/i2c_util.h"
#include "../../../core/millis_t.h"

extern int millis();

#ifdef __cplusplus
extern "C" {
#endif

#include "../include/i2c_util.h"
#include "../../../core/millis_t.h"

//////////////////////////////////////////////////////////////////////////////////////

// These two routines are exact copies of the lpc17xx_i2c.c routines. Couldn't link to
Expand Down