Guest
#4558930
Hey, I'm encountering a strange problem with the hardware SPI of the STM32F407 [2] (discovery board). I'm trying to communicate with an UM7 IMU [1] over its SPI interface. When I try to read its firmware revision, I receive ASCII 'T71E' instead of the expected 'U71D'. You can see the SPI transmission recorded using a logic analyzer in the pictures, with the closeup showing the transmission for the last byte, which should be 'D' but is 'E'. To me at least it looks like the data is transmitted correctly by the UM7, but somehow the STM reads the last bit incorrectly. The behavior is reproducible, i.e. the first and last byte always have the last bit flipped. Are there any pitfalls for the STM SPI I should aware of? Or am I doing something else wrong? Regards, Mirko [1] Datasheet UM7: https://www.chrobotics.com/docs/UM7_Datasheet.pdf [2] Datasheet STM32F407: http://www2.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/DM00031020.pdf/jcr:content/translations/en.DM00031020.pdf Code, in case I just made a dumb error somewhere...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |

