前言
今年3月,我参与了面包板社区组织的第一批uFUN开发板评测活动,并有幸能获得试用机会,那是我第一次了解到uFUN这个项目及背后的故事,4月份,uFUN 2.0版本来了,收到了张工送的一块样板,后来又收到一块量产板,非常感谢。其实开发板很早就收到了,也玩了一段时间,早就计划着写一篇开箱评测,正好最近面包板正在开展新版uFUN的评测活动,我也来参与一下,写写停停,终于写完了,以下内容仅仅是我个人的观点,有错误的地方欢迎各位朋友指正、互相交流学习!
uFun是什么
uFun是由@张进东 张工组织发起的一个开源的学习板,设计初衷是为了帮助学生更好的理解电子知识和开发技巧,同时又能对学生毕业找工作有很明显的帮助。张工于2014年10月提出这个想法,并发到了博客上,不久就得到了全国各地几十位小伙伴的支持和响应,大家天南海北,筹钱献力,多位在职工程师,利用业余时间共同设计了这块学习板,经过几次的设计验证,还有一些厂商的支持,400套学习板诞生了。
uFUN不是一本死板的“教科书”,虽然只有4*6cm大小,但却包含SD卡槽、三轴加速度计、触摸按键、蜂鸣器、RGB LED、串口芯片、低通滤波电路、双T陷波滤波器等,方便携带,开发简单,只需要一根普通的安卓MicroUSB数据线即可完成你的设计。
板载资源简介
和1.0版本一样,2.0版本同样采用四层板设计,沉金工艺,蓝色油墨,由于取消了Mini-PCIE座,所以整体厚度小了不少,大小还是保持4*6cm不变。
大点的芯片座子主要放在了正面,阻容主要分布在了背面,各元器件的封装也都是选了小封装,如大部分0402封装的阻容,贴片的超级电容等。别看板子只有小小的4*6cm,但是板子资源还是相当丰富的,下面我们一起来看一下吧!
- 主控MCU:主控MCU还是采用的STM32F103RCT6,LQFP64封装,STM32系列大容量产品,256KB Flash + 48kB SRAM,内存空间足够使用了,主频72MHz,外设丰富,51个可用IO,8个16位定时器,3路SPI,2路串口,1路SDIO等等。对于新手入门32位ARM单片机是一个很好的选择,学习资料非常多,学习过程中遇到的问题基本都能在网上找到答案。
- 串口芯片:CH340,板子自带了USB-TTL转换芯片,对于没有调试器的朋友,可以方便的通过串口1来下载程序,同时,也是程序调试的好帮手。
- 传感器:LIS3DH,ST公司的MEMS传感器,三轴加速度计,支持IIC或者SPI协议,本板子采用的是IIC协议接口。
- 触摸按键:TTP224N,4通道触摸芯片,上下左右4个触摸按键直接画在了板子上,可以做出很多好玩的东西,和上位机通信,可以作为游戏手柄,来玩贪吃蛇、俄罗斯方块、2048、FlappyBird等小游戏,也可以结合显示屏直接使用触摸按键来控制。
- TF卡座:采用的是自弹式TF卡槽,内部直接连接了STM32的SDIO接口,可以直接通过官方固件库来驱动。
- RGB灯:通过控制3路PWM波,从而调出各种颜色,RGB驱动电路由原来的低电平点亮改为了高电平点亮。实际使用发现Green和Blue LED的控制引脚反了
- 光敏电阻:取消了反贴的LED,而改为了贴片光敏电阻,配合AD采集,可以作为心率传感器来使用。
- 蜂鸣器:相比于第一版的蜂鸣器,采用了更小了封装,有着更小的体积。
- RTC电池:使用的是贴片超级电容,相比于贴片电池座+纽扣电池的方式,体积要小的多。
- Micro-USB接口:USB使用了和普通安卓手机一样的USB接口,而不是Mini-USB,之前看有朋友在试用过程中,不小心把座子直接从板子上拔掉了,所以大家在拔USB线的时候,温柔一点,如果焊盘被拔掉了,那就真玩不了。
- 外部IO:通过2.0mm间距40P排针,引出未使用的GPIO,并不是常见的2.54mm间距的,所以如果想连接一些外部模块,还需要2mm转2.54mm的排线才行。
新版本更新的地方
1.0版本的评测文章可以参考之前发的一篇文章:小巧而不失精致,简单而不失内涵——uFun开发板开箱爆照
相比于第一版,uFUN的改动不算太大,不过优化了很多细节:
-
扩展接口的修改。和上一版相比,最大的一个修改就是修改扩展接口Mini-PCIe为2.0mm间距双排排针插座,受板子面积影响,并不是标准2.54mm间距的,当然如果手里没2.0mm间距的排线可能不是很方便,我也是当时又从淘宝买了一些。当然也可以方便的和扩展板进行连接,uFUN配套的扩展板已经设计完成了。
-
拨码开关和电源开关。针对第一版中发现拨码开关接触不良,去掉拨码开关选择BOOT的功能,而改为排针跳线方式,去掉了电源开关。
-
晶振飞线问题。CH340和STM32的时钟信号12M晶振,由原来的无源晶体改为有源晶体,更正了1.0版本的时钟飞线问题。
-
光敏电阻。去掉了原来触摸按键中间背面的反贴红色光LED灯,替换为贴片的光敏电阻,配合AD电压采集,可以用于实现心率传感器的功能。
-
触摸按键对地静态电容的调整。由原来的50pF改为了22pF,提高了一定的灵敏度。
-
蜂鸣器封装改为更小的。由原来的HY-8540无源蜂鸣器改为MLT-5020 5*5*2mm超小超薄封装的无源蜂鸣器。
-
B10和B11网络标号反了的问题。旧版本原理图中PB10和PB11的网络标号反了,导致UART3_TX和UART3_RX也反了,所以当时我画的扩展板也不得不进行割线+飞线补救,不过好在影响不大。
- 布局优化。新规划了布局并进行了许多细节优化,让UFUN更漂亮、更好用,背面4个大件整齐竖着排列。
第一批的5块样板中,使用的是2.0mm间距的双排排针,而量产时采用的是2.0mm的牛角插座,相比于裸露的排针,母座多了外面的胶壳保护,在使用过程中可以避免排针划伤皮肤,这一点细节考虑的还是很周到的。
官网上线啦
uFUN项目不仅在硬件上进行了更新,而且最近上线了官方网站,地址:www.myufun.com,支持手机和PC访问,方便开发者交流,目前只有主页的资料下载是有效的,其他功能还有待完善。
RT-Thread板级支持包
网友lhxzui已经为uFUN开发板制作了支持RT-Thread的BSP包,大家在下载RT-Thread官方仓库之后可以在rt-threadspstm32stm32f103-yf-ufun
目录下找到,目前RT-Thread官方还没有把这个两个BSP包合并到master分支,所以现在clone下来的RT-Thread仓库还只有stm32f103-yf-ufun
这一个BSP包,大家可以到的个人Github进行下载:
- RT-Thread仓库:
https://github.com/RT-Thread/rt-thread
- uFUN开发板1.0板级支持包:
https://github.com/lhxzui/rt-thread/tree/lhxzui_rtt/bsp/stm32/stm32f103-yf-ufunvera
- uFUN开发板2.0板级支持包:
https://github.com/lhxzui/rt-thread/tree/lhxzui_rtt/bsp/stm32/stm32f103-yf-ufunverb
BSP包括MDK4、MDK5、IAR工程,并且支持GCC开发环境,目前对外设的支持还只有串口1,RGB-B LED,部分GPIO的支持,板载传感器等支持还有待完善。
配套的扩展板
据官方透露,目前已经设计完成两种扩展板:
- Arduino转接板:配合uFUN,通过下载STM32duino-bootloader固件,可以把uFUN作为Arduino来使用。
- 简易标量网络分析扩展板:基于DDS芯片 AD9850,和对数放大器芯片AD8307,可以用来做信号发生器 和 简易标量网络分析。
以上两块扩展板都会在10月底前完成。
Arduino扩展板图片:
一些好玩的项目
基于1.0版本的小项目:
- uFUN作为游戏手柄来玩贪吃蛇游戏: 用uFun开发板做游戏手柄
- uFUN移植FreeRTOS:移植FreeRTOS到uFun
- uFUN和扩展板的联网时钟:基于uFUN开发板和扩展板的联网校准时钟
- uFUN实现RGB调色器:基于uFUN开发板的RGB调色器实现
- uFUN实现心率采集:基于uFUN开发板的心率计
基于2.0版本的小项目:
- uFUN作为Arduino来使用:千呼万唤始出来--ufun学习板秒变arduino板教程出炉
- uFUN加载卷积神经网络模型:ufun 上加载一个 Keras 训练导出的卷积神经网络模型,模型小巧,但是用来跑经典的手写体识别也有 90+% 的精度。实在是膜拜
总结
总的来看,这次uFUN的更新,修正了一些瑕疵,设计了配套的扩展板,上线了官方网站,可以说,uFUN又走了一大步,希望大家能多多支持。
资料下载
历史精选文章:
- 基于uFUN开发板和扩展板的联网校准时钟
- 基于uFUN开发板的RGB调色板
- 基于uFUN开发板的心率计(一)DMA方式获取传感器数据
- 基于uFUN开发板的心率计(二)动态阈值算法获取心率值
- 基于uFUN开发板的心率计(三)Qt上位机的实现
- 【UFUN开发板评测】小巧而不失精致,简单而不失内涵——uFun开发板开箱爆照
- 如何使用串口来给STM32下载程序
- STM32串口打印输出乱码的解决办法
- 欢迎大家关注我的个人博客:
www.wangchaochao.top
- 或微信扫码关注我的公众号