为信仰充值

昨天打开币虎 COINGECKO查看steem行情,发现已经横在1.9元好几天了:
image

突然想起自己在火币交易所还有1.5X个ETH,之前是花1999买的,最低的时候只剩下7百多块,现在是1600多,看样子是回不了本了。所以,想着既然在混steemit,还是把它换成steem吧,万一 @ned有什么出人意料的大动作,steem起飞了呢。

所以,挂在0.0018 STEEM/ETH,看看什么时候能成交。

睡了一觉起来,发现已经成交了,我有了885个steem。
image

这一批steem,我的成本在RMB2.26左右,虽然比现价高了不少,但是所有的数字货币都差不多鸟样,还是为了信仰保有steem吧。

目前还没想好这800多steem用来干嘛,是power up以后继续点赞大家呢,还是power up以后代理出去赚点利息呢?还是干脆纯粹拿着币等待起飞呢?

哎呀呀,人穷就是纠结多,实在是没办法。要是有钱的话,哪里需要为这1千多块钱考虑这么多啊!!!

唉,真是穷!!!

Posted using Partiko iOS


This page is synchronized from the post: 为信仰充值

一点心得:谈谈研发过程中的灵异现象

作为中国大陆教育出来的科技从业者,特别是研发工程师,可能大部分都和我一样,是无神论者,因为整个教育的大环境就是那样的。

我坚信科技是第一生产力,相信科学研究和实验会拨开迷雾厘清问题,相信这个世界上没有无因的果。

可是,随着研发工作的持续和深入,慢慢的,会碰到越来越多的“灵异现象”。

在遭遇的当下,任凭怎么用心努力排除万难,你会发现问题犹如被一种看不见摸不着的不可控力所操纵,那些bug属于超自然的存在,反科学反理性,完全超出自己的认知。

这个时候,相信绝大多数从业者会对自己产生怀疑,会对这个世界产生怀疑——根本没有所谓的科学,科学的尽头是神学,不然牛顿怎么会到最后信了上帝呢?

所以,我们可以在网络上看到越来越多的程序员,在写完程序,实际运行之前,要烧香拜佛;有越来越多的RD,在项目实际面世前要请一些“大师”过来驱邪正气,以保证自己的工作不受鬼神打扰。这似乎逐渐成了一种风气,盲从者越来越多。

但是,作为一个有着十几年电子研发经验的工程师,我可以负责任地告诉你:或许在别的领域有超自然现象存在,但至少在我所处的嵌入式系统的研究领域,没有灵异现象。所有的异常,都有原因,也都能找到原因。

实际上,科学研究和内心信仰并不冲突,很多出色的科研人员,并不是唯物主义者。但是,这并不影响科学研究中认真地求证。

远的不说,就拿我这几天碰到的meter开机会RESET这件事来说。过程和解决方法在一个“优秀”研发工程师的苦——可能又是堆栈惹的祸一个“优秀”研发工程师的乐——原来是电源惹的祸有详细的叙述,如果你有兴趣的话,可以去看看,不看也可以,我简单描述一下现象,不影响这篇文章的阅读。

过程是这样的:

2019.1.2:

元旦放假回来第一天,我收到台湾同事(测试工程师)的消息,说我设计的一款meter在开机的时候不正常,有2种表现情况,并给我发了视频,看了不同的表现。而且几台meter表现都一样。

从视频可以判断出,异常的时候,meter复位了。于是我拿上手头的样品,这个样品和台湾测试的样品都是同一批试产出来的,而且台湾是几台都表现一样,可以排除个别差异。

可是,我试了几百次,异常现象根本无法重现。


2019.1.3:

忙了大半天,下午无意中继续测试meter,发现异常现象经常出现,且概率大于60%。


同样的meter,同样的人,同样的电池/同样的电源供应器,前后2天的结果截然不同。

说这是灵异现象似乎不为过:一定是出问题的时候,有怪力乱神出现,肯定不是设计问题,不然一整天测试几百次不出现怎么解释?!!!

这时,平庸的研发肯定会把锅甩给灵异现象,就此结案。但是,我不是“平庸”的RD啊!!最后我找到了原因,是电源的瞬态响应问题,使用的LDO(低压差线性稳压器)在瞬间电流变化时,会下跌,导致MCU复位。

