[Arduino] SPI communicatie met nRF24l01 en ENC28J60 ethernet

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • unglaublich
  • Registratie: Augustus 2008
  • Laatst online: 30-03 21:26
Beste!

Ik heb een Arduino EthernetShield v.1.1. met een ENC28J60 chip die beschikt over SPI communcatie.

Daarnaast heb ik een nRF24l01 2.4Ghz transceiver die met een Nordic chip die ook beschikt over SPI comm.

Separaat krijg ik ze aan het werk, zijnde met de volgende libraries:

Ethernet: ETHER_28J60 + etherShield
Wireless: RF24

Wanneer ik ze echter beide aansluit met een slaveselect op niet conflicterende poorten (zijnde 10 voor de ethernet als ik me niet vergis en een variabele poort voor de Wireless, 3 in mijn geval) dan werkt de ethernetshield WEL en de wireless shield NIET. Met dezelfde code werkt de wireless wel als ik de ethernetshield verwijder....

Wie heeft er ooit zoiets voor elkaar gekregen?

Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Ik gebruik zelf geen arduino en heb beide producten zelf nooit gebruikt, maar als het gewoon spi is waar je mee zit zou ik zeggen dat je eerst eens de cs (chip select) pinnen na moet kijken. Dus zorgen dat deze op het juiste moment hoog of juist laag zijn (check ook even per product of hij hoog of juist laag moet zijn).

Je schrijft namelijk dat met dezelfde code de wireless wel werkt als je het ethernetshield verwijderd, als je de cs pin van het ethernetshield dus niet meer aan een io pin hangt, maar aan de 5V (ik ga er even van uit dat hij hoog moet zijn voor inacctief en laag voor actief, kijk dit dus even na), dan zou dit hetzelfde effect moeten hebben als het compleet loskoppelen van het ethernetshield.

Acties:
  • 0 Henk 'm!

  • unglaublich
  • Registratie: Augustus 2008
  • Laatst online: 30-03 21:26
Dag Huub,

Thanks voor de tip, heb klopt inderdaad dat CS hoog moet zijn. Ik heb dit geprobeerd op poort 10 zonder resultaat. Heb de printplaat ook even onder de loep genomen en de chips' CS zit inderdaad op 10. Conclusie: de CS werkt niet of de CS werkt wel maar het probleem ligt ergens anders in de SPI. Echter, als ik de ethernetshield aansluit en ik laad de ethernet library NIET in, dan werkt het nog steeds niet... Wanneer ik de shield verwijder is er niets aan de hand.

Acties:
  • 0 Henk 'm!

  • unglaublich
  • Registratie: Augustus 2008
  • Laatst online: 30-03 21:26
Ik zit er nu over te twijfelen of ik niet twee arduino's moet gebruiken om over het SPI probleem heen te komen. Helaas is dit wel erg inefficient :(

Acties:
  • 0 Henk 'm!

  • QuasaR
  • Registratie: December 2000
  • Laatst online: 10-10 16:19

QuasaR

One ring to rule them all

Kijk eens naar deze link.

http://forum.jeelabs.net/node/1473

Dit gaat over een sd-kaart lezer / schrijver icm een RF12 module via SPI
Het kan zijn dat je iets met cli() en sei() kan doen.

Daddy of 3 :)


Acties:
  • 0 Henk 'm!

  • huub8
  • Registratie: Maart 2009
  • Laatst online: 28-06-2021
Het moet mogelijk zijn beide apparaten met 1 arduino aan te sturen, het werkt in feite al alleen het ethernetschield zorgt blijkbaar toch voor een verandering in de communicatie met de rest van de spi hardware als deze aangesloten is zelfs als naar jouw idee de cs hoog is. Ervan uitgaande dat de module gewoon werkt zou dit niet mogen als de cs hoog is (dan staat hij als het ware uit), maar misschien dat om de één of andere manier de cs toch niet altijd hoog is (storing, onverwachtse output van iets van andere hardware van je arduino of wat dan ook) dus stel ik voor dat je de cs pin van je ethernetschield losmaakt van je arduino en gewoon aan de 5V hangt (ervan uitgaande dat hij op 5V werkt, en niet 3v3 ofzo).

Als je een scope hebt is het ook zeker de moeite waard om te kijken naar die cs pin.

Het laatste wat ik nog kan bedenken is dat die ethernet module net voor wat teveel belasting zorgt op je spi lijnen, misschien dat je hier dan wat aan hebt: http://www.microchip.com/forums/m148739.aspx

Je kan in principe eindeloos veel apparaten aan je spi hangen, zolang je maar voldoende pinnen voor de cs aansluitingen hebt.

Acties:
  • 0 Henk 'm!

  • Kobus Post
  • Registratie: September 2010
  • Laatst online: 06-10 17:46
Probeer het eens met de Mirf libary, die gebruiken wij ook i.c.m. een RF24

No trees were harmed in the creation of this message, but several thousand electrons were mildly inconvenienced.

Pagina: 1