L’interface SPI fournit une méthode alternative de communication avec les µINS, µAHRS et µIMU. Le protocole SPI utilise une grande partie de la même structure et le format que le protocole binaire de communication série qui est décrit dans la section protocole binaire du manuel de l’utilisateur.

activer SPI¶

pour activer SPI, maintenez la broche G9 (nspi_fr) basse au démarrage.

Remarque: Lorsque le signal timepulse GPS PPS externe est activé sur G9, le module ignore le signal nSPI_EN et le mode SPI est désactivé quel que soit L’état de la broche G9.,

Matériel¶

Inertial Sense SPI interface utilise 5 lignes pour interfacer avec d’autres périphériques., id= »c075f8374e »>

polarité D’horloge haute inactive (CPOL = 1) Phase D’horloge bord tombant (CPHA = 1) sélection de puce basse Active data ready active high

transfert de données¶

pour assurer un comportement correct du récepteur en mode esclave SPI, le périphérique maître qui envoie la trame doit assurer un délai minimum d’un Tbit (Tbit étant le pour transmettre un bit) entre chaque transmission de caractères., Les dispositifs de détection inertielle ne nécessitent pas de bord de chute pour initier une réception de caractère mais seulement un niveau bas. Cependant, ce bas niveau doit être présent sur au moins un tbit avant le premier cycle d’horloge série correspondant au bit MSB. (1)

lors de la lecture des UIN et il n’y a pas de données prêtes, il enverra des zéros pour les données.

garder CS bas ne devrait pas causer de problèmes. Cependant, si la synchronisation entre les processeurs maître et esclave est désynchronisée, il n’y a rien pour les remettre en synchronisation., Le rebond au sol ou le bruit pendant une transition pourraient provoquer l’uINS voit deux arêtes d’horloge alors qu’il n’y en aurait eu qu’une (en raison d’un ESD ou d’un événement transitoire rapide). Augmenter et abaisser la ligne CS réinitialise le Registre à décalage va resynchroniser les horloges.

option broche prête pour les données¶

Il existe une option broche prête pour les données. Ce signal sera élevé lorsque les données seront prêtes. Selon le moment où cela se produit, il peut y avoir 1-4 octets de zéros qui sortiront avant le démarrage du paquet. Aussi cette ligne ira inactif un octet ou deux avant la fin du paquet est envoyé., Il n’y a pas de caractère « pas dans un paquet de données » à envoyer. Il est strictement fait par pin prêt de données et l’analyse.

Si la ligne de sélection de puce est abaissée pendant un paquet de données, l’octet transmis (ou qui serait transmis) peut être perdu. Il est recommandé de ne baisser le chip select qu’en dehors d’un paquet de données et lorsque le code PIN data ready est inactif.

le tampon SPI interne est de 4096 octets. S’il y a un débordement de tampon, le tampon est supprimé. Ceci est indiqué par une broche prête pour les données qui est élevée sans que les données soient là., Lorsqu’un débordement se produit, il efface le tampon, de sorte que le système pourrait être au milieu d’un paquet et que les UIN enverraient simplement des zéros. Si une demande est envoyée aux UIN ou si les UIN envoient un paquet périodiquement, cela résoudra la situation.

l’interface SPI prend en charge un débit de données allant jusqu’à 3 Mbs. (5 Mbs fonctionne si le code PIN data ready est utilisé pour recevoir les données-VOIR B ci-dessous.)

lecture des données¶

Il existe deux stratégies qui peuvent être utilisées pour lire les données:

A. lire une taille de données fixe à chaque intervalle de temps défini., Plus de données seront lues que l’uINx ne produira sur un intervalle régulier, par exemple, en lisant 512 octets toutes les 4 ms.

le paquet sera 0x00 rembourré si les octets lus dépassent la taille du paquet.

B. lisez pendant que le code PIN data ready est actif ou que nous sommes à l’intérieur d’un paquet de données. Une anomalie est que la broche prête pour les données laissera tomber un octet ou deux avant que la fin ne soit cadencée, ce qui nécessite de surveiller la fin du paquet.

Pseudo code pour la lecture des données:¶

  1. vérifier la broche prête pour les données. Si la broche est faible, retardez et cochez à nouveau la broche.,
  2. abaisser la ligne CS et lire un bloc de données. Les tailles de lecture sont arbitraires, mais elles ont tendance à mieux fonctionner si le nombre de lectures est suffisamment long pour contenir la plupart des paquets de données.
  3. Une fois la lecture terminée, vérifiez la broche prête pour les données. Si elle est élevée, lire plus de données. Ne soulevez pas la ligne CS pendant que la broche prête pour les données est haute, cela entraînera une perte de données. Si data ready est faible, soulevez la ligne CS. Sur un système occupé (et en fonction du débit en bauds), cela devrait se produire avec les données lues car la broche prête pour les données pourrait ne pas être faible entre les paquets.,
  4. analyser les données à la recherche du début du paquet (0xFF) en rejetant les données jusqu’à ce qu’elles soient trouvées. Une fois trouvé, commencez à enregistrer les données.
  5. enregistrer et analyser les données à la recherche de la fin du paquet (0xFE). Une fois trouvé, envoyez le paquet pour une utilisation. Si un début de caractère de paquet est vu tout en recherchant la fin, jetez les données précédentes et commencez la sauvegarde de paquet plus.

kit de développement SPI EVB-2¶

L’EVB-2 démontre L’interface SPI avec les UIN. Le processeur EVB-2 ATSAM-E70 (E70) fournit l’exemple d’interface SPI avec les UIN., L’EVB-2 doit être mis en CBPreset mode 6 (CONFIG LED Couleur cyan) suivi d’une réinitialisation du système pour activer le mode SPI. Le code source du projet EVB – 2 (E70) est disponible dans le SDK pour référence.

dépannage¶

Si tous les autres caractères d’un paquet sont perdus, il se peut que la ligne CS soit basculée après chaque octet.

l’uINS 3.1 utilise un périphérique SPI USART qui nécessite un délai minimum d’un tbit (tbit étant le temps nominal requis pour transmettre un bit) entre les caractères envoyés. La lecture d’octets un par un peut entraîner des retards significatifs lors de la diffusion de données., En fonction de la quantité de flux de données, les uINS peuvent suivre et le tampon peut être débordé. Les demandes de message unique devraient fonctionner correctement, mais le streaming ne fonctionnera probablement pas bien. Si le matériel maître ne peut pas gérer le retard, le matériel uINS 3.2 doit être utilisé.