TLV493D acknowledge problem

Announcements

Measure CO2 When It Matters - Infineon’s XENSIV™ PAS CO2 now comes in SparkFun Red. Check it now!

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
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?



2865.attach2864.attach
0 Likes
1 Solution
Not applicable
I found the problem. I assumed ground was internally connected in the IC. Everything worked after all the GND pins were connected.

View solution in original post

0 Likes
4 Replies
User270
Level 5
Level 5
5 solutions authored First solution authored
Hi,

For I2C-bus you might need a bidirectional level shifter 3.3V<->5V.
0 Likes
Not applicable
I have tried it but for me it didin't work
0 Likes
Not applicable
I found the problem. I assumed ground was internally connected in the IC. Everything worked after all the GND pins were connected.
0 Likes
WoS
Employee
Employee
First solution authored
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:
3039.attach
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.
0 Likes