Forum: Mikrocontroller und Digitale Elektronik BLDC LV8907 via SPI einstellen funkt nicht..


von René K. (tesla24)



Lesenswert?

Hallo liebe Gemeinde,

ich versuche einen BLDC-Controller von ON zum laufen zu bringen, aber 
bisher leider ohne Erfolg. Ich habe die "Standalone" Lösung die ON als 
Beispiel vorgibt nachgebaut, aber es tut sich nichts.

Ich gehe mal davon aus das ich die Register vom LV8907 erst via SPI 
beschreiben muss. Ich habe darauf hin ein arduino sketch geschrieben und 
die Schnittstellen nach den Anforderungen (f<= 500kHz, MSB-first, Mode1) 
konfiguriert.

Aber eine Sache im Datenblatt verstehe ich nicht...auf Seite 20 
(Ausschnitt siehe Anhang)

Warum hat die Adresse laut Figure 15 nur 7-Bit ?
Was soll das WEN-Bit sein ?
Wenn WEN immer High sein soll, dann würde aus Adresse 0x00, 0x80 
werden..muss ich dann alle Adressen umrechnen damit das MSB immer "high" 
ist?

Ich hoffe das ich sonst nichts übersehen habe...VS soll beim Beschreiben 
>= 14V und der EN muss auf "LOW" sein.

Ich hoffe jemand kann mir ein paar hilfreiche Tips geben.

Vielen Dank voraus !

von Coronianer (Gast)


Lesenswert?

René K. schrieb:
> Aber eine Sache im Datenblatt verstehe ich nicht...auf Seite 20
> (Ausschnitt siehe Anhang)
>
> Warum hat die Adresse laut Figure 15 nur 7-Bit ?

Weil die höchste Adresse 60h ist und dafür 7 Bit reichen.

> Was soll das WEN-Bit sein ?

Steht doch im DB:
"If WEN is LOW, the register data is transferredfrom LV8907 to the 
microcontroller. If WEN is HIGH, theregister data is transferred from 
the microcontroller to theLV8907 register"

=> also Datenrichtungsbit.

> Wenn WEN immer High sein soll, dann würde aus Adresse 0x00, 0x80
> werden..muss ich dann alle Adressen umrechnen damit das MSB immer "high"
> ist?

WEN hat mit der Adresse nichts zu tun. Umrechnen musst Du nix.

von René K. (tesla24)


Lesenswert?

Danke für die Antworten, ich hab es soweit verstanden bis auf folgendes:

Das Register vom SPI ist ein 8-Bit und ich möchte am LV8907 die Adresse 
0x09 ansprechen, dann ist das in Binär: 00001001
Da das MSB für das Datenrichtungsbit aber 1 sein muss, muss daraus in 
Binär: 10001001 (0x89) werden. sehe ich das richtig?

Die Adresse habe ich nicht geändert und der LV8907 wird auch nur auf die 
letzen 7-Bit für die Adresse achten...aber in meinem Arduino muss ich 
doch dann die 0x89 senden. Oder?

Es gibt wohl auch Atmel MCU´s bei denen man WEN aktivieren kann, dann 
passiert dies automatisch denke ich, aber beim ATMEGA328p hab ich das 
nicht entdeckt.

von Coronianer (Gast)


Lesenswert?

René K. schrieb:
> Danke für die Antworten, ich hab es soweit verstanden bis auf folgendes:
>
> Das Register vom SPI ist ein 8-Bit und ich möchte am LV8907 die Adresse
> 0x09 ansprechen, dann ist das in Binär: 00001001
> Da das MSB für das Datenrichtungsbit aber 1 sein muss, muss daraus in
> Binär: 10001001 (0x89) werden. sehe ich das richtig?

Wenn Du ein Register beschreiben willst, muss das Bit gesetzt sein.
Wenn Du ein Register auslesen wills, muss das Bit gelöscht sein.

> Die Adresse habe ich nicht geändert und der LV8907 wird auch nur auf die
> letzen 7-Bit für die Adresse achten...aber in meinem Arduino muss ich
> doch dann die 0x89 senden. Oder?

Wenn Du was in Register 9h schreiben willst, ist das richtig.

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.