EB tresos 配置I2c - 实现与PF8200的读写操作

文章目录

  • 前言
  • 一、EB工具链配置
    • 1、I2c模块
      • 1)新建模块
      • 2)配置General
      • 3)配置I2cChannel
    • 2、Port模块
      • 1)配置SDA
      • 2)配置SCL
  • 二、代码分析
    • 1、申明一个I2c配置结构体数组,用于I2c所有读操作。
    • 2、搭建读操作函数
  • 三、测试验证
  • 总结


前言

最近领导要求I2c从软件模拟实现变更为硬件I2c实现。但是网上一搜索全是要钱的。心有不甘于是我自己小研了一下,也实现了,没啥大难点!!!
IIC实现方式一般有两种:
①, 基于硬件实现IIC通信(硬件GPIO引脚配置为I2c复用引脚)
②, 基于软件模拟IO实现IIC通信(代码控制SDA和SCL两个IO引脚的电平来模拟IIC时序)

本文章基于64pin的恩智浦 S32K146型号的芯片作为主机,从机是NXP的供电芯片PMIC(PF8200)
在本次实验中,我们将以使用EB工具链来配置硬件IIC通信。

具体实现流程包括如下几点:
1, EB配置 2, 代码编写 3, 测试验证

在这里插入图片描述

话不多说,走你~

一、EB工具链配置

1、I2c模块

1)新建模块

在EB工具中,新建I2c模块。如下图:
在这里插入图片描述

2)配置General

在这里插入图片描述①, 在AutoSar的配置工具中,常常看见PostBuild、Precompile、Linktime这三个影子。具体描述可以参考下面这篇博客。
链接地址

②, 开发者错误检测,常用于开发调试时候,当模块运行是出现了错误,会通过DET模块报错并使栈指针定位了DET模块的报错函数,可查看IIC出现了什么故障类型并进行维护。一般在软件释放时,应该取消该选项。

③, 是否使用DMA传输功能,勾选之后应该在MCL模块进行配置DMA通道。图片上我虽然勾选了,实际上并没有在MCL进行配置。用户可根据需求在选择。

④, 定义Timeout定时器。

3)配置I2cChannel

在这里插入图片描述
I2cChannelId:0
I2cHwChannel:LPI2C_0
I2cMasterSlaveConfiguration:MASTER_MODE(MCU配置为主机模式)
I2cOperatingMode:LPI2C_STANDARD_MODE(标准模式,通信频率100khz)

在这里插入图片描述

①: 选择MCU模块配置好的时钟源(选择SIRC时钟源)
在这里插入图片描述

②: 选择IIC使用中断模式
③④ 两步骤都是为了配置出I2c的波特率100Kh。芯片手册有描述,如下图。详情见芯片手册。
在这里插入图片描述

2、Port模块

1)配置SDA

在这里插入图片描述

2)配置SCL

在这里插入图片描述
到此为止EB配置工作已经完成了,生成I2c,Port相关的代码文件。并集成到工程中。 MCAL的IIC静态代码I2c_TS_T40D2M10I1R0SW32K1_RTD_4.4_1.0.1中复制到工程中。

~

二、代码分析

从机设备地址:0x10
从机设备ID:0x48
从机设备ID寄存器:0x00
任务目标:通过使用I2c读取从机的设备ID号。带CRC校验功能的IIC读写操作。

I2c模块的读写操作共同使用同一个函数接口:

Std_ReturnType I2c_SyncTransmit(uint8 Channel, const I2c_RequestType * RequestPtr)

重点解析第二个形参,I2c配置结构体变量。
在这里插入图片描述

1、申明一个I2c配置结构体数组,用于I2c所有读操作。

在这里插入图片描述
从机地址0x10必须向右移位1bit 0x10 >> 1u(0x08u)
结构体数组中的第一个成员用于写从机地址和寄存器地址,实现与从机建立握手。
结构体数组中的第二个成员用于读取寄存器的数据,并存储在ReadDataBuf中。

2、搭建读操作函数

I2c读寄存器数据通用接口,读取任何寄存器的数据,可以通过调用该接口
在这里插入图片描述
读PMIC设备地址的函数:
在这里插入图片描述

