NXP应用随记(六):S32K3xx的时钟与PIN简介

目录

1、S32K3基础时钟

1.1、关键功能

1.2、时钟产生模块

1.3、系统时钟

1.4、模式输入模块

1.5、时钟监控模块

2、S32DS时钟与外设配置工具

2.1、创建一个PIT模块

3、IO配置

3.1、IO资源分析

3.2、IO配置工具


1、S32K3基础时钟

NXP应用随记(六):S32K3xx的时钟与PIN简介_第1张图片

S32K3有五个时钟源

1、快速内部 RC 晶振 (FIRC) – Default. (S32K312 -- 48M)

2、慢速内部 RC 晶振 (SIRC)(S32K312 -- 32M)

3、快速外部晶体振荡器(FXOSC)(S32K312 -- 32M)

4、慢速外部晶体振荡器(SXOSC)(S32K312 -- 32.768K)

5、锁相环(S32K312 --120M)

时钟监控单元

1、频率检查(CMU_FC)。

2、频率计算(CMU_FM)。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第2张图片

各个时钟的用途、是否开启、低功耗模式时候开启如下

NXP应用随记(六):S32K3xx的时钟与PIN简介_第3张图片

1.1、关键功能

FIRC & SIRC

-在RUN模式下始终启用

-状态寄存器提供当前的运行状态

-安全时钟用于安全相关应用的模块,负责检测和响应不正确的芯片操作。

FXOSC & SXOSC

-时钟门控由MC_ME。

-显示当前状态的状态寄存器(提供稳定的时钟、关或其输出时钟不稳定。)

-支持(晶体输入方式、Bypass 模式)

-可配置稳定计数器值。

-FXOSC:可配置的放大器跨导。

控制 PLL 的用户界面系统。

-可编程调频。

-锁相环输出上的多个整数分频器。

-锁检测电路报告当锁相环达到频率锁定。

-持续监控锁状态,报告锁丢失(LOL)状况。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第4张图片

1.2、时钟产生模块

NXP应用随记(六):S32K3xx的时钟与PIN简介_第5张图片

为所有芯片块生成参考时钟。

功能点:

-片上资源的sw可配置多路复用器和分频器。

-渐进式时钟频率切换 (PCFS),可最大限度地降低时钟源切换时功耗突变的影响。

-在同一时间更新MUX内所有时钟分频器的公共触发器

-当改变时钟多路复用器的时钟选择时,无故障时钟转换。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第6张图片

1.3、系统时钟

NXP应用随记(六):S32K3xx的时钟与PIN简介_第7张图片

NXP应用随记(六):S32K3xx的时钟与PIN简介_第8张图片

1.4、模式输入模块

NXP应用随记(六):S32K3xx的时钟与PIN简介_第9张图片

提供核心和外围时钟门控。

每个IP分配给a

•分区(PRTN)和a

•收集功能块(COFB)。

并且有自己的时钟启用器(CLKEN)。

MC_ME模块支持一种机制,通过简单的键写入序列启动预配置的硬件进程

在使用外设之前,请打开其时钟。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第10张图片

NXP应用随记(六):S32K3xx的时钟与PIN简介_第11张图片

NXP应用随记(六):S32K3xx的时钟与PIN简介_第12张图片

NXP应用随记(六):S32K3xx的时钟与PIN简介_第13张图片

可以在同一个硬件进程中启用/禁用多个外设/内核。

应用程序核心时钟由单个MC_ME核心时钟使能位进行门控。

对于HSE核心,没有时钟控制。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第14张图片

禁止CM7_1时钟

NXP应用随记(六):S32K3xx的时钟与PIN简介_第15张图片

1.5、时钟监控模块

NXP应用随记(六):S32K3xx的时钟与PIN简介_第16张图片

该块由六个监视器组成,报告时钟系统中的故障。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第17张图片

2、S32DS时钟与外设配置工具

2.1、创建一个PIT模块

创建一个应用程序,其中PIT_0 (CH0)每秒产生一个中断(由AIPS_SLOW_CLK @ 40 MHz时钟)。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第18张图片

-启动S32DS所需的工作空间。

-File -> New -> S32DS Application Project.

-输入项目名称,选择目标处理器(S32K344)。单击Next。

-选择要使用的调试器(pemmicro)和最新的SDK。

-点击完成

NXP应用随记(六):S32K3xx的时钟与PIN简介_第19张图片

NXP应用随记(六):S32K3xx的时钟与PIN简介_第20张图片

请注意,SDK可能会根据RTD版本而更改。选择最新版本。

-展开、双击 .mex文件

-或者点击顶部栏的“打开S32配置”,选择“打开时钟”。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第21张图片

如下配置点

NXP应用随记(六):S32K3xx的时钟与PIN简介_第22张图片

让我们像参考手册(RM)一样配置选项A(高性能模式),使用来自EVB的16 MHz晶体。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第23张图片

-在关系图视图中向下滚动并启用PIT0_CLK(由AIPS_SLOW_CLK计时)

-打开功能组属性

-并检查调用默认…选项。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第24张图片

在代码预览选项卡中,您可以看到这些文件

NXP应用随记(六):S32K3xx的时钟与PIN简介_第25张图片

要将它们添加到应用程序项目中,请单击Update Code按钮。

回到C/ c++透视图。

代码将在board文件夹下提供。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第26张图片

-PIT配置需要一个类似的过程。

-打开外围设备配置工具并添加一个新的组件。

-向下滚动并选择PIT驱动程序

