一、SWM201系列ACMP应用 注意: 应用例程库测试ACMP功能,比较器P端输入与N端输入的电压接近,如相差100mv时左右时,会不断触发翻转的中断,P端增加104电容效果稍好,还有不断触发翻转的概率。
二、SWM201系列ADC应用2.1、ADC配置 对于ADC的配置,CTRL2寄存器的15:8位域,在ADC初始化时,建议把该寄存器位域配置为0x7f,这样具有更好的温度适应性,如下图: 另,ADC的分频配置,需要斟酌着配置,尽量使得配置后的ADC模块采样率低于等于1M,对于采样速度要求不高的场合,甚至配置更低的采样速率效果会更好,比如500ksps或者200ksps。对于电机驱动应用,60M主频下,配备64分频,是一个比较常用的配置,如下图:
2.2、SWM201 ADC触发 应用 注意:SWM201 ADC如果切换到软件触发,PWM的TRIG使能也需要关闭。 如下:
分析:ADC触发档切换成CPU触发的时候,PWM虽然不会进行ADC的使能,但是还是会进行通道的使能,但不会进行通道的切换,这样会导致CPU采样目标通道不正确,在EN的一瞬间被切走。
2.3测试不同外接输入阻抗的情况 --2021.7.15 注意:芯片供电5v,应用SimpleADC0 例程库。由于ADC内部有加BUFFER,输入阻抗为无穷大,对ADC外接输入电路阻抗要求比较低。实测外接100K上拉电阻,或外接10K电阻上拉电阻,ADC内部电路对输入电压没有影响,ADC转换值基本接近。 相比之前的其它型号,这方面表现要好。
2.4、SWM201 ADC的线性情况 现象: 有客户反映201ADC模块不稳定,存在线性问题,转换值变化不一致。 分析及解决:SWM201ADC确实存在线性问题,并且不是每一颗线性度都一致,导致客户大量退货。目前软件上没有很好的处理方法,短期处理办法可以通过出厂时先筛选一次来解决。 后期会优化内部模块线路。
三、SWM201系列 FLASH应用3.1、擦写应用 注意:SWM201的FLASH擦写为512字节对齐,和其它型号需要4K字节对齐的规则有所不同。 --2021.8.20
3.2、 关于FLASH在系统编程 在有些项目中,有时候需要在Flash记忆体上保存数据,模拟EEPROM的方式存储临时数据或者掉电关机前,需要保存数据,供下次上电时再读取出来进行继续运行,此时需要程序具备读写Flash的功能。我司提供的标准基础库文件里面,有具体的例程供参考,这里只是提示下要注意的地方,如果用到SWM201的Flash读写功能,需要把swm201_flash.c这个文件放到SRAM区执行,操作方法,就是在keil平台上,打开了SWM201的工程文件,找到swm201_flash.c这个文件,右键选第1个:
在弹出的配置窗口里面,选IRAM1,如下图:
这样,就可以实现Flash在系统编程了。
四、 SWM201系列IO端口4.1、 M0/M1端口配置串口应用 (摘自 陈任明 跟进记录 2021-08-29)--2021.09.09 注意:要配置201的M0/M1脚为UART1功能,需要添加如下语句, *((volatile uint32_t *)0x40000190)=0; GPIO_Init(GPIOM, PIN0, 1, 0, 0, 0); GPIO_Init(GPIOM, PIN1, 1, 0, 0, 0);
如应用为SWD下载程序时,须注意此组端口不要连接其它外设,否则出现下载不成功现象。
如要恢复SWD端口功能: *((volatile uint32_t *)0x40000190) = 1;//切换SWD端口必须加上,未在固件库中开放给用户 PORT_Init(PORTM, PIN0, PORTA_PIN2_SWDIO, 1); PORT_Init(PORTM, PIN1, PORTA_PIN4_SWCLK, 1);
4.2、B9以及ADC8通道 注意:ADC8通道,位于脚位B9脚,如果内部启用了OPA0运放,或者比较器,则该引脚不可用于普通IO口,也不可用于ADC8通道采样;只有内部关闭OPA0运放(或一开始就不启用),B9脚才可以配置为正常的IO口或者ADC8通道采样。
4.3、SWD口和UART口复用 注意:SWM201G6S7本身脚位不多,为了烧录还占用了两个口,如果又需要后期进行上位机调试,需要1个串口,如果再占用IO口,就显得浪费了。此时可以考虑SWD口和UART口复用的方法来实现,这个SWD口转换为UART口,和其它正常的串口初始化不同,会多一个地方需要配置,就是需要在一个内存位置写入一个0值,如下图: 也就是在SRAM地址0x40000190处写入0值,这样UART1口才可以成功的配置为串口,这个需要注意的地方。另外,如果使用这个复用方法,需要在程序开始时,做一个延时,不要一开始就如此方式初始化这个串口(UART1),这样会导致下次再用SWD时麻烦,因为一上电,芯片的SWD口就被配置为串口了,无法通过SWD烧录新的程序了。当然这个延时初始化串口,也会有技巧,完全有自己把握,只要达到初始化串口延时即可,实际功能可以不延时,上电就运行实际功能。
五、 SWM201系列下载烧录应用5.1、无法烧录程序现象之一 现象:检测了8块201C6T7小系统板,无法烧录程序。 分析&解决:芯片CAP引脚虚焊导致的无法烧录程序。
5.2、ISP烧写 注意:ISP烧写方式,不需要握手操作,PB10、M0、M1对应连接好后,应用PC端软件工具SYNWIT_PRG打开串口直接下载即可。
六、SWM201系列PWM应用 6.1、PWM占空比设置 注意:PWM占空比的设置,正常配置时给0值占空比,其实际输出并非真正的0占空比,而是有一个死区宽度的脉冲输出,如果想要消除这个脉冲输出,需要在更新占空比时判断一下,如果占空比小于死区时间,此时应直接配置为0占空比,同时把死区时间配置为0,且先配置duty再配置Deadzone。 对于用TIMER来输出PWM占空比波形,也存在类似的问题,要消除“0占空比”的窄脉冲输出,需要临时 的对TIMER进行显式停止,就是主动的调用Stop使其停止输出,即可。
七、SWM201系列比较器应用 7.1、比较器的滞回值设置 注意:芯片内置了比较器,且滞回值可调,理论上是这样,但实际上,芯片的滞回值会比规格书上载明的要高些,且有一定的偏差;使用时建议斟酌使用,可以关闭滞回,或者实际使用过程中,适当的做些补偿,可以避免因滞回效果不佳带来的问题。
八、SWM201系列 SLEEP应用注意:测试SWM201的睡眠功能应用,测试过程中通过串口唤醒功能应用,如果是外部晶振为系统时钟,并不能让MCU 真正睡眠,在等待MCU为唤醒的循环中,串口一直在发送数,内部硬件并不能真正睡下去。切换为内部RC时钟,MCU则可以真正睡眠下去。按规格书描述,SWM201的睡眠功能须在内部高频时钟下进行切换。MCU睡眠后,电流在2mA左右。 所以,应用中系统时钟为外部晶振,SLEEP功能则参照一下方式进行切换应用。
九、SWM2021上电等应用9.1、频繁上电及长时间上电问题 现象: 上海海凌电梯-乐清欣灵电气,反映201/211芯片频繁上电或者掉电很久之后重新上电容易出现死机 分析及解决:SWM201和211等芯片内部升压LDO存在问题,慢上电或存在一个初步电压都会导致内部LDO进入自保护状态,就不会给芯片供电。在客户端看来就是芯片上电死机。 (注:此处只作为现象进行描述。解决的办法,评估是要断开内部LDO的V0.6_Ref的测试回路。 零时的解决方案A5端口的下地电阻要为100k。)
9.2、SWM201系列启动不良问题 注意:SWM201系列若启动不良时,可以优先察看CAP脚是否有1.8V,若没有需要在CAP脚增加10K上拉电阻。
现象: 客户艾感,反馈做的一批样板在未烧录程序的情况下上电电流很大,芯片发烫。 分析与解决:拿到客户样板后初次上电并未发现电流过大(2mA左右),经过与沟通得知是大概率出现的问题,重复几次上电便复现了电流过大(133mA),此时测量CAP脚电压时发现只有1.2V,没有起来,给CAP脚加上10K的上拉电阻再测试发现仍然有几率复现核电压没起来导致电流过大的情况,用示波器察看样板上电瞬间的波形发现有很大的过冲,5V有一瞬间达到了6.5V,CAP脚电压有瞬间达到了5V,察看客户原理图发现在5V电源输入处没有一个大的电容,之后给样板加上一个220uF/16V的电解电容后再上电测试,发现不再有过冲,CAP脚的电压也能起来(1.8V),电流也不会过大导致发烫。 (未加电容上电瞬间波形)
|