玩转蓝牙墨水屏电子标签(一)点灯

对于垃圾佬的生活来说,每天逛海鲜市场是必不可少的生活片段,这不,手抖一下又刷到了一个东付的电子标价签

71358714efed7d40104ac7f545e477be.png

价格合理,2块钱一个不包邮,直接买了N个。。。算了一下一个3.5,然后拿到群去炫耀了下,结果被群友A了一些。进入正题,拆解它:

6e18c00725e64bf38b44a087d416ced3.png

这款应该是算最好拆解的标价签了,而且可以直接无损的安装还原回去。

先看看屏幕的型号:E029A01

fdbc5bedd1c39f41eff27a029c167dd2.png

a2779f4a8fe720db8e048d2bfc1caa44.png

这款屏幕的型号无论是微雪还是干草干不干,半塘睡不醒,或是撒垃圾车大佬的固件都有适配,所以这次海鲜市场逛值了。

再来看看主板:

87976d12a34c6555095319b19e2a2fa6.png

哇塞,是瑞萨的DA14585耶,这款芯片是很流行BLE蓝牙,小米手环也用这个来做主控,其他大厂也都用,所以资料上应该还可以,先去下载了下他的数据手册,打开手册看看:

a687dfaff660ef9995223d65cd9deb28.png

里面有这两引脚,看来可以入侵了,由于手头没好用的JLINK,所以买了个JLINK-OB和TTL:

7c989f80ee28ebb0601b1fa16e6792a7.png

等它们的同时先用万用表测下板子上的几个金属触点跟芯片的关系,这个就直接上图和数据了:

DA14585芯片调试使用相关口:

  • TP4 → RST

  • TP2&TP10 →  GND

  • TP8 →  P0_5 (RX)

  • TP7 →  P0_4 (TX)

  • TP1&TP9 →  VBAT 3V

  • TP3 →  VDD

  • TP6 →  SWDIO

  • TP5 →  SWCLK

墨水屏接口:

  • BUSY → P2_0

  • RST  → P0_7

  • DC   → P0_5

  • CS    → P2_1

  • SDI   → P0_6

  • SCK   → P0_0

  • PED_POWER   →  P2_3

闪灯IO口:

  • D1 → P2_5

15cc254ef213d9144eb4057c8a284b96.png

OK,这时候JLINK-OB也到了,我们把它接上:

5fa77639db403e16ae827c52eac25167.png

然后上软件,基本上我就用这个3个

  • smartsnippets_toolbox_v5.0.10.2434_windows

  • Keil 5.36

  • UartAssist.exe

4a4ca7e7f7cbb000b01b2ed14c0c6ba0.png

安装好 Keil和smartsnippets_toolbox后,需要把商家给的JLINK-OB的PJ工具给复制到对应的目录;商家会给你几个文件替换破解,然后我们用everything大法来找到这几个文件替换,只要替换SmartSnippets Toolbox v5.0.10和KEIL的安装目录下的就可以了,路径下面图:

b8710e068dcd3da8571fd133d20b93a8.png

TTL后面用的少,因为JLINK-OB可以承接所有工作,所以TTL只是用来看调试信息输出日志。我们先打开DA的 SmartSnippets Toolbox v5.0.10 工具,然后接上JLINK-OB+上面的黑色价签板子,需要焊接好线。

点击NEW

01f19cd6b4db3f34991251374e0d381c.png

9d5b64d33ee71b2a4296d4431d729623.png

输入名称,随便都可以,然后点SAVE

3a2600a42d91a6b180677c79b937e251.png

勾选下JTAG的那个ID 123456和芯片DA14585-00,然后点击OPEN

b1186c22ce3fd866aab2cba2218c5bbf.png

进入后蓝色的日志说明没啥问题,然后再点击1后点击2,查看OTP表

OTP表其实之前在看数据手册和其他教程的时候对它有误解,所以我们先点2看看

548a7e3a972f24d0a3506c0f186226b9.png