NXP应用随记(六):S32K3xx的时钟与PIN简介_第27张图片

使用“+”图标添加一个新的PIT实例和通道,然后选择PIT_0实例,通道0,启用中断并命名您的PIT回调。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第28张图片

使用“+”图标添加一个新的PIT实例和通道,然后选择PIT_0实例,通道0,启用中断并命名您的PIT回调。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第29张图片

我们还需要为这个项目添加“IntCtrl_Ip”组件。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第30张图片

然后,向下滚动并启用PIT0_IRQn

NXP应用随记(六):S32K3xx的时钟与PIN简介_第31张图片

NXP应用随记(六):S32K3xx的时钟与PIN简介_第32张图片

打开main.c文件,包含必要的头文件。

#include "Mcal.h"
#include "Clock_Ip.h"
#include "Pit_Ip.h"
#include "IntCtrl_Ip.h"
下面是宏/全局变量
extern ISR(PIT_0_ISR);
#define CH_0 ((uint8)0) /*!< PIT channel used - 0 */
#define PIT_INST 0U /*!< PIT instance used - 0 */
#define PIT_PERIOD 40E6 /*!< PIT timeout period - equivalent to 1sec */
volatile uint32 PitCounter;
写PIT的回调函数
void PitNotification (void)
{
PitCounter++;
}
并具有时钟、中断、PIT配置在内的主要功能
volatile int exit_code = 0;
int main (void)
{
/* Clocks Configuration */
Clock_Ip_Init(&Mcu_aClockConfigPB[0]);
/* Interrupt Configuration */
IntCtrl_Ip_InstallHandler(PIT0_IRQn, PIT_0_ISR, NULL_PTR);
IntCtrl_Ip_Init(&IntCtrlConfig_0);
/* PIT0 (CH0) Configuration */
Pit_Ip_Init(PIT_INST, &PIT_0_InitConfig_PB);
Pit_Ip_InitChannel(PIT_INST, PIT_0_CH_0);
Pit_Ip_EnableChannelInterrupt(PIT_INST, CH_0);
Pit_Ip_StartChannel(PIT_INST, CH_0, PIT_PERIOD);
for(;;) {}
return exit_code;
}

构建应用程序(单击锤子图标)。

调试应用程序(单击bug图标)。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第33张图片

在调试应用程序之前,请记住连接板(EVB)

NXP应用随记(六):S32K3xx的时钟与PIN简介_第34张图片

在PitNotification回调中放置一个断点。

在Expression选项卡下,添加PitCounter变量,这样您就可以看到它的值变化。

运行应用程序(单击播放图标)。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第35张图片

3、IO配置

3.1、IO资源分析

S32K3x4最多有220个gpio,分为7个端口组(PTA、PTB、PTC、PTD、PTE、PTF和PTG),分配到一个I/O电源域(VDD_HV_A或VDD_HV_B)。

pad有四种类型:

NXP应用随记(六):S32K3xx的时钟与PIN简介_第36张图片

各pad的属性请参见RM附带的S32K3xx_IOMUX.xlsx的“IO信号表”页签。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第37张图片

S32K3xx_IOMUX.xlsx列描述如下:

NXP应用随记(六):S32K3xx的时钟与PIN简介_第38张图片

S32K3xx_IOMUX.xlsx列描述如下:

NXP应用随记(六):S32K3xx的时钟与PIN简介_第39张图片

32K3xx端口分配如下所示

NXP应用随记(六):S32K3xx的时钟与PIN简介_第40张图片

MSCR:多路信号控制寄存器

系统有四个可能的中断向量可用于SIUL2中的REQ引脚,32个中断请求源映射如下所示。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第41张图片

设备上的REQ引脚映射到独立的DMA请求通道。

32个IRQ输入路由到4个Int向量。

每个IRQ输入可以检测上升/下降沿或两个边。

每个IRQ输入包括可配置的故障滤波器。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第42张图片

NXP应用随记(六):S32K3xx的时钟与PIN简介_第43张图片

NXP应用随记(六):S32K3xx的时钟与PIN简介_第44张图片

启用/禁用内部拉电阻。

选择下拉或上拉。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第45张图片

对于输入选择,有另一个专用寄存器:IMCR,其中SSS字段必须根据S32K3xx_IOMUX.xlsx配置。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第46张图片

“CR”编号0到511对应于MSCR寄存器实例。

“CR”编号512 ~ 1023对应于IMCR寄存器实例。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第47张图片

SIUL2为所有焊盘提供单独的数据输入和数据输出寄存器。

数据输出寄存器支持读和写操作。

数据输入寄存器只支持读访问。

当将pad配置为使用其备选功能之一时,数据输入值反映pad的相应值,写入操作不影响pad状态。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第48张图片

3.2、IO配置工具

NXP应用随记(六):S32K3xx的时钟与PIN简介_第49张图片

在路由引脚选项卡中,您可以继续配置引脚的电气特性,例如拉电阻,驱动强度或焊盘保持。

建议使用标识符字段为每个引脚提供有意义的ID。

配置所有所需引脚后。转到外设视图并添加Siul2_Port驱动程序。

NXP应用随记(六):S32K3xx的时钟与PIN简介_第50张图片

Siul2_Dio驱动程序具有数字输入/输出引脚的必要功能

NXP应用随记(六):S32K3xx的时钟与PIN简介_第51张图片

你可能感兴趣的:(NXP-S32K3使用记录,NXP,S32K3XX,Clock)