• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【讨论】如何使自己具备开发软件硬件的能力

想让自己收入增长和能力成长,是一个不断努力的过程。先苦后甜,本人刚毕业出来也是个什么都不懂的毛头小孩,靠着那么丁点的运气,找了个好师傅领自己入门。师傅领进门,修行看个人。开始就多看书,多逛逛电源网论坛,看到好的帖子就收藏起来,有空的时候多看几遍,有一点理论基础了,多动手做做,解决实际开发中遇到的问题,你的成长就比别人快很多。大家发表下,怎么学习做硬件和软件,这个过程中遇到什么问题,什么困扰着你。每个人都是从入门到懂到精通这个过程走过来的,也许大家会有相同的经历。
全部回复(48)
正序查看
倒序查看
2014-04-10 14:11

这个帖子好,实用。

已经听到好多朋友在说,现在的设计需要软件方面的越来越多。硬件弄了很多年了,现在软件是挑战。

0
回复
2014-04-11 14:32

我出来工作后,本想把汇编的知识给扔的,安心做电源,后来公司有个方案要做LED遥控调光,我们厂没软件工程师,公司本来想把这个软件外发的,老大就问我,你懂不懂弄,我说试试呗,然后每天下班回家恶补软件,后面就和老大一起把这方案弄出来了。之后久久会都用到软件,知识就一直没忘的掉

0
回复
2014-04-11 16:21
这个问题很不错,也谈谈自己的一些观点和看法:

硬件:
      1.多做维修--最好是一边参照着电路原理图,一边维修,不能头痛医头,脚疼医脚,
很多问题可能是并发症,得从CPU这些电路去思考。

      2.多抄板,学习学习别人的电路设计思路,看到一个电路就能想到此电路的用途、
优缺点等。

      3.三极管电路和场效应管电路是基础,如果你能把三极管电路(放大,饱和,截止,震荡等)都搞清楚
说明你模拟电路算入门了。
	
      4.预算放大器,很多精密设备的放大是必须要依靠运算放大器的,再者运放会容易
控制一些。
	
      5.开关电源,研究研究开关电源也有助于学习MCU.
    
     6.数字电路,单片机这些基本电路都必须要去学习。

软件:
	
     1.数字电路是基础:程序实际上就是把数字电路用软件的形式搬进了一个集成电路里。
  
     2.如果想学好软件最好看看汇编语言,C语言,数据结构等,没有这几样的支撑程序的逻辑性
以及以后的大型程序是有瓶颈的。
    
     3.多看程序,多看人家的算法或是优秀的编写方式。

     4.1万行成才定律,如果你写的代码都不超过1万行就不要说你是软件工程师,1万行是门槛,有了这1万行
你基本就入行了。

     5.上位机,有硬件和下位机是不够的,必须要会一门上位机,只要你要能把上位机的DEMO程序写出来,有助于
软件工程师编写上位机。

	
	最后就是耐心,要能坐得住10个小时以上,没有这样的功夫就很难了!
0
回复
2014-04-11 17:23
@yueyunno1
这个问题很不错,也谈谈自己的一些观点和看法:硬件:1.多做维修--最好是一边参照着电路原理图,一边维修,不能头痛医头,脚疼医脚,很多问题可能是并发症,得从CPU这些电路去思考。2.多抄板,学习学习别人的电路设计思路,看到一个电路就能想到此电路的用途、优缺点等。3.三极管电路和场效应管电路是基础,如果你能把三极管电路(放大,饱和,截止,震荡等)都搞清楚说明你模拟电路算入门了。4.预算放大器,很多精密设备的放大是必须要依靠运算放大器的,再者运放会容易控制一些。5.开关电源,研究研究开关电源也有助于学习MCU.6.数字电路,单片机这些基本电路都必须要去学习。软件:1.数字电路是基础:程序实际上就是把数字电路用软件的形式搬进了一个集成电路里。2.如果想学好软件最好看看汇编语言,C语言,数据结构等,没有这几样的支撑程序的逻辑性以及以后的大型程序是有瓶颈的。3.多看程序,多看人家的算法或是优秀的编写方式。4.1万行成才定律,如果你写的代码都不超过1万行就不要说你是软件工程师,1万行是门槛,有了这1万行你基本就入行了。5.上位机,有硬件和下位机是不够的,必须要会一门上位机,只要你要能把上位机的DEMO程序写出来,有助于软件工程师编写上位机。最后就是耐心,要能坐得住10个小时以上,没有这样的功夫就很难了!
 yueyunno1说的很对,不管是做单片机硬件或者是电源别的硬件,模电数电基础必须过关,知道如何使用元器件,比如MOS,三极管的使用方法。还有多看看别人走线,了解工作原理,理解别人设计的理念,这样抄板或者是自己设计,都会事半功倍。到后期,了解一些认证标准,安规标准,使自己开发的产品能符合这些认证,这是个很漫长的过程
