广告

原创 菜鸟,请你们真爱生命,远离Proteus

2013-1-3 21:50 1600 0 6 分类: MCU/ 嵌入式

*注:此文专为21IC而著,可以转载,但需保留本说明,否则将可能导致版权追究

      Proteus可能是本版面最受争议的软件之一,我骂他,同时也因为骂他而受别人骂,所以今天我就来告诉新同学们为什么Proteus是菜鸟杀手(老鸟请自觉跳过本帖,你们用不用Proteus都是那么回事)。

严重声明:本人与地球上任何销售软/硬件仿真器的公司、组织、利益团体或个人没有任何利益瓜葛。本文观点仅代表个人见解,不承担围观者因本帖而导致的任何技术错误、软硬件损失、经济损失、精神损失;因新同学围观本文导致的仿真软/硬件设计、制造和利润下滑情况与本人无关!

      为什么老鸟用Proteus与我无关,因为他们知道什么是硬件,而菜鸟不知道。为了说明这个问题,我们先跑题到达芬奇画鸡蛋的故事上去,这个故事告诉我们,世界上没有两个长相完全一样的鸡蛋。

      OK,现在我要告诉你,世界上同样没有两个长相完全一样的硬件系统。不信么?你找一张光盘,把它复制一张,然后用计算机程序来校验,程序会告诉你,他们完全一致(说俗一点就是他们上面0和1的排列顺序是一样的)。那么现在请你找两只电阻,两只标称阻值都是10k的电阻,请你量一下他们的阻值相同么?什么?你说相同?那是因为你的3位半万用表不够精确,你用10位半的量一下呢,但是在电路图上,他们都是10k,或者至多再标个±5%之类,Why?这就是硬件——世界上没有两个完全一样的硬件

      可以说,当一个软件被编写完成之后,他的一切行为就是确定的了(具有事件驱动架构的程序除外,本括号仅为避免被其他老鸟痛批,新同学请无条件跳过),烧录进10000个单片机去,都是同一个软件。但是当一个单片机产品被设计出来后,生产线上所加工出的每一个产品,都有着不同的特性。比如三端稳压器7805,不是每一个的输出电压都在5.000000000V上的,有5.01的,有5.03的,如果你的单片机系统有设计缺陷,对5.01V的可以工作,对5.03V的就要出错,这就是硬件的特点——离散性

      硬件设计中很大的一部分工作就是在“容差”,就是说我们明知道构成系统的每一个元器件都有误差,却能够通过概率统计、理论计算,让系统工作起来,这是一项很繁杂的工作,有很多老鸟在设计中会用“经验”二字来代替计算,这通常是没有什么问题的,放生产实践上看,出个万分之一的废品率也就不得了了,但是对正在学习工程思想的菜鸟就是毁灭性的。

      如果你不服上面的话,请自己看21IC的帖子,有多少菜鸟在把Proteus设计移植到现实中发生了困难!我甚至还见过LED数码管不加限流电阻就在Proteus里点的。

      如果你还是坚定不移的认为Proteus是神圣不可侵犯的话,我再给你说一个:

      单片机从休眠状态唤醒,对晶体和匹配电容的要求是很高的,如果激励不足,将导致无法唤醒,设计上除了要选择激励功率合适的晶体和仔细匹配晶体所需的匹配电容,还要在高、低电源电压,高、低环境温度的组合中做休眠唤醒实验以确认激励合适。
请问哪一个仿真软件可以完成上述工作?元器件这么多自然属性(精度、温漂、离散、老化、寄生参数)请问哪个仿真软件可以对每个元件建立精确的数学模型?

      最后,再说下Proteus是拿来干什么的。应该说这个软件是给老鸟偷懒用的,比如调个串口通讯,写个I2C时序啥的还成,因为老鸟要的只是功能验证,硬件容差的原理他们已经在N年前就知道了。不过这个软件的作者也不厚道,起码应该在启动界面里做个“**”的标志吧!

      末了,诊断自己是否菜鸟的方法是:问实际电路能运行,Proteus里不能仿真之类问题的是老鸟,反之,是菜鸟。
 

广告

文章评论 6条评论)

登录后参与讨论

billzhu_345737527 2015-6-29 14:55

夸大其词

billzhu_345737527 2014-4-14 00:04

验证性软件,又不用它来设计电路。

lost山贼 2013-12-29 16:45

说的蛮对的,因为之前就是因为protues仿真51单片机P0口时没加上拉电阻,液晶正常显示,但是到硬件的时候,液晶没上拉电阻根本不工作.....protues是仿真不了上拉电阻的把

billzhu_345737527 2013-10-16 00:38

本来就是验证设计思路的,不用这么严谨,老鸟也不一定会放限流电阻,proteus能行的,现实一定也可以,只要别忘了放限流电阻。

zhiyuan1005873_971557568 2013-1-8 20:04

深理,凡事都有片面性,不能一概而论。

billzhu_345737527 2013-1-7 19:17

话说我也是菜鸟,但是没有Proteus,直接做硬件,那不现实。当然,我们也知道,但凡元器件,实测值与标准值一般会有不同,不然正态分布的概念也就白学了
相关推荐阅读
wfbisheng_262691721 2013-01-13 19:43
最近做的一个PWM波
这个程序是正对430f149,开始学习这款单片机,由于我需要参数一个频率在100K~200K之间的频率,所以就采用外部晶振。。由于最开始设置没对,时钟没信号输出。最后发现不能设置LPM3 ,并且后...
wfbisheng_262691721 2012-12-31 11:44
nios ii 调试SDRAM读写
最近想用Nios完成SDRAM读写的问题,可是总是出问题,如果不用SDRAM,即是直接对IO口赋值,能够正常的完成,可是当把数据先缓冲到SDRAM中,然后再进行读取一直没反应。然后上网搜原因,大概...
wfbisheng_262691721 2012-12-25 11:37
nios 中常见函数
  (转)NiosII常用函数整理 IO操作函数 函数原型:IORD(BASE, REGNUM)  输入参数:BASE为寄存器的基地址,RE...
wfbisheng_262691721 2012-12-25 10:22
nios 工程编译报错问题
在编译时发生了如此报错,根据报错发现应该是路径太长了,可是转到D根目录下还是报错,上网收了一下,有可能是自己的工程名与下面底层模块名同名了, 或是工程名或者是模块明中有空格号等。 在C盘...
wfbisheng_262691721 2012-12-07 11:29
Cyclone III中LVDS的设计
  一,概述 LVDS低压差分信号,最早由美国国家半导体公司 提出的一种高速串行信号传输电平,由于它传输速度快,功耗低,抗干扰能力强,传输距离远,易于匹配等优点,迅速得到...
我要评论
6
0
广告