【回眸】AurixTC397的MPS8875A开发之展频篇

news2024/11/15 20:52:13

目录

前言

【回眸】AurixTC397的MPS8875A开发之展频篇

知识储备

看懂芯片手册

调整寄存器写入值

修改写入寄存器代码

修改主函数代码

验证和测量


前言

因公需要,大半年来一直对AurixTC397进行开发。实物板子特别大,有很多很多芯片,具体的开发需求经常是对单个芯片进行开发,这个时候就有芯片手册需要去看,实际上芯片手册对于小白来说比较难懂,最好是有个师傅在旁边指导。最近有幸得到其他部门的一位较年长的同事的指导。以此记录MPS8875A芯片的展频开发问题。

【回眸】AurixTC397的MPS8875A开发之展频篇

知识储备

展频相关知识

扩展频谱(Spread Spectrum)技术是一种常用的无线通讯技术,简称展频技术。当主板上的时钟发生器工作时,脉冲的峰值会产生电磁干扰(EMI),展频技术可以降低脉冲发生器所产生的电磁干扰。在没有遇到电磁干扰问题时,应将此类项目的值全部设为“Disabled”,这样可以优化系统性能,提高系统稳定性;如果遇到电磁干扰问题,则应将该项设为“Enabled”以便减少电磁干扰。在将处理器超频时,最好将该项设置为“Disabled”,因为即使是微小的峰值飘移也会引起时钟的短暂突发,这样会导致超频后的处理器被锁死。

看懂芯片手册

在芯片手册中,扩展频谱,就是展频,在芯片手册文档里对应的是FSS     frequency spread spectrum (FSS),要求是400KHz 和20%的展频。

 本来乍一看这个就感觉头大,好不容易做了心理建设,粗略扫一眼,可以确定寄存器是04H的是控制展频的寄存器,再经过大师指点,发现寄存器03H控制fsw 频率。

寄存器04H可以看到中间456比特位,按要求,20%的展平应该在4、5、6比特位写入04H ,对应写入二进制的值应该是100 ,第三位写入的值是保留位,可以看到芯片手册里介绍保留位写入的值应当是0,其实在确定这个值之前,可以通过读寄存器的函数对寄存器03H和04H进行读取,先读出默认值。读出的默认值是 03H寄存器是0x08,04H寄存器的值是0x97,对应的展频约为5%,频率为400KHz。实际上看芯片手册,原本芯片的04H寄存器默认值应该是00H。

调整寄存器写入值

对应要求400KHz和20%,根据上图可以算出,应该写入04寄存器的值应该为 11000111,对应的十六进制数应该为C7

接下来需要调整寄存器03H

 根据默认值写入的0x08对应的400kHz,可以不改变原本默认写入的值,也可以根据要求对其进行修改,或者不放心再指定写入0x08进03H寄存器

修改写入寄存器代码

这里需要在芯片初始化部分对代码进行修改确保寄存器03H和寄存器04H都有所定义

在初始化写入寄存器的代码上新增如下两行

    mps8875_write_register(index, MPS8875_REG03, 0x08);
    mps8875_write_register(index, MPS8875_REG04, 0xC7);

 需要在mps8875.c 驱动文件内添加以下读取寄存器的函数 这里返回值unit8就可以了,我一次到位改了32位实际上并无必要

uint32 mps8875_get_reg4(int index)
{
	uint8 val;

	val = mps8875_read_register(index, MPS8875_REG04);

	return val;
}
uint32 mps8875_get_reg3(int index)
{
	uint8 val;

	val = mps8875_read_register(index, MPS8875_REG03);

	return val;
}

修改主函数代码

在原先主代码的位置中加入读取寄存器的部分

		fss = mps8875_get_reg4(MPS8875_U2300_DEVICE);
		DbgPrintf("MPS8875-U2300 FSS = 0x%x\r\n", fss);
		fre = mps8875_get_reg3(MPS8875_U2300_DEVICE);
		DbgPrintf("MPS8875-U2300 FRE = 0x%x\r\n", fre);