此时OTP表还是没有被加载,需要点击下connect,于是点了下,见证奇鸡的时刻了。

7ae7f53a328a1e5f2ecc2374588cd4f1.png

完美,日志还是蓝色的,如果有出现红色的日志,有办法的,不慌,一种是用黄色的REST线去碰下红色的VCC线,让他REST下,因为他是高电平复位,所以碰个一两秒三秒啥的,然后再断开JLINK-OB,重新插电,基本上就可以了。

或者可以先不拔掉,先REST下3秒,然后再点connect试试,我基本上都这么试过都可以,然后确实实在不行的话,检测下线的问题,杜邦线插多次就会萎了,换下就好了,还有就是JLINK-OB,我买的这个JLINK-OB居然GND虚焊,导致我每次一动下GND那个线PC就会不断的发出USB拔插掉线上线的声音,所以你们看到的我的JLINK-OB是裸的,其实TB买回来是有热缩管套的。。。所以呢,我就把它热缩管脱掉,拆看了下,GND那边是被虚焊了,自己补一下,现在稳稳的,都不红色报警日志了。

继续之前的,点击了CONNECT之后,可以看到,OTP是被写过的(第一二行显示YES),这时候是不是有种蓝瘦香菇的感觉?感觉买亏了?

再点下Read From memory 看看有没有奇鸡发生

813e1b4df28bc158b39be0c41a6314de.png

当。。。嘎了!OTP还是显示 YES,如果没有被OTP的话,应该是显示NO

09d290375240a63ac4fa1b6c927f220e.png

于是乎又上了海鲜市场搞了一些没有OTP的板子(想把没有OTP的吹下来,焊接替换掉这个有OTP的DA14585芯片的板子上),订单已下,老板人好,是个墨水屏常年玩家,告诉我,其实就算OTP了也可以用的。。。纳里???

不过做人还是要厚道点,单我买了,交点学费了吧。所以等没被OTP板子到的时候,我又开始了研究,结合老哥给的资料和信息我来重新对OTP认识下;

其实OTP这部分,得看厂家的人品了,OTP的意思是一次性的写入,写后就不能更改了,所以英文翻译过来是一次编程one time program,但是这么好的芯片不至于设计成这样吧?所以DA14585这里有提供了一个小技巧(二次启动);就是如果你不想让别人再用的话,就把程序编写好后生成二进制直接写入OTP,也就是在OTP里面写你自己的APP,启动的时候(一次启动)就直接加载启动到OTP里了;但是如果你想再次使用做开发的话,就不能直接把APP写在OTP里了,那怎么办?那就在OTP里面烧个二次启动BOOT的程序呀,这个二次BOOT结合外部SPI-Flash进行启动,程序APP可以烧到外部SPI-Flash里(所以可以多次刷写APP到SPI里),但是二次启动的BOOT已经固化到OTP里了;也就是说,OTP里面如果烧录的是二次BOOT的话,那就可以多次利用了,那这个芯片你就继续可以玩,不怕被OTP的限制无法使用。所以捡漏OTP的大致流程是(右边的流程才捡漏哈):

2d46f237a1e49e5f26051ef33d9a4311.png

所以我上面为啥说OTP这部分,得看厂家的人品了;

所以对OTP的理解,其实就是取决于买到的芯片里面的OTP装了啥程序,如果是二次BOOT的程序你就开心了,如果是正常的APP程序,你就买嘎了。然而二次BOOT程序厂家一般也都是直接去DA官方下SDK编或者直接有官方编好的HEX的文件拿来用了,基本上都是官方标准的代码,所以大家也可以去下载瑞萨的DA14585X的SDK看,里面有二次BOOT的代码。所以,怎么说呢,如何判断OTP里面是不是写了二次BOOT还是APP,这个本人也暂时无法识别,有知道的老哥哥们教我下,感谢!然后我们继续,既然流程图上是说OTP如果被刷入二次BOOT的话SPI-FLASH应该刷的是APP,所以我们写个APP,烧到SPI-FLASH看看不就可以了?OK,开始前,我们先看看SPI-FLASH是否可以读取,点击红色框,进入SPI-FLASH界面