~
到此,代码编写就结束了,编译进行验证结果

三、测试验证

参考PF 8200的数据手册可知,读取寄存器数据的时序如下图
在这里插入图片描述
串口打印信息:
在这里插入图片描述
示波器测试数据:
在这里插入图片描述
Tips:
上图中,SDA有三条细细的上升波形。目前原因还未找到。都是在MCU收到从机的响应位之后产生的,并未对MCU采集数据产生影响。如果有谁也遇到过这情况并解决了,可以分享以下哈!

~

总结

写操作比较简单,只需要申明一个I2c配置结构体变量即可。
博主是AutoSar小白,刚开始接触NXP芯片,如果哪里表达的有问题,还请大佬们指点指点哈。接下来,让我们在后面的博文再相会哈~

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

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

相关文章

得物大模型平台,业务效果提升实践

一、背景 得物大模型训练与推理平台上线几个月后,我们与公司内部超过 10 个业务领域展开了全面的合作。在一些关键业务指标方面,取得了显著的成效,例如: 效率相关部门的合作,多维度打标总正确率取得 2 倍以上提升。利…

Spring中的上下文工具你写的可能有bug

文章目录 前言功能第一种:ApplicationContext第二种方式:ApplicationContextAware第三种:BeanFactoryPostProcessor 源码第一种第二种第三种 前言 本篇是针对如何写一个比较好的spring工具的一个探讨。 功能 下面三种方式,你觉…

智能三维数据虚拟现实电子沙盘

一、概述 易图讯科技(www.3dgis.top)以大数据、云计算、虚拟现实、物联网、AI等先进技术为支撑,支持高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换,智能三维数…

CTF特训(一):ctfshow-RCE挑战

CTF特训(一)&#xff1a;ctfshow-RCE挑战 FLAG&#xff1a;可后来&#xff0c;除了梦以外的地方&#xff0c;我再也没有见过你 专研方向: 代码审计&#xff0c;PHP 每日emo&#xff1a;其实挺迷茫的&#xff0c;不知道该干什么,(骗你的) RCE挑战1 <?phperror_reporting(0)…

Qt Creator可视化交互界面exe快速入门3

上一期介绍的通过Qt Creator的组件直接拖拽的方式完成了一个界面&#xff0c;这期介绍按钮的信号交互。 专有名称叫信号与槽 实现方法1&#xff1a; 鼠标右键选择转化为槽就会跳出这样的界面 选择第一个为单击信号。然后就会跳转到代码界面。多了on_pushButton_clicked()。 …

2024深入评测CleanMyMac X4.14.6破解版新的功能

随着时间的推移&#xff0c;我们的Mac电脑往往会变得越来越慢&#xff0c;存储空间变得越来越紧张&#xff0c;这时候一个优秀的清理工具就显得尤为重要。作为一款备受好评的Mac清理工具&#xff0c;它能够为你的Mac带来全方位的清理和优化。在本文中&#xff0c;我们将深入评测…

ADRC-跟踪微分器TD的Maltab实现及参数整定

目录 问题描述&#xff1a; 跟踪微分器TD基本概念&#xff1a; Matlab及其实现&#xff1a; 跟踪效果&#xff1a; 例1&#xff1a;跟踪信号 sin(t) 0.5*rand(1,1)。 例2&#xff1a;跟踪部分时段为方波的信号&#xff0c;具体形式见代码get_command。 参数整定&#xf…

HarmonyOS - 基础组件绘制

文章目录 所有组件开发 tipsBlankTextImageTextInputButtonLoadingProgress 本文改编自&#xff1a;<HarmonyOS第一课>从简单的页面开始 https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101667360160710997 所有组件 在 macOS 上&#xff0c;组…

【WSL2】安装和配置ubuntu

文章目录 1. 安装WSL22. 安装ubuntu2.1. 通过Microsoft Store2.1. 通过命令行 3. ubuntu的使用3.1. 创建管理员root账户3.2. 换源3.3. 安装图形化界面 1. 安装WSL2 在控制面板 - 程序 - 程序与功能中点击启用或关闭Windows功能&#xff0c;选择 虚拟机平台适用于Linux的Window…

