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:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Probleme mit SPI - Ethernet und nRF24L01
08.11.2015, 23:34
Beitrag #17
RE: Probleme mit SPI - Ethernet und nRF24L01
Vielen Dank für Eure Hilfe!

Ich habe heute wieder eine Menge gelesen und ausprobiert und das ist der aktuelle Stand:

Es gibt wohl mit der alten SPI-Library <1.5 einen Fehler. Ich habe also die neueste GUI runter geladen und damit getestet.

Was passiert nun? Er empfängt über den nRF die erste Sendung und verbindet sich dann mit dem Internet. Danach empfängt er nichts mehr. Im Loop gebe ich zum Test Zeichen aus, damit ich sehe, dass er nicht hängt. Ziehe ich nun den ETH ab, wird sofort eine Sendung aus dem Speicher des nRF ausgelesen.

Fazit:Nachdem der ETH das erste mal mit dem Internet verbunden hat, blockiert er den nRF.

Das hier habe ich aus der Referenz:

Zitat:void RF24::ce ( int level ) [protected]
Set chip enable.

Parameters:
level HIGH to actively begin transmission or LOW to put in standby. Please see data sheet for a much more detailed description of this pin.

Zitat:void RF24::csn ( int mode ) [protected]
Set chip select pin.

Running SPI bus at PI_CLOCK_DIV2 so we don't waste time transferring data and best of all, we make use of the radio's FIFO buffers. A lower speed means we're less likely to effectively leverage our FIFOs and pay a higher AVR runtime cost as toll.

Parameters:
mode HIGH to take this unit off the SPI bus, LOW to put it on

Ich habe also nach dem Upload ins Internet folgendes gesetzt:

Pin 10 HIGH
Pin 7 LOW

Auch in Kombination mit startListening() oder SPI.setClockDivider(2);
Er bleibt blockiert, bis ich den ETH abziehe und dann gibt er den Speicher aus.

Noch nicht die Lösung aber schon einen riesen Schritt weiter!
Könnt Ihr damit etwas anfangen?

Viele Grüße
itsy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.11.2015, 23:51
Beitrag #18
RE: Probleme mit SPI - Ethernet und nRF24L01
Hi itsy,
also das ist ja zum Mäuse melken...
...also um zu sehen ob es was mit den SPI Paramtern der einzelnen Lib's zu tun hat könntest ja mal die Reihenfolge der Initialisierung von ETH und nRF vertauschen...ob es dann auch noch so aussieht....
Also mir fällt da langsam bzw. ganz sicher nichts mehr dazu ein so ohne Hardware zum selber mittesten...
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.11.2015, 21:39 (Dieser Beitrag wurde zuletzt bearbeitet: 09.11.2015 21:56 von itsy.)
Beitrag #19
RE: Probleme mit SPI - Ethernet und nRF24L01
Hi bk,

gehen wir doch mal ganz anders an die Sache ran ...
Wenn ich den ETH abziehe und dann vom nRF wieder empfange, kann das erstmal nichts mit CS und CSN vom nRF zu tun haben bzw. brauche ich diese bei meinen Tests nicht berücksichtigen, weil dies ja anscheinend funktioniert, richtig?

Pin 10 setze ich manuell, um den ETH zu deaktivieren, was auch genau so in der Referenz steht. Kann also auch nicht daran liegen, richtig?

Kann es also eigentlich nur mit den SPI-Kommunikations-Pins zu tun haben. Ich habe gelesen, dass es mit dem w5100 ein Problem gibt, dass er auch kommuniziert, wenn Pin 10 HIGH ist. Leider sind die Beiträge alle recht alt, sodass ich nicht weiß, ob das Probelm ggf. schon behoben ist. Wäre aber die einzige Erklärung ...

Aber warum tritt das Probem erst nach dem ersten senden auf? Vorher kann der nRF ja empfangen ...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2015, 19:55 (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2015 19:59 von itsy.)
Beitrag #20
Lightbulb RE: Probleme mit SPI - Ethernet und nRF24L01
Ok, nach weiterer Recherche möchte ich nun doch zumindest die Lösung bzw. die Ursache des Problems posten.

In einem anscheinend etwas älteren Datenblatt des W5100 habe ich folgende Passage gefunden:

Zitat:Multiple SPI Slave Usage
Basically, multiple SPI slave usage is the same as single SPI slave usage. One difference between
other SPI slave devices compared to the W5100 is that the MISO output is continuously driven in the
W5100 whether the /SCS is asserted as high or as low. As well, when the 5100 /SCS is asserted as
high when using multiple slaves, other SPI devices cannot be read or written by the SPI master on
the SPI BUS simultaneously. These problems will continue unless the recommendations listed below
are followed.
Recommendations:
- When accessing another device on the SPI BUS rather than the W5100, assert the SEN pin in
the W5100 as low first, then access the other devices.
- When accessing the W5100, the SEN pin should be high.

Das wird wie folgt im Datenblatt dargestellt:

   

