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