c1ec8fe7f2429c414f99d9a8bd756da9.png

495779bc399ee4d8c325e0ba6bef15fd.png

Connect成功

71ec7e7c219d90a5ea32f083e7b0e68e.png

然后读取32K看看,点击 Read 32kb按钮

a142283cc7e2b92d41acbe8c64182b40.png

看来这个地方可以被读取的,也可以被擦除的,所以我们先开始写个闪灯的代码吧。

这个板子其实还可以用来做开发板,因为板子上预留了一个LED灯的空焊接,这个测了下,是跟芯片的P2_5引脚相通,那么就可以闪灯走起来。

先看下板子对比图,一个是我没焊接灯的,一个是我焊接了灯的,那边我加了个600欧的R4, LED用了0603的以前的料子焊接到D1,上板子是我焊好的,下面图是原来的没有焊R4和D1的对比。

ecd294175fd89acdf9c030f770486a65.png

OK,先去官网或者其他渠道下载DA的SDK,我用的是SDK_6.0.18.1182.1,里面自带blink工程,路径参考图片下面的文件路径:

76a61577c99baf0cb8d82a9a1626eb4f.png

闪灯代码

57bb4a4d353e48ae6d82eda05094d8f8.png

这里我们要修改一下了,因为要闪灯,所以引脚要对得上,先看看代码里面的 LED_PORT和 LED_PIN是多少。

97638a02179c00720eb1759517e8c66c.png

好家伙是1和0,那么就跟我们的P2_5对不上了,代码中的Port 就是P 下划线5就是PIN,所以P2_5对应的代码就是 GPIO_PORT_2 和 GPIO_PIN_5,改它!

顺便看下上面的串口P0_4,这个跟我们黑色板子对得上,所以不需要改。

a0fe1cfa44dc57f37d0dd556ded13e8f.png

选一下工程DA14585,点Rebuild

f217abb1cdfb40737ff37b54add14fe2.png

很快就构建完成了,基本上没有报错,妥妥的生成了bin文件。

455ccdfedd957ded298a5356f9bd6e20.png

然后我们进行DEBUG看看,灯闪不闪,先进行JLINK设置

点击魔法棒-切换到DEBUG标签页面USE选择JLINK,然后点击Settings

dd4d26782c775bb8806600f22f8a5c3f.png

如果你有插着JLINK-OB并且替换好商家给的那几个DLL和EXE的话,这里就会显示这些信息:

3d88da72546c3b3c0f6d8fcaff3d9f8f.png

都不用动,点击确定就好,外面的那个点击OK就好。然后我们开始点DEBUG按钮

bf7425f71a4b1247517993e9376fa1fb.png

到汇编这个页面不用管,直接按F5

2484fccd61e490f20fe3e698e24c0678.png

按F5后

00da28dc71939e17f8337d52a21867aa.png

62ccc028306bf021ee3e88a65aa591a9.png

完美成功闪亮。

本节我们就只是熟悉开发环境,点灯,感兴趣的同学关注下等待我们下一节的更新。

关于墨水屏的学习,希望大家Enjoy,我们一步一步的会进行更多开源好玩儿项目的开源。

往期推荐

6f56580c58babc9c0cb2a218e2c87b31.jpeg

老宇哥带你玩转 ESP32:14 亲自动手做一个双向通讯的无线遥控器(一)

6d992f2ec1d3b8bfcf717eccb5892f5e.jpeg

老宇哥带你玩转ESP32,12篇基础教程已经更新完毕,接下来是进阶教程

49fff6c234f0c1df745e64a90a86008a.jpeg

老宇哥带你玩转 ESP32:05 ADC用起来这也太简单了吧

eb79c941cab5d67eaeaee8e533c675fe.jpeg

老宇哥带你玩转ESP32:02使用VSCode+PlatformIO搭建开发环境

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值