LINライブラリFAQ

Frequently Asked Questions(よくいただくご質問)、現在判明している問題です。
LINライブラリのシリーズに関しましてはLINライブラリ製品情報をご確認下さい。

LIN仕様1.3対応LINマスターライブラリ

LIN仕様1.3対応LINスレーブライブラリ

LIN仕様2.0対応LINマスターライブラリ

LIN仕様2.0対応LINスレーブライブラリ

LIN仕様1.3対応LINライブラリ

LIN仕様1.3対応LINマスターライブラリ

 

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

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

  • セラミック発振子は正しく接続されていますか?
  • 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の各項目の設定は正しいですか?

 

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

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

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

 

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

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

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

 

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

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

  • 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も変更するようにしてください。

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

送信エラーカウンタ 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

 

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

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

 

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

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

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

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

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

 

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

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

 

LIN仕様1.3対応LINスレーブライブラリ

  • Q1:《S810-LSLib》を組み込んだプログラムが動作しないのですが。
  • Q2:MasterからのHeaderを受信できません。
  • Q3:レスポンスの送信ができません。
  • Q4:オーバーライトエラーが発生した際、LIN Bufferの内容は上書きされるのですか?
  • Q5:オーバーライトエラーが発生した際、エラーフラグは立つのですか?
  • Q6:エラーフラグが重複することはありますか?
  • Q7:Wakeupの再送機能はありますか?
  • Q8:コンパイラNC30WAエントリー版は使用できますか?
  •  

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

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

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

     

    Q2:MasterからのHeaderを受信できません。

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

    • Masterは正しく接続されていますか?
    • 接続されたMasterと同じ通信ボーレートに設定していますか?
    • sect30.incにおいて、設定したUART受信割込みベクタテーブル番地は正しいですか?
    • 設定したUARTがユーザプログラムで使用しているUARTと重複していませんか?

     

    Q3:レスポンスの送信ができません。

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

    • sect30.incにおいて、設定したUART送信割込みベクタテーブル番地は正しいですか?
    • 設定したUARTがユーザプログラムで使用しているUARTと重複していませんか?
    • Master側から受信処理実行要求が出されていますか?
    • Masterから送られてきたHeaderのIDは、自IDと一致していますか?

     

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

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

     

    Q5:オーバーライトエラーが発生した際、エラーフラグは立つのですか?

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

     

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

    A6:はい。エラーが重複していれば、エラーフラグも重複します。

     

    Q7:Wakeupの再送機能はありますか?

    A7:はい。API : l_wakeup()により、Wakeupを3回まで再送信します。
    さらに再送信をおこないたい場合は、l_sleep()を実行し、Slaveライブラリの状態をSleepにした後、再びl_wakeup()を実行することで、Wakeupの再送信が可能です。

     

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

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

     

     

    LIN仕様2.0対応 LINライブラリFAQ

    LIN仕様2.0対応LINマスターライブラリ

     

    Q1:【S810-LMLibR8C23-2】において、タイマRDを使用するときに制限事項はありますか?

    A1:下記の4点の制限事項がございます。

  • 選択したチャネルは、アウトプットコンペア機能で動作します。このため、もう一方のチャネルは 以下の機能は使用できません。
    • リセット同期PWM モード
    • 相補PWMモード
    • PWM3モード
    • アウトプットコンペア機能のカウント停止条件「TRDGRAiコンペア一致でTRDiが“0000h”になると同時にカウント停止」
    • PWMモードのカウント停止条件「TRDGRAiコンペア一致でTRDi が“0000h”になると同時にカウント停止」
  • 選択したチャネルはGRAiレジスタを使用します。このため、GRBiレジスタ・GRCiレジスタ・GRDiレジスタは使用できません。
  • チャネル0を選択した場合、チャネル1 のカウントソースとしてTCLK 入力を使用することはできません。
  • R8C/28グループ、R8C/29 グループを使用する場合は、タイマRD(チャネル0、チャネル1)は使用できません。
  •  

    LIN仕様2.0対応LINスレーブライブラリ

     

    Q1:【S810-LSLibR8C23-2】において、タイマRDを使用するときに制限事項はありますか?

    A1:下記の4点の制限事項がございます。

  • 選択したチャネルは、アウトプットコンペア機能で動作します。このため、もう一方のチャネルは以下の機能は使用できません。
    • リセット同期PWM モード
    • 相補PWMモード
    • PWM3モード
    • アウトプットコンペア機能のカウント停止条件「TRDGRAiコンペア一致でTRDiが“0000h”になると同時にカウント停止」
    • PWM モードのカウント停止条件「TRDGRAiコンペア一致でTRDiが“0000h”になると同時にカウント停止」
  • 選択したチャネルはGRAiレジスタを使用します。このため、GRBiレジスタ・GRCiレジスタ・GRDiレジスタは使用できません。
  • チャネル0 を選択した場合、チャネル1のカウントソースとしてTCLK 入力を使用することはできません。
  • R8C/28グループ、R8C/29 グループを使用する場合は、タイマRD(チャネル0、チャネル1)は使用できません。