Bem-vindo, Visitante
Nome do utilizador: Senha: Memorizar
Eletronica Digital, Microcontroladores, Robótica e Automação

TÓPICO: LIS3MDL pololu, leituras incorrectas via SPI.

LIS3MDL pololu, leituras incorrectas via SPI. 27 Ago. 2016 01:04 #1

  • eejam
  • Avatar de eejam
  • DESLIGADO
  • membro há mais de 2 anos
  • pt  
  • Mensagens: 4
Estou a fazer um "projecto", que involve programar um Teensy LC, (Arduino compat), para ler um magnetometro de 3 eixos, o LIS3MDL.

Já consegui programar, e ler valores do sensor, via I2C e SPI. Mas quando utilizo o bus SPI, as leituras veem erradas, e com com valores demasiado elevadas.

Já tentei validar a polaridade do clock e a fase, e de acordo com a data sheet, parece-me ser um MODE 3 SPI. Também alterei a velocidade do bus, para 100kHz ...

Alguem que já tenha alguma eperienci com este sensor e SPI?

Em anexo os graficos das leituras, via SPI e I2C.

Obrigado,
Cumps,
mc
Anexos:

LIS3MDL pololu, leituras incorrectas via SPI. 27 Ago. 2016 02:40 #2

  • zurca1599
  • Avatar de zurca1599
  • DESLIGADO
  • membro com conhecimentos técnicos de electronicamembro há mais de 10 anos top5 em número de mensagens
  • pt  
  • Mensagens: 5833
  • Agradecimentos 1941
Benvindo

Concordo , pelo datasheet deverá ser MODE 3 SPI.

Notas:

O hardware está bem filtrado? Convém colocar condensadores 0,1uF, se possível directo nos pinos dos ci.

O software que está a usar respeita os timings definidos no datasheet do sensor ( pex: tv(SO) )?

A ordem de leitura dos bits está correcta ?
Os seguintes utilizadores Agradeceram: eejam

LIS3MDL pololu, leituras incorrectas via SPI. 27 Ago. 2016 13:58 #3

  • eejam
  • Avatar de eejam
  • DESLIGADO
  • membro há mais de 2 anos
  • pt  
  • Mensagens: 4
Caro zurca1599, obrigado pela recepção!

O CI, vem com esta board, da polopu www.pololu.com/product/2737, já tem alguns condesadores a filtrar, e um conversor logico de 5v, para 3.3v, que não é necessário porque o MCU está em logica de 3.3v. Elem dizem que funciona para 400kHz I2C, que é na mesma ordem de frequencias que estou a usar para o SPI (100KHz).

A biblioteca que estou a usar de SPI, é a que vem com Arduino.

O que já consegui fazer, é ler e escrever is registos de controlo. E estão correctos, via SPI.

Vou validar, a ordem dos bits. Cada leitura involve dois registos de 8 bits e podem estar trocados ... dado que mesmo com ruido, consigo verificar alteração dinamicas no sensor, como resposta a um iman externo, pode ser por ai ...

Cumps,
mc

LIS3MDL pololu, leituras incorrectas via SPI. 27 Ago. 2016 18:51 #4

  • zurca1599
  • Avatar de zurca1599
  • DESLIGADO
  • membro com conhecimentos técnicos de electronicamembro há mais de 10 anos top5 em número de mensagens
  • pt  
  • Mensagens: 5833
  • Agradecimentos 1941
Anexos:
Última Edição: 27 Ago. 2016 19:02 por zurca1599.

LIS3MDL pololu, leituras incorrectas via SPI. 27 Ago. 2016 23:32 #5

  • eejam
  • Avatar de eejam
  • DESLIGADO
  • membro há mais de 2 anos
  • pt  
  • Mensagens: 4
Mais uma vez Obrigado!

Não conhecia a Apnote, nem a dongle USB para geração de sinais!
Vou averiguar!

Cumps,
mc

LIS3MDL pololu, leituras incorrectas via SPI. 28 Ago. 2016 00:12 #6

  • zurca1599
  • Avatar de zurca1599
  • DESLIGADO
  • membro com conhecimentos técnicos de electronicamembro há mais de 10 anos top5 em número de mensagens
  • pt  
  • Mensagens: 5833
  • Agradecimentos 1941
Veja este site , talvez lhe seja útil.

www.pjrc.com/teensy/td_libs_SPI.html

Pesquisar Esquemas | Dicas Defeito - Avarias | Equivalência Componentes | Modelo v Chassis | Service Mode |