SPI communication problem with Si3215 & AT91SAM7SE256

Discussion in 'Embedded Systems and Microcontrollers' started by faiyaz, Apr 23, 2010.

  1. faiyaz

    Thread Starter New Member

    May 19, 2009
    8
    0
    Dear All,

    I am developing a hardware which has an MCU - AT91SAM7SE256 from Atmel. There are 6 Si3215(ProSLIC) devices and 2 Si3050(DAA) devices (both from SiLabs) interfaced to SPI master of this MCU in normal individual chip select mode. The frequency of SPI I am using is 4 MHz. The slave devices are placed in 2 columns of 4 devices each. So the trace lengths are big and I haven't provided any signal termination but there is a powerplane running below along the paths of all traces.

    Now, when I try to communicate to these slave devices, some of them work fine but 2-3 of these slave devices send Hex. FF data all the time. I thought this might be the loading issue so i used buffer 74HC125 to provide more driving current on SPI clock and MOSI signals. But still one of the slave devices was behaving same. But I can see there is a reduction in number of Slaves having problem.

    The datasheet of AT91SAM7SE says that it can provide maximum 8 mA current on its digital output pins and the datasheet of Si3215 or Si3050 say in their Absolute Maximum ratings that Max Input current on digital Input pins would be 10 mA. I am not sure what these values mean.

    One interesting observation I have done is when i place the Oscilloscope probe on SPI clock signal, more number of slave devices on board start behaving(sending Hex. FF data) as described above. And it also happens sometime that when I remove the probe from SPI clock, the number of Slaves which were having problem originally, may get reduced.

    Could this be a loading problem? or Could it be just an improper termination problem? Please explore you views and suggest your solutions.

    Thanks in advance.
    Faiyaz Pisuwala
     
  2. Papabravo

    Expert

    Feb 24, 2006
    10,166
    1,797
    By my count you have a total of 8 peripheral devices. Is the processor and the 8 devices all on the same board?

    1. Each device needs a separate chip select going to the device
    2. The MOSI line and the SCLK line may need to be buffered going to the 8 devices
    3. The MISO lines coming back to the processor from each device must be tri-stated when that device's chip select is inactive. Sometimes the peripheral device will do this for you, and sometimes you must use an external tri-state buffer. Consult the datasheet.
    A schematic and approximate dimension of the board would be helpful.
     
  3. faiyaz

    Thread Starter New Member

    May 19, 2009
    8
    0
    Hi PapaBravo,

    Just to answer your questions :

    Yes there are total 8 SPI Slave devices, all on the same board, and yes, each device needs a separate chip select.

    And as the MCU has only 4 encoded chip select outputs, i am using an external decoder to decode them to 16 individual chip selects. Only 8 of them are used.

    I am attaching a diagram showing approximate dimensions of trace lenghts.
     
  4. Papabravo

    Expert

    Feb 24, 2006
    10,166
    1,797
    You have two branches of maximum length (4.6 + 1.5 + 2.0) = 8.1 inches
    I'm guessing that you have 10-12 pf on each device and 15-20 pf for each branch. A TTL/CMOS IC is normally characterized at 50 pf so buffering would seem to be a good idea.

    If you are going to buffer the clock you should buffer the data also.

    What SPI Clock Rate are you using?
     
  5. faiyaz

    Thread Starter New Member

    May 19, 2009
    8
    0
    Yes, I am going to use one 74LCX125 buffer for each column which means one buffer for 4 salve devices and yes going to buffer both clock and data.

    My SPI clock rate is 4 MHz.

    Thanks for the suggestion.

    Faiyaz
     
  6. faiyaz

    Thread Starter New Member

    May 19, 2009
    8
    0
    Hi PapaBravo,

    I used the solution as mentioned below (Used 74LCX125 buffer to drive 4 slave devices and buffered SPI clock, MOSI line, PCM clock and PCM FrameSync signals). I did this rework on 3 boards and on 1 board this solution worked very well. All devices are working very fine on this board but on other two boards with this rewok, the same problem happens. 3 to 4 Si3215 devices send unexpected data on SPI interface.

    Now i do not understand the fact that on one board all 8 slave device are working very fine with this solution and on other two boards this solution does not work.

    Can you have any idea??

    Thanks & regards
    Faiyaz Pisuwala
     
  7. Papabravo

    Expert

    Feb 24, 2006
    10,166
    1,797
    Are you positive that the identical changes were made to each board?
     
  8. faiyaz

    Thread Starter New Member

    May 19, 2009
    8
    0
    Yes PapaBravo,

    I have rechecked the rework again on all boards and it is identical on all boards.


    Faiyaz
     
  9. faiyaz

    Thread Starter New Member

    May 19, 2009
    8
    0
    HI PapaBravo,

    One thing to note is the distributor we purchased these SiLabs parts from is not an authorized distributor of SiLabs. Also this distributor claims himself to be specialist in delivering Obsolete and Long lead time parts.

    Do you think that these parts may not be genuine parts and are themselves faulty?
     
  10. Papabravo

    Expert

    Feb 24, 2006
    10,166
    1,797
    It is possible. We have purchased gray market parts that ended up being plastic encapsulated lead frames with no silicon at all inside. It leaves one with a feeling similar to having your house broken into.
     
  11. faiyaz

    Thread Starter New Member

    May 19, 2009
    8
    0
    Hi PapaBravo,

    Thanks for your priceless comments.

    There is one more thing that is coming to my mind is whenever I do any rework with these SI3215 and Si3050 devices (desoldering and soldering work), problems in SPI communication start to happen in the parts which were not having problems previously.
    Is it possible that these devices are very sensitive to assembly and soldering temperatures and their functioning gets changes by these high temperatures?
     
  12. Papabravo

    Expert

    Feb 24, 2006
    10,166
    1,797
    It is possible. Most datasheets have a time and temperature profile that gives some guidance. My rule of thumb in the absence of any other information is 260 degrees C for 10 seconds maximum. A good production tech will seldom exceed these limits.
     
  13. faiyaz

    Thread Starter New Member

    May 19, 2009
    8
    0
    Ok. Thanks PapaBravo. The Si-Labs people are arranging 12 samples of Si3215 and Si3050 for us. I will make sure the temperature does not exceed this limit when these samples are assembled on two boards. Will wait for the performance of these two boards.

    Faiyaz Pisuwala
     
Loading...