Not applicable
Oct 14, 2017
03:40 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 14, 2017
03:40 AM
I'm currently testing out a TLV493D magnetic sensor on an arduino. I think I have some problems with the acknowledge bit. It does not pull completely down, just 2/3 of the way. I have added a picture of the oscilloscope read out and my setup.
So far I have tried with two different TLV493D sensors (one at a time), same problem with both. I have also tried with two different Arduino boards. I have also tried without the logic level converter and a 3.3v arduino board, but still the same problem.
I have tried 3 different codes other people have gotten to to work and one I wrote my self. Still the same problem. I tried using different I2C libraries for arduino, one were a bit faster and made more square looking waves, but still the same problem. I tried hooking
up a MPU6050 with it's own caps and pullup resistors to the I2C bus. The MPU6050 worked as it should but I still had the problem with the TLV493D. It also seems I get the 2/3 acknowledge signal at the 0xF1 address. Any suggestions?

So far I have tried with two different TLV493D sensors (one at a time), same problem with both. I have also tried with two different Arduino boards. I have also tried without the logic level converter and a 3.3v arduino board, but still the same problem.
I have tried 3 different codes other people have gotten to to work and one I wrote my self. Still the same problem. I tried using different I2C libraries for arduino, one were a bit faster and made more square looking waves, but still the same problem. I tried hooking
up a MPU6050 with it's own caps and pullup resistors to the I2C bus. The MPU6050 worked as it should but I still had the problem with the TLV493D. It also seems I get the 2/3 acknowledge signal at the 0xF1 address. Any suggestions?
Solved! Go to Solution.
- Tags:
- IFX
1 Solution
Not applicable
Oct 21, 2017
02:03 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 21, 2017
02:03 PM
I found the problem. I assumed ground was internally connected in the IC. Everything worked after all the GND pins were connected.
4 Replies
Oct 15, 2017
11:30 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 15, 2017
11:30 PM
Hi,
For I2C-bus you might need a bidirectional level shifter 3.3V<->5V.
For I2C-bus you might need a bidirectional level shifter 3.3V<->5V.
Not applicable
Oct 19, 2017
06:30 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 19, 2017
06:30 AM
I have tried it but for me it didin't work
Not applicable
Oct 21, 2017
02:03 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 21, 2017
02:03 PM
I found the problem. I assumed ground was internally connected in the IC. Everything worked after all the GND pins were connected.
Mar 01, 2018
04:29 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mar 01, 2018
04:29 AM
In your schematic you have not shown the pin numbers. Just for clarification:
The "main GND" is pin 3 on the sensor (see table 2 of the datasheet). If this is connected i2c should work already. even if the pin 2/5 are floating, see sketch:

The other two pins 2/5 should be additionally connected to GND, this is not mandatory for i2c communication to get proper low levels, but for general performance of the sensor.
If you connect the pull-ups of i2c to the 3.3V supply and use open-drain on the Microcontroller (w/o any pull-ups to 5V, you need to check the specific Arduino board you use) you may omit the level shifters.
Two conditions must be met: there is no external path from the i2c lines to 5V (so the bus lines see max. the 3.3V via the pull-ups, e.g. check this before connecting the sensor) and the 3.3V level is sufficient for the input pin on uC side to be accepted as high level.
The "main GND" is pin 3 on the sensor (see table 2 of the datasheet). If this is connected i2c should work already. even if the pin 2/5 are floating, see sketch:
The other two pins 2/5 should be additionally connected to GND, this is not mandatory for i2c communication to get proper low levels, but for general performance of the sensor.
If you connect the pull-ups of i2c to the 3.3V supply and use open-drain on the Microcontroller (w/o any pull-ups to 5V, you need to check the specific Arduino board you use) you may omit the level shifters.
Two conditions must be met: there is no external path from the i2c lines to 5V (so the bus lines see max. the 3.3V via the pull-ups, e.g. check this before connecting the sensor) and the 3.3V level is sufficient for the input pin on uC side to be accepted as high level.