SWM181系列应用

news/2024/7/20 16:53:03/文章来源:https://blog.csdn.net/SYNWIT/article/details/139290685

一、SWM181系列 ISP功能

1.1、注意:ISP引脚为B0,VCC,GND是UART-RX、UART-TX 下载引脚。所有型号的UART-RX - - > A0,UART-TX - - > A1。
1.2、注意:板级设计必须留出ISP引脚,防止调试过程中芯片锁死后或不正常工作后,SWD不能访问,可以通过ISP擦除恢复状态。

二、SWM181在IAR平台的仿真调试

注意:SWM181 如果是在IAR平台调试,进行了程序改动和下载后,要重新上电后才能进行仿真调试,单步跟踪。

三、SWM181系列的IO端口应用

3.1、口单一引脚的电流、位带功能
注意:SWM181的IO口 单一引脚的拉电流和灌电流是20mA,超过该电流会引起复位。
SWM181 GPIO不带位带功能,在应用中如希望如有需要GPIO操作不被ISR打断,需要开关全局中断。
3.2、SWM181系列引脚支持的FUN功能
注意:SWM181系列的引脚支持FUN功能,支持复用成可配置为 UART/I2C/PWM/TIMER/CAN/HALL 功能。
SPI的功能引脚是固定的,以及模拟功能的ADC引脚,SLCD引脚都是固定的引脚。

四、SWM181系列的DMA应用

注意:SWM181 外设支持DMA,支持CAN、ADC、内部FLASH到SRAM,SPI、UART不支持DMA。

五、SWM181系列的串口应用

5.1、注意:SWM181波特率的UART分频寄存器只能存整数,所以当分频值小数部分相对于整数部分比较大的时候,舍去的小数部分就会引入累积误差。
波特率误差计算公式:主频/16/115200 ;如果小数位仅仅是0~2,那么误差较小,小数位大于0~2,特别是大于5,由于没有分频寄存器没有四舍五入,会产生较大误差。

5.2、SWM181系列是3.3v供电,如需要与5v供电MCU 进行串口通讯,需要做电平转换。可参考下图所示电路。

六、SWM181系列CAN应用

6.1、注意:SWM181系列 CAN仅支持1个32位滤波器/2个16位滤波器。
    SWM181系列为3.3v供电,CAN转换芯片的建议用3.3v供电,或外加电平转换。如:NXP—TJA1040T + SGM4553
CAN通讯波特率设置的BRP值计算:BRP(5:0) = systemclock/2/baud/(1+bs1+bs2), 这个值需要是一个整数,且不可大于64.
(1+bs1)/(1+bs1+bs2)就是采样点,采样点推荐设置为80%~90%。

6.2、CAN模块的ERR的应用  (摘自刘智创跟进记录  2021-08-29中) --2021.09.09
注意:技术支持客户,协助验证SWM181 CAN通讯的配置,BS1,BS2,和波特率的配置,会影响CAN通信是否成功。而且181 CAN模块不能自动回复总线正常,除非ERR寄存器累计计数到255。配置手动清零回复正常的操作。

CAN功能模块初始化参数的设置,可参照“CAN_UART_波特率&PLL时钟计算_20220325.xlsx”。

七、SWM181系列的FLASH应用

注意:内部FLASH必须以4K为单位擦除,写入地址必须能被0x1000整除。

八、SWM181系列的ADC应用

8.1、注意:SWM181中有两路功能模块,一路为12bit SARADC,一路为16bit的SDADC。
12bit --SARADC阻抗在近似无穷大,建议用此ADC模块测量NTC、PTC等温度传感器的应用。
16bit-- SDADC阻抗典型值是400K。用SDADC引脚不能外接和阻抗一个量级的电阻,否则电阻分压会导致采样值拉低;如实际应用中确实用到了,则可以开启2个通道以上,以此来减少输入阻抗的量级。
SDADC的输入阻抗具体 

 可参考规格书描述。

