【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享
CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享
1、缘起
这些年来一直在其他公司的实验箱和别人的开发板上进行教学与开发工作,总是觉得功能设计不那么合意。心里突然冒出个念头:为什么不自己制作一款学习开发板呢?一开始想着做一款基于CC2530的入门学习板,后来在设计的过程中就像,实际上大多数的嵌入式入门学习的底板都差不多,能不能一块学习板兼容几个常用芯片呢?想来想去,觉得STM8比较合适,一方面非常常用,另一方面其开发环境又是IAR,再有就是市面上关于STM32的开发板和资源都很多,而STM8的不是非常丰富。
因此,最终确定了CC2530&STM8S105双剑合璧的方案,命名为:小蜜蜂1号,型号:XMF01-CCM8SA。我想,这款学习开发板对于嵌入式的初学者来说,绝对是一把入门利器。
2、功能设计
在我看来,相对功能的实现来说,功能的设计更为重要,也更花时间。
在这个二合一的嵌入式学习板制作过程中,从构思、选型、设计、测试、调研、修改、方案重整、选型微调...将近花了三个月时间,而对这个功能的电路设计与PCB定案,只用了3天的时间。在以前,总是匆匆定了个方案,画了个草图,就开始电路设计了,边画图边修改,到后来都不知道那个版本才是正确的了。所以,有这么一个感慨:一个成熟的嵌入式设计师,应该将80%甚至更多的时间花在功能设计上,而实现这些功能是很常规的事情。
XMF01-CCM8SA的主要面向初学者的入门学习,部分兼顾工程师的开发扩展,基本功能有:
1~基本的输入输出:4路LED灯和2路按键(兼容TI Z-Stack协议栈硬件驱动层)。
2~串行通信:引出一路串口转USB接口。
3~显示模块:0.96寸/1.3寸OLED显示模块(SPI接口)
4~总线型传感器:DS18B20数字温度传感器
5~电压型传感器:光敏电阻
6~IIC总线:EEPROM 24C02(CC2530不支持)
7~Sensor Module:功能扩展模块接口(兼容新大陆国赛设备Zigbee模块)
8~万能扩展板:功能扩展自由区域(8针引出脚兼容常见的RC522模块)
9~电源输入:USB供电和仿真器供电任君选择。
10~超高性价比:1款学习板等于2款学习板,CC2530和STM8自由切换,相互对比,共同学习。
3、电路设计经验
1~在开始电路设计之前,确保每一个模块的电路连接都是正确的,如果没有做过,最好搭个电路板来测试一下。
2~电路设计的第一步应该把所有的元器件的库准备好,没有的,自己画。作为一个成熟的嵌入式设计师,应该有一个属于自己的元器件库,每次设计中的新元件都添加到这里面来,以后就可以拿来即用了,非常的事半功倍。
3~在头脑中没有形成完整的电路方案之前,先别急着点鼠标开始。
4~原理图的设计也应该和PCB设计一样,先把元器件拉出来,布局,走线,检查一样不能少。
5~在进行PCB设计之前,必须确保每一原理图的封装是百分之百正确的。
6~对于主控芯片的一些空引脚,如果不做接地处理的话,最好也加上网络标号。现在看起来没什么用,但在PCB设计过程中需要临时添加元器件的时候会显得非常方便。
7~PCB的元器件布局非常重要,不单单是为了美观,而是为了后面的走线方面。
8~覆铜是PCB最简单也是最好一步,往往也是最容易出错的一步。覆铜完了务必检查再检查,因为可能会有一两条地线没有连好,这是要你需要给这些地线来一个穿透孔,注意,不能使用过孔,要用焊盘。
4、谍照发布
前面在功能调研的帖子中,有朋友问,这个学习板的硬件电路开源吗?当然开源来,不然大家怎么学习呀。不过现在样板还没有出来,测试还没有完成,还不知道电路设计上有没有什么问题,所以还不能公诸于世。不过,PCB样板定案大家先看看,不妨多给点意见,在发布版的时候可以做的更完美一些。
5、结束语
其实,学习板并不是什么新鲜的东西,也不是什么很难的事情。我倒觉得每一个嵌入式的入门者到后来都应该自己设计并制作一块这样的板子作为自己嵌入式设计入门的成人礼。
后面有了这个学习板,我想我可以围绕这个板子好好整理一下学习资源,争取把上面的学习资源发挥到极致。如果大家不嫌弃,有时间的话我想我还会把学习经验和入门心得在这里继续和大家分享一下。
【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享的更多相关文章
- C语言老司机学Python (二)
标准数据类型: 共6种:Number(数字),String(字符串),List(列表),Tuple(元组),Sets(集合),Dictionary(字典) 本次学习主要是和数据类型混个脸熟,知道每样东 ...
- 来看看Uber的司机支持服务签到及预约系统的架构设计思路
Uber的Greenlight Hubs(GLH)在全球拥有超过700个分支机构,为合作车主提供从账户和支付到车辆检查和车主注册等各方面的人工支持.为了给合作车主创造更好的体验并提高客户满意度,Ube ...
- C语言老司机学Python (五)
今天看的是标准库概览. 操作系统接口: 用os模块实现. 针对文件和目录管理,还有个shutil模块可以用. 例句: import os os.getcwd() # 返回当前的工作目录 os.chdi ...
- 年薪30W的软件测试“老司机”工作经验
这几天,新入职的小MM提议“老司机”们把自己这些年的软件测试工作经验跟大家分享一下,让新同学学习学习,利用空闲时间我整理了一些,可能不全,勉强看看,这也算是对自己这些年的工作总结. 测试阶段划分 1. ...
- 老司机谈谈如何学习STM32嵌入式系统
一.嵌入式系统的概念 着重理解"嵌入"的概念 ,主要从三个方面上来理解. 首先,从硬件上,"嵌入"是基于CPU的处围器件的,整合到CPU芯片内部,就好比早期基于 ...
- javbus爬虫-老司机你值得拥有
# 起因 有个朋友叫我帮忙写个爬虫,爬取javbus5上面所有的详情页链接,也就是所有的https://www.javbus5.com/SRS-055这种链接, 我一看,嘿呀,这是司机的活儿啊,我绝对 ...
- 【BZOJ4200】【NOI2015】小园丁与老司机(动态规划,网络流)
[BZOJ4200][NOI2015]小园丁与老司机(动态规划,网络流) 题面 BZOJ权限题,洛谷链接 题解 一道二合一的题目 考虑第一问. 先考虑如何计算六个方向上的第一个点. 左右上很好考虑,只 ...
- 【洛谷2304_LOJ2134】[NOI2015]小园丁与老司机(动态规划_网络流)
题目: 洛谷 2304 LOJ 2134 (LOJ 上每个测试点有部分分) 写了快一天 -- 好菜啊 分析: 毒瘤二合一题 -- 注意本题(及本文)使用 \(x\) 向右,\(y\) 向上的「数学坐标 ...
- zz“老司机”成长之路:自动驾驶车辆调试实践
随着自动驾驶技术的发展,一辆新车从被改装到上路需要经过的调试流程也有了许多提升.今天,我希望结合自己之前的调车经验来跟大家分享一下我们是如何将系统的各个模块逐步上车.调试.集成,进而将一辆“新手”车培 ...
随机推荐
- NP完整性| 集1(简介)
我们一直在写关于高效算法来解决复杂问题,如最短路径,欧拉图,最小生成树等.这些都是算法设计者的成功故事. 在这篇文章中,讨论了计算机科学的失败故事. 计算机可以解决所有的计算问题吗? 存在计算问题,即 ...
- bzoj 4446: [Scoi2015]小凸玩密室
Description 小凸和小方相约玩密室逃脱,这个密室是一棵有n个节点的完全二叉树,每个节点有一个灯泡.点亮所有灯 泡即可逃出密室.每个灯泡有个权值Ai,每条边也有个权值bi.点亮第1个灯泡不需要 ...
- 理解new构造函数和apply以及call
今天在看设计模式的时候,遇到一些挺低级的东西,搞不懂,顾查阅资料整理记录一番. 先了解一下new构造函数的过程: function func(){ console.log('do'); } var f ...
- Gulp-静态网页模块化
前言: 在做纯静态页面开发的过程中,难免会遇到一些的尴尬问题.比如:整套代码有50个页面,其中有40个页面顶部和底部模块相同.那么同样的两段代码我们复制了40遍(最难受的方法).然后,这个问题就这样解 ...
- Git详解之一:Git起步
起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章,你就会明白为什么 Git ...
- 完美解决浮动IE6 7中的兼容性BUG问题
想要创建出漂亮的网页设计,除了要认真学习每一个html和CSS代码之外,不可能不去了解一下臭名昭著的IE6和更早的那些IE浏览器的坏脾气,因为你本来写出的规规矩矩的代码,漂亮的设计就此就要完成了,却发 ...
- Integer和int
例1: public static void main(String[] args){ Integer a = 128,b = 128; Integer c = 127,d = 127; System ...
- 分布式文件系统FastDFS详解
上一篇文章<一次FastDFS并发问题的排查经历>介绍了一次生产排查并发问题的经历,可能有些人对FastDFS不是特别的了解,因此计划写几篇文章完整的介绍一下这个软件. 为什么要使用分布式 ...
- 【Java框架型项目从入门到装逼】第六节 - 用ajax请求后台数据
这一节我们来说一下如何用ajax提交请求? 我们先不讲ajax的原理,还是先以实战为主,看一下这个东西到底怎么用的? form表单: <!-- 采用post表单提交 --> <for ...
- 【APS.NET 框架系列】浅谈ASP.NET 框架
本篇文章稍微偏原理且底层,有一定难度和且比较晦涩. 本篇文章主要是从广度上概括一下,具体的更细粒度的,会在后续的文章中,结合具体的Demo实例分析. 一 .NET框架概述 1.作用:提供了基于. ...