From 03fee2584fa9fed1b732787c74c14b0814f59fe5 Mon Sep 17 00:00:00 2001 From: derSeddy Date: Tue, 4 Jul 2017 14:13:59 +0200 Subject: [PATCH] Added 50kHz operation mode for I2C/Wire library --- cores/esp8266/core_esp8266_si2c.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cores/esp8266/core_esp8266_si2c.c b/cores/esp8266/core_esp8266_si2c.c index bb8e619eee..102534478b 100644 --- a/cores/esp8266/core_esp8266_si2c.c +++ b/cores/esp8266/core_esp8266_si2c.c @@ -45,13 +45,15 @@ static uint32_t twi_clockStretchLimit; void twi_setClock(unsigned int freq){ #if F_CPU == FCPU80 - if(freq <= 100000) twi_dcount = 19;//about 100KHz + if(freq <= 50000) twi_dcount = 38;//about 50KHz + else if(freq <= 100000) twi_dcount = 19;//about 100KHz else if(freq <= 200000) twi_dcount = 8;//about 200KHz else if(freq <= 300000) twi_dcount = 3;//about 300KHz else if(freq <= 400000) twi_dcount = 1;//about 400KHz else twi_dcount = 1;//about 400KHz #else - if(freq <= 100000) twi_dcount = 32;//about 100KHz + if(freq <= 50000) twi_dcount = 64;//about 50KHz + else if(freq <= 100000) twi_dcount = 32;//about 100KHz else if(freq <= 200000) twi_dcount = 14;//about 200KHz else if(freq <= 300000) twi_dcount = 8;//about 300KHz else if(freq <= 400000) twi_dcount = 5;//about 400KHz @@ -211,4 +213,4 @@ uint8_t twi_status(){ if(!twi_write_start()) return I2C_SDA_HELD_LOW_AFTER_INIT; //line busy. SDA again held low by another device. 2nd master? else return I2C_OK; //all ok -} \ No newline at end of file +}