8.2、SWM181系列的ADC差分输入
SWM181ADC差分输入如果需要采集负电压,可参考下图所示电路,R35的值需根据实际测量的电压范围调正。

8.3、SWM181系列ADC采样时间      
现象:太SAR ADC使用过程中发现SAR ADC的转换所需要的时间和计算的周期不一致。
例如使用外部晶振32M主频,8分频作为ADC的时钟,设置SIMPLE_16,按每通道转换周期为14个时钟来算,那么单通道转换速度为:17858/秒,周期为56us。但客户实际测试采集1280个点,通过IO翻转共花费了113.85ms,平均每次采样88.9us。和实际的56us相比相差甚远。

用库函数ADC中断的例程(SimplADC)进行测试,为了准确中断里面的函数和基本上替换成寄存器操作,测试环境是24Mhz主频,8分频作为ADC的时钟,设置SIMPLE_1,SIMPLE_2,SIMPLE_4,SIMPLE_8,SIMPLE_16,并且中断发生1000次后,设置IO进行翻转一次。
根据计算,按每通道转换周期为14个时钟来算,应该分别在4.6ms,9.3ms,18.6ms,37.3ms,74.6ms的IO翻转间隔,但是实际测量出来的结果并不一致。SIMPLE1/2/4/8/16之间好像没有明确的倍数关系。并且程序试过在非cache·模式下和cache模式下都试过,实际值测量结果几乎没变化。
分析与解决:该问题暂时无解。可以根据客户实际应用需求来配置和设计软件逻辑。

8.4、ADC&DMA的应用      
现象:在使用SDADC+DMA的应用,反馈多次初始化时SDADC会停止工作,DMA没有搬运到数据
分析与解决:如果重复初始化是为了切换通道,可以调用SDADC_ChnClose(SDADC, chn); 和 SDADC_ChnOpen(SDADC, chn);来切换通道。

九、SWM181系列的系统时钟应用

注意:SWM181 没有RTC。SLEEP支持定时器唤醒。
     SWM181的主频最高是48Mhz,不能超频。
     SWM181 的深睡眠需要通过MOS管关断AVDD1的供电,确保低功耗的电流。


 

十、SWM181系列驱动SLCD应用

10.1、SLEEP状态下出现鬼影现象
现象:SWM181驱动SLCD,在SLEEP状态下出现鬼影、闪屏现象。
解决:在SLEEP状态下,将驱动SLCD的端口设置为普通GPIO,输出为低电平状态,解决鬼影和闪屏现象,

十一、SWM181系列找不到内核

11.1、供电电压的影响
现象:客户的项目应用硬件平台,用适配器上电,芯片不能正常工作,SWD端口找不到JLINK设备。 采用JLINK供电,芯片可以正常工作。连接JLINK后,适配器供电,再断开JLINK,芯片可正常工作。

分析及解决:请客户配合,用示波器查看SWM181的复位脚、电源脚的信号,发现当适配器单独供电时,上电瞬间过程,电源脚的电压有冲击,电压为4.3v,并维持400us左右。 如下图:

要求客户先排除引起电压冲击的情况后,单独采用适配供电,芯片可以正常工作。  客户之前采用 的LDO 是HT7533-1,此LDO会产生冲击,更换为AMS1117-3.3后 3.3V的输出正常。


 

十二、SWM181 Userboot的应用

12.1、注意:SWM181的Userboot功能,预留的Userboot Code大小为24K,RAM大小为8K。在实际应用过程中可能不需要用到16K Code,RAM 为16K,那么Userboot 的工程可以参考如下“图1.15.1”设置。
           --2021.5.31

图1.15.1

Userboot 应用中,请特别注意如下,应用中有部分客户将系统时钟的Trim数据擦除了。


 

