Hi Anthony,
yes, you listed the requirements which I checked ten times ... I have two of these sensors on two separate SPI ports of an STM32F405RGT6. Both connections are point2point, single master, single slave. When the controller gets power its periphery pins are tri-state and need to be enabled. That happens just after I load and execute the test program ... many seconds after power up. Until then these pins remain floating. Of course modern controllers always have some protection devices connected to the pins. Hope they don't interfere there ...
Of course the first thing I tried was to read the who_am_I and after not getting the right result later on I decided that maybe I was doing something wrong with the addressing and attempted to write and read back at the current address ... Never got anything reasonable. Frankly this drives me crazzy and thats why I asked if somebody has any working code :-) ...
One major problem is that the ST32F4 software development environment is in such a mess. Obviously over the years they went through endless restructuring and when you seek on the Internet you never know which comment is related to which (former) version of the environment. All the elements that are related to the workings of a certain pin or module are distributed over about 10 files if not more and to some extend they interact with yet other stuff. That's not a topic for this forum but this is by far the worst environment I ever touched and I'm doing this since the 1980s :-(.
As far as I can see there are two things I must achieve - to set up the interface to be an SPI master and to control the /CS manually (which I did not expect to have to do, frankly, unnecessary nuisance). There are 4 possible configurations of the SPI concerning the relation and polarity of the clock and the data. At the beginning I configured it as specified, but since nothing worked in the meanwhile I also attempted the other combinations.
Source ... well ... as mentioned that's all over the place ... I'll have to try and cut and paste for some time to make a reasonable listing and comment it too.