2012-08-17 60 views
0

我的PIC16F88有一个奇怪的问题。我有一个通过I2C连接的EEPROM,在我写入portb.bit6之前,它可以完美工作。从那时起,我开始从我的EEPROM中获取垃圾。我试着明确地禁用定时器1,它使用portb.6作为振荡器输出,但是没有帮助。我尝试从PIC引脚(引脚12)切割走线,以确保没有任何物理连接,并且没有任何帮助。我的C代码很简单,无论是portb.6 = 0还是portb.6 = 1。无论哪种方式,通过I2C读取EEPROM都会失败。生成的ASM代码看起来很好。这个问题出现在我试过的每块电路板上,所以它不会局限于一块PCB上。我很困惑。有什么建议么?PIC16F88,portb.bit6和I2C

+0

请尝试在这里发布这个问题http://electronics.stackexchange.com/ – 2012-08-20 13:55:38

回答

0

事实证明,在写入到portb中的任何位之前,每次都需要向SCL和SDA引脚写入一个零位。 FWIW,我没有使用PIC16F88的SSP外设用于I2C通信,而是让我感到苦苦挣扎。感谢雅虎集团Electronics_101上的人们找出这个难题。