本着打破砂锅问到底的精神,我仔细考虑了一下问题所在。

为什么2号测试不复位,3号测试一直复位???

所有的测试对象,人员,条件几乎都一样,但是结果不同。用科学的眼光来看,结果不同,一定过程不同,有差异。那么,这两天的差异到底在哪里呢?仔细回忆一下,差异在温度。

1.2号元旦后第一天上班,办公室4天没有进人,整个建筑物温度低,再加上空调不给力,到了中午室温只有10℃,我被冻得提前回家取暖了,下班前在京东下单买了个取暖器;

1.3号取暖器收到,加上空调的配合,室温在20℃以上。

我在上海,测试工程师在台湾,也有温度差异:台湾此时温度在20℃以上。

当然,温度不同,相对湿度也不同。有时候,湿度低的时候人体会有静电累积,操作仪表时会ESD放电,也会导致meter复位。不过在这个案例中,不是静电问题。

为什么温度不同会导致表现不同呢?

首先,在LDO输出电流变化的时候,输出电压是会波动的:

但是,没有不同温度下波动的影响。

根据meter的表现,可以推断温度越高,这个波动越大。但是datasheet里面并没有具体描述,但我们可以根据其他温度特性来推导。

我们来看看所使用的LDO的参数:

LDO的输出电压和温度有关,且温度系数有正有负。

不过,这个只和LDO的稳态输出有关,我们要看瞬态响应。

这个是LDO的Dropout Voltage vs Output Current关系:

从里面可以看出,温度越高,压降越大,这和电路内部的特性有关。稳态下是这样,瞬态响应也是差不多的,温度越高,压降越大。

再从LDO本身的功率消耗和不同温度下的关系:

可以看出,在VIN相同的情况下,温度越高,消耗的功率越大,也就是输出的电压越低(更多的功率消耗在LDO本身)。

从以上曲线关系来看,LDO的特性都是温度越高,输出特性越差,所以可以肯定瞬态响应性能也会变差。

哈哈,在我几乎放弃进一步研究的时候,发现了一个算是有直接关系的图表,负载瞬态响应和温度依赖性:

可以看出,温度越高,下跌越大。

那么,除了减小瞬间电流突变幅度以外,有没有别的办法来解决这个因为LDO瞬间响应特性差得问题呢?

有的。我们来看看负载电容的特性:

可以看出,负载电容越大,输出特性越稳定。

这个电容有一个要求,就是ESR(等效电阻)要小,否则在低温状态下可能引起震荡。当然,根据经验,也不可能非常大,比如放个2200uF,输出肯定能稳,但是上电瞬间充电电流过大,极有可能损坏LDO本身。

下面这幅图是原来CL只有20uF时,没有修改程序,同时大电流输出的瞬间下跌,跌幅接近2V:

如果把负载电容改为220uF,则跌幅只有0.2V,改善还是非常大的。所以,在成本允许的情况下,增大滤波电容也能显著改善问题,这就要看整个产品的性价比定位了。


好了,看了以上这些,你还相信在电子研发的过程中,真的有灵异现象存在吗?

作为一个合格的RD,必须详细研究所用元件的datasheet,对元件特性了如指掌,这样才能拨开迷雾见月明,让那些所谓的“灵异现象”统统破灭!!

科技改变生活,科技消除研发过程中的牛鬼蛇神,哈哈~~


参考文献:Seiko Instruments Inc. S801XX datasheet

Posted using Partiko iOS


This page is synchronized from the post: 一点心得:谈谈研发过程中的灵异现象

一(六十四):一点点

李敖写过很多文章,可谓是著作等身,《李敖大全集》是他大部分著作的合集,共80册,有3000万字。

而他写的歌,并不多。有一首还挺有名的,叫《只爱一点点》,歌词是这样的:

不爱那么多,
只爱一点点。
别人的爱情像海深,
我的爱情浅。
不爱那么多,
只爱一点点。
别人的爱情像天长,
我的爱情短。
不爱那么多,
只爱一点点。
别人眉来又眼去,
我只偷看你一个。

image
图源:pixabay