需要注意 fss 和fre都需要定义,和上面函数的返回值一致,我这里是unit32.

这一步不是必须要做的,只是为了确保已经正确写入寄存器了。

到这里开发就告一段落

验证和测量

一般使用示波器对其进行测量,示波器测量的时候可以看到与预设有些偏差,比如说测量出来差不多390K,19%左右。由于芯片原因,有一定误差是比较正常的,本次开发已经通过测试。

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

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

相关文章

2023-08-09 ssh-add id_rsa 提示Permissions 0777 for ‘id_rsa‘ are too open

一、ssh-add id_rsa 提示Permissions 0777 for id_rsa are too open Permissions 0777 for id_rsa are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.二、意思是说公钥文件权限太宽了,需…

【校招VIP】java语言考点之基本数据类型

考点介绍: 基本数据类型的长度、自动升级、JVM存储和封装类的相关考点,是校招常见考点。基础考点不能出错 一、考点题目 1、JAVA 中的几种基本数据类型是什么,各自占用多少字节解答:先了解2个单词先:1、bit --位&am…

Kubernetes集群部署 集群网络未部署

环境 > 192.168.50.53 k8s-master > 192.168.50.51 k8s-node1 > 192.168.50.50 k8s-node2 必须不能少于两核两G 所有主机共同操作 主机初始化配置 所有主机配置禁用防火墙和selinux [rootserver ~]# setenforce 0 [rootserver ~]# iptables -F [rootserver ~]…

form中表单切换,导致 relus 中的事件无法触发,原因:页面切换不要一直切换DOM,会导致问题,需要都显示出来

修改前&#xff0c;因为重复渲染DOM导致绑定rules失效 修改前代码使用 computed 计算出渲染的DOM&#xff0c;影响rules事件<el-formref"form"inline:model"billDetailCopy":rules"rules"size"small"label-position"right&quo…

使用无监督机器学习进行客户细分 -- 机器学习项目基础篇(11)

在今天的时代&#xff0c;公司努力工作&#xff0c;使他们的客户满意。他们推出新的技术和服务&#xff0c;以便客户可以更多地使用他们的产品。他们试图与每一个客户保持联系&#xff0c;以便他们能够相应地提供货物。但实际上&#xff0c;与每个人保持联系非常困难和不现实。…

Springboot项目集成Durid数据源和P6Spy以及dbType not support问题

项目开发阶段&#xff0c;mybatis的SQL打印有占位符&#xff0c;调试起来还是有点麻烦&#xff0c;随想整合P6Spy打印可以直接执行的SQL&#xff0c;方便调试&#xff0c;用的Durid连接池。 Springboot项目集成Durid <dependency><groupId>com.alibaba</group…

【Matlab】极限学习机遗传算法(ELM-GA)函数极值寻优——非线性函数求极值

往期博客&#x1f449; 【Matlab】BP神经网络遗传算法(BP-GA)函数极值寻优——非线性函数求极值 【Matlab】GRNN神经网络遗传算法(GRNN-GA)函数极值寻优——非线性函数求极值 【Matlab】RBF神经网络遗传算法(RBF-GA)函数极值寻优——非线性函数求极值 【Matlab】Elman神经网络遗…

栈和队列 (以及实现)

文章内容 1.栈 2.队列 文章内容 1.栈 1.1栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last I…

软件测试还是测试开发,二者如何选择?

各位小伙伴大家好, 今天和大家分享的是测试和测试开发的选择&#xff0c;相信很多小伙伴在这个问题上也都有过自己的想法&#xff0c;闲言少叙, 咱们进入正题。 一.企业需要哪种人才&#xff1f; 一名优秀的测试工程师是市面上不可多得的人才, 拥有理论和实操能力的测试工程师…

“代言人+合伙人“模式,彻底改变传统的一对一代言活动

小编介绍&#xff1a;10年专注商业模式设计及软件开发&#xff0c;擅长企业生态商业模式&#xff0c;商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地&#xff1b;扶持10余个电商平台做到营收过千万&#xff0c;数百个平台达到百万会员&#xff0c;欢迎咨询。 当今…

