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. bzoj 3653 [湖南集训]谈笑风生

    题目描述 设 T 为一棵有根树,我们做如下的定义: • 设 a 和 b 为 T 中的两个不同节点.如果 a 是 b 的祖先,那么称"a 比 b 不知道高明到哪里去了". • 设 a ...

  2. 《重新定义公司 - Google 是如何运营的》重点摘录

      赋能:创意时代的组织原则 未来企业的成功之道,是聚集一批聪明的创意精英,营造合适的氛围和支持环境,充分发挥他们的创造力,快速感知用户需求,愉快地创造响应的产品和服务.未来组织的最重要功能,那就是赋 ...

  3. Linux第七节随笔-下磁盘管理

    baidubaike 磁盘管理物理磁盘---> RAID--->文件系统--->用户使用LVM概念简述Raid详细解说                0                ...

  4. MySQL小抄

    以下是MySQL5.7中的一些tips&tricks(持续更新中): Use of an unqualified * with other items in the select list m ...

  5. Oracle添加记录的时候报错:违反完整性约束,未找到父项关键字

    今天需要向一个没有接触过的一个Oracle数据库中添加一条记录,执行报错: 分析: 报错的根本原因:未找到父项关键字的原因是因为你在保存对象的时候缺失关联对象. 问题的解决思路:先保存关联对象后再保存 ...

  6. Xamarin.android Activity动画切换效果实现

    http://blog.csdn.net/esunshine1985/article/details/44302903 1.在Resources--values下新建styles.xml,添加内容如下 ...

  7. C# winForm资源文件实现多语言切换

    这是我目前看到过最简单的多语言切换了 操作步驟 介面上的多語 Step1.將表單的Localizable屬性設為True Step2.切換表單的Language屬性為欲使用的語系 設完後會在分頁標籤上 ...

  8. C#语言和SQL Server第十章笔记

    第十章 :使用关键字模糊查询 笔记 一:使用关键字 :LIKE  BETWEEN  IN进行模糊查询 通配符:  一类字符,代替一个或多个真正的字符 与LIKE关键字一起使用 通配符: 解释 实例 符 ...

  9. 由浅入深理解Java线程池及线程池的如何使用

    前言 多线程的异步执行方式,虽然能够最大限度发挥多核计算机的计算能力,但是如果不加控制,反而会对系统造成负担.线程本身也要占用内存空间,大量的线程会占用内存资源并且可能会导致Out of Memory ...

  10. textarea显示源代码

    textarea显示源代码 近期做的项目中,有需要显示源码的效果 最开始使用了很多冗余的办法,使用<pre></pre>和<code></code>标签 ...