2394522_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2394522_ja-JP

2394522_ja-JP

割り込みを有効にせずにDMAでLPI2Cペリフェラルを使うにはどうすればいいですか?

こんにちは、

私は NXP S32K396 MCU を扱っており、 割り込みを有効にせずにeDMAを使ってLPI2Cマスタートランザクションを実行したいと考えています。私のプロジェクトでは LPI2C1ペリフェラルを使っています。

以下の割り込みが有効であれば、DMAを使ってLPI2Cの読み書きトランザクションを正常に実行できます:

  • LPI2C1_IRQn
  • eDMA0_DMATTCD_CH16_CH17_IRQn

rkhw_0-1783969062532.png

しかし、RTD LPI2C DMAの実装はこれらの割り込みに依存しているようです。

Lpi2c_Ip_MasterSendData()では、LPI2Cマスター割り込みは常にドライバによって有効化されます:

rkhw_1-1783969133234.png

さらに、Lpi2c_Ip_MasterTxDmaConfig() および Lpi2c_Ip_MasterRxDmaConfig() によって TX および RX 用に構成された DMA TCD は、常に DMA メジャーループ完了割り込みを有効にします。

Lpi2c_DmaTransferList[9u]. Param = DMA_IP_CH_SET_CONTROL_EN_MAJOR_INTERRUPT ;

Lpi2c_DmaTransferList[9u]。= 1U;


また、別の関数であるLpi2c_Ip_MasterSendDataBlocking()では、LPI2C転送用のDMA TCDが設定されていないようです。

DMAを使ってLPI2Cの送受信トランザクション全体を行い、DMAを無効にし、eDMAチャネル割り込みを無効にLPI2C1_IRQnしたいと考えています。
 
可能であれば、NXPが LPI2CとDMAの両方の割り込みを無効にした状態でDMAを使用するLPI2CマスターTX/RXの例を提供していただけますか?
 

MCU:NXPS32K396

RTD: 6.0.0

NXP Studio: 3.6.1

 

どんなご支援でも大変ありがたく思います。どうぞよろしくお願いいたします!

必要なら、プロジェクトを添付できます。

Re: How to use LPI2C peripheral with DMA without enabling any interrupts?

こんにちは@rkhw

現在のドライバ実装では、「Lpi2c_Ip_MasterSendData()」は転送完了と状態処理のためにLPI2Cマスター割り込みとDMAメジャーループ完了割り込みの両方に依存しています。

したがって、割り込みを有効にしなければDMAを有効にすることはできません。RTDドライバーはこの使用をサポートしていません。

标记 (1)
无评分
版本历史
最后更新:
14 小时之前
更新人: