Linux上位机开发实践(以MCU小系统入门嵌入式电路)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

一直都主张嵌入式软件工程师,也要会做一点电路设计的工作。哪怕自己做的是嵌入式linux上层开发,一个会硬件设计,一个不会,两者的未来发展路径也是不同的。如果一个人自己会电路设计,这意味着自己是可以提供整体方案的,而不仅仅是把自己的工作依附在某个硬件平台上面。因为企业里面工作,每个人做一部分,这无可厚非。但是如果将来想自己独当一面的话,最好软硬件都要会。

1、mcu最小系统不复杂

mcu要想跑起来,就要搭建一个最小系统。这个最小系统有这么几个部分,电源、输入、输出、晶振、复位。有了电源,芯片才能启动。有了复位,芯片才能从混沌走向稳定,而晶振则是芯片的心脏。至于输入、输出,这部分就和具体的业务有关。实在不行,点个灯也行。

当然涉及到具体的mcu,一般还要处理下boot config和swd。前者负责启动模式,后者负责hex文件的下载。等到处理好了这两部分,这个最小系统就完成了。当然,如果要多做一点业务的话,还需要根据需求把其他外设补充完整,比如ad、da、spi、iic、pwm、lcd、usb、eth等等。

2、mcu价格不贵

mcu是充分竞争的市场,不管是国外的mcu,还是国产的mcu,那些通用、入门类的mcu价格都不贵。一般都在10元以下,大部分甚至低于5元,普遍在2、3元附近。所以,自己做一个mcu开发板,或者是业务板,成本上也是可控的,价格也不是很贵。

3、打板费用低、焊接容易

mcu封装简单,外部引脚也不算多。大部分mcu电路图,打板的时候都是选择2层板。就算是为了信号稳定性,最多使用4层板。就打板来说,4层板以下的价格都是比较容易承受的。这也就是说,就算设计失误、打板失败,重新再来几次,也没有关系,毕竟这些费用都是自己可以承受的。

拿到板子,可以自己焊接,也可以贴片处理。这一步骤不算复杂。

4、调试流程简单

打板之前,我们一般先在买的开发板上面做实验。等软件开发完毕了,再去自己画板子、自己来做硬件。因此,调试之前,最好可以有一份还算稳定的固件,这个时候再来调试,就事半功倍了。调试和焊接,是相伴相生的,更多时候是焊接一部分,调试一部分。

一开始调试的是电源,保证电源转换ok。其次是晶振。等这两部分都ok之后,就可以焊接一下复位。至此,可以用swd接口烧录一下软件,如果烧录是ok的,那么代表芯片至少是跑起来了。不行的话,就要回过头去查看电源、焊接、晶振和复位电路了。

芯片能烧录,意味着一大半工作都解决了,下面就是依次焊接led、输入开关和基本外设。如刚才所说,可以一边焊接,一边调试。调试的时候,手上可以同时焊接2块以上的板子,这样可以对比着测试,避免一些低级的硬件问题。最小电路调试好了,就可以依次调试其他外设了。

测试中遇到的问题,都可以通过excel记录一下,这样为下一次硬件优化做准备。哪怕是简单的板子,一般也是2次之后才会趋向于稳定的。调试的时候,通常是软硬件一起想办法,只要能解决问题就行,不必拘泥于形式。

5、容易扩展到复杂soc电路设计

很多同学即使是做嵌入式linux开发,这个时候学习mcu硬件设计也是有意义的。就算将来不想在电路设计着墨过多,也可以通过学习mcu设计轻松过渡到soc设计。实现的方式,就是购买som开发板,自己来做底板,专注于外设开发、算法开发、业务开发即可。

**有了som开发板,就相当于是mcu准备好了,接下来自己只需要在底板适配好电源、复位、输入、输出、boot config和usb otg下载即可。**这比单纯的som设计,要容易得多。底板设计,和mcu设计也是几乎一模一样的。所以说,掌握了mcu电路设计,就可以很容易扩展到soc电路设计。

6、有利于将来的商务拓展

企业里面的工作安排,每一个人的工作基本都是固定分配好的,大家像流水线一样,各司其职一起合作。但是,这种合作也会让个人依附于平台,缺少独立面对客户的能力。很多需求,客户需要的是一个方案,这个方案可能涉及到需求理解、协议交付、软件、硬件、商务好几个方面。如果自己在熟悉业务的同时,把硬件这部分也及时补上,就算不是特别精通,那也不至于特别拉跨。这样,在和别人沟通的时候,可以聊技术,也可以聊商务,效率要比纯商务,高很多。

7、一人企业不是不可能

目前外部的大环境,对于大龄程序员,或者对于crud的开发同学都是不友好的。这种情况下,就要想办法抛弃打工的思维,多想想自己可以做什么,能够提供什么样的服务。如果自己是做嵌入式开发的,那么可不可以提供软、硬件整套服务呢?可不可以提供开发板、提供上位机?就算是将来有业务,是不是开一个一人公司?这样的公司不一定大,老板自己就是那个核心,所有的人都是作为助手协助老板落实业务。

就算公司的业务规模不大,至少从逻辑上,这种形式是自洽的、合理的。所以,很多时候,大家对自己的限制都是来自于社会的约定,但是并没有释放个人真正的竞争力。况且现在由于chatgpt等ai工具的出现,这种公司小型化的操作会越来越多,越来越普遍。

相关推荐
WPG大大通8 小时前
基于意法半导体STM32G473和STDRIVE 101的电池供电BLDC/PMSM电动工具
stm32·单片机·嵌入式硬件·方案·大大通
the sun348 小时前
STM32---GPIO
stm32·单片机·嵌入式硬件
宽容人厚载物8 小时前
Jetson Orin NX 部署YOLOv12笔记
嵌入式硬件·yolo·jetson·yolov12·英伟达开发板
云山工作室9 小时前
基于单片机的温湿度采集系统(论文+源码)
人工智能·单片机·嵌入式硬件·毕业设计·毕设
完成大叔10 小时前
嵌入式:ARM公司发展史与核心技术演进
arm开发·嵌入式硬件
jacklood10 小时前
基于cubeMX的hal库STM32实现硬件IIC通信控制OLED屏
stm32·单片机·嵌入式硬件
硬匠的博客12 小时前
C++面向对象
开发语言·c++·单片机
define菜鸟#12 小时前
51单片机实验一:点亮led灯
单片机·嵌入式硬件
深圳信迈科技DSP+ARM+FPGA13 小时前
基于龙芯 2K1000处理器和复旦微 FPGA K7 的全国产RapidIO 解决方案研究
嵌入式硬件·fpga开发·机器人·信号处理