S32K148 LPSPI Busy After Transfer Complete with RXMSK

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

S32K148 LPSPI Busy After Transfer Complete with RXMSK

ソリューションへジャンプ
475件の閲覧回数
sean_dvorscak
Contributor III

I am having issues when doing LPSPI transfers in master mode with RXMSK set.

Below is the follow code snippet that I perform to write the TDR and read the RDR based on the framesize of the transfer. Once all TX FIFO write, and RX FIFO reads have occurred, we exit the transfer function.

I used to also check for the TCF in the do-while() logic, but I started noticing that the function would always timeout (3ms timeout in this instance) even though I had performed all Tx/Rx writes/reads, and the Chip Select was verified by Oscope to de-assert. This was causing me issues, so I got rid of the check for TCF, and instead clear flags at the beginning of the transfer.

When I removed the TCF check in the do-while() logic, I started dropping SPI transfers when calling this routine repeatedly due to the MBF being set when I initiated this routine. I then noticed when I performed transfers with RXMSK set (c_rxwrds = 0 when RXMSK is set) I would observe this timeout behavior, but not when RXMSK was cleared.

Guess the TCF flag taking so long to set was trying to tell me something, but I cannot find any reference material that would suggest the MBF/TCF would be set longer than the expected transfer time considering Bit Rate and Framesize (Bit Rate = 4MHz; Framesize = 16-264).

Is there any documentation related to the RXMSK and how it might affect the TCF/MBF?

Would also like to note that both CONT/CONTC are 0 during transfers.

