Forum: Mikrocontroller und Digitale Elektronik SCL3300 Inclinometer


von Rainer S. (rsonline)


Angehängte Dateien:

Lesenswert?

Hat schon mal jemand den SCL3300 zum laufen gebracht?

https://www.murata.com/en-eu/products/sensor/inclinometer/scl3300

Datenblatt:

https://www.murata.com/-/media/webrenewal/products/sensor/pdf/datasheet/datasheet_scl3300-d01.ashx?la=en-gb

Das Teil ist im Vergleich zum Vorgänger recht kompliziert.

Schon das SPI Kommando WHOAMI ($40000091, Datenblatt S. 34) bringt nicht 
den erwünschten Rückgabewert ($1C). Die SPI Schnittstelle ist wohl in 
Ordnung, daran kann es eigentlich nicht liegen.

Habe hier einen Atmega88PA im Einsatz.

Ich könnte die Teile zur Verfügung stellen, wenn jemand auch 
Winkelmesser braucht und hier mithelfen möchte eine Lösung zu finden.

von K. S. (the_yrr)


Lesenswert?

Rainer S. schrieb:
> Schon das SPI Kommando WHOAMI ($40000091, Datenblatt S. 34) bringt nicht
> den erwünschten Rückgabewert ($1C)

Was kommt denn zurück und stimmt der CRC davon?
erste Antwort hast du auch verworfen?
Hast du die timings aus dem Datenblatt beachtet (z.b. 10µS Pause)?
Hast du einen logic Analyzer und/oder digital Oszi und kannst du damit 
mal aufnehmen was auf dem Bus passiert??

Rainer S. schrieb:
> Ich könnte die Teile zur Verfügung stellen, wenn jemand auch
> Winkelmesser braucht und hier mithelfen möchte eine Lösung zu finden.
brauchen eher nein, aber wenns per Ferndiagnose nicht geht könnte man 
nochmals drüber sprechen.

: Bearbeitet durch User
von Laserfreak (Gast)


Lesenswert?

Rainer S. schrieb:

>
> Habe hier einen Atmega88PA im Einsatz.

Die Schaltung sieht irgendwie komisch aus! Woher stammt die?

von Rainer S. (rsonline)


Lesenswert?

K. S. schrieb:
> Rainer S. schrieb:
>> Schon das SPI Kommando WHOAMI ($40000091, Datenblatt S. 34) bringt nicht
>> den erwünschten Rückgabewert ($1C)
>
> Was kommt denn zurück und stimmt der CRC davon?
Dezimal:       64,      192,       48,      145
Hex:          $40,      $C0,      $30,      $91
Binär    01000000, 11000000, 00110000, 10010001

Für CRC habe ich leider noch keine Funktion.
Das Programm ist in Mikropascal geschrieben.

> erste Antwort hast du auch verworfen?

Ja, ich sende permanent WHOAMI und werte jeweils die letzte Antwort aus.

> Hast du die timings aus dem Datenblatt beachtet (z.b. 10µS Pause)?

Ja, pro Sekunde wird einmal gesendet.

> Hast du einen logic Analyzer und/oder digital Oszi und kannst du damit
> mal aufnehmen was auf dem Bus passiert??

Leider nein.

> Rainer S. schrieb:
>> Ich könnte die Teile zur Verfügung stellen, wenn jemand auch
>> Winkelmesser braucht und hier mithelfen möchte eine Lösung zu finden.
> brauchen eher nein, aber wenns per Ferndiagnose nicht geht könnte man
> nochmals drüber sprechen.

Gut

von Rainer S. (rsonline)


Lesenswert?


von Harald (Gast)


Lesenswert?

Logic Analyzer kostet im einfachsten Fall nicht einmal 10€, der ist bei 
solchen Problemen Gold wert.

von K. S. (the_yrr)


Lesenswert?

0    10000   00     , 11000000, 00110000, 10010001
R/W  Adress  Status   Data                CRC

Status sollte nicht 0b00 sein, das steht für Startup.

Der CRC ist auch derselbe der für die Anfrage gesendet wurde, der 
passende zur Antwort wäre denke ich 0xF8. Hast du vllt. nen Bug der den 
gesendeten CRC übernimmt oder auch mehr der gesendeten Daten, oder ist 
das nur Zufall?

