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

news2024/10/5 2:30:01

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

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搭建开发环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1033039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Xilinx FPGA 7系列 GTX/GTH Transceivers (4) Aurora 8b10b 递增数收发验证

第一节:Xilinx FPGA 7系列 GTX/GTH Transceivers (1)–了解了GTX硬件的基础知识 第二节:IBERT GTX --通过Ibert IP测试链路通信 第三节:aurora 8b10b single lane 4byte–学习官方历程 递增数验证 自行编写data_gen和data_check 验证aurora 8b10b SFP 1.25G 收发正确。 组…

用过lsof命令的,都竖起了大拇指!!!

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) …

webpack常用配置与性能优化插件

webpack是一个流行的前端项目构建工具(打包工具),可以解决当前web 开发中所面临的困境。 提供了友好的模块化支持,以及代码压缩混淆、处理js兼容问题、性能优化等强大的功能,从而让程序员把工作的重心放到具体的功能实…

Bigemap如何添加mapbox图源?

会使用到的工具 bigemap gis office,下载链接:BIGEMAP GIS Office-全能版 打开软件,要提示需要授权和添加地图,然后去点击选择地图这个按钮,列表中有个添加按钮点进去选择添加地图的方式。 第一种方式:通…

k8s-2 集群升级

首先导入镜像到本地 然后上传镜像到仓库 在所有集群节点 部署cri-docker k8s从1.24版本开始移除了dockershim,所以需要安装cri-docker插件才能使用docker 配置cri-docker 升级master 节点 升级kubeadm 执行升级计划 修改节点套接字 腾空节点 升级kubelet 配置k…

MySQL备份及恢复

目录 MySQL备份 MySQL备份方法 备份策略 mysql的完全备份 mysql的增量备份 MySQL恢复 mysql完全恢复 mysql增量备份的恢复 MySQL备份 MySQL备份是基于对MySQL的日志进行备份,且恢复也是通过日志进行数据恢复。 MySQL备份方法 物理备份:直接对…

如何在一个月内通过PMP考试?

新版本考纲,有一个最大的难点。那就是知识点来自《PMBOK指南》,以及《敏捷实践指南》;但是考试大纲给了3个域、35个任务,这些只给了条目性的提纲,对应着考试的实践要求。 考试题目全部是基于情境的选择题,…

苹果开发者账号注册及证书生成方法详解

转载:注册苹果开发者账号的方法 在2020年以前,注册苹果开发者账号后,就可以生成证书。 但2020年后,因为注册苹果开发者账号需要使用Apple Developer app注册开发者账号,所以需要缴费才能创建ios证书了。 所以新政策…

MySQL全局优化与Mysql8.0新增特性

Mysql全局优化总结 ​ 从上图可以看出SQL及索引的优化效果是最好的,而且成本最低,所以工作中我们要在这块花更多时间。 补充一点配置文件my.ini或my.cnf的全局参数: 假设服务器配置为: CPU:32核内存:6…

包含日志文件

原理:某个PHP文件存在本地包含漏洞,却无法上传正常文件,包含漏洞却不能利用,攻击者就有可能会利用apache日志文件来入侵。 Apache服务器运行后会生成两个日志文件,这两个文件是access.log(访问日志)和error.log(错误日…

Vue3大屏项目实现数字跳动的效果

一、vue-count-to组件&#xff1a; 1、安装&#xff1a; npm install vue3-count-to --save 2、使用&#xff1a; <template><BaseCountTo:startVal"startVal":endVal"endVal":duration"duration":decimals"decimals":pr…

千万级用户的大型网站,如何进行服务器压力预估?

前言&#xff1a;一般情况下&#xff0c;单台Tomcat服务器每秒支撑500请求&#xff0c;单台MySQL数据库每秒支撑5000左右的请求&#xff0c;单台Redis缓存支撑每秒几万请求。 1、千万级用户量的压力预估 假设大型网站预估用户数是1000万&#xff0c;那么根据28法则&#xff0c…

河南分销系统开发怎么做产品分销?

一个好的产品&#xff0c;如何去找好的分销团队来帮自己做分销&#xff0c;首先这里面是好产品是一个相对的一个概念。 首先什么样才叫好产品&#xff0c;像我们来说&#xff0c;经常我们说做分销&#xff0c;我们尽量找一些高频的&#xff0c;有一些竞争力的产品&#xff0c;我…

乖离率BIAS指标选股公式,判断多空力量和超买超卖

乖离率(BIAS)指标用于衡量股价与移动平均线之间的偏离程度&#xff0c;可以用来判断当前市场的多空力量和超买超卖情况。 乖离率的计算公式比较简单&#xff0c;如下&#xff1a; BIAS (收盘价 - N日移动平均价) / N日移动平均价 100 其中&#xff0c;N代表选择的时间周期…

扩散模型新应用——微软推出蛋白质生成框架EvoDiff

作者 | 谢年年 最近&#xff0c;微软推出了一个名为EvoDiff的通用框架&#xff0c;据称它可以根据蛋白质序列生成“高保真度”和“多样性”的蛋白质。 这项技术的意义非凡&#xff0c;因为蛋白质是构成我们身体的疾病的基本组成部分。通过研究蛋白质&#xff0c;我们可以揭示疾…

vue项目实现地址自动识别功能

1、安装第三方依赖 npm install address-parse 2、在需要使用的页面引入 import AddressParse from address-parse; 3、在页面上写入静态的html代码&#xff0c;可以输入地址&#xff0c;加上识别的输入框&#xff1b; <div class"auto_address"><van-…

数据结构 - 链表

线性表的链式存储结构 概念 将线性表 L (a0, a1, … , an-1)中各元素分布在存储器的不同存储块&#xff0c;成为结点&#xff0c;通过地址或指针建立元素之间的联系。 结点的 data 域存放数据元素 ai &#xff0c;而 next 域是一个指针&#xff0c;指向 ai 的直接后继 ai1 …

医学影像信息(PACS)系统软件源码

PACS系统是PictureArchivingandCommunicationSystems的缩写&#xff0c;与临床信息系统&#xff08;ClinicalInformationSystem,CIS&#xff09;、放射学信息系统(RadiologyInformationSystem,RIS)、医院信息系统(HospitalInformationSystem,HIS)、实验室信息系统&#xff08;L…

FL Studio21.0.3最新中文版下载安装详解

安装第一步&#xff1a;卸载干净fl历史旧版本&#xff0c;彻底退出安全软件 &#xff08;如果下载好的文件无法打开&#xff0c;可以去百度下载一个解压工具&#xff0c;比如bandzip、360压缩、2345好压...&#xff09;&#xff08;卸载直接用电脑管家卸载或者在左下角开始处找…

2023年贵州省职业院校技能大赛高职组信息安全管理与评估竞赛试题

2023年贵州省职业院校技能大赛高职组 信息安全管理与评估 竞赛试题 第一阶段竞赛项目试题 根据信息安全管理与评估技术文件要求&#xff0c;第一阶段为网络平台搭建与网络安全设备配置与防护。本文件为信息安全管理与评估项目竞赛-第一阶段试题。 介绍 竞赛阶段 任务阶段 竞…