12.2、UserBoot 擦写App Flash的大小端模式
现象:技术协助客户应用UserBoot升级,181 UserBoot升级调试总是失败,
分析&解决:经过排查后是发现,客户处理错了升级所需写入的数据,ARM是需要数据格式是小端,客户按照大端处理。
12.3、UserBoot应用的烧录操作   
现象: 客户反映ZB103烧录有问题,SWM181烧录不进去
分析及解决:SWM181烧录带userboot的程序时,由于SWM181带Userboot需要B0上拉,但是未烧录的空片板子和已烧录板子容易分不清烧录方式,所以建议客户需要烧录时候单独把B0下拉,确保都能正常烧录。

十三、SWM181 PWM功能

注意:1、设置占空比后,不是立即生效,需要等到上一个周期结束后生效。    --2021.6.2
          2、关闭PWM再打开,PWM将重新计时。
            3、注意设置PWN周期、占空比等参数时不要超过固件库定义的结构体成员数据范围,否则会出现波形紊乱、与参数不符、无法正常改变输出的现象。
            4、在应用PWM功能过程中,如需要对PWM的频率进行调整,需要向关闭对应的PWM模块,进行频率配置后,再打开对应的PWM模块。如果不关闭对应的PWM模块,直接设置周期,PWM模块输出为高电平或低电平。
如需要实现PWM实时的调整,则可以应用 PWM的新周期开始中断功能,在中断中设置新的PWM 周期,可以实现实时的PWM 周期调整。
SWM201、SWM341系列则可以直接设置PWM周期,不需要先关闭PWM模块。
         5、PWM停止后,PWM端口的电平要为低电平,如何实现?可以事先设置好GPIO,在需要的时候只切模式寄存器。如下:
        GPIO_Init(GPIOA, PIN0,1,0,0,0);
        GPIO_ClrBit(GPIOA,PIN0);
PORT_Init(PORTA,PIN0,FUNMUX_PWM0A_OUT,0);

需要输出低的时候:PROTG->PORTA_SEL1 &= ~(0x03<<(PIN0*2));
需要输出PWM波形: PORTG->PORT_SEL1 |= 1<<(PIN2*2);      (摘自杨顺仁支持记录 20211227)

十四、SWM181外部晶振应用  

现象:SWM181设置为外部晶振作为系统时钟,客户反馈有些板子可以工作,有些不能正常工作。  --2021.6.9
分析:评估由于SWM181是MCU和SPI Flash叠封构成的,二者的复位电平不一样,如果系统上电曲线过于缓慢,可能导致MCU退出复位状态了,而SPI Flash还处于复位状态中,这样MCU从Flash读取程序就会读出错误的内容,从而MCU进入了 HardFaultMemManage。 如下图:

图1.15.1
在切换外部晶振处理函数中增加延时处理,解决以上问题。如下“图1.17.2”

图1.15.2

十五、SWM181硬件LIN的 应用    

181的硬件LIN的break的检测中断或发送中断,要在中断函数里关闭该中断才会跳出来,清标志位也不行。而且break时间固定在20ms,不会随波特率变化而变化,非常奇怪。目前问了SAE那边也不知道答案,181的LIN Break中断应该有问题。

十六、SWM181的烧录

16.1、现象: 客户反映第三方烧录器烧录SWM181芯片后,有不良      
分析及解决:SWM181C9用SWM181xC算法烧录确实会有把trim擦除的风险,目前已经联系芯园烧录器,添加SWM181C9和SWM19SC9的device。

16.2、SWM181系列调试时烧芯片问题         
现象:客户反馈调试时烧芯片,说他们的电源电路用在别的项目都没事。
分析与解决:推测可能是上电瞬间电源有过冲造成的,让客户测量上电瞬间3.3V的波形,发现有过冲,而且输出不对,分析电源电路后,把22pF拆了之后便正常,如下图。

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

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

相关文章

【赠书第25期】C#项目开发实战(微视频版)

