灵动微电子L01360 温控器遥控器应用——小天鹅空调遥控器控制LED灯
1.     初感受:焦灼的等待换来迫不及待的拆机,哦,那个拆封体验。包装精致规范,板子大气,功能组件齐全,外部接口丰富,总之一个非常喜欢。
2.     上个电吧:官方已经烧录了样例程序,按键功能器件,蜂鸣器播放了登登登,登登登的音乐,喜出望外。视频为证。
3.     策划小项目,熟悉开发环境。拿到板子没多久,全民皆阳,我也毫无悬念,发热,刀片嗓,熄火一周有余,还没好利索,公司手头活一大堆,然后又春节了,理由很多,哈哈。现在腾出手来neng它一愣。参考坛友测评,启发一个遥控器控制LED灯的小玩意儿。
环境搭建
(1)首先下载开发板资料。http:// 下载MDK支持包,SDK需要注册登录,内容还是比较齐全的。然后随便打开一个样例程序。
image.png
由于红外遥控需要用到外中断 我这里就解压了一个外中断的样例程序做测试。
image.png
image.png
打开工程 遇到了这样的问题,哦原来是没有安装官方的MDK支持包。尼玛,都是剧情需要。于是 去下载支持包,下载地址:https://www.mindmotion.com.cn/support/software/keil_pack/按部就班,下载之后, 解压安装。
image.png
选择开发板的芯片型号
image.png
安装支持包之后,工程正常打开,不管怎样先编译以下看是否通过。
image.png
编译通过,开发环境配置完成。
(2)下载样例程序,配置下载条件。
下载器我选择的是Jlink V9。开发板上下载接口官方采用的是标准20Pin JTAG 接口,正好我也有Jlink V9 省的杜邦线插来插去了,一步到位。
image.png
插上后,检测通信是否正常。
image.png
image.png
优秀,jink 没有安装支持包。顺水推舟,下载jlink 支持包。下载地址:https://www.mindmotion.com.cn/support/software/jlink_pack/。 jlink 下载地址:https://www.segger.com/downloads/jlink/。下个文件下半天 明天继续。
Soooo… Jlink 软件下载完成后,安装好。

image.png
按照readme 添加jlink支持包
image.png
没有悬念,然后就如图所示识别正确了,jlink 通信成功。
随后配置下载算法,下载样例程序。
image.png
样例程序默认已配置正确,无需修改,那就下载程序测试一下看。
image.png
image.png
我通常直接进入调试模式,简单看一下外中断程序,测试一下中断功能。
image.png
如图所示,是 GPIOB3 引脚。
懵,不知道GPIOB3  连接哪里,这时候需要打开官方的原理图查找。官方开发板资料链接: https://www.mindmotion.com.cn/support/development_tools/evaluation_boards/evboard/mm32l0136c7p/

image.png
查看原理图后发现,PB3是SLCD接口。
image.png
修改样例程序代码。将GPIOB3 改为GPIOB2。
image.png
按键1 作为输入。
image.png
添加变量到观测窗。没有成功,经过一番折腾 ,1000hrs later,换了个按键终于可以工作了
修改如下
image.png
image.png
image.png
哎,好了=就可以了。
(3)编写红外接收解码程序
首先回顾一下红外协议原理,查看原理图得知 红外接收头型号为 IRM-V838M3。
下载数据手册,链接如下:https://pdf1.alldatasheet.com/datasheet-pdf/download/1102585/EVERLIGHT/IRM-V838M3.html。从数据手册的表中可知这个款接收头是支持NEC,NEC协议是市面上最流行的,绝大多数遥控器是NEC协议。

image.png
拿示波器抓取几段波形,看是否是NEC协议。尼玛,截图还有时间叻,显示我零点过了还在搞,尼玛,日常而已。我抓,我抓,我抓抓抓。。。。。。
image.png

image.png

image.png

image.png

image.png

看时间以及比例关系基本上确定为NEC,只是接收端信号时间上有些失真,时间略有误差。
关于NEC 协议网上内容较多 这里不再罗列。分享个写的比较好的文章 http://www.taichi-maker.com/homepage/reference-index/arduino-library-index/irremote-library/nec-ir/
接下来就是修改中断输入接口为PA10。添加定时器,测量中断之间的时间间隔,测算红外信号正负脉冲时间。通常我会用systick  arm芯片通用。编写好systick 相关代码后,调试中断是否正常开启,示波器测量时间是否准确。