Warum unterstützt Atmel TWI I2C START BYTE auf TWI nicht?

Ich würde gerne wissen, warum Atmel TWI I2C START BYTE nicht unterstützt.

Ich lese das AT32UC3C2512C- Datenblatt im TWI-Teil und kann sehen, dass es das START BYTE von I2C nicht unterstützt (es befindet sich auf Seite 698), und ich würde gerne wissen, warum und welche Auswirkungen dies nicht hat unterstützt.

Könnten Sie zu diesem Datenblatt verlinken, damit wir nicht danach suchen müssen?
Darüber hinaus, was genau meinst du mit "unterstützt nicht"? Soweit ich weiß, wird ein Startbyte nur verwendet, um die Abfragezeit für Geräte ohne dedizierte I2C-Hardware zu reduzieren. Ein Startbyte sind nur Daten, und wie diese Daten gehandhabt werden, liegt ganz beim Softwaredesigner. i2c-bus.org/addressing/start-byte

Antworten (1)

Diese spezielle Implementierung eines Startbytes (sende einen Start, ein Dummy-Byte und einen Neustart) ist für langsamere I2C-Hardware gedacht, die auf Abfragen angewiesen ist , anstatt dedizierte Hardware zu verwenden, um Adressen automatisch zu erkennen.

Ich bin mir sicher, dass „Einfachheit“ der Grund dafür ist, dass dieser Modus in der Hardware nicht unterstützt wird – weniger Gates werden in der TWI-Peripherie benötigt, weniger Steuerregister usw. Davon abgesehen sind die Auswirkungen gering – ich bin mir ziemlich sicher, dass Sie dies können Führen Sie diese Sequenz manuell (dh in Ihrer Firmware) durch, anstatt sich darauf zu verlassen, dass die Hardware dies für Sie erledigt, wenn Sie ein seltsames Peripheriegerät haben, das diesen Modus tatsächlich benötigt.

Ich verstehe jetzt ... da die MCU über die I2C-Hardware verfügt, kann sie den START-Zustand leicht erkennen und benötigt das START-BYTE nicht, um es "einfacher" zu machen.