MyBatis 实战指南:探索灵活持久化的艺术

文章目录 前言一、初识 MyBatis1.1 什么是 MyBatis1.2 为什么学习 MyBatis 二、MyBatis 在软件开发框架中的定位三、基于 Spring Boot 创建 MyBatis 项目3.1 添加 MyBatis 框架的支持3.2 配置数据库连接信息和映射文件的保存路径&#xff08;Mapper XML&#xff09; 四、MyBati…

8月11日|CSA研讨会:国标要点解读《信息安全技术 个人信息处理中告知和同意实施指南》

随着网络与数据科技的进步&#xff0c;个人信息在AIGC、元宇宙世界等产业中扮演着愈发关键的角色。如何实施告知并取得个人主体同意是个人信息处理的基本前提&#xff0c;对于企业等处理者而言尤为重要。《个人信息保护法》规定了知情同意的原则和一般规则&#xff0c;但仍有不…

网络适配器和MAC地址

点对点信道&#xff1a;由于目的地只有一个选项&#xff0c;所以数据链路层不需要使用地址。 而在广播信道中&#xff1a; 各个主机如何判断信号是不是发给自己的&#xff1f; 当多个主机连接在同一个广播信道上&#xff0c;要想实现两个主机之间的通信&#xff0c;则每个主机都…

字段附加属性

字段附加属性 除了查看、编辑、必填三个基本属性之外,在Html模板中可以对单个字段添加Sql操作,或者进行字段赋值和日期时间计算,这也是Html模板表单的一大特色,如图D5-4-1所示。 D5-4-1 5.5.2、插入sql操作 插入sql操作是通过写sql查询语句的方式将需要的内容查询出来后…

【人工智能前沿弄潮】—— SAM从提示生成物体mask

SAM从提示生成物体mask Segment Anything Model&#xff08;SAM&#xff09;根据指示所需的对象来预测对象掩码。该模型首先将图像转换为图像嵌入&#xff0c;从而可以从提示中高效地生成高质量的掩码。 SamPredictor类为模型提供了一个简单的接口来提示模型。用户可以首先使…

HTML——格式化文本与段落

&#x1f60a;HTML——格式化文本与段落 &#x1f30f;前言&#x1f3ad;HTML文本标签&#x1f3af;主体内容body标签&#x1f3af;标题字标签&#x1f3af;空格和特殊字符 &#x1f3ad;格式化文本标签&#x1f3af;文本修饰标签&#x1f3af;计算机输出标签&#xff08;成对标…

基于MATLAB小波变换的信号突变点检测

之前在不经意间也有接触过求突变点的问题。在我看来&#xff0c;与其说是求突变点&#xff0c;不如说是我们常常玩的"找不同"。给你两幅图像&#xff0c;让你找出两个图像中不同的地方&#xff0c;我认为这其实也是找突变点在生活中的应用之一吧。回到找突变点位置上…

Linux部署Zabbix主机监控

192.168.136.55 服务端 192.168.136.56 客户端 一、服务端 1.1 安装lamp环境 #关闭防火墙以及SELINUX systemctl disable firewalld systemctl stop firewalld sed -i s/SELINUXenforcing$/SELINUXdisabled/g /etc/selinux/config setenforce 0设置yum源 yum install epe…

Cocos Creator 3.8 后期效果 Shader 编写(2/2) 进阶篇

前言 在上一篇文章中&#xff0c;麒麟子给大家分享了如何在 Cocos Creator 3.8 中的自定义管线中&#xff0c;添加属于自己的后期效果 Shader。 但基于 BlitScreen 的方案&#xff0c;我们只能编写最简单后效 Shader&#xff0c;如果我们想要支持更多复杂的 Shader&#xff0c…

pc端与flutter通信失效, Method not found

报错情况描述&#xff1a;pc端与flutter通信&#xff0c;ios端能实现通信&#xff0c;安卓端通信报错 报错通信代码&#xff1a; //app消息通知window.callbackName function (res) {window?.jsBridge && window.jsBridge?.postMessage(JSON.stringify(res), "…