登录/注册

S32k PWM和ADC

更多

在S32K微控制器中配置PWM和ADC模块的步骤如下,适用于电机控制、电源管理等场景:


PWM配置(以FlexTimer模块FTM为例)

  1. 初始化FTM时钟
    使能FTM外设时钟,配置时钟源(如系统核心时钟或分频后的时钟)。

  2. 设置PWM模式

    • 选择边沿对齐模式中心对齐模式(常用中心对齐以降低噪声)。
    • 设置计数器周期值(MOD寄存器)以决定PWM频率:
      [ \text{PWM频率} = \frac{\text{FTM时钟频率}}{(\text{分频系数} \times (\text{MOD值} + 1))} ]
  3. 配置占空比
    通过通道的CnV寄存器设置高电平时间,占空比计算公式:
    [ \text{占空比} = \frac{\text{CnV值}}{\text{MOD值} + 1} \times 100\% ]

  4. 启动FTM
    启用计数器,开始输出PWM信号。


ADC配置

  1. 时钟与分辨率

    • 选择ADC时钟源(通常为总线时钟分频)。
    • 设置分辨率(12位模式)和采样时间(根据信号阻抗调整)。
  2. 触发方式

    • 硬件触发:通过PWM事件(如FTM触发ADC,确保采样与PWM同步)。
    • 软件触发:手动启动转换。
  3. 通道与校准

    • 选择输入通道(如电流检测电阻对应的引脚)。
    • 执行ADC校准(提高精度)。
  4. 中断/DMA
    启用中断或DMA,在转换完成后自动读取结果。


PWM与ADC同步示例

场景:在PWM周期中点采样电流(避开开关噪声)

  1. 配置FTM为中心对齐模式,在计数器下溢时触发ADC。
  2. ADC设置为硬件触发,采样窗口避开MOSFET开关瞬间。
  3. 在ADC中断中读取电流值并调整PWM占空比(实现闭环控制)。

代码片段(基于S32 SDK)

// PWM初始化(通道0,1kHz,50%占空比)
ftm_config_t ftmInfo;
FTM_GetDefaultConfig(&ftmInfo);
ftmInfo.prescale = kFTM_Prescale_Divide_128;  // 分频系数
FTM_Init(FTM0, &ftmInfo);
FTM_SetTimerPeriod(FTM0, kFTM_CenterAligned, 60000);  // MOD值
FTM_SetupPwm(FTM0, kFTM_Chnl_0, 1, 50, kFTM_CenterAlignedPwm);  // 50%占空比
FTM_StartTimer(FTM0, kFTM_SystemClock);

// ADC初始化(通道5,硬件触发)
adc_config_t adcConfig;
ADC_GetDefaultConfig(&adcConfig);
ADC_Init(ADC0, &adcConfig);
ADC_SetHardwareTrigger(ADC0, true, kADC_TriggerSel_FTM0_Trig);  // FTM0触发
ADC_EnableChannel(ADC0, 5, true);  // 使能通道5
ADC_DoAutoCalibration(ADC0);       // 校准
ADC_StartConversion(ADC0);         // 等待触发

注意事项

  1. 抗噪声设计

    • 在ADC输入引脚添加RC低通滤波器。
    • 采样时机避开PWM上升/下降沿。
  2. 实时性

    • 若使用中断,确保处理时间短于PWM周期。
    • 高频率PWM建议使用DMA传输ADC数据。
  3. 电压范围
    确保ADC输入信号在参考电压范围内(如0~3.3V)。


通过以上配置,可实现PWM输出与ADC采样的协同工作,适用于需要实时反馈的闭环控制系统。

如何在S32K的simulink中添加FreeRTOS?

如何在 S32K 的 simulink 中添加 FreeRTOS?工具箱中没有 FreeRTOS 模块。

2023-05-09 06:52:18

S32K on Echoes】 车规级芯片 S32K1xx 简介与方案建立