0
回复
2014-04-11 20:49
@wangchuangwccc
 yueyunno1说的很对,不管是做单片机硬件或者是电源别的硬件,模电数电基础必须过关,知道如何使用元器件,比如MOS,三极管的使用方法。还有多看看别人走线,了解工作原理,理解别人设计的理念,这样抄板或者是自己设计,都会事半功倍。到后期,了解一些认证标准,安规标准,使自己开发的产品能符合这些认证,这是个很漫长的过程
越来越多的硬件需要软件的支持,如UPS,移动电源,逆变电源,特别是这几年比较火的LED,需要进行调光,定时,遥控,我们还可以用带AD的单片机代替电源IC做控制哦,大家准备好没有
0
回复
2014-04-14 14:15
@wangchuangwccc
越来越多的硬件需要软件的支持,如UPS,移动电源,逆变电源,特别是这几年比较火的LED,需要进行调光,定时,遥控,我们还可以用带AD的单片机代替电源IC做控制哦,大家准备好没有

是的 好多工程师朋友也谈到了这点,硬件和软件的结合,是啊 大家准备好了么

0
回复
2014-04-15 14:40
@电源网-娜娜姐
是的好多工程师朋友也谈到了这点,硬件和软件的结合,是啊大家准备好了么

现在都在往智能方向靠近,电源也一样。需要配合调光,遥控等有点难度。坐等高手来解析。

0
回复
2014-04-15 22:59
@wangchuangwccc
我出来工作后,本想把汇编的知识给扔的,安心做电源,后来公司有个方案要做LED遥控调光,我们厂没软件工程师,公司本来想把这个软件外发的,老大就问我,你懂不懂弄,我说试试呗,然后每天下班回家恶补软件,后面就和老大一起把这方案弄出来了。之后久久会都用到软件,知识就一直没忘的掉
还是你厉害  什么都懂        得好好跟你学学才行
0
回复
2014-04-17 00:19
@宏日网缘
现在都在往智能方向靠近,电源也一样。需要配合调光,遥控等有点难度。坐等高手来解析。

搬个凳子过来向大师们学习

0
回复
flasdfgfh
LV.2
11
2014-04-20 19:57
@电源白杨
搬个凳子过来向大师们学习

先各位前辈学习!

0
回复
xiang1980
LV.1
12
2014-04-21 17:10
1、对于从事单片机或者嵌入式软件开发的人来讲,一般需要掌握以下基本技能:
(1)懂得C语言和一些简单的汇编语言编程。
(2)能够阅读一般嵌入式系统的原理图。
(3)至少熟悉一种嵌入式系统的软件开发环境。
(4)熟悉一种嵌入式系统软件的开发过程,如:单片机系统、DSP系统、ARM系统或其它的一些潜入式系统。
(5)理解常见的嵌入式操作系统的工作原理,理解线程、进程、信号量、消息机制、同步与互拆、并发控制等软件编程时用到的概念。
(6)必要硬件基础知识。
0
回复
xiang1980
LV.1
13
2014-04-21 17:11
@xiang1980
1、对于从事单片机或者嵌入式软件开发的人来讲,一般需要掌握以下基本技能:(1)懂得C语言和一些简单的汇编语言编程。(2)能够阅读一般嵌入式系统的原理图。(3)至少熟悉一种嵌入式系统的软件开发环境。(4)熟悉一种嵌入式系统软件的开发过程,如:单片机系统、DSP系统、ARM系统或其它的一些潜入式系统。(5)理解常见的嵌入式操作系统的工作原理,理解线程、进程、信号量、消息机制、同步与互拆、并发控制等软件编程时用到的概念。(6)必要硬件基础知识。
2、对于从事嵌入式硬件开发的人来讲,一般需要懂得以下基本技能: (1)会使用一种绘制原理图的软件绘制原理图。
(2)能够设计嵌入式系统的印制板。
(3)能够进行一般嵌入式系统的关键器件选型。
(4)掌握一般元器件的手工焊接技术。
(5)能对设计的板卡进行必要的调试。
(6)能够熟练使用万用表、示波器和一些常用仪器的使用。
总之,单片机嵌入式系统的开发,是个复杂的工作,需要一个实践的过程才能正真地掌握它。
0
回复
2014-04-21 21:11
@xiang1980
2、对于从事嵌入式硬件开发的人来讲,一般需要懂得以下基本技能:(1)会使用一种绘制原理图的软件绘制原理图。(2)能够设计嵌入式系统的印制板。(3)能够进行一般嵌入式系统的关键器件选型。(4)掌握一般元器件的手工焊接技术。(5)能对设计的板卡进行必要的调试。(6)能够熟练使用万用表、示波器和一些常用仪器的使用。总之,单片机嵌入式系统的开发,是个复杂的工作,需要一个实践的过程才能正真地掌握它。
要学的东西还是很多的,电子的东西,学到老都学不完~
0
回复
madboy21
LV.8
15
2014-05-01 01:10