文章目录 前言 1 项目构思与需求分析 1.1 项目构思 1.2 需求分析 2 系统设计 2.1 系统架构设计 2.2 数据库设计 2.3 接口设计 3 编码实现 3.1 环境搭建 3.2 编码规范 3.3 编码实现 4 测试与部署 4.1 单元测试 4.2 系统测试 4.3 部署与上线 5 总结与展望 6 推…

LeetCode刷题之HOT100之三数之和

2024/5/29 天气真他妈好呀&#xff01;好天气让我舒畅&#xff0c;可惜俺今天把我养护了两三个月的栀子花花苞又整掉了一朵&#xff0c;呜呜呜&#xff01;看着它们一天天长大&#xff0c;花苞边由嫩绿泛白&#xff0c;结果被我不小心弄掉了&#xff0c;我是罪人。它们还想&…

K8s service 进阶

文章目录 K8s service 进阶Service 工作逻辑Service 具体实现Service 资源类型ClusterIPNodePortLoadBalancerExternalName Service 与 EndpointEndpoint 与 容器探针自定义Endpoint Service 相关字段sessionAffinityexternalTrafficPolicyinternalTrafficPolicypublishNotRead…

学习笔记——动态路由协议——OSPF(OSPF区域)

四、OSPF区域 OSPF路由器在同一个区域(Area)内网络中泛红LSA(链路状态通告)。为了确保每台路由器都拥有对网络拓扑的一致认知&#xff0c;LSDB需要在区域内进行同步。如果OSPF域仅有一个区域&#xff0c;随着网络规模越来越大&#xff0c;LSDB越来越庞大&#xff0c;OSPF路由器…

【MySQL数据库】 MySQL主从复制

MySQL主从复制 MySQL主从复制主从复制与读写分离的意义主从数据库实现同步&#xff08;主从复制&#xff09;三台mysql服务器搭建主从复制&#xff0c;要求不可以用root帐号同步&#xff0c;要求第三台服务器在测试过1、2的主从复制之后进行主从复制配置 MySQL主从复制 主从复…

SQL学习小记(三)

SQL学习小记&#xff08;三&#xff09; 功能实现思路代码部分名词解释 代码打包为可执行文件 功能说明&#xff1a;使用python代码&#xff0c;将数据库database1中的表格table1同步到数据库database2中 功能实现 思路 #mermaid-svg-R1pWrEWA799M299a {font-family:"tre…

计算机组成原理----原码,反码与补码

1.原码的出现 我们通常使用"","-"判断数字的正负,而在计算机中,则将二进制的首位当作标记符号,"0"表示正数,"1"表示负数,这样就解决了在计算机中表示数值正负的问题,唯一的缺点就是第1位被占作符号位。 0 0000001 原 0 0000010 原 …

密码学基础概念

加密性 什么是加密&#xff1f; 1.对原有的明文数据&#xff0c;执行某种运算&#xff0c;得到密文数据。 2.密文数据对于未授权人员而言&#xff0c;在一定上程度上加大了解读的难度 3.加密功能用于实现机密性 什么是密钥&#xff1f; 1.如同持有保险柜钥匙才能打开保险柜…

如何在Spring Boot中整合PageHelper实现分页功能

1.前言 在开发web应用程序时&#xff0c;经常会遇到需要对数据库中的数据进行分页查询的情况。为了简化分页查询的实现过程&#xff0c;我们可以利用PageHelper这个优秀的分页插件来实现分页功能。本文将介绍如何在Spring Boot项目中整合PageHelper&#xff0c;并演示如何使用它…

Thinkphp3.2.3网站后台不能访问如何修复

我是使用Thinkphp3.2.3新搭建的PHP网站&#xff0c;但是网站前台可以访问&#xff0c;后台访问出现如图错误&#xff1a; 由于我使用的Hostease的Linux虚拟主机产品默认带普通用户权限的cPanel面板&#xff0c;对于上述出现的问题不清楚如何处理&#xff0c;因此联系Hostease的…

