Forum: Mikrocontroller und Digitale Elektronik SPI Register auslesen Raspberry Pi


von Paul G. (paul_g210) Benutzerseite


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?

von N. M. (mani)


Angehängte Dateien:

Lesenswert?

Schau Mal auf Seite 12 des verlinkten Datenblatt, da schreiben sie was 
von NOP oder 0x40.

Aber ja, du musst weiter Clocks senden damit der Chip seine Daten 
synchron zum Clock ausgeben kann.

von Paul G. (paul_g210) Benutzerseite


Lesenswert?

Ah, okay danke. Ich hatte mich schon gewundert wofür das NOP gut sein 
soll. Ich probiere es damit mal aus.

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.