Bastian-Reul / SmartHome

0 stars 0 forks source link

CAN und Ethernet kann nicht zusammen verwendet werden #1

Closed Bastian-Reul closed 5 years ago

Bastian-Reul commented 5 years ago

Das CAN und das Ethernetshield können beide separat verwendet werden, und verhalten sich wie zu erwarten. Aber wenn beide zusammen benutzt werden sollen gibt es Probleme. Es scheint, dass es an den Verbindungen CS und INT liegt. Will man diese von dem CAN Shield jedoch auf andere Pins umlegen, funktioniert die CAN initialisierung nicht MCP2515.h // Arduino MKR board: MKR CAN shield CS is pin 3, INT is pin 7

define MCP2515_DEFAULT_CS_PIN 3 //3

define MCP2515_DEFAULT_INT_PIN 7 //7

else

define MCP2515_DEFAULT_CS_PIN 10 //Dieser Pin kann leider nicht verlegt werden

define MCP2515_DEFAULT_INT_PIN 2 //Dieser Pin kann leider nicht verlegt werden

endif

Bastian-Reul commented 5 years ago

Nach der Korrektur von CAN.write(Kommando_Licht_an); in CAN.write(Kommando_Licht_aus); in dem entsprechendem Zweig, klappt das ein und ausschalten der LED nun, allerdings nur wenn ca 20 Sekunden zwischen ein und ausschalten liegen. Laut Serial.Pritnout scheint sich sich nach jeder abgesetzten CAN Nachricht, die Verbindung zum MQTT Server zu verlieren und muss erst wieder neu aufgebaut werden. Die CS Leitungen werden aktuell noch vom Ethernet-Shield und vom CAN Controller zusammen genutzt. Das würde die Verbindungsabbrücke erklären. Nun wird versucht die CS Leitung umzulegen

Bastian-Reul commented 5 years ago

In MCP2515.h wurde fogendes:

#define MCP2515_DEFAULT_CS_PIN          3   
#define MCP2515_DEFAULT_INT_PIN         7
#else
#define MCP2515_DEFAULT_CS_PIN          10  
#define MCP2515_DEFAULT_INT_PIN         2
#endif

in

#define MCP2515_DEFAULT_CS_PIN          3   
#define MCP2515_DEFAULT_INT_PIN         7
#else
#define MCP2515_DEFAULT_CS_PIN          A0
#define MCP2515_DEFAULT_INT_PIN         2   
#endif

geändert. Wichtig scheint zu sein, dass der MCP2515_DEFAULT_INT_PIN nicht verändert wird.