anovickis , 08-15-2021, 10:19 PM
Typically with I2C h/w problems the only ones you will have are -
- different voltage level drives on your devices
- "h/w" hanging due to the driver not being written correctly to the spec of the components, typically this is forgetting to clock out the last byte, not waiting for clock hold to complete before sending, or using the wrong clock rate for a device
- address overlaps
- forgetting pullups on bus, or some segment of the bus if you are multiplexing multiple, or hot plugging an I2C component (say on another card - it has to be in pull up state _when_ it's powered up, not slightly after) - or it may be forever stuck in the middle of a perceived "transaction"
With SPI though,
1-1 connections are easy, but if you have multiple chip selects and thus multiple devices
clock signal integrity needs to be studied if you are going for, maybe over 10" traces on that line in total
In general you should not "Y split/T split " your clock line, but rather daisy chain - unless you also place a 1:n clock buffer there as you will have reflections to deal with which need simulation confirmation
With QSPI (in the "quad spi sense" - not the infineon definition which is "queued-SPI")
- match data lengths
- keep the master/slave not more than few inches apart
- usually this is one master /one slave - so skipping the clock discussion on this type
Keep in mind all spi devices are not the same - as you have speed differences (will have to pick lowest common), and then also two choices of clock polarity and clock phase
if you have more than one species on a particular SPI bus then you will be in for some trouble