]> git.zerfleddert.de Git - rsbs2/commitdiff
use 20kHz as I2C frequency
authorMichael Gernoth <michael@gernoth.net>
Mon, 23 Aug 2010 17:00:37 +0000 (19:00 +0200)
committerMichael Gernoth <michael@gernoth.net>
Mon, 23 Aug 2010 17:00:37 +0000 (19:00 +0200)
bmc/i2c.c

index d7bb95136d3a2bd34f0ae79b22f3f53e09840dea..bd4d69ca589595a16b4254d2e79eca0f0e0eca43 100644 (file)
--- a/bmc/i2c.c
+++ b/bmc/i2c.c
@@ -14,9 +14,15 @@ volatile uint8_t i2c_len = 0x00;
 static volatile uint8_t i2c_pos = 0x00;
 volatile uint8_t i2c_done = 0x00;
 
 static volatile uint8_t i2c_pos = 0x00;
 volatile uint8_t i2c_done = 0x00;
 
+#define I2C_FREQ 20000UL
+
 void i2c_init()
 {
 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<<TWSTA) | (1<<TWSTO));
        TWAR = BMC_ADDR & 0xfe;
        TWDR = 0x00;
        TWCR &= ~((1<<TWSTA) | (1<<TWSTO));
Impressum, Datenschutz