ホーム
アプリケーション
製品情報
先端技術
サポート
WEBショップ
ニュース&イベント
会社案内
詳細検索
機能/特性検索
FAQホーム
サイトマップ
お問い合わせ
サポート
>
FAQ
>
マイクロコンピュータ
>
V850デバイス
>
CAN
目次
FAQ-ID = v85can-
nnnn
0002:
CAN:メッセージ送受信の完了の確認方法 [V850/SF1]
0003:
CAN:割り込みを使わずに送受信の完了を確認する方法 [V850/SF1]
0004:
CAN:内部レジスタのアドレスが複数あるのは? [V850/SF1]
0005:
CAN:各レジスタの設定について教えて [V850/SF1]
0006:
CAN:バス・オフの発生と検出方法は? [V850/SF1]
0007:
CAN:受信メッセージが抜ける [V850/SF1]
v85can
-0002
CAN:メッセージ送受信の完了の確認方法 [V850/SF1]
Q1
V850/SF1の FCANコントローラでメッセージ送受信の完了を確認する方法について
完了時に
INTCTn
または
INTCRn
へ割り込みが発生するようにするためには、 割り込み許可の設定として
CnIE
の
E_INT0
及び
E_INT1
、更に
M_CTRLn
の
IE
、 のすべてに設定が必要でしょうか?
A1
FCAN部分からの割り込み (
INTCTn
、
INTCRn
) 発生に関しては、これらにすべて設定する必要があります。
ただし、CPU で実際に割り込みを発生させるには、さらに割り込み制御レジスタ (
CANIC3
や
CANIC2
等) のマスク (
CANMK3
や
CANMK2
等) をクリアする必要があります。
これで、CPU が割り込み許可状態になったら FCANの送受信完了で
INTCTn
や
INTCRn
の割り込みが発生して CPU が割り込みハンドラに処理を移します。
この情報はお役にたちましたか?
v85can
-0003
CAN:割り込みを使わずに送受信の完了を確認する方法 [V850/SF1]
Q1
割り込みを使わずに送受信の完了を確認する方法を教えてください。
A1
(1)の設定の内で
M_CTRLn
の
IE
をクリアしたり、
CANIC
のマスクをセットすると CPUに割り込みを発生しません。
ここで、
CnINTP
の
CnINT1/0
ビットで保留された割り込みを調べてください。
その上で、ビットが立っていたらそれをクリアしてください。
この場合、
CnIE
の
E_INT0
及び
E_INT1
は必ず許可しておく必要があります。
この情報はお役にたちましたか?
v85can
-0004
CAN:内部レジスタのアドレスが複数あるのは? [V850/SF1]
Q1
V850/SF1ユーザーズ・マニュアル・ハードウエア編で、内部レジスタのアドレス表現が xxnFF804H n=3,7,B のように記述されていますが、nの値は何を表すのでしょうか?
A1
これは単に FCAN のレジスタがアドレスとして n=3, 7, B のアドレスに見えるというだけです。
通常の使用では n=3 と考えていただければ結構です。
これは FCAN の I/F が外部バスを経由して接続されており、外部のアドレスとしてすべてが準備されていないためにイメージが見えるものです。
この情報はお役にたちましたか?
v85can
-0005
CAN:各レジスタの設定について教えて [V850/SF1]
Q1
次の条件で、各レジスタ(
CGCS
,
CnBRP
,
CnSYNC
)の設定について教えてください。
クロック :16MHz
ボー・レート :500kbps
サンプル・ポイント :75%程度
A1
(1) CGCSレジスタ
MCPn
フラグで、CANメモリ・アクセス・コントローラのベース・クロックf
MEM
を設定します。
たとえば、
MCPn
=0(f
MEM
=fxx)で16MHzを入力すれば、f
MEM
=16MHzとなります(fxx:メイン・クロック周波数)。
f
MEM
は、ボー・レート・ジェネレータ部とグローバル・タイマ・システム・クロック生成部に供給されます。CANの基本ボー・レート設定に関係するのは、前者のボー・レート・ジェネレータ部です。後者は、タイム・スタンプ機能という、CANプロトコルを利用したオプション機能です。
(2) CnBRPレジスタ
CANビット・レート・プリスケーラ出力のCANモジュール・クロックf
BTL
を設定します。
このレジスタで、バスのタイプ(ハイ・スピード/ロウ・スピード)と、プロトコルで定義されるTQ(Time Quanta)の設定をします。500kbpsの場合、データ・ビット幅を8TQとします。よって、1TQ=500kHz×8=4MHz=f
BTL
です。
上記
MCPn
の設定で、16MHzをベース・クロックとして供給としたとき、
BRPn
=1(f
MEM
/4)を設定すれば、4MHzになります。同時に
BTYPE
=1を設定して、ハイ・スピード・モード(>125kbps)にしておきます。
(3) CnSYNCレジスタ
ビット時間やSP(Sample Point)、SJW(同期ジャンプ幅)を設定して、CANグローバル周波数を定義します。
500kbpsの場合、(2)でデータ・ビット幅を8TQとしましたので、
DBTn
=7(f
BTL
×8)となります。
SP=75%であれば、6TQですので、
SPTn
=5(f
BTL
×6)を設定します。
なお、プロトコル上、SJWは4TQまで設定できますが、この例では(DBT-SPT)=2ですので、上限は1です。
この情報はお役にたちましたか?
v85can
-0006
CAN:バス・オフの発生と検出方法は? [V850/SF1]
Q1
CAN通信でバス・オフの状態を
CANn
コントロール・レジスタのバス・オフ・フラグ (
BOFF
) で検出しようとしていますが、その状態を作り出す方法はありますか?
A1
バス・オフを発生させる方法としては、トランシーバなどとの接続を切り離し、 マイコンの
CANRX
端子をハイ・レベルにプルアップして送信する方法があります。
検出方法は割り込みハンドラ (
INTCE1
または
INTCE2
)処理ルーチン内で
BOFF
フラグをチェックする方法がよいかと思います。
この情報はお役にたちましたか?
v85can
-0007
CAN:受信メッセージが抜ける [V850/SF1]
Q1
一定周期で非同期に送受信を行い、相手からの送信がこちらの受信前に連続する場合、 こちらの受信メッセージの順番が入れ替わる (抜けるか見逃す) 現象が発生します。
A1
発生している現象 (受信メッセージが抜ける) から、 受信メッセージ・バッファへのオーバライトが発生していることが予想されます。
受信処理内で、
DN
ビットをクリア後、メッセージ受信があると、
M_STATn
レジスタの
DN
ビットがセットされ、オーバライトが発生します。
これは
M_CTRLn
レジスタの
MOVR
ビットで見ることができます。
受信処理内の最後に
M_STATn
レジスタの
DN
ビットのチェックを行い、
DN
ビットが 0 でなければ再度受信データの取得を行うようにしてください。
また、
CnCTRL
レジスタの
OVM
ビットを新規メッセージのオーバライトを許可の設定 (0) にしてください。
この情報はお役にたちましたか?
ご利用にあたって
個人情報保護について
RSS
© 1995-2008
NEC Electronics Corporation