Forum: Mikrocontroller und Digitale Elektronik Verbindung zw BMA180 und C167 über SPI


von berndigol (Gast)


Lesenswert?

Hallo Leute,

hat jemand schon mal den Beschleunigungssensor BMA180 mit dem C167CR 
verbunden. Ich weiß nicht wie ich es anstellen soll.
z.b: muss beim BMA180 CSB auf Masse liegen um den BMA180 SPI fähig zu 
konfigurieren??
Hat jemand nen Code den er bitte posten könnte?

mfg berndigol

von Jörg S. (joerg-s)


Lesenswert?

berndigol schrieb:
> z.b: muss beim BMA180 CSB auf Masse liegen um den BMA180 SPI fähig zu
> konfigurieren??
Ja, CSB auf GND bzw. low.

Der Rest ist einfach SPI. Sowas in Software zu programmieren ist sehr 
einfach. Code dürftest du da leicht finden. Musst du halt nur auf den 
C167 anpassen.

von berndigol (Gast)


Lesenswert?

Hi,

wenn ich jetzt alles wie vorgeschrieben konfiguriere,liefert der sensor 
bereits Daten nach dem kurz nach dem Einschalten???Schreibt er bereits 
Daten über die SPI Schnittstelle hinaus kurz nach dem Einschaltvorgang?
Wie kann ich auf die Sensordaten (X-Y-Z Daten) zugreifen???
Ich weiß das diese Daten in den entsprechenden Registern abelegt werden.

Ich würde diese Daten gerne auslesen und über die serielle Schnittstelle 
ausgeben. Die serielle Schnittstelle hab ich bereits konfiguriert.

mit freundlichen Grüßen
berndigol

von NopNop (Gast)


Angehängte Dateien:

Lesenswert?

Bei Watterot gabs was für den ATMEGA328.
Vielleicht hilft Dir das ein bischen weiter.
Brauchst Du ja nun eigentlich nur noch auf deinen uC portieren.

Grüße

von berndigol (Gast)


Lesenswert?

super,ich danke vielmals!
Weist du wie das mit dem Datentransfer nach dem Einschaltvorgang läuft?

Der C167 läuft ja bei 5 V und den BMA180 betreib ich bei 2.5 V. Da 
brauch ich ja 3 Pegelwandler zw CLK MOSI MISO oder?

von NopNop (Gast)


Lesenswert?

berndigol schrieb:
> Weist du wie das mit dem Datentransfer nach dem Einschaltvorgang läuft?

Nö, keine Ahnung. Hab ich mir nicht angeschaut. Aber so wie das aussieht 
kannst Du ja ganz normal (entweder über I2C oder SPI) auf den Sensor 
zugreifen!?

berndigol schrieb:
> Der C167 läuft ja bei 5 V und den BMA180 betreib ich bei 2.5 V. Da
> brauch ich ja 3 Pegelwandler zw CLK MOSI MISO oder?

Jou...wenn Du noch mehrere Teilnehmer über SPI anbinden möchtest, musst 
Du halt auch noch den CSB dazu nehmen (also 4 Pegelwandler).
Warum betreibst Du den uC nicht einfach bei 3,3V (wenn das geht)?
Dann könntest Du Dir die Pegelwandler sparen.

Etwas pfuschig, aber auch mit geringerem Aufwand, wäre I2C.
Da könntest Du die verschiedenen Betriebsspannungen nehmen, da du ja nur 
über die Pullup-Widerstände die Spannung nach unten ziehst.
Pfuschig aus dem Grund, da dann nur 3,3V an den uC Eingängen anliegen.

Grüße

von berndigol (Gast)


Lesenswert?

Danke für die tolle Hilfe.
Falls schon mal jemand das Verbinden und Auslesen mit dem C167 gemacht 
hat,wär ich sehr dankbar wenn er den Code posten könnte.

mfg berndigol

von NopNop (Gast)


Lesenswert?

NopNop schrieb:
> Etwas pfuschig, aber auch mit geringerem Aufwand, wäre I2C.
> Da könntest Du die verschiedenen Betriebsspannungen nehmen, da du ja nur
> über die Pullup-Widerstände die Spannung nach unten ziehst.
> Pfuschig aus dem Grund, da dann nur 3,3V an den uC Eingängen anliegen.

Ach ja...ergänzend zu dieser pfuschigen I2C-Mehtode muss man da noch 
dazu sagen, dass wenn der uC fälschlicherweise einen High-Pegel ausgibt 
wahrscheinlich der Sensor Schaden nehmen würde.

Grüße

von berndigol (Gast)


Lesenswert?

hi,

befindet sich der BMA180 nach dem Einschalten im Master oder Slave Mode?
Ich schätze mal im Slave Mode.ich würde den C167 als Master 
konfigurieren.

mfg berndigol

von berndigol (Gast)


Lesenswert?

und arbeitet der BMA 180 im Vollduplex oder Halbduplex Mode?
mfg berndigol

von Jörg S. (joerg-s)


Lesenswert?

>befindet sich der BMA180 nach dem Einschalten im Master oder Slave Mode?
Kann der überhaupt Master sein?

>und arbeitet der BMA 180 im Vollduplex oder Halbduplex Mode?
SPI = Vollduplex
I²C = Halbduplex

von berndigol (Gast)


Lesenswert?

hi,

auf Seite 61 des Datenblattes steht:
SPI clock input frequency=10Mhz für VDDIO>1.6V.
Also ich nehm jetzt mal an dass der BMA180 auf grund dieser INFO Slave 
ist.
SPI kann aber auch auf Halbduplex sein. Aber ich denke auf dass es 
Vollduplex ist.

Der C167 unterstütz beides.

Ist der Sensor schon vorprogrammiert,sodass er die Beschleunigungen in 
X,Y,Z Richtung sendet sobald ein Clock vom Master gesendet wird?

mfg berndigol

von berndigol (Gast)


Lesenswert?

he,

wie kann ich prüfen ob ich überhaupt ne Verbindung zw C167 und BMA180 
vorhanden ist?

mfg

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.