说下我这老油条的看法吧

我认为最重要的是有没兴趣而已

开始我们大多人都一样,什么都不知道。在接触开关电源时,我们知道PWM这个概念,有兴趣的人呢可能就会去了解更多,当我们知道MCU有PWM功能时,很多人就开始对比这个PWM与电源管理芯片PWM有什么差异?对比得到一个答案:MCU的PWM精度太低,不能满足大多电源的应用。但我们会想如果提高时钟频率,或者增加模拟关闭功能就好了。

约在06年吧,我有一个非常兴奋的发现,在查看pic16f785数据表时这片子PWM具有自动关闭功能,也就是说我们可以通过配合MCU片内比较器实现PWM无级调节。当时第一想像就是这片子完全可以模拟3842等类似功能电源管理芯片。

在后来的几年里,MCU集成越来越多的功能,如CLC,NCO,DAC,CWG等等。我们可以完全用单片机模拟一些类似于L6562或SY5810等芯片。

有兴趣呢就自己多研究些,没兴趣呢最多就跟下项目。

0
回复
2014-05-01 18:50
@madboy21
说下我这老油条的看法吧我认为最重要的是有没兴趣而已开始我们大多人都一样,什么都不知道。在接触开关电源时,我们知道PWM这个概念,有兴趣的人呢可能就会去了解更多,当我们知道MCU有PWM功能时,很多人就开始对比这个PWM与电源管理芯片PWM有什么差异?对比得到一个答案:MCU的PWM精度太低,不能满足大多电源的应用。但我们会想如果提高时钟频率,或者增加模拟关闭功能就好了。约在06年吧,我有一个非常兴奋的发现,在查看pic16f785数据表时这片子PWM具有自动关闭功能,也就是说我们可以通过配合MCU片内比较器实现PWM无级调节。当时第一想像就是这片子完全可以模拟3842等类似功能电源管理芯片。在后来的几年里,MCU集成越来越多的功能,如CLC,NCO,DAC,CWG等等。我们可以完全用单片机模拟一些类似于L6562或SY5810等芯片。有兴趣呢就自己多研究些,没兴趣呢最多就跟下项目。

好帖子,得顶

