ADXL345 Pull-Down Widerstand am SDO-Pin im SPI-Modus??

OP (Firma: Student) #3455024
Lesenswert?
• ▲
▼
Moinsen,

ich habe mir bei Eb*y folgendes ADXl345 Board geholt.
http://www.ebay.de/itm/ADXL345-3-Achs-Sensor-Achssensor-Beschleunigungssensor-Beschleunigung-G-messer-/170999532412?pt=Bauteile&hash=item27d05dcb7c

Angesteuert wird der Sensor per SPI im 4-Wire Mode.
Wenn ich das dem Datenblatt richtig entnehme, ist der 4-Wire Modus 
automatisch aktiv.

Die Chip-Select Leitung, wird auf dem Board über einen Pullup von 10k 
auf High gezogen.

Mein eigentliches Problem ist, dass der Sensor manchmal die DEVID zurück 
gibt und manchmal nicht...

Was mir beim dem Board aufgefallen ist, das der SDO-Pin über einen 4,7k 
Widerstand auf Masse gezogen ist, ist das ein Design Fehler??

Im Datenblatt steht, das SDO nur auf Masse gezogen werden muss, wenn 
3-Wire Mode genutzt wird.

Seh ich das richtig??
#3455066
Lesenswert?
• ▲
▼
>Im Datenblatt steht, das SDO nur auf Masse gezogen werden muss, wenn
>3-Wire Mode genutzt wird.

Wo steht das im Datenblatt? 
http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf


Aus
>Die Chip-Select Leitung, wird auf dem Board über einen Pullup von 10k
>auf High gezogen.
und
>Was mir beim dem Board aufgefallen ist, das der SDO-Pin über einen 4,7k
>Widerstand auf Masse gezogen ist, ist das ein Design Fehler??
ergibt sich, dass das ein Vorbereitung für I2C ist.

Will man SPI benutzen wird CS einfach mit der CPU verbunden, der PullUp 
und der PullDown stören da nicht.

Und zwischen 3- und 4-WireSPI wird über das DATA_FORMAT-Register 
umgeschaltet.
OP (Firma: Student) #3455079
Lesenswert?
• ▲
▼
Hi erstmal vielen Dank für deine Hilfe

Detlef Kunz schrieb:
>Im Datenblatt steht, das SDO nur auf Masse gezogen werden muss, wenn
>3-Wire Mode genutzt wird.
>
> Wo steht das im Datenblatt?
> http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf

When using 3-wire SPI, it is recommended that the SDO pin be either 
pulled up to VDD I/O or pulled down to GND via a 10 kΩ resistor.

S. 15

> Will man SPI benutzen wird CS einfach mit der CPU verbunden, der PullUp
> und der PullDown stören da nicht.

Nein, da muss ein Pullup hin, weil er sonst im umbestimmten Zustand ist!

"The CS pin should always be tied high
to V DD I/O or be driven by an external controller because there is
no default mode if the CS pin is left unconnected"

> Und zwischen 3- und 4-WireSPI wird über das DATA_FORMAT-Register
> umgeschaltet.

Klar, im Ausgangszustand hat das Register 0x00 also 4-Wire Mode

Ich hab mir die MISO,MOSI Signale angeguckt, ich hab damit gerechnet das 
die Antwort des Sensors nach dem Übetragen der Adresse kommt.

Was ich damit sagen will, das die Anfrage vom Master und die Antwort vom 
Sender zeitgleich kommen...wie geht das den..
OP (Firma: Student) #3455112
Lesenswert?
• ▲
▼
Ich vermute das es am Auslesen der Sensordaten liegt:

So sieht meien Funktion aus:
1
void data_read(char data)
2
{
3
  uint8_t flags = 0x80;
4
  
5
  if ((data == DATAX0)||(data == DATAY0)||(data == DATAZ0))
6
    flags = 0xC0;
7
  
8
  PORTB &= ~(1<<CS);
9
  
10
  SPDR = flags | data;
11
  while(!(SPSR & (1<<SPIF))); //wait for transmission complete
12
  
13
  while(!(SPSR & (1<<SPIF))); //wait for reception complete
14
  
15
  LowByte = SPDR;
16
  
17
  if (flags == 0xC0){
18
      _delay_us(32);
19
      HighByte = SPDR;
20
  }
21

22
  PORTB |= (1<<CS);
23
}

Liegt der Fehler hier drin?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.