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基础时钟

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)。

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

1.1、关键功能

FIRC & SIRC

-在RUN模式下始终启用

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

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

FXOSC & SXOSC

-时钟门控由MC_ME。

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

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

-可配置稳定计数器值。

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

控制 PLL 的用户界面系统。

-可编程调频。

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

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

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

1.2、时钟产生模块

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

功能点:

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

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

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

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

1.3、系统时钟

1.4、模式输入模块

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

每个IP分配给a

•分区(PRTN)和a

•收集功能块(COFB)。

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

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

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

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

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

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

禁止CM7_1时钟

1.5、时钟监控模块

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

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

2.1、创建一个PIT模块

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

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

-File -> New -> S32DS Application Project.

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

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

-点击完成

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

-展开、双击 <Project name>.mex文件

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

如下配置点

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

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

-打开功能组属性

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

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

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

回到C/ c++透视图。

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

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

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

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

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

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

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

然后,向下滚动并启用PIT0_IRQn

打开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图标)。

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

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

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

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

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有四种类型:

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

S32K3xx_IOMUX.xlsx列描述如下:

S32K3xx_IOMUX.xlsx列描述如下:

32K3xx端口分配如下所示

MSCR:多路信号控制寄存器

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

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

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

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

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

启用/禁用内部拉电阻。

选择下拉或上拉。

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

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

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

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

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

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

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

3.2、IO配置工具

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/233737.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0基础学java-day22(多用户即时通信系统)

一、QQ 聊天项目演示 聊天通讯系统 在运运行过程出现的异常&#xff0c;应该是类的序列化不一致导致的 1 项目 QQ 演示 2 为什么选择这个项目 只做核心部分&#xff0c;界面相对弱化 3 项目开发流程 3.1 需求分析 3.2 界面设计 3.2.1 用户登录 3.2.2 拉取在线用户列表 …

【C++】对象特性:无参有参构造函数,拷贝构造函数,析构函数

目录 对象的初始化和清理1.1 构造函数和析构函数1.2 构造函数的分类及调用1.3 拷贝构造函数调用时机1.4 构造函数调用规则1.5 深拷贝与浅拷贝 对象的初始化和清理 生活中我们买的电子产品都基本会有出厂设置&#xff0c;在某一天我们不用时候也会删除一些自己信息数据保证安全。…

再看参数校验

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 写一个接口&#xff0c…

管理类联考——数学——真题篇——按题型分类——充分性判断题——蒙猜D

先看目录&#xff0c;除了2018年比较怪&#xff0c;其他最多2个D&#xff08;数学只有两个弟弟&#xff0c;一个大弟&#xff0c;一个小弟&#xff09; 文章目录 2023真题&#xff08;2023-16&#xff09;-D 2022真题&#xff08;2022-21&#xff09;-D-分析选项⇒是否等价⇒是…

issue阶段的选择电路的实现

1-of-M的仲裁电路 为什么要实现oldest-first 功能的仲裁呢&#xff1f; 这是考虑到越是旧的指令&#xff0c;和它存在相关性的指令也就越多&#xff0c;因此优先执行最旧的指令&#xff0c;则可以唤醒更多的指令&#xff0c;能够有效地提高处理器执行指令的并行度,而且最旧的指…

urllib2 HTTP头部注入

文章目录 注入原理例题 [SWPU 2016]web7 注入原理 参考文章 应用场景是具有SSRF漏洞&#xff0c;结合CRLF注入 我们以redis数据库为例&#xff0c;当存在SSRF时我们伪造以下请求 http://127.0.0.1%0d%0aCONFIG%20SET%20dir%20%2ftmp%0d%0aCONFIG%20SET%20dbfilename%20evil%…

扑克牌炸金花

1.创建类 使用权限修饰符定义所需要参数&#xff0c;使用this关键字生成方法 public class gamejinhua { private String suit;//花色 private int rank;//数字 public gamejinhua(String suit, int rank) { this.suit suit; this.rank rank; } 2.使用快捷键生成get和…

车载软件易受攻击,如何规避嵌入式软件漏洞

在汽车开发中&#xff0c;汽车网络安全至关重要&#xff0c;特别是现在汽车软件变得日益互联。阅读本文&#xff0c;了解如何预防汽车网络安全漏洞。 为什么汽车网络安全很重要&#xff1f; 如今&#xff0c;互联汽车的解决方案远不只有简单的从A点到B点。通过实时数据共享、应…

RK3399平台开发系列讲解(内核入门篇)网络协议的分层

