What This Document Is
This is a focused guide detailing the implementation and usage of the Inter-Integrated Circuit (I2C) interface, a serial communication protocol, specifically within the context of the Embedded Systems Design Laboratory (EE 459Lx) at the University of Southern California. It centers around two microcontroller families: the ATmega328P and the MC908JL16. The guide explores how to leverage the hardware capabilities of these microcontrollers for I2C communication, offering insights into the underlying principles of this widely-used bus system.
Why This Document Matters
Students enrolled in EE 459Lx, or those working on embedded systems projects involving serial communication, will find this resource invaluable. It’s particularly useful when integrating external devices – such as sensors, memory chips, or real-time clocks – into a microcontroller-based system. Understanding I2C is crucial for effective hardware interaction and data exchange. This guide is designed to bridge the gap between theoretical knowledge of the I2C protocol and its practical application within the lab environment, aiding in project debugging and efficient system design.
Common Limitations or Challenges
This guide focuses on the hardware implementation of I2C on the specified microcontrollers. It does not provide a comprehensive overview of the I2C protocol itself, assuming a foundational understanding. It also doesn’t delve into software-only implementations of the protocol, nor does it offer detailed troubleshooting steps for all possible communication errors. While it mentions oscilloscope usage for analysis, it doesn’t provide a tutorial on advanced debugging techniques. The guide is specific to the devices and lab setup used in the USC EE 459Lx course.
What This Document Provides
* An overview of the I2C interface and its common applications.
* A comparison of how the I2C interface is referred to across different microcontroller documentation (Atmel vs. Freescale).
* Discussion of device addressing schemes within the I2C protocol.
* Information regarding the specific pin assignments for I2C communication on the ATmega328P.
* Guidance on initial hardware configuration, including setting the communication baud rate.
* A table of common I2C device addresses used in EE 459Lx projects.