Hast du die Start up Sequenz aus 4.2 / Tabelle 10 auch richtig 
implementiert? Wenn nicht erklärt das den Status und die unbrauchbaren 
Daten.

Das 0xC0 ist "not used", also der falsche Wert
Die ID ist das 0x30, aber solange der Status 0b00 ist bekommst du 
wahrscheinlich nur Müll als Daten.

: Bearbeitet durch User
von Rainer S. (rsonline)


Lesenswert?

Erstmal danke für die Hilfe!

Hab' einen Bug in der SPI Routine gefunden.
Das ist softwareseitig gelöst worden.
Melde mich wieder.

von Rainer S. (rsonline)


Lesenswert?

Habe programmtechnisch Chip Select und den Dateneingang vom SCL3300 
vertauscht.

Jetzt sieht es viel besser aus. Es kommt jetzt bei WHOAMI:

Dezimal:        67,        0,      193,       53
Hex:           $43,      $00,      $C1,      $35
Binär:    01000011, 00000000, 11000001, 00110101

$C1 stimmt, die 0 davor auch, da 16 Bit Rückgabewert
CRC8 stimmt jetzt wohl auch.

4300C1
CRC-8/EBU

https://crccalc.com/

: Bearbeitet durch User
von K. S. (the_yrr)


Lesenswert?

Rainer S. schrieb:
> Jetzt sieht es viel besser aus.

Wunderbar. Wenn du noch mehr Fragen/Probleme haben solltest, wäre es gut 
wenn du wenigstens den relevanten Code postest.

von Rainer S. (rsonline)


Lesenswert?

K. S. schrieb:
> Wenn du noch mehr Fragen/Probleme haben solltest, wäre es gut
> wenn du wenigstens den relevanten Code postest.

Ja, das macht Sinn. Der Code war leider nicht so ganz aufgeräumt.
Jetzt geht auch das Auslesen des Winkels.

von Allan C. (allan1164)


Lesenswert?

Hi Everyone,

I'm new to this forum and hope you can help me with my problem regarding 
the SCL3300 Inclinometer.

When I send WHOAMI I can get the values $43, $00, $C1, $35 which I think 
is okay because of $C1.

But $43 (or binary 0100 0011) might be causing a problem because the 
status is "11" which the manual says is an error. I've tried all means 
but I can't get an okay status of "01".

Because of this problem, I can't set and read the angles. However, I can 
read ACC_X but not ANG_X.

Could you kindly help me please?

Thank you very much.

Allan

von Harald A. (embedded)


Lesenswert?

Hi Allan,
I don’t know if this will help exactly, but have you carefully read and 
implemented the startup procedure step by step described in chapter 4.2? 
Additionally there is a hint about a necessary delay in the SPI in 
Figure 9, chapter 5.1.2
Do you have a Logic Analyzer available. The cheapest versions are only a 
few bucks with free software. In can really highly recommend during 
debugging. Having the current szenario documented that way you can get 
in touch with Murata application engineers.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Allan C. schrieb:
> I've tried all means but I can't get an okay status of "01".
I confirm what Harald A. (embedded) wrote: implement exactly the init 
procedure from the data sheet.

> Because of this problem, I can't set and read the angles. However, I can
> read ACC_X but not ANG_X.
I had and you get that very problem without the correct init sequence.

von Allan C. (allan1164)


Lesenswert?

Hi Harald,
Thanks for your quick reply.
I have followed the start up sequence as per the datasheet.
1. Startup delay of 2 seconds for both the PIC micro and SCL3300.
2. Sent Status Summary 3 times.
3. Sent Enable Angles.
4. Then sent Read Angle X.
I assume that Mode 1 will be automatically selected by default as I 
didn't select it.
I have also made sure of the 10us delays in between the SPI transfers 
during the write commands.
I still can't read the Angle X.
Please let me know if I have missed anything.
Thanks,
Allan

von Allan C. (allan1164)


Lesenswert?

Hi Lothar,
Thanks for your reply.
As I've also mentioned to Harald, I have followed the init sequence as 
per the datasheet.
Please let me know if I've missed anything.
Thanks again,
Allan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.