🚀返回专栏总目录 文章目录 一、应用层二、传输层三、网络层四、数据链路层(Data Link Layer)五、物理层沉淀、分享、成长,让自己和他人都能有所收获!😄 📢对于多数的应用和用户而言,使用互联网的一个基本要求就是数据可以无损地到达。用户通过应用进行网络通信࿰

【数组Array】力扣-1109 航班预订统计

目录 题目描述 解题过程 题目描述 这里有 n 个航班&#xff0c;它们分别从 1 到 n 进行编号。 有一份航班预订表 bookings &#xff0c;表中第 i 条预订记录 bookings[i] [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti &#xff08;包含 firsti 和 lasti &#xff…

从 MySQL 到 DolphinDB,Debezium + Kafka 数据同步实战

Debezium 是一个开源的分布式平台&#xff0c;用于实时捕获和发布数据库更改事件。它可以将关系型数据库&#xff08;如 MySQL、PostgreSQL、Oracle 等&#xff09;的变更事件转化为可观察的流数据&#xff0c;以供其他应用程序实时消费和处理。本文中我们将采用 Debezium 与 K…

Spring Security 6.x 系列(11)—— Form表单认证流程

一、前言 在本系列文章中介绍了过滤器和相关认证组件&#xff0c;对部分源码也进行详细分析。 本章主要学习 Spring Security 中通过 HTML 表单提供用户名和密码的认证流程。 二、配置表单登录 默认情况下&#xff0c;Spring Security 表单登录处于启用状态。 但是&#xff…

Leetcode—454.四数相加II【中等】

2023每日刷题&#xff08;六十四&#xff09; Leetcode—454.四数相加II 实现代码 class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map&l…

雷电4.0.50模拟器Android7.1.2安装xposed框架

官方论坛&#xff1a;https://xdaforums.com/t/official-xposed-for-lollipop-marshmallow-nougat-oreo-v90-beta3-2018-01-29.3034811/ Xposed 有分支 [EdXposed 和 LSPosed] 。 Edxposed框架现在支持android 8.0 - android 9.0 &#xff0c;如果是android 7.0或更早的版本&…

2023最新最全【Kali Linux】入门教程【从零基础入门到精通】附安装包

作为一名从事渗透测试的人员&#xff0c;不懂Kali Linux的话&#xff0c;就out了。它预装了数百种享誉盛名的渗透工具&#xff0c;使你可以更轻松地测试、破解以及进行与数字取证相关的任何其他工作。 今天给大家分享一套Kali Linux资料合集&#xff0c;包括12份Kali Linux渗透…

LED恒流调节器FP7126:引领LED照明和调光的新时代(调光电源、汽车大灯)

目录 一、FP7126概述 二、FP7126功能 三、应用领域 随着科技的进步&#xff0c;LED照明成为了当代照明产业的主力军。而在LED照明的核心技术中&#xff0c;恒流调节器是不可或缺的组成部分。今天&#xff0c;我将为大家介绍一款重要的恒流调节器FP7126&#xff0c;适用于LED…

从 Android 手机恢复删除的数据的10个有效工具

您是否曾经在 Android 手机上遇到过数据丢失的情况&#xff0c;即您拍摄的瞬间或其他数据意外丢失&#xff1f; 就我而言&#xff0c;我多次遇到过此类数据丢失的情况&#xff0c;相信我&#xff0c;没有什么比从手机中丢失所有重要数据更严重的了。这就像一场噩梦&#xff0c…

第二十一章 : Spring Boot 集成定时任务(一)

第二十一章 &#xff1a; Spring Boot 集成定时任务&#xff08;一&#xff09; 前言 本章知识点&#xff1a; 介绍使用Spring Boot内置的Scheduled注解来实现定时任务-单线程和多线程&#xff1b;以及介绍Quartz定时任务调度框架&#xff1a;简单定时调度器&#xff08;Simp…

Dubbo线程池

前言 Dubbo使用Netty作为网络调用框架&#xff0c;Netty是一个Reactor模型的框架&#xff0c;线程模型分为boss线程池和worker线程池&#xff0c;boss线程池负责监听、分配事件&#xff0c;worker线程池负责处理事件&#xff0c;简单说就是boss线程池负责hold请求&#xff0c;并…

【算法】选择排序

1、排序逻辑 选择排序逻辑&#xff1a;对数组中的数据&#xff0c;先假定一个最小的数据下标&#xff0c;然后进行循环寻找到最小数据的下标&#xff0c;放在第一层循环的最初始位置 例&#xff1a; 从0 ~ N-1 寻找到最小值&#xff0c;放在0位置 从1~N-1 寻找到最小值 &…