X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/rsbs2/blobdiff_plain/75a0197760515c6faedadf705c6d758681880602..989281f290d774ce78f71c8a420870987407a831:/bmc/i2c.c diff --git a/bmc/i2c.c b/bmc/i2c.c index 6ffa31f..bd4d69c 100644 --- a/bmc/i2c.c +++ b/bmc/i2c.c @@ -14,14 +14,24 @@ volatile uint8_t i2c_len = 0x00; static volatile uint8_t i2c_pos = 0x00; volatile uint8_t i2c_done = 0x00; +#define I2C_FREQ 20000UL + void i2c_init() { - TWBR = 0xff; + /* SCLf = F_CPU / (16 + 2 * TWBR * 4^TWPS) + * TWPS is 0 => + * TWBR = (F_CPU/(2 * SCL)) - 8 + */ + TWBR = (F_CPU/(2*I2C_FREQ))-8; TWAR = BMC_ADDR & 0xfe; TWDR = 0x00; TWCR &= ~((1<