// Check if module is free, and attempt to set TCR
if (0U == (pInst->SR & LPSPI_SR_MBF_MASK))
{
  // Clear any lingering status flags
  pInst->SR |= SR_W1C_FLAGS;

  // Checking for true garuntees we are able to start the intended transfer
  if (true == Set_Tcr(pInst, pTcr))
  {
    // Get time at start of transfer
    start_time = Timer_Get_LptmrCnr();

    // Perform all necessary Tx/Rx actions
    do
    {
      // Attempt to fill Tx fifo if there are still words to transmit
      while ((c_txwrds > 0U)
      && (true == Set_Tdr(pInst, tx_data[exp_wrds - c_txwrds])))
      {
        c_txwrds--;
      }

      // Attempt to empty Rx fifo if there are still words to receive
      while ((c_rxwrds > 0U)
      && (true == Get_Rdr(pInst, &rx_data[exp_wrds - c_rxwrds])))
      {
        c_rxwrds--;
      }
    } while ( ((c_txwrds + c_rxwrds) > 0U)
                && (false == Timer_TimerExpired(start_time, timeout)));

}

0 件の賞賛
返信
1 解決策
441件の閲覧回数
PetrS
NXP TechSupport
NXP TechSupport

Hi,

the TCF is set when the LPSPI returns to idle state with the transmit FIFO empty.
The code you shared does not show where SR flags are checked, if ever, maybe in Set_Tdr or Get_Rdr.
You should rather use RDF and TDF flags to know when RX FIFO/TX FIFO can be read/written. With RXMSK no data is expected to be read out, but you should rely on TDF to be sure TX FIFO is ready to accept new data.

BR, Petr

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
442件の閲覧回数
PetrS
NXP TechSupport
NXP TechSupport

Hi,

the TCF is set when the LPSPI returns to idle state with the transmit FIFO empty.
The code you shared does not show where SR flags are checked, if ever, maybe in Set_Tdr or Get_Rdr.
You should rather use RDF and TDF flags to know when RX FIFO/TX FIFO can be read/written. With RXMSK no data is expected to be read out, but you should rely on TDF to be sure TX FIFO is ready to accept new data.

BR, Petr

0 件の賞賛
返信
413件の閲覧回数
sean_dvorscak
Contributor III
Thanks for the reply.

I found a couple of problems with the logic I had, and I also updated my Get_Rdr/Set_Tdr functions to poll the RDF/TDF instead of monitoring the RXCOUNT/TXCOUNT.

I think a combination of both these changes has made my function overrun problem go away for now.
0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2343296%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K148%20LPSPI%20%E8%BB%A2%E9%80%81%E5%AE%8C%E4%BA%86%E5%BE%8C%E3%83%93%E3%82%B8%E3%83%BC%E7%8A%B6%E6%85%8B%20(RXMSK%E4%BB%98%E3%81%8D)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2343296%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7RXMSK%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%A6LPSPI%E8%BB%A2%E9%80%81%E3%82%92%E8%A1%8C%E3%81%86%E9%9A%9B%E3%81%AB%E5%95%8F%E9%A1%8C%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AF%E3%80%81%E8%BB%A2%E9%80%81%E3%81%AE%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6TDR%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%80%81RDR%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E7%A7%81%E3%81%8C%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%82%B9%E3%83%8B%E3%83%9A%E3%83%83%E3%83%88%E3%81%A7%E3%81%99%E3%80%82TX%20FIFO%E3%81%B8%E3%81%AE%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%A8RX%20FIFO%E3%81%B8%E3%81%AE%E8%AA%AD%E3%81%BF%E5%87%BA%E3%81%97%E3%81%8C%E3%81%99%E3%81%B9%E3%81%A6%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%9F%E3%82%89%E3%80%81%E8%BB%A2%E9%80%81%E6%A9%9F%E8%83%BD%E3%82%92%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%A5%E5%89%8D%E3%81%AFdo-while()%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E5%86%85%E3%81%A7TCF%E3%82%82%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81Tx%2FRx%E3%81%AE%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%2F%E8%AA%AD%E3%81%BF%E5%87%BA%E3%81%97%E3%82%92%E3%81%99%E3%81%B9%E3%81%A6%E5%AE%9F%E8%A1%8C%E3%81%97%E3%80%81%E3%82%AA%E3%82%B7%E3%83%AD%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E3%81%A7%E3%83%81%E3%83%83%E3%83%97%E3%82%BB%E3%83%AC%E3%82%AF%E3%83%88%E3%81%8C%E3%83%87%E3%82%A2%E3%82%B5%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%82%82%E3%80%81%E9%96%A2%E6%95%B0%E3%81%8C%E5%B8%B8%E3%81%AB%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%EF%BC%88%E3%81%93%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF3ms%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%EF%BC%89%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E6%B0%97%E3%81%A5%E3%81%8D%E5%A7%8B%E3%82%81%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%81%93%E3%82%8C%E3%81%8C%E5%95%8F%E9%A1%8C%E3%82%92%E5%BC%95%E3%81%8D%E8%B5%B7%E3%81%93%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81TCF%E3%81%AE%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%80%81%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%AB%E8%BB%A2%E9%80%81%E9%96%8B%E5%A7%8B%E6%99%82%E3%81%AB%E3%83%95%E3%83%A9%E3%82%B0%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3Edo-while()%20%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%81%8B%E3%82%89%20TCF%20%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D%E3%80%81%E3%81%93%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%97%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AB%20MBF%20%E3%81%8C%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%81%93%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3%E3%82%92%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E3%81%A8%20SPI%20%E8%BB%A2%E9%80%81%E3%81%8C%E3%83%89%E3%83%AD%E3%83%83%E3%83%97%E3%81%95%E3%82%8C%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%81%9D%E3%81%AE%E5%BE%8C%E3%80%81RXMSK%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E7%8A%B6%E6%85%8B%E3%81%A7%E8%BB%A2%E9%80%81%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%EF%BC%88RXMSK%E3%81%8C%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AFc_rxwrds%20%3D%200%EF%BC%89%E3%80%81%E3%81%93%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E5%8B%95%E4%BD%9C%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E6%B0%97%E3%81%A5%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81RXMSK%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AF%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3ETCF%E3%83%95%E3%83%A9%E3%82%B0%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%AB%E6%99%82%E9%96%93%E3%81%8C%E3%81%8B%E3%81%8B%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%AF%E4%BD%95%E3%81%8B%E3%82%92%E4%BC%9D%E3%81%88%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A0%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%83%93%E3%83%83%E3%83%88%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A8%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%B5%E3%82%A4%E3%82%BA%EF%BC%88%E3%83%93%E3%83%83%E3%83%88%E3%83%AC%E3%83%BC%E3%83%88%20%3D%204MHz%E3%80%81%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%B5%E3%82%A4%E3%82%BA%20%3D%2016-264%EF%BC%89%E3%82%92%E8%80%83%E6%85%AE%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81MBF%2FTCF%E3%81%8C%E6%83%B3%E5%AE%9A%E3%81%95%E3%82%8C%E3%82%8B%E8%BB%A2%E9%80%81%E6%99%82%E9%96%93%E3%82%88%E3%82%8A%E3%82%82%E9%95%B7%E3%81%8F%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A4%BA%E5%94%86%E3%81%99%E3%82%8B%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99%E3%81%AF%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3ERXMSK%E3%81%A8%E3%80%81%E3%81%9D%E3%82%8C%E3%81%8CTCF%2FMBF%E3%81%AB%E5%8F%8A%E3%81%BC%E3%81%99%E5%BD%B1%E9%9F%BF%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FP%3E%3CP%3E%E3%81%BE%E3%81%9F%E3%80%81%E8%BB%A2%E9%80%81%E4%B8%AD%E3%81%AFCONT%2FCONTC%E3%81%AE%E5%80%A4%E3%81%8C%E4%B8%A1%E6%96%B9%E3%81%A8%E3%82%820%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%93%E3%81%A8%E3%82%82%E4%BB%98%E3%81%91%E5%8A%A0%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3CFONT%20color%3D%22%230000FF%22%3E%2F%2F%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%8C%E7%A9%BA%E3%81%84%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%80%81TCR%20%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E8%A9%A6%E3%81%BF%E3%82%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3Eif%20(0U%20%3D%3D%20(pInst-%26gt%3BSR%20%26amp%3B%20LPSPI_SR_MBF_MASK))%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%E3%83%A4%E3%83%BC%E3%82%B8%E3%83%A5%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%2F%2F%20%E6%AE%8B%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%83%95%E3%83%A9%E3%82%B0%E3%82%92%E3%81%99%E3%81%B9%E3%81%A6%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%99%E3%82%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3EpInst-%26gt%3BSR%20%7C%3D%20SR_W1C_FLAGS%3B%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%230000FF%22%3E%2F%2F%20%E6%84%8F%E5%9B%B3%E3%81%97%E3%81%9F%E8%BB%A2%E9%80%81%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%A7%E3%81%8D%E3%82%8B%E7%9C%9F%E3%81%AE%E4%BF%9D%E8%A8%BC%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3Eif%20(true%20%3D%3D%20Set_Tcr(pInst%2C%20pTcr))%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%E3%83%A4%E3%83%BC%E3%82%B8%E3%83%A5%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%2F%2F%20%E8%BB%A2%E9%80%81%E9%96%8B%E5%A7%8B%E6%99%82%E3%81%AE%E6%99%82%E5%88%BB%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3Estart_time%20%3D%20Timer_Get_LptmrCnr()%3B%3C%2FFONT%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%230000FF%22%3E%2F%2F%20%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E9%80%81%E5%8F%97%E4%BF%A1%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%BE%E3%81%99%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%E3%81%99%E3%82%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%E3%83%A4%E3%83%BC%E3%82%B8%E3%83%A5%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%2F%2F%20%E9%80%81%E4%BF%A1%E3%81%99%E3%81%B9%E3%81%8D%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8C%E3%81%BE%E3%81%A0%E3%81%82%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81Tx%20FIFO%E3%82%92%E5%9F%8B%E3%82%81%E3%82%88%E3%81%86%E3%81%A8%E8%A9%A6%E3%81%BF%E3%82%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3Ewhile%20((c_txwrds%20%26gt%3B%200U)%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%230000FF%22%3E%26amp%3B%26amp%3B%20(true%20%3D%3D%20Set_Tdr(pInst%2C%20tx_data%5Bexp_wrds%20-%20c_txwrds%5D)))%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%E3%83%A4%E3%83%BC%E3%82%B8%E3%83%A5%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3Ec_txwrds--%3B%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%230000FF%22%3E%7D%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CFONT%20color%3D%22%230000FF%22%3E%2F%2F%20%E5%8F%97%E4%BF%A1%E3%81%99%E3%82%8B%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8C%E3%81%BE%E3%81%A0%E6%AE%8B%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81Rx%20FIFO%20%E3%82%92%E7%A9%BA%E3%81%AB%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E8%A9%A6%E3%81%BF%E3%82%8B%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3Ewhile%20((c_rxwrds%20%26gt%3B%200U)%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%230000FF%22%3E%26amp%3B%26amp%3B%20(true%20%3D%3D%20Get_Rdr(pInst%2C%20%26amp%3Brx_data%5Bexp_wrds%20-%20c_rxwrds%5D)))%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3E%E3%83%A4%E3%83%BC%E3%82%B8%E3%83%A5%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%230000FF%22%3Ec_rxwrds--%3B%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%230000FF%22%3E%7D%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%230000FF%22%3E%7D%20while%20(%20((c_txwrds%20%2B%20c_rxwrds)%20%26gt%3B%200U)%3C%2FFONT%3E%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%230000FF%22%3E%26amp%3B%26amp%3B%20(false%20%3D%3D%20Timer_TimerExpired(start_time%2C%20timeout)))%3B%3C%2FFONT%3E%3C%2FP%3E%3CP%3E%3CFONT%20color%3D%22%230000FF%22%3E%7D%3C%2FFONT%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2343510%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K148%20LPSPI%20Busy%20After%20Transfer%20Complete%20with%20RXMSK%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2343510%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%0A%3CP%3E%3CSPAN%3ETCF%E3%81%AF%E3%80%81LPSPI%E3%81%8C%E9%80%81%E4%BF%A1FIFO%E3%81%8C%E7%A9%BA%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E7%8A%B6%E6%85%8B%E3%81%A7%E3%82%A2%E3%82%A4%E3%83%89%E3%83%AB%E7%8A%B6%E6%85%8B%E3%81%AB%E6%88%BB%E3%81%A3%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E%E3%81%82%E3%81%AA%E3%81%9F%E3%81%8C%E5%85%B1%E6%9C%89%E3%81%97%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E3%81%AF%E3%80%81SR%E3%83%95%E3%83%A9%E3%82%B0%E3%81%8C%E3%81%A9%E3%81%93%E3%81%A7%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%EF%BC%88%E3%82%82%E3%81%97%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A8%E3%81%97%E3%81%A6%E3%82%82%EF%BC%89%E3%81%8C%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%81%8A%E3%81%9D%E3%82%89%E3%81%8FSet_Tdr%E3%81%BE%E3%81%9F%E3%81%AFGet_Rdr%E5%86%85%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%80%82%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3ERX%20FIFO%2FTX%20FIFO%E3%81%AE%E8%AA%AD%E3%81%BF%E6%9B%B8%E3%81%8D%E3%81%8C%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%92%E7%9F%A5%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81RDF%E3%83%95%E3%83%A9%E3%82%B0%E3%81%A8TDF%E3%83%95%E3%83%A9%E3%82%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E3%81%8A%E5%8B%A7%E3%82%81%E3%81%97%E3%81%BE%E3%81%99%E3%80%82RXMSK%E3%81%A7%E3%81%AF%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E8%AA%AD%E3%81%BF%E5%87%BA%E3%81%97%E3%81%AF%E6%83%B3%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8C%E3%80%81TX%20FIFO%E3%81%8C%E6%96%B0%E3%81%97%E3%81%84%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%97%E3%81%91%E5%85%A5%E3%82%8C%E3%82%8B%E6%BA%96%E5%82%99%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81TDF%E3%83%95%E3%83%A9%E3%82%B0%E3%81%AB%E9%A0%BC%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBR%E3%80%81%E3%83%9A%E3%83%88%E3%83%AB%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2344808%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K148%20LPSPI%20Busy%20After%20Transfer%20Complete%20with%20RXMSK%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2344808%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E3%81%94%E8%BF%94%E4%BF%A1%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%81%AB%E3%81%84%E3%81%8F%E3%81%A4%E3%81%8B%E5%95%8F%E9%A1%8C%E7%82%B9%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81Get_Rdr%2FSet_Tdr%20%E9%96%A2%E6%95%B0%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%80%81RXCOUNT%2FTXCOUNT%20%E3%82%92%E7%9B%A3%E8%A6%96%E3%81%99%E3%82%8B%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%AB%20RDF%2FTDF%20%E3%82%92%E3%83%9D%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E5%A4%89%E6%9B%B4%E3%82%92%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%81%9F%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E4%BB%8A%E3%81%AE%E3%81%A8%E3%81%93%E3%82%8D%E9%96%A2%E6%95%B0%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%AF%E8%A7%A3%E6%B6%88%E3%81%95%E3%82%8C%E3%81%9F%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FLINGO-BODY%3E