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、结束语
其实,学习板并不是什么新鲜的东西,也不是什么很难的事情。我倒觉得每一个嵌入式的入门者到后来都应该自己设计并制作一块这样的板子作为自己嵌入式设计入门的成人礼。
后面有了这个学习板,我想我可以围绕这个板子好好整理一下学习资源,争取把上面的学习资源发挥到极致。如果大家不嫌弃,有时间的话我想我还会把学习经验和入门心得在这里继续和大家分享一下。