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. Windows as a Service(4)——使用Intune管理Windows10更新

    这是这个系列的最后一篇文章,我已经花了三篇的篇幅和大家分享有关于Windows as a Serivce的相关内容,链接如下: Windows as a Service(1)-- Windows 10 ...

  2. Zabbix自动发现监控Tomcat进程

    1.编辑自动发现脚本 自动发现脚本只支持JSON格式 #!/usr/bin/env python # -*- coding:utf-8 -*- import commands import psuti ...

  3. Apache Avro# 1.8.2 Specification (Avro 1.8.2规范)一

    h4 { text-indent: 0.71cm; margin-top: 0.49cm; margin-bottom: 0.51cm; direction: ltr; color: #000000; ...

  4. mac安全权限解决

    如果有以下提示的,并不是文件损坏了,而是macOS Sierra新系统取消了安装本地程序的功能.   解决办法如下: 1.首先打开终端(找不到哪里打开终端 command+空格 搜索 "终端 ...

  5. PHP 判断Header 送出前, 是否有值被送出去: headers_sent()

    1 为避免header()函数是,出现 <b>Warning</b>:  Cannot modify header information - headers already ...

  6. JAVA学习知识点汇总

    异常处理 1.在异常处理中,如果子类覆盖了父类的一个方法,子类方法中声明的已检查异常不能比父类方法声明的异常更通用,即子类方法可以抛出更特定的异常(不超过父类方法声明的异常范围,即由父类方法声明异常派 ...

  7. HTML + CSS短标题(二,三,四文字长度)两端对齐的方式

    今天切图碰到了一个看似好弄,却并不好弄的文本两端对齐问题.如图1-1

  8. 如何在开发时部署和运行前后端分离的JavaWeb项目

    在开发中大型的JavaEE项目时,前后端分离的框架逐渐成为业界的主流,传统的单机部署前后端在同一个项目中的工程项目越来越少.这类JavaWeb项目的后端通常都采用微服务的架构,后端会被分解为诸多个小项 ...

  9. Java 测试驱动开发--“井字游戏” 游戏实战

    TDD 介绍 TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用 ...

  10. 使用Q进行同步的Promises操作

    如何通过使用Q来并发执行多个promises呢? Q(Q(1), Q(2), Q(3)) .then(function (one, two, three) { console.log(one); co ...