/*************************************************************************************************************
*************************************************************************************************************/
芯片模式选择“义隆模式”,进入睡眠后,会异常唤醒,导致功耗偏大:
①“义隆模式”没有键盘唤醒的单独使能位。唤醒后,由程序判断是否为设定引脚的电平发生了改变,之后再选择睡眠或者工作。
②选择“菲林模式”,并配置相应的使能位。
晟矽模式与兼容义隆模式,在对PCL进行加法运算(PCL+ACC)时,系统会将加法运算结果自动进位至高位寄存器。
兼容菲林模式,在对PCL进行加法运算(PCL+ACC)时,需手动对高位寄存器进行操作。
建议:在汇编中定义数组时,建议用ORG将地址固定。
GPIO系列除复位脚外,其余脚作为开漏口输出高。VDD 与 IO 有压差时,会导致整个 MCU 功耗增加。
建议调整芯片外围,使IO为VDD电压。
以MC30P6080为例:
①配置相关寄存器:使能对应定时器与PWM;
②设置对应的周期与占空比,使能对应端口输出;
③PWM信号由T1PWM0提供,可以从两路端口输出(P11与P12);
④FPWM信号由T1PWM1与TIPWM2组合,固定从P10输出。
因PWM1端口输出信号由T1PWM0决定,所以可以选择是否开启PWM1功能,然后修改比较寄存器,来修改FPWM的占空比; FPWM信号固定从P10脚输出;P11与P12可以选择两个同时输出,或任意一个输出PWM信号。 |
详细使用方法参考如下:
void PWM_INIT(void) { T1CR = 0xc0; T1CNT = 100; T1LOAD = 100-1; T1DAT0 = 50; T1DAT1 = 0; T1DAT2 = 50; PWMCR = 0x69; // PWM0OE = 0; //允许P12端口输出PWM信号 // PWM1OE = 1; //允许P11端口输出PWM信号 // PWM2OE = 1; //允许P10端口输出组合逻辑信号 // DBCLK = 0; //T1时钟不倍频 // PWMMD = 1; //P10输出组合信号 // PWMINV = 0; //同或 // PWM1E = 0; //使能PWM1 // PWM2E = 1; //使能PWM2 }
不管是否使能ADC功能,当有ADC功能的端口电压大于VDD时,会导致AD功能异常。
部分芯片在AD使能后,需延时一段时间等待电路稳定。
参考电压为VDD,通道为VDD/4,则AD转换理论值为4096/4=1024。通过比较高6位B'001111或B'010000,即AD采集值在:960-1087之间,则表明ADC模块已正常工作。
对于低功耗要求高、计时精度要求不高的应用,可使用内部低频计时,但其误差较大。此时,可使用内部高频来校准内部低频,修正其偏差。
分类 | GPIO-OTP | GPIO-FLASH | AD-OTP | AD-FLASH |
型号 | MC30P6250 | MC30F6910 | MC32P8141 | MC51F003A4 |
MC30P6280 | MC30F6920 | MC9902 | MC51F8124 | |
MC30P6230 | MC32P8112 | MC32F7062 | ||
MC30P6240 | MC32P7311 | MC32T8132 | ||
MC30P6201 | MC32P7351 | MC32F7122 |
原理和步骤:
①采用内部高频在上电时校准内部低频计数器;
②定时器时钟配置为内部低频,启动定时器计数;
③延时设定时间,读取定时器的计数值,按照此计数值重新装载到定时器中,利用定时器分频,装载值位移,实现不同定时。
MC51F003A4的T3时钟源选择低速时钟时,无法通过高频校准低频来实现软件定时。 |
①芯片供电电压不在工作范围内;
②查看VDD输入电压是否存在突变,导致芯片损坏;
③快速断电再上电的应用:VDD端电压未跌落至复位电压以下,芯片没有复位。可以修改LVR,或者在VDD端增加电阻加快放电。
①检查WDT配置、清狗时间和位置是否正常;
②检查VDD电压是否稳定、是否低于LVR设定电压;
③仿真测试,是否复位。
在接入锂电池后,测量VDD与GND没有电压:
①测量锂电池正负极,查看电压是否正常;
②检查电路中的锂电保护IC ,是否需要激活。
能正常进入低功耗模式,但无法唤醒:
①查看对应的唤醒方式是否使能。
②检查休眠程序(参考对应的DemoCode);
注:在退出低功耗模式后需添加至少两条空指令进行延时。 |
外挂或内置24C02,在写EEPROM时会有大电流。
SDA通讯信号冲突:EE芯片在输出最后一个数据到一半的时候,会提前发送应答信号,从而导致端口冲突,产生大电流。
解决方法:SDA输出最后一位数据位的时候,只输出一半脉宽。
部分型号的数据指针寄存器FSR的高位会是一个固定值,并且只能读不能写,因此在用FSR寻址时应注意他的初始值; |
在使能相应中断前,建议先清除相应的中断标志位,以免因端口状态变化造成初次中断误触发。