本文首先介绍 S32K 系列 MCU 的内核和片上资源,并简要介绍本方案。我们的【S32K on Echoes】系列博文将会持续更新,从主控 MCU 的介绍开始,经历芯片选型、硬件设计、功能测试等,为大家一步步揭示

2023-04-21 14:57:28

如何在s32k mbd中使用计时器?

我想在 s32k mbd 中使用计时器,我必须在其中计算将轴原始值转换为陀螺仪角度的时间。我如何在 mbd 中使用它?

2023-04-10 09:39:44

S32KS32K144入门笔记(3) SPI(lpspi组件)

0. 引言与第二篇can对应,第三篇本来想写lin的,毕竟都是车身上常用的总线。但是lin比较麻烦,所以先拖后一下,先把SPI记录一下。SPI在我们的系统架构中是S32K和ADAS之间做数据传输用

资料下载 佚名 2021-12-22 19:25:59

s32ks32k14x系列(1)——开发环境搭建

文章目录s32k环境搭建及使用1. S32K系列MCU开发环境2. 软件安装包及SDK获取3. 软件安装s32k环境搭建及使用1.

资料下载 佚名 2021-12-06 10:36:11

S32KS32K144入门笔记(2) Can(can_pal组件)

个demo。后来demo完成就转手给其他同事了,然后进了其他项目,一转眼就是半年。这半年里,S32K已经推到了多个项目里使用。但是都是在上层的业务做修改,底下的一些外设接口基本没怎么变过,所以没怎么遇到大问题。唯一遇到的问题就是lin的,这个后面开单独一节

资料下载 贾飞小 2021-12-04 15:51:08

S32K系列之PWR电源管理

1. S32K电源每个MCU都有自身的电源域和供电架构,这也是MCU电路设计的基础。一般每个芯片的供电框图会在数据手册中提供。如图所示为S32K系列的电源供电架构图。由上图所示,可以将供电系统按电源

资料下载 张勇 2021-11-06 13:51:01

关于S32K汽车通用MCU,NXP工程师总结的10个超实用Tips

“S32K144是NXP推出的基于ARM Cortex-M4F内核的汽车级通用MCU系列S32K1xx的第一颗高性能单片机。本文首先简要介绍S32K

资料下载 万物死 2021-10-27 09:35:59

S32K上编程时如何观察POT值的变化?

我正在使用#S32K116 评估板 - S32K116EVB2Q048。 板上有一个ADC_POT,但看起来没有连接。如果我正在看正确的原理图,

2023-03-29 08:59:53

启动lpuart_echo_s32k146_debug_flash_pemicro,连接网络时无法调试S32k板是怎么回事?

:---------------------------------------------- ------------------------------------------ 连接网络时无法调试 S32k 板我该如何处

2023-03-28 08:35:44

S32K 进阶之旅】从零开始搭建 S32K 开发环境

作为S32K 系列MCU 的新用户,入门的准备工作有哪些呢?一套用起来称心的开发工具肯定是必不可少的。本文要搭建的开发环境就是2020 年NXP 针对其通用汽车级MCU(S32K1xx 系列)推出的最新版本的IDE

2023-03-17 15:58:25

请问S32K有RNG吗?

想随时取随机数,请问S32K有RNG吗?最好给个demo。谢谢

2023-03-17 08:20:50

S32K的STM系统定时模块

S32K的STM系统定时模块

2023-01-29 10:18:04

介绍S32K系列MCU的内核和片上资源信息

“S32K144是NXP推出的基于ARM Cortex-M4F内核的汽车级通用MCU系列S32K1xx的第一颗高性能单片机。本文首先简要介绍S32K

2021-11-01 08:20:58

S32K开发有哪些流程

S32K开发流程一、环境二、编译工具的使用三、准备工作四、编写代码五、烧录程序一、环境1、Win下IDE软件S32DS_ARM_Win32_v2018.R12、工程需要使用的库包下载路径中

2021-08-09 09:03:51
7天热门专题 换一换
相关标签