这个其实很有意思。你去看去问那些身处热恋的人们,他们到底有多爱对方,他们一定会说:

ta就是我的天,我的地,我的所有,我的全世界,我恨不得把自己完全都给ta,毫无保留,怎么舍得有丝毫保留呢?!!!
你的爱不纯粹,你好自私!!!

可能每一个人当初都是这样过来的。

可是,人生是一场没有终点的马拉松,你和你的爱人是要共度余生的,可能几年,几十年,甚至在现代社会医疗水平快速发展的今天,可能你们要在一起呆一百多年。

你用百米冲刺的劲头来跑这场马拉松,注定是完不成的。
image
图源:pixabay

这可能就是为什么那么多人“悔不当初”,结婚前花好稻好,一切都好,结婚后鼻子不是鼻子眼不是眼的,咋看咋别扭,婚姻成了爱情的坟墓。

李敖作为一个出了名的花心大萝卜,有2次婚姻,情史更是数不清楚,堪称阅女无数。

那么,他的爱情观是“只爱一点点”,是不是在为自己找借口呢?他自己怎么想的我不知道,但我觉得这个观点还是有一定道理的。

俗话说过犹不及,物极必反,盈久则亏。如果一下子用力过猛,则很难持久。而婚姻生活要的是相敬如宾细水长流,此爱绵绵无绝期。

所以,我认为最好的陪伴,就是:
你心里全部是ta,脑海里也全是ta,ta实际上占据了你全部的感情生活。但是,不要急于表现出来,慢慢来,不要像一个高压气瓶打开了阀门,刚开始惊天动地一鸣惊人,很快就空空如也弃如敝履。

只爱一点点,这是外人看到的样子,但是,你自己知道,这个一点点,可以持续到天长地久,海枯石烂,宇宙毁灭…………
image
图源:pixabay


零一系列汇总:

头(四十六)兼零(一):归零

零(二)

零(三)空

零(四):零和道

零(五)

零 (六)

零(七):零和游戏

零(八)

零(九):黑洞

零(十)

零(十一):消失

零(十二)

零(十三)兼一(一):老子天下第一

一(二)

一(三):一生一世一心一意

一(四)一的诱惑

一(五)

一(六):一尺之棰

一(七)

一(八):伯乐一顾

一(九)新鮮的朝氣

一(十):专一

一(十一)

一(十二):沆瀣一气

一(十三)一的承諾

一(十四)

一(十五):一窍不通

一(十六)

一(十七):一蟹不如一蟹

一(十八)

一(十九):一叶障目

一(二十)

一(二十一):一字之师

一(二十二)

一(二十三):一人得道鸡犬升天

一(二十四)

一(二十五):一箭双雕

一 (二十六) 一了百了

一(二十七)

一(二十八):一夔已足

一(二十九)

一(三十):一不做二不休

一(三十一)

一(三十三)

一(三十四):一曝十寒

一(三十五)

一(三十六):不名一文

一(三十七)

一(三十八):黄粱一梦

一(三十九)

一(四十):南柯一梦

一(四十一)

一(四十二):一地鸡毛

一(四十三)

一(四十四):一团和气

一(四十五)

一(四十六):一头雾水

一(四十七)

一(四十八):东一榔头西一棒子

一(四十九)

一(五十):不怕一万就怕万一

一(五十一)

一(五十二):一路上有你

一(五十三)

一(五十四):lonely

一(五十五)

2018的尾巴,写给你的一封信——一(五十六)

一(五十七)

今天是个好日子—— 一(五十八)

一(五十九)

一(六十):一场演讲——罗胖跨年演讲里的鸡汤

一(六十一)

一(六十二):一张奖状

一(六十三)


希望喜欢我文字的人,去看看这个吧,说说对我的看法,请我吃星星5 cred stars,谢谢啦~
我的 @ReviewMe 凭证留言板!


This page is synchronized from the post: 一(六十四):一点点

一个“优秀”研发工程师的乐——原来是电源惹的祸

昨天,我在一个“优秀”研发工程师的苦——可能又是堆栈惹的祸里面说,设计的仪表碰到了莫名的MCU复位问题,昨天测试了整整大半天,结果还是没有确诊,内心很是苦恼,没办法,只能暂且放过它(实际上是放过我自己)。

