-1

I have ti046b1 chip (Serial I2C F-RAM) to read.

I tried to read it with my raspberry Pi 3, so I connected SDA SCL VDD GND as shown in pictures, but when I run the command "i2cdetect -y 1" on my Raspberry it shows no device connected to I2C interface (empty) like that:

pi@raspberrypi:~ $ i2cdetect -y 1

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00:          -- -- -- -- -- -- -- -- -- -- -- -- --

10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

70: -- -- -- -- -- -- -- --

do you have any idea to solve that ?

  • I tried by inverting (swiping) SDA SLC connections

  • I tried by pulling-up to 3.3V SDA and SCL with 10k resistors (as stated here) to end-up with 1.5K pull-up resistance

  • I checked that there are a built in pull-up 1.8K resistors in the raspberry 3 (see the ohmmeter measure with Pi powerd off of course :) )

  • I tried to change I2C baudrate by the command:

    sudo modprobe -r i2c_bcm2708

    sudo modprobe i2c_bcm2708 baudrate=100000

tested with 100KHZ, 200KHZ, 400KHZ, 800KHZ, 1200KHZ (the result is the same

  • I have put a scope probes on SCL and SDA when the printer is powered on to see how it negociate (see the piture below)

could you please help me to solve that ?

And to anticipate your first question : I checked all the connections for this wiring :)

scope probes on SCL and SDA when the printer is powered with the chip is inside Scope probes on SDA SCL Circuit Chip and schematic Existing pi 3 built-in pull-up 1.8K proven (pi is not powered) internal Pull-Up resistor i2cdetect response

I2C is enabled

Wiring to my Raspberry Pi 3

  • 1
    Are you sure it's a 3V3 device? Have you a datasheet link? You SHOULD NOT use additional pull-ups (SDA/SCL already have hard pull-ups on the Pi). – joan Dec 7 '18 at 14:37
  • 1
    Those joints look a little sketchy. – goldilocks Dec 7 '18 at 16:32
  • Yes I am sure: this chip is a printer chip, so I connected a voltmeter to it when the chip is inside the printer, and the voltage is 3V3 when it is powered by the printer – Me TI Dec 8 '18 at 14:38
  • Yes I admet that the joints are sketchy :) but the continuity is ensured – Me TI Dec 8 '18 at 15:17
0

have you enabled the I2C interface? enter image description here

enter image description here

  • 1
    i2cdetect throws an error if the bus isn't already enabled. – goldilocks Dec 7 '18 at 16:24
  • yes it is enabeled by the command: sudo raspi-config and the command ls /dev/*i2c* answers by : /dev/i2c-1 – Me TI Dec 8 '18 at 14:39
0

You missed the required pullups, there aren't any provisioned on the host GPIO (because I²C is only one of the possible functions of these two GPIOs) and your device does not have them either.

But you need them, about 3.3kΩ from SDA to +3.3V and another 3.3kΩ from SCL to +3.3V.

  • The Pi has 1.8kΩ pullups on board. – Milliways Dec 8 '18 at 23:57
  • No ! there is already a built in pull-up 1.8k resistor in the raspberry pi 3 between SDA-3.3V and SCL-3.3V (I have measured that for you, see the picture) – Me TI Dec 9 '18 at 11:41
  • Well, no clue then. – Janka Dec 9 '18 at 13:06
0

Looks like other people over on EEVBlog forums have been trying to reverse-engineer this printer cartridge chip and have had some success. If they are correct then it uses 10-bit addressing so i2cdetect will not find it as it only scans the 7-bit address space. Strangely there's someone asking a similar question to yours on that forum too...

Also, from the same discussion, some people are suggesting that this chip is not FRAM memory but actually a re-badged processor with hardware AES pretending to be a FRAM chip.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.