Connecting SPIs parallel

Discussion in 'Embedded Systems and Microcontrollers' started by savage67, Aug 12, 2012.

  1. savage67

    Thread Starter Member

    Oct 3, 2006
    27
    0
    Hi everyone,

    I am aiming to connect several SPI devices in parallel manner. To achieve that, as i know less, some pull-up or pull-down resistor must be use in mosi, miso and ss pins. Could you please explain me what is the purpose of using them and which pins(mosi miso sck ss) actualy need that?

    Regards.
     
  2. MrChips

    Moderator

    Oct 2, 2009
    12,447
    3,363
    You cannot connect SPI devices in parallel unless each device has a unique SS signal.
     
  3. ErnieM

    AAC Fanatic!

    Apr 24, 2011
    7,392
    1,606
    absf likes this.
  4. JohnInTX

    Moderator

    Jun 26, 2012
    2,347
    1,029
    I'd recommend light pullups on all of the SS/ pins to keep the SPI slaves deselected when the processor is in RESET and getting around to initializing the I/O. Initialize the SS/ pins first. I also like a light pullup on MISO so that when all slaves are deselected, you don't have a floating IO pin. MOSI and SCLK are usually driven by the uC so pullups are optional (although I use them because of the RESET condition noted)
     
    absf likes this.
  5. takao21203

    Distinguished Member

    Apr 28, 2012
    3,577
    463
    I2C is using pullup resistors.

    SPI does not need them.

    If you use SPI in parallel, as explained you can only select one chip at a time.

    Many SPI devices don't need external reset. They can accept commands at any stage. So initial I/O levels are not a problem. Then later you only select one device. Some SPI devices however will do show reaction even if they are deselected. For instance LCDs can become unresponsive! This depends on the command that was last used.

    If you observe problems when using SPI devices in parallel, as a rule of thumb, trust no specification or datasheet. Apply common sense, and think what is the worst that could happen.
     
Loading...