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二合一嵌入式学习板设计思路与经验分享的更多相关文章

  1. C语言老司机学Python (二)

    标准数据类型: 共6种:Number(数字),String(字符串),List(列表),Tuple(元组),Sets(集合),Dictionary(字典) 本次学习主要是和数据类型混个脸熟,知道每样东 ...

  2. 来看看Uber的司机支持服务签到及预约系统的架构设计思路

    Uber的Greenlight Hubs(GLH)在全球拥有超过700个分支机构,为合作车主提供从账户和支付到车辆检查和车主注册等各方面的人工支持.为了给合作车主创造更好的体验并提高客户满意度,Ube ...

  3. C语言老司机学Python (五)

    今天看的是标准库概览. 操作系统接口: 用os模块实现. 针对文件和目录管理,还有个shutil模块可以用. 例句: import os os.getcwd() # 返回当前的工作目录 os.chdi ...

  4. 年薪30W的软件测试“老司机”工作经验

    这几天,新入职的小MM提议“老司机”们把自己这些年的软件测试工作经验跟大家分享一下,让新同学学习学习,利用空闲时间我整理了一些,可能不全,勉强看看,这也算是对自己这些年的工作总结. 测试阶段划分 1. ...

  5. 老司机谈谈如何学习STM32嵌入式系统

    一.嵌入式系统的概念 着重理解"嵌入"的概念 ,主要从三个方面上来理解. 首先,从硬件上,"嵌入"是基于CPU的处围器件的,整合到CPU芯片内部,就好比早期基于 ...

  6. javbus爬虫-老司机你值得拥有

    # 起因 有个朋友叫我帮忙写个爬虫,爬取javbus5上面所有的详情页链接,也就是所有的https://www.javbus5.com/SRS-055这种链接, 我一看,嘿呀,这是司机的活儿啊,我绝对 ...

  7. 【BZOJ4200】【NOI2015】小园丁与老司机(动态规划,网络流)

    [BZOJ4200][NOI2015]小园丁与老司机(动态规划,网络流) 题面 BZOJ权限题,洛谷链接 题解 一道二合一的题目 考虑第一问. 先考虑如何计算六个方向上的第一个点. 左右上很好考虑,只 ...

  8. 【洛谷2304_LOJ2134】[NOI2015]小园丁与老司机(动态规划_网络流)

    题目: 洛谷 2304 LOJ 2134 (LOJ 上每个测试点有部分分) 写了快一天 -- 好菜啊 分析: 毒瘤二合一题 -- 注意本题(及本文)使用 \(x\) 向右,\(y\) 向上的「数学坐标 ...

  9. zz“老司机”成长之路:自动驾驶车辆调试实践

    随着自动驾驶技术的发展,一辆新车从被改装到上路需要经过的调试流程也有了许多提升.今天,我希望结合自己之前的调车经验来跟大家分享一下我们是如何将系统的各个模块逐步上车.调试.集成,进而将一辆“新手”车培 ...

随机推荐

  1. 重写JS的鼠标右键点击菜单

    重写JS的鼠标右键点击菜单 该效果主要有三点,一是对重写的下拉菜单的隐藏和显示:二是屏蔽默认的鼠标右键事件:三是鼠标左键点击页面下拉菜单隐藏. 不多说,上html代码: 1 <ul id=&qu ...

  2. Java中list<Object[]>、list<Student>、list<Map<String,String>>排序

    1:list<Object[]>的排序   public static void main(String[] args) { // TODO Auto-generated method s ...

  3. 数据库SQL优化

    1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  4. 【转】java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

    最近在配置最新的ssh(struts2.3.16.3+hibernate4.3.7+spring4.1.2)的时候遇到的这个错误提示,后来在网上找了半天都不能解决,虽然有个说法是model对象用这样@ ...

  5. 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的

    最近公司在开发一个小程序红包系统,客户抢到红包需要提现.也就是通过小程序来给用户发红包. 小程序如何来发红包呢?于是我想到两个方法. 之前公众号开发一直用了的.一个是红包接口,一个是企业支付接口.一开 ...

  6. linux编译php gd扩展

    1 安装gd的依赖包 yum -y install gd gd2 gd-devel gd2-devel zlib freetype 2 安装jpeg: wget http://www.ijg.org/ ...

  7. thinkinginjava学习笔记07_多态

    在上一节的学习中,强调继承一般在需要向上转型时才有必要上场,否则都应该谨慎使用: 向上转型和绑定 向上转型是指子类向基类转型,由于子类拥有基类中的所有接口,所以向上转型的过程是安全无损的,所有对基类进 ...

  8. 浅谈Vue模板的那些事儿

    接触过vue的童鞋都知道,组件的模板一般都是在template选项内定义的,如 Vue.component('child-component', { template: '<h3>我是闰土 ...

  9. [Spark内核] 第32课:Spark Worker原理和源码剖析解密:Worker工作流程图、Worker启动Driver源码解密、Worker启动Executor源码解密等

    本課主題 Spark Worker 原理 Worker 启动 Driver 源码鉴赏 Worker 启动 Executor 源码鉴赏 Worker 与 Master 的交互关系 [引言部份:你希望读者 ...

  10. TPFrame框架之robot模块的基本使用

    经过几天的努力,基本功能版已经完成,有待大家验证... robot插件主要的功能是帮助我们写部分代码的基本,目前阶段已经实现后台curd数据管理的基本操作,更多功能待续... 1.首先下载robot插 ...