SPI Register auslesen Raspberry Pi

OP Persönliche Seite #5963214
Lesenswert?

Hi

Ich spiele gerade etwas mit meinem neuen ADAS1000* EKG IC und
begebe mich mit SPI in für mich unbekanntes Terrain.

(* 
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAS1000_1000-1_1000-2.pdf 
)


Den IC habe ich (per SPI) an meinen Raspberry Pi 2 verkabelt.
Ziel soll für mich erst mal sein das ich korrekt Register schreiben und
lesen kann.

Der ADAS1000 hat einen freien GPIO(3) Pin den ich per Register (GPIOCTL) 
setzten kann.
Also habe ich den Pin mit dem Register als OUTPUT und auf HIGH gesetzt.

Ich schreibe das ganze mit C++ und der bcm2835 Library.
Nachdem ich den 32bit Register in handliche 8bit Pakete zerlegt habe
und in ein char Array gepackt habe da ja der RPi nur 8bit auf einmal 
übermitteln
kann, sende ich das ganze Array mit
1
bcm2835_spi_transfern(spiOut,sizeof(spiOut));

an den IC. Das funktionierte auch auf Anhieb und ich konnte den Pin
mit dem Multimeter als HIGH messen. Soweit so gut.

Wie lese ich nun aber den Register wieder ein um ihn mit dem ersten
Schreibprozess vergleichen zu können?

Ich würde nun einfach nochmal den Register senden, nur halt diesmal mit 
dem READ Bit
gesetzt und Datenbits alle mit "0".

Jetzt kapier ich aber noch nicht so richtig wie ich die Antwort zurück 
bekomme.
Nachdem ich dem IC mitgeteilt habe das ich den Register lesen will 
passiert ja nix weiter,
es kommen keine Daten über MISO rein. Ist das richtig das der IC im 
Grunde nur wartet bis SCLK wieder aktiv wird und er dann Bit für Bit 
ausgibt? Muss ich dann also nochmal 32 Takte an den IC senden damit er 
mir den Register zurücksendet?
Was sende ich am besten um das zu machen? Einfach 32 Nullen oder müssen 
das irgendwelche Daten sein?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren