Frequently Asked Questions(よくいただくご質問)、現在判明している問題です。
LINライブラリのシリーズに関しましてはLINライブラリ製品情報をご確認下さい。
LIN仕様1.3対応LINライブラリ
LIN仕様1.3対応LINマスターライブラリ
- Q1:《S810-LMLib》を組み込んだプログラムが動作しないのですが。
- Q2:Timebaseタイマの割込みがかかりません。
- Q3:Headerの送信ができません。
- Q4:Slaveから正しいレスポンスが返ってきません。
- Q5:Sleepコマンドの送信方法を知りたいのですが。
- Q6:オーバーライトエラーが発生した際、LIN Bufferの内容は上書きされますか?
- Q7:オーバーライトエラーが発生した際、エラーフラグは立ちますか?
- Q8:エラーフラグが重複することはありますか?
- Q9:送信エラーカウンタ及び受信エラーカウンタの加算対象となるエラーは何ですか?
- Q10:S810-LMLib6NIIにおいて、LIN通信と並行してUART2特殊モードを使用する場合、注意すべき点はありますか?
- Q12:ディレイ時間が設定した時間よりも短く送信されます。
- Q12:コンパイラNC30WAエントリー版は使用できますか?
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》を組み込んだプログラムが動作しないのですが。
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”になると同時にカウント停止」
LIN仕様2.0対応LINスレーブライブラリ
Q1:【S810-LSLibR8C23-2】において、タイマRDを使用するときに制限事項はありますか?
A1:下記の4点の制限事項がございます。
- リセット同期PWM モード
- 相補PWMモード
- PWM3モード
- アウトプットコンペア機能のカウント停止条件「TRDGRAiコンペア一致でTRDiが“0000h”になると同時にカウント停止」
- PWM モードのカウント停止条件「TRDGRAiコンペア一致でTRDiが“0000h”になると同時にカウント停止」