我之所以写这方面的心得,一方面是记录一下心得,日后备用;另一方面也是想让非研发人员能够进一步了解研发的过程,满足一下各位的好奇心。其实,很多时候我们研发中寻找/分析/解决问题的整个过程,对于一般日常生活的处理也是有不少借鉴意义的。

接下来我就描述一下昨天没有解决的这个问题,今天是如何解决的。

今天的关键点是这幅图:

环境描述:

昨天是元旦过后第一天上班,公司整整空了4天,暖气怎么打室温都上不来,只有10℃,内心冰冷加上外部低温,魔都的冬季魔法攻击让我像一条快要冻僵的蛇,生无可恋。

我早早地下班回家取暖,心中郁闷。

今天早上开始忙别的项目调试,一直到下午才忙完。因为昨天室温太低,我京东买了个取暖器,早上就到了,所以一整天室温在20℃以上,人还是挺舒服。


过程表现:

终于忙完了,我瘫坐在椅子上,无意中瞟到了昨天莫名复位的meter。我随手拿起来,按了开机键,奇迹发生了——昨天几百次的测试都没出现的状况,竟然出现了!!!

精神一振,我坐直了身体,连续开关了几次,几乎次次都复位!!!

这简直就是上天赐予我的礼物,我立即连上仿真器,打开PC调试软件,想看看到底是什么原因导致的复位。

可是,就在我信心满满debug要把虫子捉出来的时候,却再也没有出现过复位现象。

“TNND”,我心里暗骂一声,想,莫不是因为我没有给克劳德·艾尔伍德·香农烧纸拜会过,上天才会这样对我?

我拔下仿真器,重新开机测试,结果meter又复位了!!


找到规律:

这似乎有了规律,我反复插拔仿真器进行测试,结果发现:

也就是说,只要硬件上连接仿真器,即使PC不运行调试程序,meter也不会复位。

只要有规律,事情就好办。仿真器能治病啊!昨天已经排除了堆栈问题,因此,目前看来像是硬件问题而非软件问题。


确诊问题:

仿真器和MCU有4个连接引脚:

为了确诊是硬件问题,需要把这4个引脚中唯一一个有可能和软件有关的引脚BKGD排除在外,我将BKGD这根脚掰弯,只让仿真器连接VCC,GND,RST3根引脚,发现表现是一样的。

这就确诊了,100%是硬件问题。

仿真器的VCC同时也给mcu供电了,或者说,仿真器vcc引脚内部的电容同时也起到了滤波(蓄水池)的作用,因此接仿真器的时候,vcc不怎么下跌。

硬件问题相对比较好办,因为它就在那里,一般用示波器就能解决问题。

我拔掉仿真器,在开机复位时刻测量RST引脚波形,如下:

再量一下VCC波形,其形状和RST引脚类似,同样有2根下跌尖峰。而且VCC下跌的时候,最低电压跌到了1.8V以下。

这个就非常明确了,是因为开机的时候,VCC电源下跌,跌到了1.8V以下,导致了MCU复位。


寻找病因:

接下来,就是要找找电压下跌的原因了。

meter使用4节电池供电,几乎所有的元件工作电压是3.3V,因此使用一颗CMOS VOLTAGE REGULATOR U6来获得3.3V电压,具体线路如下:

前置滤波电容100uF,后置滤波电容20uF,这样的应用问题不大。

难道是U6供电能力不足而导致输出电压下跌?查一下U6的datasheet,参数如下:

输出能力大于50mA,而meter实际功耗如下:

  • 蓝牙模块耗电:21mA左右;
  • 背光耗电:10mA;
  • 测量模块:<5mA, 可以看出,耗电远小于50mA,所以供电能力是没有问题的。

而且,背光的电源是直接连接的Vbat,不是U6输出的3.3V,和这个下跌关系不大。

蓝牙供电线路开关如下:

可以看出,为了避免三极管Q10导通的瞬间对C14进行瞬间大电流充电,还使用了电感L2进行滤波,防止导通瞬间电流过大而影响U6输出电流下跌。

这在当初设计的时候都是充分考虑过的。

