Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 6 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:
2 Answers
8 years, 4 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トランシーバーは付属しておりませんので、
お手数ですが、ご自身で入手して取り付けて頂く必要がございます。
Tomo Yamanaka様
調査頂きありがとうございます また返信が遅くなりました。申し訳ございません。
can1.frequencyを使用しない状態ではcanの信号はでています。 トランシーバーはMCP2551を使用しています。 ご提案いただいた方法を試してみたいと思います。 よろしくお願いします。
posted by Kyonosuke DANJO 28 Aug 2016Kyonosuke DANJO様
長らくお待たせしてしまい、大変申し訳ございません。
posted by Tomo Yamanaka 05 Dec 2016調査の結果、CANドライバに不具合があり、frequecyで周波数変更すると信号線が途絶えて、CANが動かなくなっていました。
ドライバの修正を行い、現在mbedライブラリへのマージ依頼中です。
mbedライブラリへのマージは定期的であり、次回のmbedライブラリ更新タイミングが12/Eの見込みです。
mbedライブラリへマージされるまでの間、今しばらくは下記の暫定処置を施してご利用下さい。
CANドライバの修正がmbedライブラリへマージされましたら、再度ご連絡させて頂きます。
Kyonosuke DANJO様
posted by Tomo Yamanaka 16 Dec 2016大変お待たせいたしました。
CANドライバの修正がmbedライブラリへマージされました。mbedライブラリrev.131になります。
お手元のプログラムにて、下記の暫定処置を外し(mbed-devライブラリを削除)、mbedライブラリを新たにインポートして頂ければ、CANドライバの修正が入った最新mbedライブラリが取り込めますので、こちらをご使用して頂ければと存じます。
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