温馨提示:

资料下载过程中如遇在线文档打开失败的情况,建议多尝试两次。压缩包文档建议下载下来后再进行解压缩操作。

华芯微特开发论坛

 找回密码
 立即注册
搜索
热搜: SWM341 资料
查看: 1022|回复: 0

SWM181系列应用

[复制链接]

32

主题

78

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
90681
发表于 2024-1-2 11:27:25 | 显示全部楼层 |阅读模式
一、SWM181系列 ISP功能
1.1、注意:ISP引脚为B0VCCGNDUART-RXUART-TX 下载引脚。所有型号的UART-RX - - > A0UART-TX - - > A1

1.2、注意:板级设计必须留出ISP引脚,防止调试过程中芯片锁死后或不正常工作后,SWD不能访问,可以通过ISP擦除恢复状态。


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


三、SWM181系列的IO端口应用
3.1、口单一引脚的电流、位带功能
注意:SWM181IO口 单一引脚的拉电流和灌电流是20mA,超过该电流会引起复位。
SWM181 GPIO不带位带功能,在应用中如希望如有需要GPIO操作不被ISR打断,需要开关全局中断。


3.2SWM181系列引脚支持的FUN功能
注意:SWM181系列的引脚支持FUN功能,支持复用成可配置为 UART/I2C/PWM/TIMER/CAN/HALL 功能。
SPI的功能引脚是固定的,以及模拟功能的ADC引脚,SLCD引脚都是固定的引脚


四、SWM181系列的DMA应用
注意:SWM181 外设支持DMA,支持CANADC、内部FLASHSRAMSPIUART不支持DMA


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


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


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


6.2CAN模块的ERR的应用  (摘自刘智创跟进记录  2021-08-29中) --2021.09.09
注意:技术支持客户,协助验证SWM181 CAN通讯的配置,BS1BS2,和波特率的配置,会影响CAN通信是否成功。而且181 CAN模块不能自动回复总线正常,除非ERR寄存器累计计数到255。配置手动清零回复正常的操作。
图片8.png
CAN功能模块初始化参数的设置,可参照“CAN_UART_波特率&PLL时钟计算_20220325.xlsx”。


七、SWM181系列的FLASH应用
注意:内部FLASH必须以4K为单位擦除,写入地址必须能被0x1000整除。


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


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


8.3SWM181系列ADC采样时间      
象:太SAR ADC使用过程中发现SAR ADC的转换所需要的时间和计算的周期不一致。
例如使用外部晶振32M主频,8分频作为ADC的时钟,设置SIMPLE_16,按每通道转换周期为14个时钟来算,那么单通道转换速度为:17858/秒,周期为56us。但客户实际测试采集1280个点,通过IO翻转共花费了113.85ms,平均每次采样88.9us。和实际的56us相比相差甚远。
图片11.png
用库函数ADC中断的例程(SimplADC)进行测试,为了准确中断里面的函数和基本上替换成寄存器操作,测试环境是24Mhz主频,8分频作为ADC的时钟,设置SIMPLE_1SIMPLE_2SIMPLE_4SIMPLE_8SIMPLE_16,并且中断发生1000次后,设置IO进行翻转一次。
根据计算,按每通道转换周期为14个时钟来算,应该分别在4.6ms9.3ms18.6ms37.3ms74.6msIO翻转间隔,但是实际测量出来的结果并不一致。SIMPLE1/2/4/8/16之间好像没有明确的倍数关系。并且程序试过在非cache·模式下和cache模式下都试过,实际值测量结果几乎没变化。

分析与解决:该问题暂时无解。可以根据客户实际应用需求来配置和设计软件逻辑。


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


九、SWM181系列的系统时钟应用
注意:SWM181 没有RTCSLEEP支持定时器唤醒。
     SWM181的主频最高是48Mhz,不能超频。
     SWM181 的深睡眠需要通过MOS管关断AVDD1的供电,确保低功耗的电流。
图片12.png


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


十一、SWM181系列找不到内核
11.1、供电电压的影响
现象:客户的项目应用硬件平台,用适配器上电,芯片不能正常工作,SWD端口找不到JLINK设备。 采用JLINK供电,芯片可以正常工作。连接JLINK后,适配器供电,再断开JLINK,芯片可正常工作。
图片13.png
分析及解决:请客户配合,用示波器查看SWM181的复位脚、电源脚的信号,发现当适配器单独供电时,上电瞬间过程,电源脚的电压有冲击,电压为4.3v,并维持400us左右。 如下图:

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




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

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


12.2UserBoot 擦写App Flash的大小端模式

现象:技术协助客户应用UserBoot升级,181 UserBoot升级调试总是失败,
分析&解决:经过排查后是发现,客户处理错了升级所需写入的数据,ARM是需要数据格式是小端,客户按照大端处理。

12.3UserBoot应用的烧录操作   
现象: 客户反映ZB103烧录有问题,SWM181烧录不进去
分析及解决:SWM181烧录带userboot的程序时,由于SWM181Userboot需要B0上拉,但是未烧录的空片板子和已烧录板子容易分不清烧录方式,所以建议客户需要烧录时候单独把B0下拉,确保都能正常烧录。


十三、SWM181 PWM功能
注意:1、设置占空比后,不是立即生效,需要等到上一个周期结束后生效。    --2021.6.2
          2、关闭PWM再打开,PWM将重新计时。
            3、注意设置PWN周期、占空比等参数时不要超过固件库定义的结构体成员数据范围,否则会出现波形紊乱、与参数不符、无法正常改变输出的现象。
            4、在应用PWM功能过程中,如需要对PWM的频率进行调整,需要向关闭对应的PWM模块,进行频率配置后,再打开对应的PWM模块。如果不关闭对应的PWM模块,直接设置周期,PWM模块输出为高电平或低电平。
如需要实现PWM实时的调整,则可以应用 PWM的新周期开始中断功能,在中断中设置新的PWM 周期,可以实现实时的PWM 周期调整。
SWM201SWM341系列则可以直接设置PWM周期,不需要先关闭PWM模块。
         5PWM停止后,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
分析:评估由于SWM181MCUSPI Flash叠封构成的,二者的复位电平不一样,如果系统上电曲线过于缓慢,可能导致MCU退出复位状态了,而SPI Flash还处于复位状态中,这样MCUFlash读取程序就会读出错误的内容,从而MCU进入了 HardFaultMemManage。 如下图:
图片16.png
1.15.1

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


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


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


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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|华芯微特开发论坛

GMT+8, 2024-9-8 10:20 , Processed in 0.035540 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表