0
回复
qingjunfa
LV.2
17
2014-05-03 14:24
@yueyunno1
这个问题很不错,也谈谈自己的一些观点和看法:硬件:1.多做维修--最好是一边参照着电路原理图,一边维修,不能头痛医头,脚疼医脚,很多问题可能是并发症,得从CPU这些电路去思考。2.多抄板,学习学习别人的电路设计思路,看到一个电路就能想到此电路的用途、优缺点等。3.三极管电路和场效应管电路是基础,如果你能把三极管电路(放大,饱和,截止,震荡等)都搞清楚说明你模拟电路算入门了。4.预算放大器,很多精密设备的放大是必须要依靠运算放大器的,再者运放会容易控制一些。5.开关电源,研究研究开关电源也有助于学习MCU.6.数字电路,单片机这些基本电路都必须要去学习。软件:1.数字电路是基础:程序实际上就是把数字电路用软件的形式搬进了一个集成电路里。2.如果想学好软件最好看看汇编语言,C语言,数据结构等,没有这几样的支撑程序的逻辑性以及以后的大型程序是有瓶颈的。3.多看程序,多看人家的算法或是优秀的编写方式。4.1万行成才定律,如果你写的代码都不超过1万行就不要说你是软件工程师,1万行是门槛,有了这1万行你基本就入行了。5.上位机,有硬件和下位机是不够的,必须要会一门上位机,只要你要能把上位机的DEMO程序写出来,有助于软件工程师编写上位机。最后就是耐心,要能坐得住10个小时以上,没有这样的功夫就很难了!
楼上总结很到位
0
回复
XVP21
LV.1
18
2014-05-03 16:04
@yueyunno1
好帖子,得顶
向大师们学习
0
回复
sherlocked
LV.4
19
2014-05-03 20:33
@yueyunno1
这个问题很不错,也谈谈自己的一些观点和看法:硬件:1.多做维修--最好是一边参照着电路原理图,一边维修,不能头痛医头,脚疼医脚,很多问题可能是并发症,得从CPU这些电路去思考。2.多抄板,学习学习别人的电路设计思路,看到一个电路就能想到此电路的用途、优缺点等。3.三极管电路和场效应管电路是基础,如果你能把三极管电路(放大,饱和,截止,震荡等)都搞清楚说明你模拟电路算入门了。4.预算放大器,很多精密设备的放大是必须要依靠运算放大器的,再者运放会容易控制一些。5.开关电源,研究研究开关电源也有助于学习MCU.6.数字电路,单片机这些基本电路都必须要去学习。软件:1.数字电路是基础:程序实际上就是把数字电路用软件的形式搬进了一个集成电路里。2.如果想学好软件最好看看汇编语言,C语言,数据结构等,没有这几样的支撑程序的逻辑性以及以后的大型程序是有瓶颈的。3.多看程序,多看人家的算法或是优秀的编写方式。4.1万行成才定律,如果你写的代码都不超过1万行就不要说你是软件工程师,1万行是门槛,有了这1万行你基本就入行了。5.上位机,有硬件和下位机是不够的,必须要会一门上位机,只要你要能把上位机的DEMO程序写出来,有助于软件工程师编写上位机。最后就是耐心,要能坐得住10个小时以上,没有这样的功夫就很难了!
这么多的东西啊,,,这叫我这个本来有点迷茫的人有了方向,但是似乎不管从难度上还是工资上,都不太符合自己的期望,难道电子工程师,就是这样辛苦吗????
0
回复
sherlocked
LV.4
20
2014-05-03 20:35
@wangchuangwccc
要学的东西还是很多的,电子的东西,学到老都学不完~[图片]
对啊,,而且电子领域的发展这么快,,感觉几年都要一直追着发展走,,
0
回复
sherlocked
LV.4
21
2014-05-03 20:37
@XVP21
向大师们学习
对啊,,大师们快给点提示吧,,,
0
回复
2014-05-04 09:26
@madboy21
说下我这老油条的看法吧我认为最重要的是有没兴趣而已开始我们大多人都一样,什么都不知道。在接触开关电源时,我们知道PWM这个概念,有兴趣的人呢可能就会去了解更多,当我们知道MCU有PWM功能时,很多人就开始对比这个PWM与电源管理芯片PWM有什么差异?对比得到一个答案:MCU的PWM精度太低,不能满足大多电源的应用。但我们会想如果提高时钟频率,或者增加模拟关闭功能就好了。约在06年吧,我有一个非常兴奋的发现,在查看pic16f785数据表时这片子PWM具有自动关闭功能,也就是说我们可以通过配合MCU片内比较器实现PWM无级调节。当时第一想像就是这片子完全可以模拟3842等类似功能电源管理芯片。在后来的几年里,MCU集成越来越多的功能,如CLC,NCO,DAC,CWG等等。我们可以完全用单片机模拟一些类似于L6562或SY5810等芯片。有兴趣呢就自己多研究些,没兴趣呢最多就跟下项目。
兴趣是最好的老师啊~
0
回复
madboy21
LV.8
23
2014-05-08 19:36
@电源网-娜娜姐
兴趣是最好的老师啊~

有了兴趣,要去实践,才能更好的提升自己。

在电源领域来说,软件基本没什么特别的要求,重点还是在硬件上。

通信方面可以用现有成熟模块就可以了,对于一款数字电源来说我认为如果控制芯片操作PWM,功率管电流控制保护等工作,这部份控制程序应由硬件工程师完成。

