web-dev-qa-db-fra.com

Signification de "LSB/Unité" et "Unité/LSB"

En ce moment, je joue avec l'accéléromètre/magnétomètre/thermomètre LSM303DLHC.

Voici sa fiche technique: http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00027543.pdf

Tout fonctionne assez bien, mais je ne sais pas comment interpréter les valeurs de sortie. La fiche technique (page 9) indique quelque chose comme "1 mg/LSB" (non, ce n'est pas milligramme: D) à propos de la sensibilité à l'accélération linéaire dans ma configuration. Qu'est-ce que ça devrait signifier? Idem pour le changement de sortie du capteur de température (8 LSB/° C) et le réglage du gain magnétique (1100 LSB/gauss), mais dans le sens inverse.

Par exemple, que faire avec cette sortie d'accéléromètre: 16384? C'est mon accélération gravitationnelle mesurée.

13
Genesis Rock

Maintenant j'ai le truc. Il y a plusieurs choses sur ce MEMS que vous devez savoir, mais qui ne sont pas mentionnées dans la fiche technique:

  1. Le registre de sortie de l'accéléromètre ne contient que 12 bits et pas 16 bits. Vous devez donc décaler la valeur à droite de 4 et la multiplier par 0,001 G. De plus, c'est un peu endian.
  2. Le registre de sortie du magnétomètre est de 16 bits, mais big-endian. De plus, l'ordre des vecteurs est (X | Z | Y) et non (X | Y | Z). Pour calculer la valeur correcte, vous devez diviser X et Y de 980 gauss⁻¹, alors que c’est 1100 gauss⁻¹ pour Z.
  3. Le capteur de température fonctionne, mais il n'est pas calibré. Vous pouvez donc l'utiliser pour mesurer le changement de température, mais pas de température absolue. C'est aussi juste 12 bits, mais big-endian et vous devez diviser la sortie de 8 C⁻¹. 

Avec cette information, il est possible d'utiliser le LSM303DLHC. Mais qui diable a inventé ça? "Construisons un nouvel accéléromètre, un magnétomètre et un thermomètre en un seul paquet et visons l'utilisateur en mélangeant longueur de mot et finalité sans le mentionner dans la fiche technique."

8
Genesis Rock

LSB/unité ou Unité/LSB est le facteur (appelé sensibilité) avec lequel vous devez multiplier les données de capteur brutes . Dites que le capteur A possède des registres X, Y et Z, Les valeurs entrant dans chacun des registres doit être divisé/multiplié par le facteur LSB/unité ou unité/LSB . C'est parce que la fiche technique indique @ la pleine échelle particulière que vous aurez cette sensibilité (LSB/unité ou unité/LSB) 

pour LSB/Unité: 

x lsb signifie - 1 unité 

1 lsb signifie - 1/x unité

valeur lsb (valeur dans le registre) = (1/x) * (valeur dans le registre) - Appliquer unitaire méthode ici.

de même pour Unit/LSB, vous devez multiplier la sensibilité.

Vous pouvez construire un accéléromètre, un magnétomètre ou un capteur de température ou un gyromètre dans un seul module, mais que se passe-t-il si un client/utilisateur souhaite un seul capteur?

Rgds, Rp

10
Raulp

La fiche technique n’est pas claire en ce qui concerne l’interprétation des registres d’accélération. La solution de Genesis Rock suppose qu’elle est en 12 bits, ce qui fonctionne. (Une autre solution consiste à supposer que le gain est de 16 mg/LSB au lieu de 1 mg/LSB, mais comme les 4 derniers bits des accélérations semblent toujours être des zéros, la solution précédente est plus logique).

Mais aussi bien pour la température que pour l’accélération, si vous ne tenez compte que des 12 bits les plus significatifs. Les deux derniers bits sont toujours toujours à zéro, de sorte que la résolution effective serait de 10 bits, ce qui est source de confusion.

Je ne peux pas non plus comprendre la lecture de la température sans un décalage inconnu non spécifié dans la fiche technique.

J'espère que d'autres pourront confirmer qu'ils obtiennent les mêmes résultats.

2
Camilo Rada

En ce qui concerne la sortie 12 bits de l'accéléromètre: il y a un indicateur haute résolution sur le registre de contrôle 4. Il est désactivé par défaut et aucune information sur ce que signifie haute résolution. Je suppose que cela pourrait permettre une sortie 16 bits. Le registre de contrôle 4 contient également un drapeau permettant de définir l’endianité de la sortie de l’accéléromètre. C'est petit endian par défaut. La fiche technique est globalement assez faible.

1
kallanreed

Le fait simple et embarrassant est qu’aucune des réponses n’a touché la cible.

Le résultat est enfoui dans un autre paramètre fourni dans la fiche de données: la sensibilité . Par exemple, la sensibilité FXAS21002C pour 2000 dps est de 62,5 mdps/LSB (= 0,0626 dps/LSB) . Le décalage d'origine est de 25 LSB donc la valeur en unités dps est 0.0625 * 25 = 1.5625 dps 

la même UMI a une autre sensibilité pour 250 dps qui est de 7,825 mdps/LSB (= 0,007825 dps/LSB) et, comme le décalage est également de 25 LSB, le calcul exposera la valeur réelle de 0,0078125 * 25 = 0,1953 dps

l'exemple peut être trouvé ici: https://learn.adafruit.com/comparing-gyroscope-datasheets/overview

0
M. Hooper