Arduino UNO R3 mit MCP2515 CAN Shield gibt kein ACK Bit aus nach empfangener Nachricht

Ich lese derzeit den GY61 3-Achsbeschleunigungssensor mit einem Nucleo-F072RB aus und übersende die Daten per CAN Bus an einen Arduino UNO R3 mit MCP2515 CAN Shield. Die Übertragung funktioniert soweit, jedoch gibt der Arduino kein ACK Bit aus, wodurch der stm32 nach der ersten Nachricht aufhört. Verwendet wird die arduino-mcp2515 lib mit folgendem Code:

#include <mcp2515.h>

struct can_frame canMsg;
MCP2515 mcp2515(10);

void setup() {
  Serial.begin(115200);

  mcp2515.reset();
  mcp2515.setBitrate(CAN_125KBPS, MCP_8MHZ);
  mcp2515.setNormalMode();

  Serial.println("------- CAN Read ----------");
  Serial.println("ID  DLC   DATA");
}

void loop() {
  if (mcp2515.readMessage(&canMsg) == MCP2515::ERROR_OK) {
    Serial.print(canMsg.can_id, HEX); // print ID
    Serial.print(" ");
    Serial.print(canMsg.can_dlc, HEX); // print DLC
    Serial.print(" ");

    for (int i = 0; i < canMsg.can_dlc; i++)  { // print the data
      Serial.print(canMsg.data[i], HEX);
      Serial.print(" ");
    }

    Serial.println();
  }
}

Folgend der Schaltplan:

Sowie ein Screenshot des Logic Analyzers und des Arduino Monitors:


Monitor_Screenshot

Leider finde ich keinen Fehler und würde mich über Ratschläge freuen.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.