tca9546a switch not working

Hi,

I made my own carrier board for TX1. There is tca9546a switch on d6/c6 TX1 i2c bus.
Switch detected on i2c bus 6 with address 0x70.

Also i have adapter board from Leopard Imaging for Jetson TX development kit:
https://www.leopardimaging.com/uploads/LI-JETSON-KIT-IMX274M12-X_datasheet.pdf

There is the same tca9546a switch too.
If the LI adapter installed on Nvidia dev board then the switch detected on i2c bus 6 with address 0x70 with 4 child channels:


Kernel.log
pca954x 6-0070: pca954x_probe: forcing device bus number, start 30.
pca954x 6-0070: device detect skipped.
regulator_get() failed for (6-0070,vcc-pullup), -19
pca954x 6-0070: vcc-pullup regulator not found
i2c i2c-6: Added multiplexed i2c bus 30
i2c i2c-6: Added multiplexed i2c bus 31
i2c i2c-6: Added multiplexed i2c bus 32
i2c i2c-6: Added multiplexed i2c bus 33
pca954x 6-0070: registered 4 multiplexed busses for I2C switch pca9546

But if the same TX1 module installed on my carrier board then the switch doesn’t work:


Kernel.log
pca954x 6-0070: lp_reg get fail
pca954x: probe of 6-0070 failed with error -12

The switch installed on carrier with the same address pins and with pull-up resisters 1.8v as on the LI adapter board.

Where is my mistake?
The same schematics, the same switch, the same TX1 module with the same software, but doesn’t work.

Best regards, Viktor.

Here is schematics:

Hi, what’s the source of your 1.8VDC? Seems LI takes the 1.8V of camera connector.

All power i am taking from my 12v source and then 1.8v regulator TPS62131RGTT.
That described case is when the cameras not connected.
All switch output sda/scl pulled up to 1.8v with 1.5kohm. In my and in LI schemes.

The 1.8V should be powered up later than module. And if any other device on the I2C line causes address conflict?

I think that there is no i2c conflicts. Switch is detected on 0x70 address and i can read it. But it doesn’t produce child nodes.

Tell me please how long time should i wait after Tegra x1 powered up before enabling 1.2, 1.8, 2.8, 3.3 power lines?

Here is all my schematics:
http://cam360.tv/etc/JCCBLite.pdf

I don’t see VIN_PWR_BAD# or CARRIER_PWR_ON signals in your schematic. Please check the power on sequence in OEM DG to find out the violations, also there is timing value request in the following table.

Thank you for advice.
Can you provide link to “oem dg” doc?
I will fix it.

But how it helps me with switch problem?

Here is the link: http://developer.nvidia.com/embedded/dlc/jetson-tx1-oem-product-design-guide

Didn’t you check it before design the board…? If so, I’m afraid that you will have to do a new design following the guide.

Thank you for link.
Will check it.

I understand that my power scheme is not good. And after 12v TX1 poweron signal i shoud powerup EN->5.0 -> EN->3.3 -> EN-> 1.8 -> reset…
Cause it is my intermediate prototype.
And i will fix it.

But all my devices 2xi2c(including switch), usb, sd, spi, uart are online now.
The question is about switch and i2c nodes producing.
Sorry for my importunity.

Not sure why this happen, looks like switch issue since you can detect it but fail to get child nodes. You’d better ask vendor for help.

Have asked to ti.com. Will try to replace switch.

https://e2e.ti.com/support/interface/i2c/f/390/t/706281

I think we met the same problem. @vsw, did you fix your problem?
Some differences are:
I made my own carrier board for TX2. The tca9546a switch on Tx2 i2c-2 bus, and was detected on address 0x70.

There is a 24c04 eeprom chip connect one of the tca9546a child channel, with slave-addr 0x57. I opened all the child channels, but still cannot be detected.
I use i2ctools, and c program, the results are same. In the c program, when I write to 24c04, return “Remote I/O error”.
But the parallel connection beteen tca9546a and 24c04 can work fine. Here is the log with i2ctools. The tool cannot detect, read, and write the eeprom.

nvidia@tegra-ubuntu:~ sudo i2cdetect -y -r 2 [sudo] password for nvidia: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: 70 -- -- -- -- -- -- -- nvidia@tegra-ubuntu:~

Not yet. Waiting for the switch.

Hi nvidia & asker:
I met the same question.
can you fixed it ?
How?

Hi, no, but it looks like right power supply needed. All regulators should start in cascade using “en” pin and then TX up can start.

any idea to handle this question?
I need this to enable csi and blocked by this question.

You can ask to LeopardImaging. I have no idea this time.