MISO/MOSI vs. DI/DO

Gibt es einen Unterschied zwischen den MISO/MOSI-Pins und den DI/DO-Pins? Stimmt es, dass MISO/MOSI für die SPI-Kommunikation ist, während DI/DO für die USI-Kommunikation ist? Was genau ist der Unterschied?

Worauf Sie sich beziehen, ist mir unklar. Von welchem ​​Gerät oder Board sprichst du? Im Allgemeinen sind MISO/MOSI DI/DO nur Namen, die Pins gegeben werden. Im Allgemeinen können Sie die Pins so programmieren, dass sie tun, was Sie wollen. Es gibt also keinen Unterschied.
Ich verwende den ATtiny 861a mit zwei Slaves. Es kommuniziert über USI, kann aber für SPI-Kommunikation programmiert werden (zusammen mit der Herstellung eines Pins als Chip Select). Wie würde ich meine Schaltung verdrahten? Soll ich mir die DI/DO-Pins ansehen oder nur die MISO/MOSI-Pins verwenden?
Ich denke, es ist üblich, MISO/MOSI auf dem Master und DI/DO auf den Slaves zu verwenden. Aber noch einmal, sie sind nur Ein-/Ausgänge und können für fast alles programmiert werden.
Wenn also beide meiner Slaves SPI-Kommunikation verwenden, würde ich die MISO-Leitung des Slaves mit der MISO-Leitung meiner MCU verbinden oder müsste ich die MISO-Leitungen meiner Slaves mit dem DI/DO-Pin der MCU verbinden? Ist der DI-Pin der Eingang zur MCU oder der Eingang zum Slave?
Vielleicht sollten Sie lernen: learn.sparkfun.com/tutorials/i2c

Antworten (1)

Folgen Sie dem Datenblatt .

Kapitel 13: USI bedeutet Universal Serial Interface. Es handelt sich um ein Peripheriegerät, das entweder für Dreidraht- (SPI) oder Zweidraht- (I2C) Kommunikation programmiert werden kann. Diese Fähigkeit, für beide seriellen Protokolle konfiguriert zu werden, ist der Grund, warum es "universal" genannt wird. USI ist kein Kommunikationsprotokoll, sondern das konfigurierbare Peripheriegerät.

Kapitel 13.3.1: Das USI-Dreidrahtprotokoll ist mit SPI kompatibel. Verwenden Sie in diesem Modus die Pins DI, DO und USCK. Dies gilt, wenn Sie den Mikrocontroller als SPI-Master (13.3.2) oder Slave (13.3.3) für Ihre Anwendung verwenden.

Kapitel 18.6: Die MISO- und MOSI-Pins werden während der seriellen Programmierung der Flash- und EEPROM-Speicher des Mikrocontrollers verwendet. Hier fungiert der Mikrocontroller als Slave eines externen Programmierers, der der Master ist.

Kapitel 10.2.2: Der MISO-Pin ist wirklich derselbe Pin wie DO an Port B. Und MOSI ist derselbe wie DI an Port B. Wenn Sie Port B für die serielle Programmierung der internen Speicher konfiguriert haben, fungiert der Mikrocontroller als a Slave und die Pins werden als MISO und MOSI bezeichnet. Wenn Sie Port B für die SPI-Kommunikation mit anderen Geräten für Ihre Anwendung konfiguriert haben, kann der Mikrocontroller ein Master oder ein Slave sein. In diesem Fall werden die Pins als DO und DI bezeichnet, weil nur die Datenrichtung bekannt ist und ob der Mikrocontroller ein Master oder Slave ist, hängt von der Anwendung ab.

Um den Mikrocontroller als Master zu verwenden und mit einem Slave-SPI-Gerät zu kommunizieren, verbinden Sie:

  • Der DI-Pin (Eingang) des Mikrocontrollers an den MISO-Pin (Slave-Ausgang) des Slave-Geräts.
  • Der DO-Pin (Ausgang) des Mikrocontrollers mit dem MOSI-Pin (Slave-Eingang) des Slave-Geräts.
  • Das USCK-Pint des Mikrocontrollers an den entsprechenden Clock-Pin auf dem Slave-Gerät