Welcher PIC-Mikrocontroller kann mit einem ADXRS800-Gyroskop mit SPI-Ausgang verbunden werden?

Auf den Punkt...

Ich plane, ein ADXRS800-Gyroskop zu verwenden, und sein Ausgang ist eine 32-Bit-SPI-Nachricht. Bedeutet dies, dass es nur mit einem 32-Bit-PIC-Mikrocontroller verbunden werden kann, oder könnte ich meinen 8-Bit-Mikrocontroller verwenden?

Antworten (4)

Natürlich können Sie jeden 8-Bit-µC verwenden.

Nachrichten, die länger als ein Byte sind, können Sie in mehreren einzelnen Bytestücken verarbeiten.

Sehen Sie sich einen Beispielcode an. Hier finden Sie
zB einige Beispiele für die Anbindung eines PIC an verschiedene Peripheriegeräte.

Wie Curd sagte, können Sie jeden Mikrocontroller verwenden, solange er drei digitale Ausgangsleitungen und eine digitale Eingangsleitung hat. Die SPI-Hardware in PICs ist darauf beschränkt, ganze 8-Bit-Blöcke zu übertragen. Da Sie ein ganzzahliges Vielfaches davon übertragen müssen, können Sie die Hardware direkt verwenden. Sie führen einfach vier 8-Bit-Übertragungen nacheinander durch. Die 16-Bit-PICs haben auch einen 16-Bit-SPI-Modus, in dem ganze 16-Bit-Blöcke gleichzeitig übertragen werden. Das würde auch für Sie funktionieren, da 32 ein ganzzahliges Vielfaches von 16 ist.

SPI ist ein sehr einfach zu implementierendes Protokoll für den Master. Da der Master die Uhr besitzt, kann SPI einfach in Firmware implementiert werden. Ich habe das ein paar Mal gemacht, manchmal nur, um andere Pins als das dedizierte SPI-Peripheriegerät zu verwenden. Natürlich können Sie mit einer Firmware-Implementierung beliebig viele Bits in einer Nachricht übertragen.

Die native Wortgröße des Prozessors hat überhaupt nichts mit Ihrem Problem zu tun. Das sagt Ihnen nur, mit welcher Größe von Bits es gleichzeitig arbeiten kann. Sie können schließlich mit jedem Prozessor mit Zahlen beliebiger Größe arbeiten, nur dass eine Reihe von Anweisungen erforderlich sind, um Wörter zu manipulieren, die breiter sind als die Datenpfade des Prozessors.

Die Anzahl der Bits, die ein Mikrocontroller hat, ist die Anzahl der Bits, mit denen er nativ Berechnungen durchführen kann. Ein 8-Bit-Mikro kann typischerweise 2 8-Bit (Byte) in 1 Anweisung multiplizieren, summieren, subtrahieren.

Wenn das Mikro 16-Bit- oder 32-Bit-Berechnungen durchführen muss, kompiliert es zusätzliche Anweisungen, um dies zu ermöglichen. Dadurch wird die Berechnung erheblich langsamer. Wenn dies jedoch ~ 400 Anweisungen bei 4 MIPS (= 16 MHz PIC16/18) erfordern würde, können Sie immer noch (theoretisch) 10 KSPS verarbeiten. Wahrscheinlich können Sie Berechnungen immer optimieren, damit sie auf Ihrem System schneller ausgeführt werden. Wenn Sie also nicht mehrere Kalman-Filter und Winkel-Sinus-Berechnungen durchführen möchten, benötigen Sie keinen wirklich großen Prozessor.

(oh übrigens, konnte kein Datenblatt des Sensors finden, nur eine Zusammenfassung, die besagt, dass er 16-Bit-Datenwörter ausgibt).

Sehen Sie sich das Produktauswahltool an, um Ihre Suche einzugrenzen: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005 .

Wie bereits gesagt, funktionieren viele Optionen, aber dieses Tool hilft Ihnen, über andere Einschränkungen nachzudenken (wie Kosten, Paket, Geschwindigkeit, Größe usw.).