0
回复
2014-05-08 19:49
@madboy21
有了兴趣,要去实践,才能更好的提升自己。在电源领域来说,软件基本没什么特别的要求,重点还是在硬件上。通信方面可以用现有成熟模块就可以了,对于一款数字电源来说我认为如果控制芯片操作PWM,功率管电流控制保护等工作,这部份控制程序应由硬件工程师完成。
嗯,说的有道理,不过现在LED方面用到软件的机会会比电源多,毕竟适配器不用调光或者无线控制。而且很多小厂并没有软件工程师,一般都是由工程担当软件和硬件。对于大厂来说,硬件工程要是有一点软件基础,和软件工程师讨论实现电路来说更容易。起码要知道单片机的最小系统。
0
回复
madboy21
LV.8
25
2014-05-08 19:56
@madboy21
有了兴趣,要去实践,才能更好的提升自己。在电源领域来说,软件基本没什么特别的要求,重点还是在硬件上。通信方面可以用现有成熟模块就可以了,对于一款数字电源来说我认为如果控制芯片操作PWM,功率管电流控制保护等工作,这部份控制程序应由硬件工程师完成。

我想做一款简单数字电源来卖

基本功能构想如下:

隔离原边恒流LED驱动电源

选用芯片:PIC12F1501  理由:采用1501内部比较器作为MOS电流控制,16M的内部时钟可以输出较高的精度。

优点:对于学习者来说比较简单,对于现在比较火的LED电源来说防抄性强。

         通过一个引脚检测输入电压,用于开关调光控制。

工作原理:工作原理跟普通PSR芯片一样,就不再重复,不同的是可以调整基准电流,用于开关调光。

非常简单,可能做出来可以赚点钱呀,呵呵!!!

0
回复
madboy21
LV.8
26
2014-05-08 20:04
@wangchuangwccc
嗯,说的有道理,不过现在LED方面用到软件的机会会比电源多,毕竟适配器不用调光或者无线控制。而且很多小厂并没有软件工程师,一般都是由工程担当软件和硬件。对于大厂来说,硬件工程要是有一点软件基础,和软件工程师讨论实现电路来说更容易。起码要知道单片机的最小系统。

要是老板不加软件工程师,那就只能硬件工程师自己搞啦

无线控制调光,如果设计上硬件是接收一个模拟信号来操作的,那么其它完全可以丢给别人做。如果控制芯片参与了硬件控制,那这部份就应硬件工程师完成,主要是为了分清软硬件工程师的职责,如果一个搞那就没得说了。

0
回复
2014-05-08 20:05
@madboy21
我想做一款简单数字电源来卖基本功能构想如下:隔离原边恒流LED驱动电源选用芯片:PIC12F1501 理由:采用1501内部比较器作为MOS电流控制,16M的内部时钟可以输出较高的精度。优点:对于学习者来说比较简单,对于现在比较火的LED电源来说防抄性强。     通过一个引脚检测输入电压,用于开关调光控制。工作原理:工作原理跟普通PSR芯片一样,就不再重复,不同的是可以调整基准电流,用于开关调光。非常简单,可能做出来可以赚点钱呀,呵呵!!!

思路不错,值得借鉴!到时候用你的思路做个电源!

0
回复
madboy21
LV.8
28
2014-05-08 20:08
@yueyunno1
思路不错,值得借鉴!到时候用你的思路做个电源!
谢谢!我想下周就把样品做出来,呵呵!说做就做
0
回复
2014-05-08 20:09
@madboy21
要是老板不加软件工程师,那就只能硬件工程师自己搞啦无线控制调光,如果设计上硬件是接收一个模拟信号来操作的,那么其它完全可以丢给别人做。如果控制芯片参与了硬件控制,那这部份就应硬件工程师完成,主要是为了分清软硬件工程师的职责,如果一个搞那就没得说了。
,madboy21,QQ多少啊,发站内信给我,我加你,有时间互相交流下
0
回复
2014-05-08 20:09
@madboy21
谢谢!我想下周就把样品做出来,呵呵!说做就做
就是,遇到问题的时候就发帖大家帮你解决!
0
回复
2014-05-08 20:11
@madboy21
我想做一款简单数字电源来卖基本功能构想如下:隔离原边恒流LED驱动电源选用芯片:PIC12F1501 理由:采用1501内部比较器作为MOS电流控制,16M的内部时钟可以输出较高的精度。优点:对于学习者来说比较简单,对于现在比较火的LED电源来说防抄性强。     通过一个引脚检测输入电压,用于开关调光控制。工作原理:工作原理跟普通PSR芯片一样,就不再重复,不同的是可以调整基准电流,用于开关调光。非常简单,可能做出来可以赚点钱呀,呵呵!!!
我也在做款100W,PWN调光电源,思路和你有点不同,也不懂最后做出来精度怎么样
0
回复