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
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 156 19.11.2016 10:46
Letzter Beitrag: tr3
  NRF24L01 Marc2014 0 98 08.11.2016 18:49
Letzter Beitrag: Marc2014
  NRF24L01 Packet / Msg Frage Marc2014 5 123 07.11.2016 18:08
Letzter Beitrag: hotsystems
  DHT + NRF24L01 Marc2014 6 154 07.11.2016 17:22
Letzter Beitrag: Marc2014
  Homeautomation ? Welches System ? MySensors - NRF24L01 - Arduino - OpenHAB Marc2014 0 106 07.11.2016 17:13
Letzter Beitrag: Marc2014
  NRF24L01 Interrupt MeisterQ 22 515 02.11.2016 15:50
Letzter Beitrag: MeisterQ
  Ethernet Modul Enc28j60 Pin13 LED Schalten BennIY 16 504 27.09.2016 20:30
Letzter Beitrag: BennIY
  ArduinoDroid Probleme Brother Tak 1 199 10.09.2016 22:12
Letzter Beitrag: Brother Tak
  NRF24L01+ "Ping" senden, empfangen, bestätigen MeisterQ 8 379 23.08.2016 13:19
Letzter Beitrag: MeisterQ
  NRF24L01,Empfangene Daten auswerten Marc2014 9 519 30.07.2016 19:34
Letzter Beitrag: rkuehle

Gehe zu:


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