本帖最后由 wind_west 于 2020-5-1 09:08 编辑

刚刚参加活动的时候,看到活动的标题“物联网低功耗蓝牙控制器”,以为是某一款蓝牙的IC在做活动。原谅我语文一般,忽略了定语的作用,这里的重点是控制器,并不是蓝牙。蓝牙功能并不需要在咱们是编程,只要使用串口发送AT指令就能进行控制。后面的使用主要还是使用Arduino IDE对ATMEGA328P处理器(单片机)进行操作。



1、开箱硬件
现在简单来开箱看看开发包的硬件:开发包里面包含一块开发板和4片插针。
插针的质量是真的好,以前使用的一般插针是偏扁形的,但是这里附带的插针仔细一看是成四方柱形,嗨,借用这么多形容词也没说清楚,简单一句就是:插针够粗,够直。后面在自己的设计中可以采用这种质感的插针。
微信图片_20200430233530.jpg

板子的工艺也是比较好的那种,拿在手里很厚实。因为也没有仔细辨识过军工和医疗板子的品质,但是就这个板子来看,和普通消费类的0.8的板子不一样。这都是个人感觉,可能不准,但是任咱们谁拿到手里都不会嫌弃的,这点还是能够肯定。另外一点就是,打开静电密封袋的时候没有刺鼻的气味。
板子的正面很清晰,一个基于Dialog的蓝牙模块上有很清晰的 DFROBOT 标志,再一个就是ATMEGA328P 单片机了。这点我有点疑惑,上面没有串口转USB的芯片,没有CH340也没有PLxxx。但是根据手册可以直接接到PC,通过串口监控日志。这点暂时搁置,后面弄清楚了再分享给大家。
微信图片_20200430233513.jpg

板子的背面也就是几个LOGO,没有其他的IC。通过上面的丝印,我们能够知道这个上面的双PIN插座是用来接电池的。送的插针刚好能够穿过所有的过孔,但是暂时还没搭建开发环境,就不焊接了。看到这个蓝牙模块,让我想到了以前接触的一个模块,安信可做的乐鑫ESP8266的模块。

微信图片_20200430233524.jpg

2、开发套件的参数以及操作
1、从开发套件的示意图框图能够知道===
          数字IO口:14
        ­ 模拟IO输入:6
        ­ SPI接口:1
        ­ I2C接口:1
        ­ UART接口:1
        ­ LED_BUILTIN:D13
-DF0492-引脚图.png

但是有个硬件框图的这些资料,还不能进行设计。咱们总的需要知道这个板子怎么烧写程序吧,毕竟也是第一次尝试,还是要循序渐进。以前接触过写字机的Arduino,但是也是直接使用的官方的固件,没有深入去了解过。现在这块板子可以试试按部就班的学习一下Arduino下的编程,也是一个不错的机会。下面来简单了解一下Arduino下的编程。
将硬件插上PC后,读取开发板的信息,可能和文档有点区别。我的显示的是:Genuino Uno。没关系接着在开发板管理器下选择Arduino Pro or Pro Mini 。
编译器.JPG 具体的操作也可以参考如下步骤:
FireBeetle_Board-328P_with_BLE4.1-1.png
然后根据相关的页面的地址找到一段example程序,复制过来,在项目--》验证/编译 操作之后,显示没有问题,然后进行下载验证一下。
  1. #include <avr/sleep.h>
  2. void wakeup(){
  3.   sleep_disable();
  4.   delay(2000);
  5. }
  6. void lowpower(){
  7. ADCSRA &= ~(1<<ADEN);/*关掉ADC*/
  8. TWCR &= ~(1<<TWEN);/*关掉TWI*/
  9. delay(10);
  10. set_sleep_mode(SLEEP_MODE_PWR_DOWN);/*设置睡眠模式为掉电模式*/
  11. sleep_enable();/*启用睡眠模式*/
  12. MCUCR |= (1<<BODS|1<<BODSE);
  13. MCUCR = MCUCR & (~(1<<BODSE)) | (1<<BODS);
  14. sleep_cpu();/*进入睡眠模式*/
  15. }
  16. void setup() {
  17. attachInterrupt(0, wakeup, CHANGE); /*设置触发D2口的中断方式为电平变化,回调函数为wakeup(),即执行唤醒328p芯片的功能*/
  18. lowpower();
  19. }
  20. void loop() {
  21. lowpower();
  22. delay(2000);
  23. }
得到的结果:项目使用了 946 字节,占用了 (3%) 程序存储空间。最大为 30720 字节。板子上的现象是CHG这个LED在闪烁,频率大概是1秒1次。也就是说,单片机这个时候啥也不干。

  • CHG:电池充电指示灯,在没有接锂电池时,CHG闪烁;充电状态下,CHG灯常亮;充电完毕,CHG常灭
上传.JPG
2、查看了模块的示意图以及分析了上面的程序,这里的AT指令是通过USB口进行控制,也就是说可能UART并不能配置这个蓝牙模块。看到这里,那就有个问题:模块的参数会保存吗,还是每次开机都要通过串口进行配置?这个问题也搁置,后面熟悉套件自然就能够得到解答。
800px-BLE4.1Module-2.1.1.png

但是不管怎样,根据这里的信息,点亮OLED12864应该是没有问题的,下期有机会了再和大家探讨,怎样点亮这OLED12864。
最后的话:
后会有期,江湖再见。