DMA-Based LPI2C Receive Implementation on S32K344

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

DMA-Based LPI2C Receive Implementation on S32K344

136 次查看
Abinandhan
Contributor I

Hi Team,

I am working on the S32K344 MCU with FreeRTOS and trying to implement DMA-based I2C reception because I am facing I2C read failures during heavy CPU load.

Current Scenario:

Continuously reading around 350 bytes from an IMU sensor FIFO over I2C
Using FreeRTOS with multiple tasks running at the same priority
During long I2C reads, task switching occurs because of FreeRTOS time slicing
Due to this, the MCU I2C FIFO seems to overflow, causing I2C reception failures

So, I planned to move the I2C to DMA mode.

My Question:
With the S32K344 Reference Manual, I am able to understand the basic working concept of DMA. However, while implementing DMA for I2C, the configuration is becoming very confusing, and I am not able to successfully implement I2C communication using DMA.

Could you please provide:

Any example project for LPI2C with DMA on S32K344
The required DMA/eDMA/DMAMUX configurations
The proper flow for implementing DMA-based I2C receive

Additional Information:

MCU: S32K344
SDK Version: 3.0.0
RTD Version: AUTOSAR RTD 4.7
IDE: S32 Design Studio 3.5
OS: FreeRTOS
IMU FIFO read size: ~350 bytes continuously

Thanks.

标记 (3)
0 项奖励
回复
1 回复

112 次查看
Senlent
NXP TechSupport
NXP TechSupport

Hi@Abinandhan

Please refer to this post, this example is based on RTD version 7.0.1.

