mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SCA3000 unter BASCOM über SPI ansprechen


Autor: S. G. (goeck)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite seit einiger Zeit mit dem SCA300-E05 und dem E04, habe ein
Programm in Bascom geschrieben, dass den Sensor abfragt und die Werte
über UART übermittelt. Jetzt sehe ich nicht hinten 3 Nullen, sondern 3 
Nullen + eine Stelle (springt zw. 0 und 1).
Weiterhin habe ich einen Bug, dass meine 13 Bit, die ich bekommen sollte 
an sich nur 12 Bit sind, denn das erste Bit fehlt einfach. Das habe ich 
ein paar mal überprüft.

Also meine ich, meine Bytes sind um eins nach links versetzt. Kann das
an einer Latenz bei der SPI Kommunikation liegen?

Ich bin für jede Eingebung dankbar, kann mir so langsam nicht merh
erklären, was ich noch anders machen könnt.
Achja, ich nutze SoftSPI, da ich mit HardSPI das Programm nicht 
kompilieren kann!!!

Grüße und vielen Dank

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wo liegt jetzt genau das Problem?
Statt der Beschreibung wäre es auch viel Zielführender ein Oszibild 
aufzunehmen und hier zu posten.

Autor: S. G. (goeck)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja interessante und vor allen Dingen ZIELFÜHRENDE Antwort..Danke

Das habe ich nunmal nicht vorliegen und wäre auch nicht weiter spannend, 
weil man eben dort einfach nur sieht, dass keine Kommunikation vor dem 
Chip Select (active low) stattfindet...
Fakt ist, dass mein erstes Bit verloren geht, oder gar nicht erst 
gesendet wird?!
Deswegen hatte ich ja die Vermutung in den Raum gestellt, dass durch die 
SOft SPI Implementation in BASCOM eine Latenz zustande kommt, die mein 
erstes Bit verloren gehen lässt. Also ungefähr so, als wenn der Sensor 
zu schnell anfängt zu senden, nachdem er die beiden Anforderungsbytes 
bekommt.

Grüße

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also hast du jetzt ein Problem damit dass BASCOM das erste Bit 
(verschluckt) oder sind diese Bits schon auf der Datenleitung vom Sensor 
nicht vorhanden?

Autor: S. G. (goeck)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, gute Frage. Ich sehe vor dem "Chip Select auf GND Ziehen" kein Bit, 
allerdings wird CS auf GND gezogen, dann folgen zwei Byte an den Sensor, 
dann schickt der insgesamt vier zurück. Ich denke ich muss mir das 
Montag mal ausdrucken und mal inRuhe drüber schauen. Das hab ich bis 
jetzt ein paar wenige mal eher flüchtig mir angeschaut. Dann werde ich 
das auch hier gerne mal posten. Denn mir kommt grade in den Sinn:
wenn wirklich das erste Bit des ersten Bytes dieser 4 zurückgeschickten 
Bytes verschluckt wird, und zwei Bytes jeweils zu einem Short 
zusammengefasst werden, dann könnte ja dieses ominöse letzte Byte, was 
ja irgendwie zuviel ist und springt genau das erste Bit des 
nachlaufenden Bytes sein. Ich hab nämlich mal beobachtet, dass ich das 
beeinflussen kann..aber nicht wirklich deterministisch..naja alles 
komisch...Ich werde erst mal ein Oszibildchen besorgen, dann können wir 
aufhören zu spekulieren.

Merci!

Autor: S. G. (goeck)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe heute nochmal reingeschaut in die Abläufe. Also mir scheint es 
schleierhaft, was dort passiert. Bin ein wenig konfus.
IM oberen Abschnitt sieht man das Chip Select Signal (CSB) und MOSI (ein 
Byte wird gesendet [Lese Register Nummer x1]), dann bleibt der Takt 
anliegend und der Sensor shiftet 4 Bytes raus. X_highbyte,X_lowbyte, 
Z_highbyte,Z_lowbyte, dann folgen zwei einzelne Abfragen (ein byte 
senden, eins bekommen 1.y_highbyte 2. y_lowbyte).
Im mittleren Abschnitt sieht man CSB und MISO, also die Antowert vom 
Sensor.
Im unteren Abschnitt sieht man eine "Großaufnahme" von Miso und Mosi 
direkt bei dem allerersten gesendeten Byte von Mosi.

Ich kann mir die unsynchronen Zeitversätze nicht ganz erklären. 
Vielleicht liegt es daran.

Grüße
Göck

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.