embeded/Cortex-M3 Ti2012. 2. 20. 21:19
어떤 i2c 칩이랑 avr이랑 통신하려니 안되서 ti 칩으로 바꾸고 나니 잘되는데 -_-
이제야 와서 이유를 찾아보게 되는데..

TI 칩에서 I2C로 Alternative Function을 사용하게 되면 open drain으로 설정되는데, 
아마도 AVR atmel 은 pull-up이 되면서 모종의 문제가 발생하는 듯하다.

 When using the I2C module, in addition to configuring the pin to open drain, the GPIO Alternate Function Select (GPIOAFSEL) register bits for the I2C clock and data pins should be set to 1 (see examples in “Initialization and Configuration” on page 185).  

15.2 Functional Description
Each I2C module is comprised of both master and slave functions which are implemented as separate peripherals. For proper operation, the SDA and SCL pins must be connected to bi-directional open-drain pads. A typical I2C bus configuration is shown in Figure 15-2 on page 399. See “Inter-Integrated Circuit (I2C) Interface” on page 546 for I2C timing diagrams. 

[링크 : http://cooa.tistory.com/entry/20030676476]
Posted by 구차니