实际上,一般使用三极管/MOS管控制较大功率模块的时候,应该使用软启动来驱动三极管/MOS,像下图这样的驱动方式:

也就是让被控电压缓慢上升,以避免瞬间大电流。

只是蓝牙模块也包含一个MCU,上电时间过长的话,容易引发复位不完全的问题,因此在这里并没有使用软件启动的方式。

这样看来,单纯的从硬件分析似乎走入了死胡同。

我又重新回到软件部分来考虑潜在风险,仔细看了几遍以后,发现有一个地方可以改进:
我的设计是按键开机以后,有一个void module_init(void)函数,所有的模块初始化都在这里进行,部分代码如下:

也就是说,2个耗电较大的模块背光和蓝牙模块,几乎同时开始供电,消耗电流大约在30mA以上。

虽说背光是直接由Vbat供电,但是瞬间打开也会引起电池电压下跌,蓝牙模块的瞬间上电,也会引起U6 LDO的瞬间输出下跌,2个因素叠加,就有可能引发足以让MCU复位的电压。

为了确认问题,我修改了程序,蓝牙模块始终不上电,再开关机进行测试,发现再也没有出现过复位的情况。

这应该是100%确诊问题了。


解决方法:

最终我把蓝牙模块的上电初始化放在背光打开2秒以后,这样错开了瞬间大电流同时发生的情况,就再也没有出现过meter复位的情况了。

又解决了一个问题,作为产品的亲爹我还是很开心的。乐啊!!!!

这是不是说明作为一个工程师,勉强还称得上“优秀”二字啊……

至于为什么昨天测试了几百遍,都没有出现问题,而今天几乎次次都能出问题,各位有兴趣的话也可以考虑一下,是有鬼出没吗?是有什么不可抗力吗?是灵异现象吗?

下次有机会说说。

这就是一个研发工程师的日常工作状态,希望大家看了以后,能够有所启发,最重要的,是对身边的工程师好一点,再好一点,哈哈~~


参考文献:Seiko Instruments Inc. S801XX datasheet


希望喜欢我文字的人,去看看这个吧,说说对我的看法,请我吃星星

,谢谢啦~
我的 @ReviewMe 凭证留言板!

Posted using Partiko iOS


This page is synchronized from the post: 一个“优秀”研发工程师的乐——原来是电源惹的祸

一(六十二):一张奖状

之前说过,幼儿园老师说,决定派我家的小兔崽子和另一位女生,代表班级出战,参加幼儿园的看图说故事的比赛。因为班级里的选拔结束了,他们表现比较好。

image

老师决定好以后,就借给臭小子一本书,要把里面的图片都看看,练习讲故事。本来说2天就要还的,结果说等到学校比赛好了再还。

本来我想还掉了我就没啥事了,不用再帮他编故事,可是这样一来我就逃不掉了。

我实在是不愿意这么早就让孩子一副大人的成熟模样,因此对于故事内容我并没有指点他,每次都是听他讲。

30几个故事啊,真的要教的话也不太可能。

随便拍几张:
image

image

image

image

image

image

image

image

image

每天我就让这个小兔崽子讲2~3个故事,同样的图片,他每次说出来情节都截然不同,我也没有纠正他,只是让他声音洪亮一些,讲得有感情一些,不要害羞。

应该说,这样的锻炼还是有效果的。结果,他在幼儿园比赛中获得了二等奖。学校一等奖2个,二等奖10个,三等奖20个,一等奖的去参加区里的比赛啦。

不过听说公立幼儿园的小孩去讲故事,都是被私立幼儿园的小朋友秒杀的…………

实话说,我认为他那样的水平,能拿二等奖已经是很幸运了,我很满意了。

一张奖状,记录了孩子的成长,给了孩子继续的动力,我会收藏好这幅奖状,等他长大了以后,给他讲奖状的故事。


零一系列汇总:
太多了,历史请看一(六十一)


希望喜欢我文字的人,去看看这个吧,说说对我的看法,请我吃星星5 cred stars,谢谢啦~
我的 @ReviewMe 凭证留言板!


This page is synchronized from the post: 一(六十二):一张奖状

一个“优秀”研发工程师的苦——可能又是堆栈惹的祸

