S32K144 复杂的多路AD采集功能实现。 complex multile ADC .

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

S32K144 复杂的多路AD采集功能实现。 complex multile ADC .

2,082 Views
Wooaah
Contributor I

Recently, I am using S32K144 (2ADC module with a total of 32 AD channels) to realize the function of AD multiplexing. But I am facing a complex requirement.

need:

The 2 AD channels are sampled at the middle point of the 1 PWM (frequency 1KHz, duty cycle varies with function).

21-way AD polling sampling, preferably 5ms, 10ms is also fine.

What is fixed is:

1. FTM (INIT trigger in CPWM mode) - "TRGMUX;

2. The 21-way AD polling uses PDB->AD;

There are two ideas:

1. FTM-"TRGMUX-"PDB-"AD Put two ADs with special requirements into R0 of ADC0 and R0 of ADC1 respectively, this should be feasible, but AD polling depends on FTM's init_trg, and the sampling frequency is 1ms.

2. FTM->TRGMUX->Two special ADs; LPIT interrupt (software-trigger)->PDB->23 ADs. Two of the special ADs are still placed first. These two modes are switched in the 1ms interrupt of LPIT.

 

Personally, I would like to try the second method, but the problem is that I don't know how fast the switching of the ADC's pre-trigger source and trigger source in the SIM will affect the AD convert process.

 

 

 

最近我在用S32K144(2ADC 模块 共 32 AD通道)实现AD多路采集的功能。 但是我面对一个复杂的需求。

需求:

2路AD通道在1路PWM(频率1KHz,占空比随功能变化)的中间点采样。

21路AD轮询采样,最好是5ms,10ms也行。

固定的是:

1、FTM(CPWM模式的INIT触发)-》TRGMUX;

2、21路的AD轮询使用PDB-》AD;

现有两种思路:

1、FTM-》TRGMUX-》PDB-》AD 分别把两路特殊要求的AD放到ADC0的R0和ADC1的R0,这样应该是可行的,但是AD轮询依赖到FTM的init_trg 上 ,而且采样频率是1ms。

2、FTM-》TRGMUX-》两路特殊AD; LPIT中断(software-trigger)-》PDB-》23路AD。其中两路特殊AD仍然放到最先。 这两种模式在LPIT的1ms中断中切换。

 

个人很想试一试第二种方法,但是问题是,并不知道在SIM中对ADC的预触发源和触发源切换有多快,会对AD convert 过程产生什么影响。

 

0 Kudos
9 Replies

2,051 Views
Wooaah
Contributor I

Wooaah_0-1660619798041.png

more question ,lower M pre-trigger. is it means that only 12 AD channel can be used in each AD module.

if it is like that SC1[M] to SC1[P] is useless in this MCU, is it correct, Could somebody help me?

0 Kudos

2,047 Views
Wooaah
Contributor I

Wooaah_0-1660621044259.png

 

,and here describe that 16 pretriggers is available. confused! I will test that.

0 Kudos

2,063 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@Wooaah

         我大约明白了你的需求,就是想在PWM的中心位置实现ADC的同步采样,其实我们有这样相关的例程,在我们的电机控制方案中对电压和电流采样时,使用的是FTM->TRGMUX->PDB->ADC,PDB可以预触发采样ADC,ADC采样完成还会有中断COCO的标志反馈,这个是只有PDB和ADC之间才有,如果你使用LPIT模块可能有一些麻烦,第一个就是LPIT预触发通道有限,其次软件需要判断ADC是否才有完成,第三个你还得要同步LPIT和FTM之间的计数关系,如果你用LPIT的时候又使用PDB,这个感觉是多此一举。

0 Kudos

1,910 Views
Lilac
Contributor I

你好,请问您回答中提到的电机控制方案中的PDB预触发ADC的相关例程在哪里可以找到吗?我想采用您提出的这种例程的方式来进行AD采样的触发。

0 Kudos

1,881 Views
Wooaah
Contributor I
也许在S32DS2.x的IDE中可以得到相关例程。
0 Kudos

2,055 Views
Wooaah
Contributor I

现在问题是不想把这两路和其他的放到一起,就会有和其他路 的冲突 ,而S32K1的 PDB只有 12路 pre-trigger。

PDB 的continuous 和ADC 的continuous 都是什么意思,这个我也没看见描述。

0 Kudos

2,045 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@Wooaah

首先我没记错的话一个PDB实例应该有4个Channel,每个channel支持8个预触发ADC采样,

PDB的continuous意思是到达设定值PDB_MOD以后自动重载然后继续run,ADC应该类似。

0 Kudos

2,043 Views
Wooaah
Contributor I

help a lot, thanks!

0 Kudos

2,072 Views
Wooaah
Contributor I

S32K144 的 back-to-back 模式 每个模块好像只能配置8个通道,这样的话,只能配置成普通模式了。

0 Kudos