Die Frage war:
I want to read temperature from TC74 using I2C module of PIC16F887, however, in Proteus
simulation, I see noises in I2C Debugger Tool's output.
Es sagte mir, dass ich "Spurious SCL-Übergang" hatte. Alle anderen Informationen zu der Frage wie Schemata, Code und Screenshot finden Sie in den älteren Revisionen .
Das Problem wird behoben, nachdem eine Verzögerung von 4 us nach einer Neustartbedingung hinzugefügt wurde, wie im Datenblatt angegeben:
Haltezeit der START-Bedingung - Min.: 4 us
START-Bedingungs-Setup-Zeit (für wiederholte START-Bedingungen) - Min.: 4 us
STOP-Zustands-Setup-Zeit - Min.: 4 us
Das bedeutet, dass wir immer zuerst das Datenblatt gründlich lesen sollten . Ich vermute, dass der Grund, warum Leute im Internet keinen Fehler haben, wenn sie diese Wartezeiten nicht einhalten, darin besteht, dass ihre Taktrate niedrig ist und sie keine Verzögerung in der uC vornehmen müssen.
Arbeitscode und alle anderen Informationen dieses Beitrags können in den älteren Revisionen davon gefunden werden. Um die endgültige Version der Frage vor diesem Schrumpfen zu sehen, gehen Sie einfach auf diese Seite .
Ich weiß nicht, was Sie mit "Proteus-Simulation" meinen. Auf jeden Fall gibt es einige offensichtliche Probleme im Schaltplan. Erstens fehlen eindeutig eine Reihe von Verbindungen, sodass wir nicht sagen können, was wirklich angeschlossen ist. Sie bekommen Stifte wackeln, also muss es Strom geben, der nicht gezeigt wird. Bleibt die Frage, was sonst noch nicht gezeigt wird. Und nein, sagen Sie nicht, es ist alles richtig angeschlossen und es spielt keine Rolle. Bei näherer Betrachtung hat der PIC im Schaltplan überhaupt keine Strom- und Erdungsstifte. Beheben Sie all diese offensichtlichen Dinge, bevor Sie fortfahren.
Warum die 10-kΩ-Klimmzüge? Diese können für IIC in Ordnung sein, begrenzen jedoch die Busgeschwindigkeit. Was ist die IIC-Taktrate?
Welche Spannung ist Vcc? Wie wird der PIC getaktet? Wenn dies eine Simulation ist, was macht die echte Hardware? Was ist der "I2C"-Block in der oberen rechten Ecke des Schaltplans? Wenn Sie ein Problem zwischen einem PIC und einem anderen Gerät haben, entfernen Sie während des Debuggens alles andere vom Bus.
Mir ist klar, dass dies wahrscheinlich ein Kommentar hätte sein sollen, aber es war zu viel verlangt, um in einen Kommentar zu passen.
Das Problem in der Frage ist gelöst und die Details finden Sie im Beitrag selbst oder im letzten Beitrag vor dem eigentlichen. Diese Antwort dient nur dazu, diese Frage als beantwortet zu kennzeichnen, damit sie nicht umsonst die Liste der unbeantworteten Fragen füllt.
Kellenjb
abdullah kahraman
Olin Lathrop
abdullah kahraman
Kevin Vermeer
abdullah kahraman
Kevin Vermeer
abdullah kahraman
abdullah kahraman
abdullah kahraman
abdullah kahraman
Kortuk
abdullah kahraman
Kortuk
abdullah kahraman
abdullah kahraman
abdullah kahraman