2014-02-28 48 views
0

我打算在atmega16中实现基于GPIO的I2C。 由于它应该有两个引脚SCL,SDA。 SDA引脚应该是双向的,但我知道的是,我们可以一次将引脚设置为输入或输出。是否可以将GPIO配置为输入和输出?

通过什么方式我们可以实现它?

+0

这个问题可以转移到SOEE网站。 –

回答

1

SDA引脚应该是双向的,但我知道的是,我们可以一次将引脚设置为输入或输出。

这是事实,但I2C主控“知道”何时期望传入数据。由于这是一个同步总线,因此在输入/输出数据之前,主机可以在驱动输出或切换到三态/输入之间进行切换。

爱特梅尔本应用说明可能对您有用:Atmel AVR156: TWI Master Bit Bang Driver

Atmel的示例使用轮询的方法,这限制了速度。如果您的某个GPIO具有引脚更改中断支持,您可以根据需要使用它来获得更高的速度。

相关问题