STM8S105工作过程复位003如何解决外部干扰,频繁复位重启

查看: 612|回复: 6
STM8S003掉电复位死机问题
ADL 该用户已被删除
提示: 作者被禁止或删除 内容自动屏蔽
主题帖子精华
在线时间576 小时
掉电标志是有的.注意看手册
ADL 该用户已被删除
提示: 作者被禁止或删除 内容自动屏蔽
主题帖子精华
在线时间576 小时
S003供电范围是&2.95V,&5.5V吧.
2.7V当然不可能正常工作了.这种情况应该是没有办法在睡眠状态吧.低电复位会一直在工作状态.
想办法加大芯片的VCC的电容试一下.硬件上下点功夫来解决这个问题.
ADL 该用户已被删除
提示: 作者被禁止或删除 内容自动屏蔽
主题帖子精华
初级会员, 积分 72, 距离下一级还需 128 积分
在线时间12 小时
外挂了100uf的电容也一样,电压太低了。估计只能去换电池保护板了
真的假的,100uf都不行
主题帖子精华
初级会员, 积分 57, 距离下一级还需 143 积分
在线时间11 小时
电压太低了,我实测过大部分在2.75V复位,少数芯片能在2.6V复位
必看:"原子哥”极力推荐 /1
资料包括正点原子开发板全套视频,源码,手册等。原子粉丝请关注公众号。
Powered by闲来无事写了一段STM8S的ADC例程
&&&&最近两天闲着没事,搞搞STM8。上一道小菜:用PB口的AIN功能,实现AD转换。一个旋钮式电位器从PB3(AIN3)输入,转换后的信号经PD3(TIM2_CC2)输出至LED。想要的现象:调节电位器,LED的亮度会随之变化。就这么简单,go!
/***************************************
**文件名称:main.c
**外部晶振:8MHz
**CPU型号:stm8s105s4
**端口说明:LED-------PD3(TIM2_CC2)
**&&&&&&&&&&电位器----PB3(AIN3)
****************************************/
#include&stm8s105c_s.h&
unsigned int AD_V&&& // AD转换后的值存放在这里
void CLK_Init(void)
&&& CLK_CKDIVR &=~(<font color="#ff);&&& // fHSI = fHSI RC/2=8MHz
&&&&CLK_CKDIVR |=<font color="#ff;&&& /* fCPU = fMASTER/2=1MHz
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&默认上电后,主时钟使用HSI RC/8=2MHz */
void GPIO_Init(void)
&&& PD_DDR |=<font color="#ff;
&&&&PD_CR1&|=<font color="#ff;& // 配置PD3为推挽输出
&&&&PD_CR2& =<font color="#ff;& // 输出速率=2MHz
void TIM2_Init(void)
&&& TIM2_PSCR =<font color="#ff;&&& // TIM2不分频
&&&&TIM2_CR1&|=<font color="#ff;&&& // 使能TIM2计数器
&&& TIM2_ARRH =<font color="#ff;
&&&&TIM2_ARRL =0xFF;&&& // 计数重装值=256
&&& // 控制LED的亮度&&&
&&&&TIM2_CCR2& &=<font color="#ff;
&&&&TIM2_CCMR2 |=<font color="#ff;&&& // TIM2配置为PWM2模式
&&&&TIM2_CCER1&|=<font color="#ff;&&& // CC通道配置为输出使能、低有效
void ADC_Init(void)
&&& ADC_CR1& =<font color="#ff;&&& // fADC = fMASTER/2,复位即进入低功耗模式
&&&&ADC_CR2& =<font color="#ff;&&& // 默认左对齐
&&&&ADC_CSR& =<font color="#ff;&&& // AD输入通道 =PB3(AIN3)
void LED_Control(void)
&&& unsigned int i;&&&& ADC_CR1 |=<font color="#ff;&&& // 开启ADC&&& i=6;&&& while(i--);&&& ADC_CR1 |=<font color="#ff;&&& // 从低功耗模式中唤醒ADC
&&& while(!(ADC_CSR &<font color="#ff));&&& // 等待转换完成&&& AD_Value =((((unsigned int)ADC_DRH)&&2)+ADC_DRL);&&& // 结果送入AD_Value缓冲区
&&& TIM2_CCR2H =<font color="#ff;&&& TIM2_CCR2L =(unsigned char)(AD_Value&&2);&&&// 结果由PD3口送出至LED
void main(void)
&&& _asm(&sim&);
&&&&CLK_Init();
&&&&GPIO_Init();
&&&&TIM2_Init();
&&&&ADC_Init();
&&&&_asm(&rim&);
&&&&while(1)
&&&&&&& LED_Control();
这么简单的东西,差点出了个错误。那就是没有使能ADC(ADC_CR1=0x01),结果猛调电位器,看到的只是最小阻值位置时灯熄灭,其它阻值处亮度一致最亮的乱像。
&&最后修改于
请各位遵纪守法并注意语言文明stm8s003低电压检测_中华文本库
数显交流电压表芯片使用手册 1 简介 http://shop.taobao.com 数显交流电压表芯片采用 ST 公司低成本、高性价的 STM8S003F3,并固化数显表采样 算法,显示...
它是 STM8S 的内核的工作电压。需要在外 部加一...芯片能够监测外部(3V/5V)和内部(1.8V)电源掉 电。...低电平复位,如下图,设计按键复位电路: 3、STM8 ...
STM8S共有9个复位源_计算机硬件及网络_IT/计算机_专业资料。单片机的复位 ...o o 电压迟滞用以保证清楚地检测电压的上升和下降。 即使是 MCU 处于低功耗...
检测待转换的模拟电压 ? 电压超出检测范围就置位AWD...低功耗 特性、数据格式、触发配置、 DMA配置,OVRMOD...STM8S ADC 16页 1下载券
STM8单片机快速入门_V...查看: 11866|回复: 9
STM单片机很容易受干扰而程序丢失-一个MCU应用异常的案例分享
本文作者:Miler Shao
一天,有个客户跟我电话,他在用STMCU开发车载产品,STM32和STM8都有用。STM32芯片用在他的多路控制板上,STM8S105用在另外显示面板上。多路控制板上的STM32与显示板上的STM8S105进行UART通讯,电源由从多路控制板这边送过去,两块板之间用了根近2米的普通信号连接线作供电和UART信号传送。STM8S105 的供电电压为5V。
客户反映他的产品已经生产1000多套,小批量送样出去。他的客户反映产品的STM8S105很容易受干扰而程序丢失。他拿到退货后如果重新烧录又能正常工作。
因其进度紧,相约于一晚上见面继续了解情况,探讨问题原因。
见面后他进一步反映,每次STM8S105头次烧录后能正常工作,如果无外来干扰,也能保持正常状态。但如果STM8s105这端的显示板受到外来干扰,比方电源波动[其实不一定限于电源波动,只是找了这么个简单而有效的比较粗暴的办法,他们用手指在多路控制板端的电源供电线路的器件上一派乱摸,导致给显示板的供电异常波动]后,STM8S105工作异常属实。断电后再上电也不能恢复正常,即使多次掉电上电也无济于事。的确很有点像程序丢失的味道。
连上STLINK,打开STVP查看程序[客户之前没有做读保护],读出后进一步跟原始烧录文件比对,一模一样。说明程序并未丢失。既然程序没有丢,而STM8S105显示板受干扰导致功能异常后即使断电再上电都没法回归正常。难道芯片在电源波动干扰时坏了?
检测STM8S105的VCAP脚电源,1.8v,内核供电稳稳的。其复位电路为10K配104电容,参数没什么异常。测试RST复位脚电平,结果是2.5v,显然不正常,正常应该是5v。因为他说产品都测试过了,小批量出货。首先比较怀疑电源剧烈波动时个别器件或STM8s105出了故障,还有那根近两米的电源传输缆线让电源波动时的情况变得更为复杂。
当晚作罢,建议其第二天做电源线路的自行检查,外围器件和STM8S105芯片的更换比对测试。
第二天上午客户反馈,他把所谓的坏板的复位电路处的那个外接电阻从10K更换为110欧就正常工作了。听后一惊,觉得没道理。但人家说行,就只好先建议他多测试下,然后自己心里继续思考到底怎么回事。
到了下午客户反馈回来,说按上午的接法是比之前稳定多了,当用手摸供电模块时还是会出状况。要命的是,当他在110欧的条件下更换MCU芯片做烧录时几乎没法正常烧录。这是跟之前接10K时是不一样的新状况。说明他随手更换为110欧并不靠谱,也没理论支撑。当时他更换后感觉好些了,并非真的稳定好了。
记得前一天晚上我随便扫了几眼他的源代码,不复杂。他使用外部晶体做时钟源,UART通信和部分GPIO及显示控制。不过,经过近2天我对该客户的接触,感觉他因为太忙对整个开发没花什么心思,代码是基于ST库代码修改而来,基本没时间做太多研究。
鉴于此,想到他使用外部时钟,需要他做代码配置。突然怀疑会不会是他的时钟配置出了问题,而且如果时钟配置出了问题,比如超频了,那上面的那些奇怪现象就不难理解了。想到这里,我电话他屏蔽跟HSE时钟配置有关的所有代码,使用系统默认HSI做主时钟。
功夫不负有心人,还真是他在利用HSE进行时钟配置的地方出了问题。改用HSI后,复位线路回归正常接法。他们继续用手去触摸电源供电线路的器件会让STM8S105产生复位,但复位后能回归正常运行状态。不像之前受干扰后就回不去了。之前被怀疑因为电源异常波动可能致损的芯片都能正常工作了。
看到这里会有人好奇,他为什么会想到把那个RC中的电阻改为110呢?这点出乎我意料,呵呵。因为头天晚上我测试异常板的复位脚电平时发现电平才2.5V,不正常。没想到他第二天为了想把RST脚电平凑到接近VDD,他就不停减小电阻直到复位脚电平接近5V。当然凑巧的时是,此时功能还真有改善,这更加让他自信这个动作的合理性了。
当然还有个原因,后来他告诉这个问题也拖了几个月了一直没找到原因,病急乱投医也可以理解。这种情况在产品开发过程中也较普遍,在时间进度紧急时先应付了再说。
这里或许有人觉得疑惑,既然他MCU内部时钟配置错误了,为什么第一次烧录后能妥妥地的工作,还可以给客户送样,直到受到外在干扰时才出现异常呢?第一次烧录后的代码和受干扰再次上电的代码并无差别。这点我也迷惑不解,有知道的欢迎留言交流。
但可以肯定的是,他的超频时钟问题代码总归是让芯片工作在技术手册参数约定之外的不可靠无保障的状态。即使某种条件下的正常运行也不能视为真正的正常状态,就像个醉汉个别的正确言行并不代表他的言行可靠一样,因为本身就是出于一种不靠谱状态。
应该说事情并不复杂,但往往由于客户在出现状况时不够冷静淡定去找原因,往往急于片面下结论而使得自己的项目进展缓慢;或者无意地把误判信息再传达给别人而让事情复杂化或玄奥化,类似情况可谓不胜枚举。
比方说,前些天有个工程师问我,说某STM32 芯片的某管脚怎么不听使唤,奇怪纳闷,问是否有特别之处。我查看手册,该管脚跟别的绝大部分GPIO并无特性上的差异,让其继续检查。后来发现是代码在两处作了不一致的配置。再说个实例,也是几天前有个工程师反映说在SWIM烧录时,只要配置了某管脚输出时就没法烧录。咋听起来两个东西应该是不着边际,让其检查该脚控制了些什么。后来发现该脚控制了某个电源开关管,它的通断直接影响到MCU的供电。
套用一句类似评价家庭幸福的话来结尾,正常产品的结果是一致的,异常产品的症状和原因是五花八门的。
受益匪浅。
我在这里也补充点,
我使用的是STM8S003F3。 在RX这块加一个上拉电阻也能消除一定的干扰。
受益匪浅。
我使用的是stm32f103c8t6,刚开始用几个月都没问题,最近几个月也出现程序丢失的情况,还没找到原因。谢谢楼主分享,受益良多.
最近几天老化测试产品时,我也发现丢失程序的问题了。用的STM8S207,生产出货大半年了。初步认为是买到散新货,IC质量差。
偶尔进来的,看完后,倒是满载而归,学习了!
学习了&&有时间请教下么& &PIC单片机的程序丢失也是这个原因么
看标题好可怕,打算8s003做电源驱动呢,看完原来是代码问题
我用的也是STM8。也出现上面的状况。可是我已经在了等待。HSE是24M的。数据表上显示最大24M也是可以用的啊
谢谢,很实在的经验分享,对我很有帮助!
我也遇到过这样的情况,有一款用STM8S003F3做的车载仪表,部分三包品不开机,重新烧一下程序就OK了。但是这个板子用的是内部时钟,可以确定的是肯定与干扰有关,具体原因没有查到。
Powered by在电子工程世界为您找到如下关于“STM8S105”的新闻
很多刚接触STM8单片机的入门者不知到如何使用TIM1和TIM2的定时器作为定时功能。下面介绍如下:TIM1的初始化1us:系统时钟是16M。void set_TIM1_nus(u16 nus){&/*1u的记数周期*/&/*TIM1_TimeBaseInit(0x0F,TIM1_COUNTERMODE_UP,nus...
stm8s定时器输出比较一般用来做pwm输出。因此通过pwm输出来讲解输出比较。手册中说“脉冲宽度调制(PWM)模式可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRi寄存器确定占空比的信号”。由这句话得出:1、ARR的值,即定时周期=pwm周期 2、占空比=CCR/ARR。此处的x表示1,2,3,即TIM1,TIM2,TIM3。i表示通道号,具体看芯片引脚图...
,在自己的工程中需更改为自己的头文件 */#include&iostm8s105k6.h&unsigned int ms_count=0;//毫秒计数/************************************各种函数声明************************************/void InitLED();void InitTIM1();int...
STM8常用中断指令开总中断&_asm(“rim”);禁止中断&_asm(“sim”);进入停机模式&_asm(“halt”);中断返回&_asm(“iret”);等待中断&_asm(“wfi”);软件中断&_asm(“trap”);STM8S常用中断映射如使用中断函数时,可以通过在上图中查找相对应的中断向量号...
前言:STM8S003配置TIM4频率设置在100kHz,即10us中断一次问题:想要配置100k,但是顶死了60k,这么配置都上不去!疑惑:库函数和寄存器到底有多大差别?正文:1&配置TIM4基本定时器(计数器只有256个)// & &TIM4_DeInit();&& & TIM4_TimeBaseInit...
/*&TIM1_CCMR& BIT 6-4:& 110:PWM模式1- 在向上计数时,一旦TIM1_CNT&TIM1_CCR1时通道1为有效电平& ,否则为无效电平;在向下计数时,一旦TIM1_CNT&TIM1_CCR1时通道1为无效电平(OC1REF=0)& ,否则为有效电平(OC1REF=1)。& 11...
一、简介本文介绍STM8S系列如何使用定时器1进行精确定时1S。二、实验平台编译软件:IAR for STM8 1.42.2硬件平台:stm8s003f3p6开发板仿真器:ST-LINK库函数版本:STM8Sx_AN3298_FW_V4.0.0三、版权声明原文地址:http://blog.csdn.NET/feilusia四、实验前提1、在进行本文步骤前,请先阅读以下博文...
= TIM1_RepetitionC&}&void TIM1_Cmd(FunctionalState NewState){& & /* Check the parameters */& & assert_param(IS_FUNCTIONALSTATE_OK(NewState));&& &nbsp...
/*&名称:C51、STM32和S3C2440中断体系的比较&说明:对于这三个芯片的中断体系来说,就我目前了解的, 我说:差不多。这里说的差不多,是中断的本质上差不多,都是首先中断源提出申请(比如触发了外部中断,定时器中断等),然后经过中断源屏蔽寄存器,再然后中断优先级的比较,最后CPU相应中断。(我去,这好像又回到了计算机组成原理啊)。不同的是细节...
/*&名称:总结C51、STM32和S3C2440的时钟体系和定时器&说明:对于C51单片机来说,其谈不上什么时钟体系。片上运行的所有东西都靠一个时钟脉冲提供–外部晶振。&对于STM32来说,其时钟体系比较复杂。为了达到降低能耗的目的,再设计STM32时,其厂商特地设计了一个STM32的时钟树。就连最简单的点亮一个LED灯,都必须配置其时...
STM8S105资料下载
基于STM8S105单片机的人体触摸感应控制led闪烁demoan3279
......\Libraries
......\.........\STM8S_StdPeriph_Driver
......\.........\......................\inc
......\.........\......................\...\stm8s...
新手必备学习STM8S105手册,有大量解决方案和源码 新手必备学习STM8S105手册,有大量解决方案和源码 新手必备学习STM8S105手册,有大量解决方案和源码...
使用STM8S105的BLDC项目源代码...
关于STM8S105的信息。...
stm8s105系列的LCD显示例程,在显示器上循环显示若干个字符。并记录循环的次数,将次数的格式从int转化为字符串,并在显示屏上显示出来。...
STM8S入门教程通俗易懂...
包含各种模块,LED、液晶屏、串口等,对于学习stm8l开发板有很大帮助。...
stm8s寄存器说明中文版,stm8s系列单片机编程通用。...
帮助您去使用ADC和I2C。...
gtetfaesrhyyyyyyyyyywr...
STM8S105相关帖子
请教各位大师,我采用PC1-PC3接上臂,PB0-PB2接下臂,PA4-PA6接HALL,利用GPIOA的上升沿和下降沿进中断换相。转动正常。现在假如我手动卡住电机停转后,电机就不会自动启动了。因为GPIOA口的HALL信号没有变化,无法进中断,要如何处理呢?怎么在程序里面判断电机停转?
STM8S105驱动有感无刷电机,卡住电机停转后,如何重启动? “怎么在程序里面判断电机停转...
STM8S105S4T6C&&I2C 通信 大神懂得给讲讲~~&&万分感谢!!
STM8S105S4T6C
IIC协议 讲什么?你是IIC不懂还是STM8的寄存器设置不懂,哪个不懂就百度哪个,网上资料一大堆
再说了,你就放这样一个标题上去,谁会给你讲?最起码自己先看看资料,哪里不会的再发上来
你这样问问题只能得到两个结果,第一种就是你这个帖子...
} 我用stm8s105改的红外发码及解码程序,请问哪里出错了,不能中断解码 请多多指教
太长了,你截一下看中断服务执行没
[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=2034508&ptid...
大家好,最近在做一个项目关于PWM输入捕捉的,使用的单片机为STM8S105,我在用STM8的输入捕捉功能 利用库函数TIME1 CH1 捕捉PE0的频率 很准,但是我在此程序基础上将PE0口的频率 改为由 TIME2 产生,同样使用TIME1 CH1 捕捉,捕捉到的频率不对是怎么回事? TIME2 产生的PWM 用示波器测试很准的 望高手指点,谢谢!!!!!!
库函数捕捉程序如下...
今天收到的快递是大牛IC爬虫给寄的板子,太感谢了,不光有BQ25504_Launchpad BOOST太阳能采集板的板子,还有电阻电容,电感都有!还有一些不知道干什么用的板子,等回头我弄完太阳能采集板再研究其他的。
一个CC3D的飞控板子
一个凌力尔特的最大功率跟踪方案的充电板子
飞思卡尔陀螺仪气压计等传感器的模块板子
STM8S105最小系统
launchpad的液晶扩展...
习惯了用寄存器,不会用库。网上看了好几个人的教程总是有各种问题。在stm8.h里面添加了#define STM8S105
然后在stm8s_conf.h里面又提示Fatal Error[Pe1696]: cannot open source file &stm8s_adc1.h&
请教一下,这个怎么解决的啊?哪位前辈有详细一点的教程吗
STM8 IAR坏境用库...
我现在用STM8S105控制着LED灯,然后我用的是定时器PDM的调光,但在最低灰度下面,灯光依然过亮,我现在需要把灯的最低等级亮度控制到非常低。越低越好,但又需要线性调光。但是因为单片机性能有限,256级灰度下,最低的点亮时间也会比较长,估计有10US,想问下大家有没有好的办法可以把这个10US时间缩得更短一点?
怎么样才可以把PDM的占空比变得非常小 这个受你的CPU时钟频率的限制...
楼主今天还更不?更吧~~
辛昕 发表于
那就搬个板凳等着
本帖最后由 辛昕 于
22:57 编辑
接下来是一块 stm8s105的discover
这是我在用stm8s的时候,最主要用的一快板子。
所以后半截那个 万用板,我在上面加了很多排针,和一个 flash芯片 sst...
这几天又重新焊了几块以前打的stm8s003的最小板,一直用的好好的。
但不知为什么这次搞了两块,换了三块芯片,都是新的,不知为什么,却连下载都不行。
用同一个st-link,去给板上的stm8s105下载好好的。而且也换了一个iar官网正版的软件(其实没啥道理的,只是试试)。
最后分析来分析去,觉得问题应该还是出在 stm8s003最小板上,可问题会是哪里呢?想不通,因为这是个极其简单...
事情是昨晚决定接着做stm8s003系列例程,这次是简单的串口。
虽然是很简单的,但是因为我马上就能用上,所以我还是决定先做这个。
在使用库的时候,因为我过去一直用的型号是stm8s105,这型号上面只有一个uart2,而现在的stm8s003只有一个uart1,链接库时提示打不开uart1。
我忽然想起st库很操蛋,有很多根据型号才打开的条件宏。
于是我就下决心收拾一下这个该死...
STM8S105视频
你可能感兴趣的标签
热门资源推荐

我要回帖

更多关于 STM8S105工作过程复位 的文章

 

随机推荐