To get a better understanding about the I2C-bus, I’ve been reading Vincent Himpe’s Mastering the I2C bus. Excellent stuff and very praxis oriented. (Two thirds of the book is dedicated to various projects you could build. The project demo PCBs are available for purchase, but they aren’t exactly cheap. Nevertheless, the book by itself was definetly worth the purchase to me.)
I also bought Mastering surface mount technology by the same author. Its light reading and covers a plethora of various topics – not just SMT stuff. (I learned about it on the EEVblog. Check out the Dave’s quick first glance review of it. The review starts about 24 min into the video.)
Based on these books, I can’t help but recommend this LabWorX series by Elektor if practical advice is your thing. Currently they’ve only published these two. I can’t wait for the topics yet to come, like the SPI-bus. (I’ve yet to test the data transfer speed on that one.)
EDIT: Nowadays, I think the book “Mastering the I2C Bus” is a little misleading when it comes to the slave’s ability to slow the bus down. The book nearly completely fails to mention clock stretching. It’s not even in the index. Many other sources – including the documentation from NXP (on page 13) – declare that that’s the way to slow the bus down. Just a thing to keep in mind! It sure got me confused, but then again, that’s pretty easy to do.