Android Studio 如何隐藏默认标题栏

目录 前言 一、修改清单文件 二、修改代码 三、更多资源 前言 在 Android 应用中&#xff0c;通常会有一个默认的标题栏&#xff0c;用于显示应用的名称和一些操作按钮。但是&#xff0c;在某些情况下&#xff0c;我们可能需要隐藏默认的标题栏&#xff0c;例如自定义标题栏…

File Inclusion(Pikachu)

File Inclusion(local) 这里随便点击一个提交 观察url&#xff0c;显示是一个文件file1.php 可以直接通过url修改这个文件 找到自己的文件&#xff08;本地文件&#xff09;shell.php的路径写上去 就可以看到 File Inclusion&#xff08;remote&#xff09; 提交的是一个目标…

桶装水送水小程序:提升服务质量的利器

随着移动互联网的发展&#xff0c;越来越多的消费者通过手机在线购物和订购商品。如果你是一名桶装水供应商&#xff0c;想要拓展线上业务&#xff0c;那么开发一个桶装水微信小程序将是一个明智的选择。本文将指导你从零开始开发一个桶装水微信小程序&#xff0c;让你轻松完成…

Oracle初始化参数修改后,是否需要重启才能生效

可以查看 v$parameter或v$parameter2动态性能视图的ISSYS_MODIFIABLE列。此列指示是否可以使用 ALTER SYSTEM 更改参数以及更改何时生效&#xff1a; IMMEDIATE - 无论用于启动实例的参数文件的类型如何&#xff0c;都可以使用 ALTER SYSTEM 更改参数。 更改立即生效。DEFERRE…

如何底层调用最快地复制OPC数据到关系数据库

计算机上的二大应用&#xff0c;一是从WEB服务器上获得数据&#xff0c;另一种是向关系数据库中写入数据。在上集我已提出了一个从WEB上获得OPC数据的独创方法&#xff0c;现在谈谈第二种如何快速地把OPC数据写进到数据库中&#xff0c;这也是Calssic OPC最典型的一个应用场景。…

2023.12.25 关于 Redis 数据类型 Hash 常用命令、内部编码、应用场景

目录 Hash 数据类型 Hash 操作命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX HINCRBY HINCRBYFLOAT HSTRLEN Hash 编码方式 理解什么是压缩 Hash 实际应用 Cache 缓存 Hash 数据类型 整体上来说 Redis 是键值对结构&#xff0c;其中 …

【深度学习目标检测】十一、基于深度学习的电网绝缘子缺陷识别(python,目标检测,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…

物联网协议Coap之Californium CoapServer解析

目录 前言 一、CoapServer对象 1、类对象定义 2、ServerInterface接口 3、CoapServer对象 二、CoapServer服务运行分析 1、CoapServer对象实例化 1.1 调用构造方法 1.2 生成全局配置 1.3 创建Resource对象 1.4-1.8、配置消息传递器、添加CoapResource 1.9-1.12 创建线…

文献研读|Prompt窃取与保护综述

本文介绍与「Prompt窃取与保护」相关的几篇工作。 目录 1. Prompt Stealing Attacks Against Text-to-Image Generation Models&#xff08;PromptStealer&#xff09;2. Hard Prompts Made Easy: Gradient-Based Discrete Optimization for Prompt Tuning and Discovery&#…

说说 Spring Boot 实现接口幂等性有哪几种方案?

一、什么是幂等性 幂等是一个数学与计算机学概念&#xff0c;在数学中某一元运算为幂等时&#xff0c;其作用在任一元素两次后会和其作用一次的结果相同。 在计算机中编程中&#xff0c;一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等…

人工智能_机器学习076_Kmeans聚类算法_体验_亚洲国家队自动划分类别---人工智能工作笔记0116

我们开始来看聚类算法 可以看到,聚类算法,其实就是发现事物之间的,潜在的关联,把 有关联的数据分为一类 我们先启动jupyter notebook,然后 我们看到这里我们需要两个测试文件 AsiaFootball.txt里面记录了,3年的,亚洲足球队的成绩