Schaut man sich das Referenzschema an, ist SEN auf HIGH gelegt:

   

Das bedeutet, dass es mit dieser Schaltung gar nicht möglich ist, die Kommunikation des W5100 abzustellen und erklärt, warum es mit meinem Adapter nicht funktioniert.

Aber warum funktioniert es dann mit einem Ethernet-Shield?

Ein kurzer Blick in die Referenz löst auch dieses Geheimnis:

   

SEN ist über einen Inverter mit SS verbunden. Und diesen Inverter suche ich vergebens auf meinem Funduno Ethernet-Adapter!

Nun habe ich im Internet nach einer Alternative in dieser Bauform gesucht (kein Shield) konnte aber nur diesen einen Adapter finden.

Hat vielleicht einer von Euch einen Tip, wo ich so einen alternativen Adapter (mit Inverter für SEN) finden kann? Wirklich alle Adapter die ich gefunden habe, haben eine rote Platine, die Beschriftung Funduino und sind exakt gleich aufgebaut.

Ich möchte ungern auf einen ENC28J60 umsteigen oder meinen Programmcode mit SoftSPI zumüllen.

Vielen Dank
itsy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2015, 20:21
Beitrag #21
RE: Probleme mit SPI - Ethernet und nRF24L01
Hallo itsy,

jetzt bist du aber tief in die Hardware eingestiegen. Smile

Sollte wirklich, so wie du beschrieben hast, der SEN Pin das Problem sein, würde ich den SEN Pin, so wie es das original Ethernet Shield auch macht, auf 0 ziehen wenn das SS-Signal 1 wird.
Das geht wahrscheinlich schon mit einem NPN Transitor und einem Basisvorwiderstand.
An den SEN Pin kommst du am Pullup Widerstand ran.

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
10.11.2015, 20:35 (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2015 20:39 von itsy.)
Beitrag #22
RE: Probleme mit SPI - Ethernet und nRF24L01
Hallo Arne,

ja, das Projekt muss fertig werden - da hänge ich schon zu lange Zeit dran, um aufzugeben ;-)

Ich habe jetzt auch von meinem Ethernet-Adapter einen Schaltplan gefunden, der meine Vermutung des Boards belegt: >>KLICK<<

   

Also ich hätte jetzt ganz einfach zwischen Pin und Widerstand eine Leitung gezogen (kann ich an den Widerstand löten) und diesen auf einen freien Pin des Ardus gelegt. Schalten würde ich den Pin dann manuell vor bzw. nach dem Senden ins Internet.

Meinst Du, dass es klappt oder benötige ich wirklich einen Transistor?

Viele Grüße
itsy

Oh, ich sehe grade, das wären dann 5V am 3,3V Pin des W5100 ;-) Das geht wohl nicht! Aber ich könnte hierfür einen PWM-Pin verwenden, oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2015, 20:52
Beitrag #23
RE: Probleme mit SPI - Ethernet und nRF24L01
Hallo itsy,
RESPEKT mein Junge....also auf den Trichter mußte erst mal kommen....WOW..
Also ich würde da den Vorschlag von Arne realisieren...spart nen Port und die Sache ist erledigt. Dazu benötigts ja nur einen Widerstand mit 4,7K-10K und einen BC337 oder was vergleichbares und der PullUp ist ja schon auf deinem Interface drauf.
Das die das nicht geregelt haben ist schon Haarsträubend...tststs...
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2015, 21:10
Beitrag #24
RE: Probleme mit SPI - Ethernet und nRF24L01
Hab vielen Dank :-)

Dann werde ich es mal die Tage versuchen.

Falls jemand jedoch einen Adapter findet, der einen Inverter gleich integriert hat, wäre ich um eine Info dankbar :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Big Grin Probleme mit pgm_read_word NoGi 9 1.159 23.04.2017 10:09
Letzter Beitrag: NoGi
  Probleme mit einem Sketch für einen LED Cube 5x5x5 Frank1234 5 332 13.03.2017 12:12
Letzter Beitrag: Tommy56
  Probleme bei Countdown ferdi 0 208 23.01.2017 10:45
Letzter Beitrag: ferdi
  NRF24L01 Marc2014 1 509 09.01.2017 19:28
Letzter Beitrag: celle
  nRF24l01 empfängt Daten nicht techniclover 1 314 09.01.2017 19:20
Letzter Beitrag: celle
  [Gelöst] SD Card (Ethernet Shield) IO funktioniert nicht __jb__ 7 650 05.01.2017 09:51
Letzter Beitrag: rpt007
  Welche Library für das Funkmodul nRF24L01? alpenpower 1 264 25.12.2016 18:50
Letzter Beitrag: ardu_arne
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 394 19.11.2016 10:46
Letzter Beitrag: tr3
  NRF24L01 Packet / Msg Frage Marc2014 5 377 07.11.2016 18:08
Letzter Beitrag: hotsystems
  DHT + NRF24L01 Marc2014 6 451 07.11.2016 17:22
Letzter Beitrag: Marc2014

Gehe zu:


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