SWM181系列应用

一、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拆了之后便正常,如下图。

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

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

相关文章

Java——执行流程

一、执行流程 1、示例 //第一个Java程序 public class Hello{public static void main(String[] args){System.out.println("Hello World!");} } 编译&#xff1a; 执行&#xff1a; 我们可以看到这里的是类名&#xff0c;而不是字节码文件名 Hello.class &#…

Android manifest清单文件意外权限来源和合并规则

问题背景 当自写APP发现无缘无故多申请了多个权限,其中一个就是:android.permission.WAKE_LOCK. 一想就知道如果并非自己在APP main中引入的,那就是依赖的库清单文件导入进来的. 定位问题 定位手段 1.manifest-merger-buildVariant-report.txt 根据其内容可知, WAKE_LOCK 权…

分布式专题

一&#xff1a;分布式事务 1、理论基础 分布式事务主要区分本地事务 什么是本地事务&#xff08;Local Transaction&#xff09;&#xff1f;本地事务也称为数据库事务或传统事务&#xff08;相对于分布式事务而言&#xff09;。尤其对于数据库而言&#xff0c;为了数据安全…

图形学初识--矩阵和向量

文章目录 前言正文向量什么是向量&#xff1f;向量涉及哪些常见计算&#xff1f;1、取模2、归一化3、向量加法4、向量减法5、向量与标量乘6、向量点乘&#xff08;内积&#xff09;7、向量投影 向量有哪些基本应用&#xff1f; 矩阵什么是矩阵&#xff1f;矩阵涉及哪些常见计算…

【数据结构】冒泡排序、直接插入排序、希尔排序详解!

文章目录 1. 冒泡排序&#x1f34e;2. 直接插入排序&#x1f34e;3. 希尔排序&#xff08;缩小增量排序&#xff09;&#x1f34e; 1. 冒泡排序&#x1f34e; &#x1f427; 基本思想&#xff1a; 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。 大的数据…

使用docker部署项目

一、docker私有镜像仓库 1、docker私有镜像仓库 库&#xff08;Repository&#xff09;是集中存放镜像的地方&#xff0c;又分为公共镜像和私有仓库。 当我们执行docker pull xxx的时候&#xff0c;它实际上是从registry.docker.com这个地址去查找&#xff0c;这就是Docker公…

基于稀疏辅助信号平滑的心电信号降噪方法(Matlab R2021B)

基于形态成分分析理论&#xff08;MCA&#xff09;的稀疏辅助信号分解方法是由信号的形态多样性来分解信号中添加性的混合信号成分&#xff0c;它最早被应用在图像处理领域&#xff0c;后来被引入到一维信号的处理中。 在基于MCA稀疏辅助的信号分析模型中&#xff0c;总变差方…

交互设计如何助力传统技艺在当代复兴?

背景介绍 榫卯是中国传统木工中一种独特的接合技术&#xff0c;它通过构件间的凸凹部分相互配合来实现两个或多个构件的紧密结合。这种结构方式不依赖于钉子或其他金属连接件&#xff0c;而是利用木材自身的特性&#xff0c;通过精巧的设计和工艺&#xff0c;实现构件间的稳定…

【MAC】Spring Boot 集成OpenLDAP(含本地嵌入式服务器方式)

目录 一、添加springboot ldap依赖&#xff1a; 二、本地嵌入式服务器模式 1.yml配置 2.创建数据库文件&#xff1a;.ldif 3.实体类 4.测试工具类 5.执行测试 三、正常连接服务器模式 1.yml配置 2.连接LDAP服务器配置类&#xff0c;初始化连接&#xff0c;创建LdapTem…

Android framework修改,禁止指定包名的apk安装到设备上(基于Android10.0.0-r41)

文章目录 Android framework修改&#xff0c;禁止指定包名的apk安装到设备上(基于Android10.0.0-r41)1.新增接口提供给上层调用2.在pms中实现新增的接口3.找到preparePackageLI方法。4.测试验证 Android framework修改&#xff0c;禁止指定包名的apk安装到设备上(基于Android10…

如何利用短链接巧妙避开多渠道推广大坑

在当下&#xff0c;推广渠道多样化对企业来说&#xff0c;那可是机遇与大坑并存&#xff01;多渠道推广的重要性大家都懂&#xff0c;但为啥说有坑呢&#xff1f;一旦企业开启多渠道推广模式&#xff0c;就得面对大量人力物力的投入&#xff0c;可要是区分不了各个渠道的推广效…

超详细介绍基于微调 Faster R-CNN实现海上航拍图像中检测小物体-含源码与数据集免费下载

在航拍图像中检测小物体,尤其是对于海上救援等关键应用而言,是一项独特的挑战。及时检测水中的人可能意味着生死之间的差别。我们的研究重点是微调 Faster R-CNN(一种强大的两阶段物体检测器),以满足这一重要需求。 我们研究的核心是SeaDroneSee 数据集,这是一组重要的图…

【NumPy】全面解析add函数:高效数组加法操作

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

源达投顾的投资建议可不可信?

在金融投资领域&#xff0c;专业的投资顾问机构如源达投顾&#xff0c;为投资者提供了宝贵的投资建议和策略。然而&#xff0c;面对市场上众多的投资顾问机构&#xff0c;投资者往往会产生疑问&#xff1a;源达投顾的投资建议真的可信吗&#xff1f; 一、专业团队背景 源达投…

MSC Apex压力容器应力线性化的应用方法

应力线性化是针对压力容器设计常用的一种技术。在工程领域&#xff0c;应力线性化在分析复杂载荷条件下构件的结构完整性方面起着至关重要的作用。准确的应力线性化对于评估是否符合行业标准(如美国机械工程师协会(ASME)制定的标准)至关重要。为了简化应力线性化的过程&#xf…

HTML+CSS+JS简易计算器

HTMLCSSJS简易计算器 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简易计算器</t…

探索Django 5: 从零开始,打造你的第一个Web应用

今天我们将一起探索 Django 5&#xff0c;一个备受开发者喜爱的 Python Web 框架。我们会了解 Django 5 的简介&#xff0c;新特性&#xff0c;如何安装 Django&#xff0c;以及用 Django 编写一个简单的 “Hello, World” 网站。最后&#xff0c;我会推荐一本与 Django 5 相关…

JAVAEE之多线程进阶(2)_ CAS概念、实现原理、ABA问题及解决方案

前言 在并发编程时&#xff0c;常常会出现线程安全问题&#xff0c;那么如何保证原子性呢&#xff1f;常用的方法就是加锁。在Java语言中可以使用 Synchronized和CAS实现加锁效果。  Synchronized关键字保证同步的&#xff0c;这会导致有锁&#xff0c;但是锁机制存在以下问题…

慧尔智联携纷享销客启动CRM项目 推进客户经营升级与内外高效协作

智慧农业领军企业慧尔智联携手纷享销客&#xff0c;启动CRM客户经营管理系统项目。双方将深入合作&#xff0c;全面落实慧尔智联发展策略&#xff0c;持续提升数字化经营管理水平&#xff0c;实现内部团队信息化高效协作&#xff0c;以快速响应市场需求&#xff0c;提升客户满意…

竹云董事长在第二届ICT技术发展与企业数字化转型高峰论坛作主题演讲

5月25日&#xff0c;由中国服务贸易协会指导&#xff0c;中国服务贸易协会信息技术服务委员会主办的 “第二届ICT技术发展与企业数字化转型高峰论坛” 在北京隆重召开。 本次论坛以 “数据驱动&#xff0c;AI引领&#xff0c;打造新质生产力” 为主题&#xff0c;特邀业内200余…