作为一个优秀的设计工程师,必须对自己设计的产品了如指掌,产品出现任何异常问题,都要能够解决,或者实在是难以解决的时候,至少,要知道产生异常的原因。

因为如果某个异常你不知道原因,就让它流向市场,来到终端使用者的手上,那么,很有可能会出现更大的异常,这时,异常有多大,带来的麻烦就有多大。

你不要问我是怎么知道的,每一个成熟的工程师应该都碰到过批量退货/召回…………不说了,说多了都是泪…………

这次就碰到一个问题:一款仪表在按键开机的时候,显示不太正常。

先说说病因,可能又是堆栈惹的祸:

现象:

正常的开机状况是:按POWER键开机后,液晶LCD显示和背光灯几乎同时亮起,在2秒钟全屏显示后,显示正常的读值,像图片这样:

LCD全屏显示,背光亮起

LCD显示正常测量值,背光亮起

但是,我实际碰到的情况是:按POWER键开机后,液晶LCD全屏显示,大约2秒钟后背光灯亮起,然后才显示正常的读值,像图片这样:

这个情况虽然不是经常出现,但是试个几百次,偶尔会碰到一次,很难重现,也找不到触发原因。看现象像是MCU复位了。


处理过程:

这还了得!产品就是自己的亲儿子,怎么可能让他出现这种设计之外的情况?!!

二话不说,连上电脑,重新烧录程序进入调试状态:

进行繁重而细致的debug工作。

可惜的是,我忙了整整一上午,再加上中午牺牲午睡时间,实在是难以重现上述情况。

现在有2种可能:
一是问题还存在,但因为很难重现,碰不到,也就抓不到虫子;
二是问题消失了。

第一条先不管它,因为不能无休止地耗时间进去,先看第二条。

一般来说,嵌入式系统在实际使用时发生复位,而在连接PC调试后却不出现复位问题,是由于堆栈溢出造成的。

因为MCU在进行操作处理,复杂算法计算时,如果堆栈尺寸不够,程序就会跑飞。而程序跑飞以后,由于看门狗watchdog发生作用,让MCU复位,程序重新运行。

而使用PC调试的时候,虽然说是仿真,但毕竟是“仿”出来的,不是真的“真实情况”,此时堆栈就不会溢出了。

于是,我打开MCU配置文件,看看堆栈的处理,原来堆栈放的尺寸是0x3FF,也就是1k byte。

这个项目使用的是Freescale公司的HCS08系列中MC9S08LL36的MCU,RAM配置如下:

共有4000bytes的RAM,还是比较充裕的。

再看看RAM使用情况,还有空闲,于是我把堆栈放的尺寸改为0x4FF,也就是比原来增大了256byte的空间,这样比较保险:

改完后,我又测了几百遍,没有发生上面说的异常情况。


结论:

这个问题可能解决了,但也可能没有解决。

我决定放过这个问题,原因如下:

  • 这个问题本身很难出现
  • 即使出现了,也就是发生了MCU复位,但是这款仪表本身没有记录功能(logger),也没有实时时钟,即使复位了,程序重新运行,对于测量没有影响
  • 堆栈改大了以后,很可能已经解决了这个问题。

前面说了,一个优秀的研发工程师应该能够解决问题或是100%清楚病因,今天这个情况,可能说明我并不是一个优秀的工程师…………

认清了事实真相,我心里好苦啊!!!!


感想:

研发工程师真不是好当的,不但前期设计要验证大量的条件/数据,碰到问题时要忍受枯燥的捉虫过程,即使付出这么多,也不能保证问题100%都能解决。真的是好苦啊!!

一个内心充满苦涩的人,只要一丝丝的甜蜜,就能乐开了花。

所以,你们身边如果有研发工程师的话,要对他好一点,比如现在你看到了这篇文章,就请大力点赞吧,哈哈哈~~


希望喜欢我文字的人,去看看这个吧,说说对我的看法,请我吃星星

,谢谢啦~
我的 @ReviewMe 凭证留言板!


Posted using Partiko iOS


This page is synchronized from the post: 一个“优秀”研发工程师的苦——可能又是堆栈惹的祸

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×