2413924_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2413924_ja-JP

2413924_ja-JP

LPUART1 TX FIFO が失敗しました

こんにちは、皆さん。

私はS32K311とカスタムベアメタルドライバーを使い、2つのLPUARTインスタンスを同一設定(115200 8N1、TX/RX FIFO有効、同じinitシーケンス)で使っています。LPUART0は、TX FIFOとRX FIFOの両方が有効になっている場合でも完全に動作します。LPUART1 は以下を行いません:

TX: DATAへの1回の書き込み(またはFIFO[TXFE]=1の間の1回のプッシュ)により、同じバイトがTXピンで物理的に3回送信されます。これはゴミデータやノイズではありません。私が書き込んだバイトが、3回連続して繰り返されたものです。TXピン(GPIO71)をオシロスコープ/ロジックアナライザで検証しました。
RX: このインスタンスでも、LPUART0とは異なり、RX FIFOが有効になっている間は受信が正しく動作しません(使用可能なデータが返ってきません)。
既に除外/確認済みであること:

ボーレート/クロックは正しいです。文字の破損や位置ずれは見られず、正しいバイト値が3回重複しているだけです。これは、オーバーサンプリング/ボーレート(OSR/SBR)の計算ミスではないことを示しています。
クロックゲーティングは両方のインスタンスで有効化されており、MC_ME周辺クロック要求は同じ方法でLPUART0とLPUART1で有効化され(同じパーティション、逐次リクエストID)、同じコードパスのLPUART0も問題なく動作します。
試行錯誤で見つけた回避策:
LPUART1でTX FIFO(FIFO[TXFE]=0)を無効にすると送信の問題(書き込み1フレーム、流量制御にWATER[TXCOUNT]の代わりにSTAT[TDRE]を使用)が解決します。
LPUART1でRXを動作させるには、RX FIFOを有効にしておく(FIFO[RXFE]=1)必要があります。
LPUART1で動作する唯一の構成は、TX FIFOを無効にし、RX FIFOを有効にすることです。これはLPUART0(両方のFIFOを有効にして問題なく動作)とは逆で、明らかにTXスループットやバースト能力を低下させます。
質問:

S32K311 LPUART1インスタンス(または特定のLPUARTインスタンスの制限事項)において、TX FIFOが原因でフレームが重複するという既知の不具合はありますか?
このデバイスでLPUART1とLPUART0ごとに異なる扱いが必要な追加のレジスタやビット(FIFO[TXFE]、WATER、BAUD[TDMAE])はありますか?
TX FIFOが有効になっているときに、すべてのLPUARTインスタンスではなく、特定のインスタンスで「バイトが3回送信される」という同じ動作を確認した人はいますか?
正誤表、シリコン改訂ノート、または既知の回避策の説明に関する情報があれば、大変ありがたいです。

Re: LPUART1 TX FIFO Failed

こんにちは、 @ijm1 さん

クロックドメイン周波数の比率がサポートされているクロックオプションのいずれとも一致しない場合、ハードウェアモジュールで予測不能な動作が発生するのを確認しました。システムクロックは、RMに記載されている有効なクロックオプションのいずれかに従って常に設定する必要があります。

重要な要件は、時計間の比率が定義されたとおりに正確に維持されることです。

RMの表151(S32K312、S32K311、およびS32K310の場合)に記載されているとおりです。

「…選択されたクロック周波数は、システムクロック構成に示されているクロック分周比と同じ比率に従わなければなりません。」

まず確認してもらえますか?


よろしくお願いいたします。
ダニエル




Tags (1)
No ratings
Version history
Last update:
Friday
Updated by: