Jul 21, 2019
11:19 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jul 21, 2019
11:19 PM
I am using STM32F303x microcontroller to established the communication with the TLE493D-W2B6 A0.
I made the reset commands as said in the manual (Start -> 0xFF -> Stop -> Start -> 0xFF -> Stop -> Start -> 0x00 -> Stop -> Start -> 0x00 -> Stop), and tried configuring the registers 0x10, 0x11 and 0x13.
I received acknowledgement from the sensor, thus confirming the correct usage of address. Also, I was able to turn ON/OFF the INT mode of the sensor, by changing the bits in 0x11 (MOD1) register.
Having said that, I was not able to read any register values and even if I read, it is giving me plain 0xFF (255) and nothing else. For example, once I configured the registers, I requested for 20 bytes (0x16 is the last register). I got 0xFF in response (20 times). This included the registers that I configured with different values. Each time I receive with an ACK from the sensor, confirming the communication being established.
I tried a working code (arduino) for the magnetic sensor with an Arduino Micro, and the result was same. The sensor that I used with arduino and STM32 are different but the results are quiet the same. I wasn't even able to read out the value from version register.
I even looked into your official GitHub library - https://github.com/Infineon/TLE493D-3DMagnetic-Sensor - where users commented about similar issue (reading 0xFF).
The configuration values that I used for each register are as follows (STM32)
0x10 - CONFIG - 0x10 (no trigger bits), 0x01 (parity bit set).
0x11 - MOD1 - 0x11 (no trigger bits), 0x85 ( Two Byte Master Mode with Clock stretching enabled and INT disabled and parity bit set).
0x13 - MOD2 - 0x13 ( no trigger bits), 0x40 (update rate of 24Hz).
I would like to add that I have tried other configuration settings -
- With and Without Parity bits (Config and MOD1)
- 2-byte and 1-byte mode
- Low power mode and Master mode
- INT enabled and disabled
- Different update rate
I will be glad to provide more information, if required. Thank you.
I made the reset commands as said in the manual (Start -> 0xFF -> Stop -> Start -> 0xFF -> Stop -> Start -> 0x00 -> Stop -> Start -> 0x00 -> Stop), and tried configuring the registers 0x10, 0x11 and 0x13.
I received acknowledgement from the sensor, thus confirming the correct usage of address. Also, I was able to turn ON/OFF the INT mode of the sensor, by changing the bits in 0x11 (MOD1) register.
Having said that, I was not able to read any register values and even if I read, it is giving me plain 0xFF (255) and nothing else. For example, once I configured the registers, I requested for 20 bytes (0x16 is the last register). I got 0xFF in response (20 times). This included the registers that I configured with different values. Each time I receive with an ACK from the sensor, confirming the communication being established.
I tried a working code (arduino) for the magnetic sensor with an Arduino Micro, and the result was same. The sensor that I used with arduino and STM32 are different but the results are quiet the same. I wasn't even able to read out the value from version register.
I even looked into your official GitHub library - https://github.com/Infineon/TLE493D-3DMagnetic-Sensor - where users commented about similar issue (reading 0xFF).
The configuration values that I used for each register are as follows (STM32)
0x10 - CONFIG - 0x10 (no trigger bits), 0x01 (parity bit set).
0x11 - MOD1 - 0x11 (no trigger bits), 0x85 ( Two Byte Master Mode with Clock stretching enabled and INT disabled and parity bit set).
0x13 - MOD2 - 0x13 ( no trigger bits), 0x40 (update rate of 24Hz).
I would like to add that I have tried other configuration settings -
- With and Without Parity bits (Config and MOD1)
- 2-byte and 1-byte mode
- Low power mode and Master mode
- INT enabled and disabled
- Different update rate
I will be glad to provide more information, if required. Thank you.
5 Replies