2016-06-26 14 views
0

私は今、この問題を長年にわたって解決しなければなりません。MCP2515ボーレート問題

2つのMCP2515 CANインターフェイスチップが相互に接続されています。 1つはArduinoによって制御され、もう1つはSTM32ボードによって制御されます。

スキーム: - :私は50Kに50Kにし、STM32上のArduinoにボーレートを設定した場合(> =送信)

Arduino-> MCP2515-> MCP2515-> STM32

割り込みを受け取るにはありません2番目のMCP2515で Arduinoのボーレートを100kに倍増させると割り込みが発生し、データが正しく転送されます。

奇妙なことです:CFG1 CFG2 CFG3レジスタ設定は両方のMCP2515チップで同じです! 確かに周波数を倍にすることはできますが、ボーレートには31K25のようにライブラリにない62K5が必要です。 誰かが同じ問題に遭遇したとか、これで助けてくれることを願っています。途中で

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

私はまた、ボーレートの参照のためにこのコードを試してみましたArduinoのIDEには、ヘッダーを使用していたので、

答えて

0

問題は部分的に解決8MHzの水晶発振器の両方の実行は、二重の頻度でしたlibディレクトリのフォルダの外にカスタムディレクトリではありません!

私が10kBaud以下に行った場合、割り込みは今応答しません。処理するには低すぎるかもしれませんか?

+0

10kと5kの作業では、Arduinoライブラリ(1つ1つ試しました)は、5と10kボーで何とか壊れています。 CANボードを搭載したラズベリーパイは、5kと10kで送信され、マイクロコントローラで動作しました。 1000Kbpsの問題は終端抵抗であったため、そこになければなりませんでした。 :) – ionman

関連する問題