7 years, 9 months ago.

CANの通信速度が変更できない!

canのデフォルトの通信速度は100kbpsらしいのですが500kbpsに変更しようと思い、 can1.frequencyを使いました。( can1.frequency(0x7A120);と記述)ビルドはとおるのですが、オシロで信号線をみてみると can1.frequencyを使う前では出ていた信号が出なくなるのです。 500kだとだめなのかと思って can1.frequency(0x186A0);とし100kのまま変更せずcan1.frequencyを使ってみたのですが これも信号がでていませんでした。can1.frequencyを使うとCANは使用できないのでしょうか? can1.frequencyがRZのRSCAN0CFGレジスタを変更しているのは確認できたのでcan1.frequencyが使えないならと、 直接RSCAN0CFGを変更してみたのですがこれもやっぱり信号がでません。 なにぶん初心者なものでどうしてもうまくいきません アドバイスよろしくお願いします。 通信速度を変更できるサンプルがあればお願いします。

Question relating to:

Team for GR-PEACH Producer Meeting

Tomo Yamanaka様

調査頂きありがとうございます また返信が遅くなりました。申し訳ございません。

can1.frequencyを使用しない状態ではcanの信号はでています。 トランシーバーはMCP2551を使用しています。 ご提案いただいた方法を試してみたいと思います。 よろしくお願いします。

posted by Kyonosuke DANJO 28 Aug 2016

Kyonosuke DANJO様

長らくお待たせしてしまい、大変申し訳ございません。

調査の結果、CANドライバに不具合があり、frequecyで周波数変更すると信号線が途絶えて、CANが動かなくなっていました。
ドライバの修正を行い、現在mbedライブラリへのマージ依頼中です。
mbedライブラリへのマージは定期的であり、次回のmbedライブラリ更新タイミングが12/Eの見込みです。
mbedライブラリへマージされるまでの間、今しばらくは下記の暫定処置を施してご利用下さい。
CANドライバの修正がmbedライブラリへマージされましたら、再度ご連絡させて頂きます。

posted by Tomo Yamanaka 05 Dec 2016

Kyonosuke DANJO様

大変お待たせいたしました。
CANドライバの修正がmbedライブラリへマージされました。mbedライブラリrev.131になります。
お手元のプログラムにて、下記の暫定処置を外し(mbed-devライブラリを削除)、mbedライブラリを新たにインポートして頂ければ、CANドライバの修正が入った最新mbedライブラリが取り込めますので、こちらをご使用して頂ければと存じます。

posted by Tomo Yamanaka 16 Dec 2016

Alteration of the CAN driver has been converged into the mbed library. It moves toward becoming mbed library rev.131. With the current program you can expel the accompanying temporary activity (evacuate the mbed - dev library), import new mbed library, you can import the most recent mbed library with CAN driver settles here I trust that you can utilize it. Professional Best Proofreading Service UK

posted by Emilia Benjamin 22 Jan 2019

2 Answers

7 years, 8 months ago.

Kyonosuke DANJO様

返信が遅くなり、大変申し訳ございません。

本件、現在調査中でございます。
CANを500kbpsでご使用になられたいとの事でしたら、
調査結果の出るまでの間、大変お手数ではございますが、
お手元のプログラムを以下の手順に沿って変更してご使用して頂ければと存じます。

1.お手元のプログラムにて、mbedライブラリを一旦削除して、代わりにmbed-devライブラリをインポートします。
  mbed-devライブラリはmbedライブラリのソースファイル版になります。
  こちらを用いて、CANドライバの中を直接変更します。
2.mbed-devにて以下のファイルを開きます。
  mbed-dev\targets\hal\TARGET_RENESAS\TARGET_RZ_A1H\can_api.c
  こちらがCANドライバのソースファイルになります。
3.can_api.cにて、周波数の初期値を変更します。
  860行目に周波数の初期設定(100kbps)処理がありますので、
  ここの値を直接変更します。
  「can_set_frequency(obj, 100000);」から
  「can_set_frequency(obj, 500000);」に変更します。
4.お手元のプログラムをビルドします。

ご迷惑をおかけして大変申し訳ありません。

Kyonosuke DANJO様


1点確認させて頂きたい事がございます。

can1.frequencyを使わず、通信速度をデフォルト(100kbps)のままの状態では、
信号線は出ていますでしょうか。

この状態で信号線が出ていないとなると、通信に必要な機材が不足していると考えられます。
GR-PEACHを使ってCAN通信を行なう場合、CANトランシーバーが別途必要になります。
下記をご参考下さい。
https://developer.mbed.org/handbook/CAN
GR-PEACHにはこのCANトランシーバーは付属しておりませんので、
お手数ですが、ご自身で入手して取り付けて頂く必要がございます。

posted by Tomo Yamanaka 12 Aug 2016
7 years, 2 months ago.

同様にGR-PEACHを使用しCAN通信にて通信ができない状態です。 can1.frequencyを使用せずデフォルトで動作させると100kbpsでは正常送受信できております。 can1.frequencyを使用すると正常送受信できません。 mbedライブラリバージョンは、135を使用しております。

Satoru Araga様

返信が遅くなり大変申し訳ございません。

こちらで一度状況を確認させて頂きます。何か解りましたら、改めてご連絡させて頂きます。

posted by Tomo Yamanaka 21 Feb 2017