深入分析 Android Activity (十一)

文章目录 深入分析 Android Activity (十一)1. Activity 的内存管理和优化1.1 内存泄漏的常见原因1.2 避免内存泄漏的方法1.3 内存泄漏检测工具 2. Activity 的配置变更处理2.1 处理配置变更2.2 保存和恢复状态2.3 使用 ViewModel 3. Activity 的测试3.1 单元测试3.2 UI 测试 4…

Centos安装nvm管理node版本(让安装变得可控又快捷)

Centos安装nvm管理node版本&#xff08;让安装变得可控又快捷&#xff09; 没有找到一个对的人&#xff0c;有可能是你没有走对那条路&#xff0c;也有可能是你没有睁开眼睛&#xff0c;而更大的可能是&#xff0c;你根本就没有出发去找。 安装说明 nvm安装目录&#xff1a;/us…

[ue5]建模场景学习笔记(1)——混合材质

卷首&#xff1a;这部分会记录建模场景等相关学习内容&#xff0c;与ue引擎学习笔记不同的是&#xff0c;可能会略过一些基础内容&#xff0c;因为部分知识在blender中已经学习过了&#xff0c;不再继续记录。 1.需求分析&#xff1a; 想构建一个山地的场景&#xff0c;在ue5中…

为什么要学习c++?

你可能在想&#xff0c;“C&#xff1f;那不是上个时代的产物吗&#xff1f;” 哎呀&#xff0c;可别小看了这位“老将”&#xff0c;它在21世纪的科技舞台上依旧光芒万丈&#xff0c;是许多尖端技术不可或缺的基石&#xff01; 1. 无可替代 c源于c语言&#xff0c;它贴近于硬…

gif帧数修改怎么操作?一键掌握GIF帧数修改技巧!

gif帧数修改怎么操作&#xff1f;在数字化信息爆炸的时代&#xff0c;GIF动图因其生动有趣的特性而备受广大网友喜爱。然而&#xff0c;很多时候我们可能会遇到GIF动图帧数过多或过少&#xff0c;导致动画效果不尽如人意的情况。那么&#xff0c;如何对GIF动图的帧数进行修改呢…

如何利用Firebase Hosting来托管网站

文章目录 如何利用Firebase Hosting来托管网站前提条件详细步骤1. 安装 Firebase CLI2. 登录 Firebase3. 初始化 Firebase 项目4. 准备网站文件5. 部署到 Firebase6. 配置自定义域名&#xff08;可选&#xff09; 常见问题 如何利用Firebase Hosting来托管网站 以下是更详细的…

【Python】进阶学习:pandas--describe()函数的使用介绍

&#x1f40d;【Python】进阶学习&#xff1a;pandas——describe()函数的使用介绍 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&am…

关于锂电池短路测试

了解锂电池短路测试 电池短路试验测试标准有哪些&#xff1f;宏展告诉你 - 哔哩哔哩 (bilibili.com) 电池电芯上架亚马逊美国站认证标准和要求UL1642测试 - 知乎 (zhihu.com) CR123A电池的短路试验: CR123A电池为例_锂锰电池所需通过的安全性能测试_纽扣电池_锂锰电池_松下电…

若依启动run-modules-system.bat报错问题解决方案

在启动run-modules-system.bat时遇到了一些问题,在网上搜索无果后,排查解决完毕 1.启动nacos时,报错如下 Error creating bean with name grpcClusterServer: Invocation of init method failed; nested exception is java.io.IOException: Failed to bind to address 0.0.0.0…

Linux Tcpdump抓包入门

Linux Tcpdump抓包入门 一、Tcpdump简介 tcpdump 是一个在Linux系统上用于网络分析和抓包的强大工具。它能够捕获网络数据包并提供详细的分析信息&#xff0c;有助于网络管理员和开发人员诊断网络问题和监控网络流量。 安装部署 # 在Debian/Ubuntu上安装 sudo apt-get install…