Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

Translation of KBA No.6 English to Japanese

MotooTanaka
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

I'd like to try No.6

moto

0 Likes
4 Replies
MotooTanaka
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

No.6

What is meant by Overrun error in UART and what considerations should be taken to overcome it?

==========================

質問:

UART における オーバーランエラーとはどういったものでしょうか?

また、どのような対策が必要なのでしょうか?

回答:

オーバーランエラーは直前の1バイトが UART の受信バッファから読み出される前に次の1バイトが受信された時に発生します。

これは主に 割込み処理において CPU が受信バッファから文字を取り出すのまでに必要とされる時間によって引き起こされます。

もし CPU のサービスが遅く次のバイトが受信される前に割込み処理を行えなかった場合、受信バッファがいっぱいになり、

オーバーランエラーが発生してしまいます。

以下にこの問題を回避する為のいくつかの手法をお知らせします。

1. CPU を可能な最大速度で動かしてください。

 この方法で UART 割込み処理(その他の割込みも含まれます。)の速度を上げることが出来ます。

2. UART の割込み処理(ISR) を可能な限り効率的かつ短くしてください。

 例えば ISR は UART の受信バッファを読んで RAM バッファに移し、フラグをセットするだけにします。

 受信したデータの処理は通常処理(foreground)で行うことが出来ます。

 ISR の処理時間は次のデータバイトを受信するのに必要な時間より短くなるようにすべきです。

3. C言語で ISR を記述した場合、すべての仮想レジスタ、ページレジスタ、A及びXレジスタの退避と復帰が発生します。

 これは ISR の実行時間を増加させます。

 UART の割込み処理 (ISR) をアセンブラで記述することにより、ISRをより効率的にすることが可能です。

4. プログラム内の他の割込みも割込みの遅延を発生し、結果的にオーバーランエラーに結び付くことがあります。

 そのような状況では、UART のボーレートを低くすることでオーバーランエラーを回避もできます。

==========================

moto

0 Likes
Praveen
Community Manager
Community Manager
Community Manager
5 likes given 250 sign-ins 100 sign-ins

Dear Tanaka san.

Thanks for the participation.

We appreciate your efforts in translation.

We will get back with the link to your published translation content as soon as it is done.

Cheers

Community team

Cheers
Praveen
0 Likes

Hi,

I found my spelling miss,

> これは主に 割込み処理において CPU が受信バッファから文字を取り出すのまでに必要とされる時間によって引き起こされます。

should be

< これは主に 割込み処理において CPU が受信バッファから文字を取り出すまでに必要とされる時間によって引き起こされます。

moto

0 Likes
Praveen
Community Manager
Community Manager
Community Manager
5 likes given 250 sign-ins 100 sign-ins

Moto san,

Thanks for your continued contributions for the community.

Translated KBA is now live in CDC.

Hope to see many more translations from the community.

UART オーバーランエラー - Community Translated (JA)

Cheers

Praveen

Cheers
Praveen