LIN 1.3対応 S810-LMLib FAQ

S810-LMLib FAQ

Frequently Asked Question(よくいただくご質問)、現在判明している問題です。



Q1: 現在 《S810-LMLib》シリーズには、どのようなものがありますか?

Q2: 《S810-LMLib》を組み込んだプログラムが動作しないのですが。

Q3: Timebaseタイマの割込みがかかりません。

Q4: Headerの送信ができません。

Q5: Slaveから正しいレスポンスが返ってきません。

Q6: Sleepコマンドの送信方法を知りたいのですが。

Q7: オーバーライトエラーが発生した際、LIN Bufferの内容は上書きされますか?

Q8: オーバーライトエラーが発生した際、エラーフラグは立ちますか?

Q9: エラーフラグが重複することはありますか?

Q10: 送信エラーカウンタ及び受信エラーカウンタの加算対象となるエラーは何ですか?

Q11: S810-LMLib6NIIにおいて、LIN通信と並行してUART2特殊モードを使用する場合、注意すべき点はありますか?

Q12: ディレイ時間が設定した時間よりも短く送信されます。

Q13: コンパイラ NC30WAエントリー版は使用できますか?



Q1: 現在 《S810-LMLib》シリーズには、どのようなものがありますか?

A1: 現在の《S810-LMLib》シリーズにつきましては、 こちら にてご確認ください。
今後の新品種への対応状況についてもホームページにてご案内してまいります。



Q2: 《S810-LMLib》を組み込んだプログラムが動作しないのですが。

A2:以下のことを確認してください。

  • セラミック発振子は正しく接続されていますか?
  • LINドライバは正しく接続されていますか?
  • LINバスは12Vとなっていますか?
  • LINトランシーバのTx,Rxが MCUのTxD,RxDと正しく接続されていますか?
  • sect30.incにおいて、使用しているメモリ領域が重複していませんか?
  • sect30.incにおいて、設定したUART, Timerのベクタテーブル番地は正しいですか?
  • RAM領域はオーバーしていませんか?
  • 設定したTimeBaseタイマとWaitbitタイマが重複していませんか?
  • ユーザプログラムの割込み禁止時間が1bitタイムを超えていませんか?
    1bitタイムを超える場合、割り込み許可フラグ(Iフラグ)を”1”(割り込み許可)に設定するようにしてください。
  • mainプログラムで、初めにl_sys_init, l_ifc_init, l_ifc_connect, l_wakeup(l_run), l_sch_setを呼び出していますか?
  • mlib_def.hの各項目の設定は正しいですか?

Q3: Timebaseタイマの割込みがかかりません。

A3: 以下のことを確認してください。

  • 設定したTimebaseタイマがユーザプログラムで使用しているタイマと重複していませんか?
  • sect30.incにおいて、設定したTimebaseタイマのベクタテーブル番地は正しいですか?

Q4: Headerの送信ができません。

A4: 以下のことを確認してください。

  • 送信処理実行要求、もしくは受信処理実行要求を出していますか?
  • sect30.incにおいて、設定したUART送信割込みベクタテーブル番地は正しいですか?
  • 設定したUARTが、ユーザプログラムで使用しているUARTと重複していませんか?

Q5: Slaveから正しいレスポンスが返ってきません。

A5: 以下のことを確認してください。

  • Slaveは正しく接続されていますか?
  • SlaveIDは正しく設定されていますか?
  • 接続されたSlaveに対して受信処理実行要求をおこなっていますか?
  • 接続されたSlaveと同じ通信ボーレートに設定していますか?
  • LINトランシーバのTx,Rxが MCUのTxD,RxDと正しく接続されていますか?
  • sect30.incにおいて、設定したUART受信割込みベクタテーブル番地は正しいですか?
  • 設定したUARTが、ユーザプログラムで使用しているUARTと重複していませんか?
  • Timebaseタイマが20bitタイム以上となるように設定していますか?
  • Delay Time(Timebase×Frame time)が短すぎませんか?
    Delay Timeが短いとFrameの処理が終わる前に次の処理の割込みがかかるため、正しい通信ができません。FrameのData長に合わせてDelay Timeも変更するようにしてください。

Q6: Sleepコマンドの送信方法を知りたいのですが。

A6: Sleepコマンドの送信方法は以下の通りです。

初めに、通常処理のスケジュールとは別に、Sleepコマンド送信用のスケジュールを作成します。
そしてAPI : l_sch_setを用いてSleepコマンド送信用のスケジュールをセットすることで、Sleepコマンドを送信することができます。



Q7: オーバーライトエラーが発生した際、LIN Bufferの内容は上書きされますか?

A7: いいえ。オーバーライトエラー発生時はLIN Bufferの内容は上書きされません。



Q8: オーバーライトエラーが発生した際、エラーフラグは立ちますか?

A8: いいえ。オーバーライトは他のエラーとは独立しているため、エラーフラグは立ちません。



Q9: エラーフラグが重複することはありますか?

A9: はい。エラーが重複していれば、エラーフラグも重複します。
また、その際はエラーカウンタもエラーの数だけ加算してセットされます。



Q10: 送信エラーカウンタ及び受信エラーカウンタの加算対象となるエラーは何ですか?

A10: 送信および受信エラーカウンタの加算対象となるエラーは以下の表の通りです。

送信エラーカウンタ Bit_error
Parity_error
Bus_lock_error
受信エラーカウンタ Over_run_error
Framing_error
Bit_error
Checksum_error
Short_message_error
No_response_error
Parity_error
Bus_lock_error

Q11: S810-LMLib6NIIにおいて、LIN通信と並行してUART2特殊モードを使用する場合、注意すべき点はありますか?

A11: S810-LMLib6NII V.1.01ではAPI:l_ifc_init()でUARTの初期化を行っております。ユーザープログラムでUART2をご使用になる場合はl_ifc_init()をコール後にUART2の初期化を行ってください。



Q12: ディレイ時間が設定した時間よりも短く送信されます。

A12: 下記の全ての条件に当てはまる際、ディレイ時間が短く送信されます。

  • ライブラリがS810-LMLib6NII V.1.01、または S810-LMLib83 V.101
  • スケジューリング用タイマレジスタ設定値(LIN_TB_LEN)が0x10000 以上
  • ディレイ時間とタイムベース時間が同一でない

対策として、下記条件をお守りください。

  • LIN_TB_LENが0x10000未満となるようにLIN_TB_LENもしくはカウントソースの調整をお願いいたします。
  • LIN_TB_LENが0x10000を超える場合は、ディレイ時間とタイムベース時間が同一となるように調整をお願いいたします。

Q13: コンパイラ NC30WAエントリー版は使用できますか?

A13: 製品比較表の対応コンパイラ・アセンブラにて動作検証を行っております。
記載しているコンパイラ・アセンブラと異なる場合は、お客様にて動作検証をお願いいたします。
なお、ルネサス エレクトロニクス製コンパイラのエントリー版には対応しておりません。