2021/05/29(土)LPC551x/S1xのエラッタ

参照: LPC55S1x/LPC551x Errata sheet R1.4 NXP April 29, 2021 *1

*1 : この記事は筆者が私的利用のために製品の技術文書を抜粋、翻訳したものです。いかなる問題に対しても責任は負いません。

Errata Rev1.4

ROM.1 (20191204)

ROM fails to enter ISP mode when image is corrupted with flash pages in an erased or unprogrammed state

フラッシュページが消去された状態やプログラムされていない状態でイメージが破損した場合、ROMがISPモードに移行しない

はじめに

LPC55S1x/LPC551xでは、フラッシュページが消去された状態やプログラムされていない状態でイメージが破損すると、ROMが自動的にISPモードに入らないことがあります。

問題点

CMPAでセキュアブートが有効になっている場合、イメージヘッダのイメージサイズフィールドで指定されたフラッシュメモリ領域内に、消去された状態またはプログラムされていない状態のメモリページが含まれていると、デバイスがフォールバック機構を使用して自動的にISPモードに移行しないという問題がありました。この問題は、アプリケーションイメージが部分的にしか書き込まれていない、または消去されているにもかかわらず、有効なイメージヘッダがメモリ内に残っている場合に発生します。

回避方法

次のいずれかの方法でマス・イレーズを行い、不完全で破損したイメージを削除します。

  • Debug Mailboxを使ってeraseコマンドを実行する。Mailboxを終了すると、デバイスは直接ISPモードに入ります。
  • Debug MailboxからコマンドでISPモードに入り、flash-eraseコマンドを使用する。
  • ISP端子を使用してデバイスをリセットし、ISPモードに入る。flash-eraseコマンドを使用して、破損した(不完全な)イメージを消去してください。

USB.1 (20191204)

HS host fails when connecting with the LS device (mouse) Introduction

LSデバイス(マウス)との接続でHSホストが失敗する

はじめに

USB1 High-Speedコントローラは、一部のLPC55S1x/LPC551xデバイスに搭載されており、3種類の異なるデータ速度で周辺機器をホストにプラグアンドプレイで接続することができます。

  • 480Mbpsのデータレートを持つハイスピード
  • 12Mbpsのフルスピード
  • 1.5Mbpsのロースピード

多くのポータブルデバイスは、ホストPCを介さずにUSBインターフェースを介して相互に通信することができます。

問題点

Low-Speedデバイス(マウス)との接続でUSB High-Speedホストが失敗する。

回避方法

Full-SpeedおよびLow-Speedアプリケーションをサポートするために、デバイスまたはホストにUSB0 Full-SpeedポートとUSB1 High-Speedポートを使用することをお勧めします。そのうえで、USB High-SpeedホストでLow-Speedデバイスをサポートする必要があるアプリケーションでは、USB1ポートと外部USBデバイスの間にUSBハブを挿入することで対応できます。

USB.2 (20191204)

Automatic USB rate adjustment is not functional when using multiple hubs

(割愛)

USB.3 (20201214)

For the USB high-speed device controller, the detection handshaking fails when certain full-speed hubs are connected

(割愛)

USB.4 (20210225)

In USB high-speed device mode, device writes extra byte(s) to the buffer if the NBytes is not multiple of 8 for OUT transfer

USB高速デバイスモードでは、OUT転送時にNBytesが8の倍数でない場合、デバイスはバッファに余分なバイトを書き込む

はじめに

LPC55S1x/LPC551xデバイスファミリには、ハイスピード・デバイス・モードで動作可能なUSB HSインターフェイス(USB1)が搭載されています。NBytesの値は、バッファに受信できるバイト数を表します。

問題点

LPC55S1x/LPC551xのUSBデバイス・コントローラは、常に8バイトを書き込むため、転送サイズが8バイトの倍数でない場合、受信データバッファに余分なバイトを書き込みます。例えば、転送の長さが1バイトの場合、7バイトが受信データバッファに追加で書き込まれます。また、転送長が7バイトの場合、受信データバッファに1バイト余分に書き込まれます。

回避方法

アプリケーションで使用しているUSBデータ用のバッファとは別に、中間バッファを用意してください。中間バッファへのUSBデータの転送が完了した後、memcpyを使用して中間バッファからアプリケーションバッファにデータを移動し、余分な1バイトをスキップします。このソフトウェアによる回避策はSDKプラットフォームに実装されています。

USB.5 (20210423)

In USB high-speed device mode, when device isochronous IN endpoint sends a packet of MaxPacketSize of 1024 bytes in response to IN token from host, the isochronous IN endpoint interrupt is not set and the endpoint command/status list entry for the isochronous IN endpoint is not updated

USB高速デバイスモードで、デバイスのアイソクロナスINエンドポイントがホストからのINトークンに応答してMaxPacketSizeが1024バイトのパケットを送信すると、INエンドポイントの割り込みが設定されず、アイソクロナスINエンドポイントのエンドポイントコマンド/ステータスリストのエントリが更新されないという問題がある

はじめに

LPC55S1x/LPC551xデバイスファミリには、ハイスピード・デバイス・モードで動作可能なUSB HSインターフェイス(USB1)が搭載されています。Isochronous INエンドポイントは、1024バイトのMaxPacketSizeをサポートしています。

問題点

デバイスのIsochronous INエンドポイントがホストからのINトークンに応答してMaxPacketSizeが1024バイトのパケットを送信すると、Isochronous INエンドポイントの割り込みが設定されず、Isochronous INエンドポイントのエンドポイントコマンド/ステータスリストのエントリが更新されません。

回避方法

デバイス記述子で、Isochronous INエンドポイントのMaxPacketSizeを1023バイトに制限してください。

USB.6 (20210423)

In USB high-speed host mode, only one transaction per micro-frame is allowed for isochronous IN endpoints

USB高速ホストモードでは、アイソクロナスのINエンドポイントではマイクロフレームあたり1つのトランザクションしか許可されない

はじめに

LPC55S1x/LPC551xデバイスファミリには、ホスト・モードで動作可能なUSBハイスピード・インターフェイスが搭載されています。高帯域幅のエンドポイントをサポートするために、1つのマイクロフレームで最大3つの高速トランザクションが許可されます。このモードは、PTD(Proprietary Transfer Descriptor)のMult(Multiple)フィールドを設定することで有効になり、マイクロフレームごとに実行されるべきトランザクションの数をホストコントローラに示すために使用されます。許可されるビット設定は以下の通りです。

  • 00b 予約。このフィールドに0を入力すると、未定義の結果になります。
  • 01b マイクロフレームごとに、このエンドポイントに対して1つのトランザクションを発行する。
  • 10b マイクロフレームごとに、このエンドポイントに対して2つのトランザクションを発行する。
  • 11b マイクロフレームごとに、このエンドポイントに対して3つのトランザクションを発行する。

問題点

高帯域幅モードでは、フレーム内に複数のパケット(MULT = 10b または 11b)を使用すると、信頼性の低い動作になります。マイクロフレームあたり1つのトランザクション(MULT = 01b)しか発行できません。

回避方法

ソフトウェアによる回避策はありません。1マイクロフレームあたり1つのトランザクションしか発行できません。