Hi everyone,
I'm developing a PCB wich will use a daisy chain connection based on I2C. I willing to use flat ribbon cable or something similar to conect up to 32 devices. I want to place I2C buffers on each slave input, in that way i'll have a maximum of 32 I2C buffers in series. I might this is not a good idea because i read that exists some fixed voltages at the input of some family buffers such as PCA9515 and it will interfere with the logic voltages if 2 or more are placed in series. Maybe i have to change the way i connect the system by doing the following:
I think this is the best option, but i have my doubts because the total cable length. I'm going to use cables between 15cm and 20 cm so in the worst scenario i will have a maximun length of 20cm*32 = 6.4meters.
The master as all the salaves will be K32L2B Mcus configured as master and its slaves. I have tested the communication between master and few slaves without problems, now i have to do it on PCB. The speed i'm going to use is 100Khz.
To be able to transmit without problems i could use the bus extender P82B715 as the only buffer on the bus and a dedicated buffer for each sliave as i showed on the above image.
Could you suggest an I2C buffer that suits my requeriments? Any further recommendation?
Thank you all.
Hello Ricardo,
I hope all is great with you.
Although your configuration seems correct using the P82B715 device, I would like to add the following suggestions:
1. My first recommendation would be reducing the clock frequency, have you tried it? The length can be increased significantly by running at a lower clock frequency. In such case, the buffers would not be needed.
2. Second, you may use a dual bidirectional bus buffer device such as PCA9600. These devices are used to send I2C-bus signals via long communications cables. Please review the document below for further information:
AN10658 - Sending I2C-bus signals via long communications cables
I hope this information will be useful for you.
Regards,