https://community.nxp.com/t5/S32K/S32K344-I2C-DMA%E4%BE%8B%E7%A8%8B-%E5%9F%BA%E4%BA%8ERTD7-0-1/td-p/...

 

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2370874%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K344%20%E4%B8%8A%E5%9F%BA%E4%BA%8E%20DMA%20%E7%9A%84%20LPI2C%20%E6%8E%A5%E6%94%B6%E5%AE%9E%E7%8E%B0%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2370874%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%97%A8%EF%BC%8C%E5%9B%A2%E9%98%9F%E3%80%81%3C%2FP%3E%3CP%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%20FreeRTOS%20%E5%BC%80%E5%8F%91%20S32K344%20MCU%EF%BC%8C%E5%B9%B6%E8%AF%95%E5%9B%BE%E5%AE%9E%E7%8E%B0%E5%9F%BA%E4%BA%8E%20DMA%20%E7%9A%84%20I2C%20%E6%8E%A5%E6%94%B6%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%9C%A8%20CPU%20%E8%B4%9F%E8%BD%BD%E8%BE%83%E9%87%8D%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E4%BC%9A%E5%87%BA%E7%8E%B0%20I2C%20%E8%AF%BB%E5%8F%96%E5%A4%B1%E8%B4%A5%E3%80%82%3C%2FP%3E%3CP%3E%E5%BD%93%E5%89%8D%E6%83%85%E5%86%B5%EF%BC%9A%3C%2FP%3E%3CP%3E%E9%80%9A%E8%BF%87%20I2C%20%E6%8C%81%E7%BB%AD%E4%BB%8E%20IMU%20%E4%BC%A0%E6%84%9F%E5%99%A8%E8%AF%BB%E5%8F%96%E5%A4%A7%E7%BA%A6%20350%20%E5%AD%97%E8%8A%82%E7%9A%84%20FIFO%20%3CBR%20%2F%3E%20%E4%BD%BF%E7%94%A8%20FreeRTOS%EF%BC%8C%E5%A4%9A%E4%B8%AA%E4%BB%BB%E5%8A%A1%E4%BB%A5%E7%9B%B8%E5%90%8C%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%E8%BF%90%E8%A1%8C%E3%80%82%E5%9C%A8%E9%95%BF%E6%97%B6%E9%97%B4%E7%9A%84%20I2C%20%E8%AF%BB%E5%8F%96%3CBR%20%2F%3E%E6%9C%9F%E9%97%B4%EF%BC%8C%E4%BB%BB%E5%8A%A1%E5%88%87%E6%8D%A2%E6%98%AF%E7%94%B1%E4%BA%8E%20FreeRTOS%20%E6%97%B6%E9%97%B4%E5%88%86%E7%89%87%E8%80%8C%E5%8F%91%E7%94%9F%E7%9A%84%E3%80%82%E5%9B%A0%E6%AD%A4%EF%BC%8CMCU%20I2C%20FIFO%20%E4%BC%BC%E4%B9%8E%E6%BA%A2%E5%87%BA%EF%BC%8C%E5%AF%BC%3CBR%20%2F%3E%E8%87%B4%20I2C%20%E6%8E%A5%E6%94%B6%E5%A4%B1%E8%B4%A5%3C%2FP%3E%3CP%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%E6%88%91%E8%AE%A1%E5%88%92%E5%B0%86%20I2C%20%E8%BD%AC%E4%B8%BA%20DMA%20%E6%A8%A1%E5%BC%8F%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%9A%3CBR%20%2F%3E%E9%80%9A%E8%BF%87%20S32K344%20%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%EF%BC%8C%E6%88%91%E8%83%BD%E5%A4%9F%E7%90%86%E8%A7%A3%20DMA%20%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%B7%A5%E4%BD%9C%E6%A6%82%E5%BF%B5%E3%80%82%E7%84%B6%E8%80%8C%EF%BC%8C%E5%9C%A8%E4%B8%BA%20I2C%20%E5%AE%9E%E6%96%BD%20DMA%20%E6%97%B6%EF%BC%8C%E9%85%8D%E7%BD%AE%E5%8F%98%E5%BE%97%E9%9D%9E%E5%B8%B8%E6%B7%B7%E4%B9%B1%EF%BC%8C%E6%88%91%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20DMA%20%E6%88%90%E5%8A%9F%E5%AE%9E%E6%96%BD%20I2C%20%E9%80%9A%E4%BF%A1%E3%80%82%3C%2FP%3E%3CP%3E%E8%AF%B7%E6%8F%90%E4%BE%9B%3C%2FP%3E%3CP%3ES32K344%20%E4%B8%8A%E5%B8%A6%E6%9C%89%20DMA%20%E7%9A%84%20LPI2C%20%E7%A4%BA%E4%BE%8B%E9%A1%B9%E7%9B%AE%3CBR%20%2F%3E%E6%89%80%E9%9C%80%E7%9A%84%20DMA%2FeDMA%2FDMAMUX%20%E9%85%8D%E7%BD%AE%3CBR%20%2F%3E%E5%AE%9E%E7%8E%B0%E5%9F%BA%E4%BA%8E%20DMA%20%E7%9A%84%20I2C%20%E6%8E%A5%E6%94%B6%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%B5%81%E7%A8%8B%3C%2FP%3E%3CP%3E%E5%85%B6%E4%BB%96%E4%BF%A1%E6%81%AF%EF%BC%9A%3C%2FP%3E%3CP%3EMCU%EF%BC%9AS32K344%3CBR%20%2F%3ESDK%20%E7%89%88%E6%9C%AC%EF%BC%9A3.0.0%3CBR%20%2F%3ERTD%20%E7%89%88%E6%9C%AC%EF%BC%9AAUTOSAR%20RTD%204.7%20%3CBR%20%2F%3E%20IDE%EF%BC%9AS32%20Design%20Studio%203.5%20%3CBR%20%2F%3E%20%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%9AFreeRTOS%20%3CBR%20%2F%3E%20IMU%20FIFO%20%E8%AF%BB%E5%8F%96%E5%A4%A7%E5%B0%8F%EF%BC%9A%E8%BF%9E%E7%BB%AD%E8%AF%BB%E5%8F%96%E5%A4%A7%E7%BA%A6%20350%20%E5%AD%97%E8%8A%82%3C%2FP%3E%3CP%3E%E8%B0%A2%E8%B0%A2%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2370983%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20DMA-Based%20LPI2C%20Receive%20Implementation%20on%20S32K344%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2370983%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3EHi%40Abinandhan%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E8%AF%B7%E5%8F%82%E9%98%85%E6%9C%AC%E5%B8%96%EF%BC%8C%E6%AD%A4%E7%A4%BA%E4%BE%8B%E5%9F%BA%E4%BA%8E%20RTD%207.0.1%20%E7%89%88%E6%9C%AC%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32K%2FS32K344-I2C-DMA%25E4%25BE%258B%25E7%25A8%258B-%25E5%259F%25BA%25E4%25BA%258ERTD7-0-1%2Ftd-p%2F2356880%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32K%2FS32K344-I2C-DMA%25E4%25BE%258B%25E7%25A8%258B-%25E5%259F%25BA%25E4%25BA%258ERTD7-0-1%2Ftd-p%2F2356880%3C%2FA%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E