INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
SPI für mehrere Geräte ?
29.10.2014, 12:07 (Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2014 12:08 von HaWe.)
Beitrag #1
SPI für mehrere Geräte ?
hi,
ist es möglich, SPI für mehrere Geräte zu nutzen,
ähnlich wie I2C?

Ich hätte z.B. (bald) ein Display, das SPI nutzt, plus eine Pixy.Cam, die ich auch gern über dieselben SPI-Pins anschließen würde.

Falls es geht - muss man Geräteaddressen einstellen wie bei I2C ? Oder wie unterscheidet der Arduino dann die Signale ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2014, 12:27
Beitrag #2
RE: SPI für mehrere Geräte ?
Hallo,

Bei SPI erfolgt die Selektion der Busteilnehmer über einen zusätzlichen Datenpin.
Der Pin hat am Slave meist die Bezeichnung CS oder SS.
Pro Slave brauchst du dann am Arduino einen Digitalausgang über den das entsprechende Gerät ausgewählt wird.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2014, 12:40
Beitrag #3
RE: SPI für mehrere Geräte ?
Hi,
die meisten Devices müssten einen Chip-Select Pin haben. Über den wählt man das Device aus. Blöd ist es halt, wenn der CS auf zwei verschiedenen Shields mit demselben Arduino-Pin verbunden ist. Dann muss man halt basteln.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2014, 13:00 (Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2014 13:06 von HaWe.)
Beitrag #4
RE: SPI für mehrere Geräte ?
danke -
aber ich verstehe es noch nicht.
edit -
Auf dem mega habe ich ja nur 1 SPI-header, und nur auf dem Due habe ich ja 2 völlig unabhängige SPIs
- wie kann ich also dann einen zweiten, "zusätzlichen Datenpin"
a) zum Cam-CS
bzw.
b) zum Display-CS
verlegen ?

welche Pins nehme ich da ? welche werden standardmäßig als CS verwendet ?

ps - sah gerade - CS ist ja normalerweise gar nicht auf dem SPI header drauf, auch nicht beim Mega 50-53 :
MISO 50
MOSI 51
SCK 52
SS 53

und wie muss ich das jetzt Programm-mäßig handeln - um die SPI-Details kümmere ich mich ja beim Display und der Cam gar nicht... :?:
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2014, 13:26
Beitrag #5
RE: SPI für mehrere Geräte ?
(29.10.2014 13:00)HaWe schrieb:  und wie muss ich das jetzt Programm-mäßig handeln - um die SPI-Details kümmere ich mich ja beim Display und der Cam gar nicht... :?:
Da müsste irgendwo in der zugehörigen Library stehen, was als CS/SS-Pin erwartet wird.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2014, 14:25 (Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2014 14:37 von HaWe.)
Beitrag #6
RE: SPI für mehrere Geräte ?
also - da sehe ich jetzt nichts.... Huh
http://cmucam.org/projects/cmucam5/files
(Code s.u. im Post !)

es wird ja auch nur die Cam per Flachbandkabel mit dem Arduino-SPI- (ICSP-) Header verbunden, und da ist ja kein CS drauf, oder?
http://cmucam.org/projects/cmucam5/wiki/...an_Arduino
Zitat:SPI - this is the default port that uses 3 wires (pins 1, 3, and 4 of the I/O connector) and is used to communicate with Arduino

[Bild: Image140_zps87c8d289.jpg]

Code:
//
// begin license header
//
// This file is part of Pixy CMUcam5 or "Pixy" for short
//
// All Pixy source code is provided under the terms of the
// GNU General Public License v2 (http://www.gnu.org/licenses/gpl-2.0.html).
// Those wishing to use Pixy source code, software and/or
// technologies under different licensing terms should contact us at
// cmucam@cs.cmu.edu. Such licensing terms are available for
// all portions of the Pixy codebase presented here.
//
// end license header
//

/*
   06.04.2014 v0.1.3 John Leimon
     + Now using pixy.init() to initialize Pixy in setup().
*/

#include <SPI.h>  
#include <Pixy.h>

Pixy pixy;

void setup()
{

  Serial.begin(9600);
  Serial.print("Starting...\n");

  pixy.init();
}

void loop()
{
  static int i = 0;
  int j;
  uint16_t blocks;
  char buf[32];
  
  blocks = pixy.getBlocks();
  
  if (blocks)
  {
    i++;
    
    if (i%50==0)
    {
      sprintf(buf, "Detected %d:\n", blocks);
      Serial.print(buf);
      for (j=0; j<blocks; j++)
      {
        sprintf(buf, "  block %d: ", j);
        Serial.print(buf);
        pixy.blocks[j].print();
      }
    }
  }  
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2014, 14:45
Beitrag #7
RE: SPI für mehrere Geräte ?
Hi,
ich hab mal ein bissel gegoogelt. Da findet man z.B. das hier:
Zitat:The SPI interface operates as an SPI slave. It is designed around the Arduino's ICSP port, which doesn't have a slave select signal.
Das ist natürlich nicht sehr hilfreich. Die Nummer 7 oben ist aber mit "SPI SS" beschriftet. Das würde ich mal als "Slave Select" deuten. Ich denke mal, das kannst Du an irgendeinen Pin anschließen und dann per digitalWrite() ein- oder ausschalten. D.h. bei jedem Zugriff auf "pixy" vorher einschalten und danach aus.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2014, 14:54
Beitrag #8
RE: SPI für mehrere Geräte ?
danke, aber das ist mir zu wackelig, ich verstehe ja momentan noch nichtmal die API lib.
Ich hatte gehofft, man könnte wie bei I2C eine dev addr vergeben, dann wäre es einfach.
Mal gucken, wie ich es dann mit dem Mega mache - wschl am ehesten per UART für die Cam am ICSP-Header plus die freien SPI Pins 50-53 fürs Display, wenn das geht.
I2C ist leider schon vergeben (als Arduino-Slave).
Oder ich nehme einen extra Uno als Slave ohne Display.
Oder das Display muss halt komplett dran glauben.
Confused
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  mehrere Taster entprellen Kitt 15 504 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 345 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Mehrere Wertabfragen blebbens 5 370 18.06.2016 22:58
Letzter Beitrag: Scheams
  2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion Golffahrer 22 934 07.06.2016 11:31
Letzter Beitrag: hotsystems
  Mehrere Abläufe gleichteitig mit "Millis" MarkusSpielt 3 657 11.04.2016 18:23
Letzter Beitrag: MarkusSpielt
  Mehrere MCP23017 dynamisch verwenden itsy 5 611 14.02.2016 13:22
Letzter Beitrag: itsy
  I ch brauche mehrere SDA und SCL am MEGA2560 arduinofan 5 752 10.01.2016 21:15
Letzter Beitrag: arduinofan
  Mehrere Geräte über eine IR Fernbedienung Respun 20 1.995 07.01.2016 23:51
Letzter Beitrag: hotsystems
  mehrere Analoge eingänge seriell ausgeben rieders 5 784 28.11.2015 09:55
Letzter Beitrag: Bitklopfer
  Wie frag ich mehrere Taster in einem Programm ab? blowingwater 7 1.125 02.06.2015 19:05
Letzter Beitrag: blowingwater

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste