2016-06-26 14 views
0

저는 오랫동안 그 문제를 해결해야합니다.MCP2515 보이스 레이드 문제

두 개의 MCP2515 CAN 인터페이스 칩이 서로 연결되어 있습니다. 하나는 Arduino에 의해 제어되고 다른 하나는 STM32 보드에 의해 제어됩니다.

계획 : - : 나는 50K로 STM32 50K와에 아두 이노의 전송 속도를 설정하면 (> = 전송)

Arduino-> MCP2515-> MCP2515-> STM32

에는 수신 방해가 없다 두 번째 MCP2515. Arduino의 전송 속도를 100k로 두 배로 늘리면 인터럽트가 발생하고 데이터가 올바르게 전송됩니다.

이상한 점은 : CFG1 CFG2 CFG3 레지스터 설정이 두 MCP2515 칩 모두 동일합니다! 물론 주파수를 항상 두 배로 늘릴 수 있지만 보우는 31K25와 같이 라이브러리에없는 62K5를 필요로합니다. 누군가가 같은 문제를 겪었거나 도움이되기를 바랍니다. 그런데

https://github.com/latonita/arduino-canbus-monitor/blob/master/mcp_can.cpp

:

또한 전송 속도 참조에 대한이 코드를 시도 아두 이노 IDE가 헤더를 사용했기 때문에

답변

0

문제가 부분적으로 해결 8MHz의 크리스탈 발진기에서 모두 실행이 이중 주파수가 있었다 lib 디렉터리에서 폴더 외부의 사용자 지정 디렉터리가 아닙니다!

내가 10kBaud 이하로 갈 경우 인터럽트가 응답하지 않습니다. 처리 하기엔 너무 낮을까요?

+0

10k 및 5k 작동 중, Arduino 라이브러리 (모든 시도)는 5 및 10k Baud에서 어떻게 든 손상됩니다. CAN 보드가 장착 된 Raspberry Pi는 5와 10k로 보내졌으며 마이크로 컨트롤러에서 작동했습니다. 1000Kbps의 문제점은 터미네이션 저항기였습니다. :) – ionman