對于垃圾佬的生活來說,每天逛海鮮市場是必不可少的生活片段,這不,手抖一下又刷到了一個東付的電子標(biāo)價簽。
價格合理,2塊錢一個不包郵,直接買了N個。。。算了一下一個3.5,然后拿到群去炫耀了下,結(jié)果被群友A了一些。進(jìn)入正題,拆解它:
這款應(yīng)該是算最好拆解的標(biāo)價簽了,而且可以直接無損的安裝還原回去。
先看看屏幕的型號:E029A01
這款屏幕的型號無論是微雪還是干草干不干,半塘睡不醒,或是撒垃圾車大佬的固件都有適配,所以這次海鮮市場逛值了。
再來看看主板:
哇塞,是瑞薩的DA14585耶,這款芯片是很流行BLE藍(lán)牙,小米手環(huán)也用這個來做主控,其他大廠也都用,所以資料上應(yīng)該還可以,先去下載了下他的數(shù)據(jù)手冊,打開手冊看看:
里面有這兩引腳,看來可以入侵了,由于手頭沒好用的JLINK,所以買了個JLINK-OB和TTL:
等它們的同時先用萬用表測下板子上的幾個金屬觸點(diǎn)跟芯片的關(guān)系,這個就直接上圖和數(shù)據(jù)了:
DA14585芯片調(diào)試使用相關(guān)口:
- TP4 → RSTTP2&TP10 → ?GNDTP8 → ?P0_5 (RX)TP7 → ?P0_4 (TX)TP1&TP9 → ?VBAT 3VTP3 → ?VDDTP6 → ?SWDIOTP5 → ?SWCLK
墨水屏接口:
- BUSY → P2_0RST ?→ P0_7DC ? → P0_5CS ? ?→ P2_1SDI ? → P0_6SCK ? → P0_0PED_POWER ? → ?P2_3
閃燈IO口:
- D1 → P2_5
OK,這時候JLINK-OB也到了,我們把它接上:
然后上軟件,基本上我就用這個3個
- smartsnippets_toolbox_v5.0.10.2434_windowsKeil 5.36UartAssist.exe
安裝好 Keil和smartsnippets_toolbox后,需要把商家給的JLINK-OB的PJ工具給復(fù)制到對應(yīng)的目錄;商家會給你幾個文件替換破解,然后我們用everything大法來找到這幾個文件替換,只要替換SmartSnippets Toolbox v5.0.10和KEIL的安裝目錄下的就可以了,路徑下面圖:
TTL后面用的少,因為JLINK-OB可以承接所有工作,所以TTL只是用來看調(diào)試信息輸出日志。我們先打開DA的 SmartSnippets Toolbox v5.0.10 工具,然后接上JLINK-OB+上面的黑色價簽板子,需要焊接好線。點(diǎn)擊NEW
輸入名稱,隨便都可以,然后點(diǎn)SAVE
勾選下JTAG的那個ID 123456和芯片DA14585-00,然后點(diǎn)擊OPEN
進(jìn)入后藍(lán)色的日志說明沒啥問題,然后再點(diǎn)擊1后點(diǎn)擊2,查看OTP表
OTP表其實之前在看數(shù)據(jù)手冊和其他教程的時候?qū)λ姓`解,所以我們先點(diǎn)2看看
此時OTP表還是沒有被加載,需要點(diǎn)擊下connect,于是點(diǎn)了下,見證奇雞的時刻了。
完美,日志還是藍(lán)色的,如果有出現(xiàn)紅色的日志,有辦法的,不慌,一種是用黃色的REST線去碰下紅色的VCC線,讓他REST下,因為他是高電平復(fù)位,所以碰個一兩秒三秒啥的,然后再斷開JLINK-OB,重新插電,基本上就可以了?;蛘呖梢韵炔话蔚?,先REST下3秒,然后再點(diǎn)connect試試,我基本上都這么試過都可以,然后確實實在不行的話,檢測下線的問題,杜邦線插多次就會萎了,換下就好了,還有就是JLINK-OB,我買的這個JLINK-OB居然GND虛焊,導(dǎo)致我每次一動下GND那個線PC就會不斷的發(fā)出USB拔插掉線上線的聲音,所以你們看到的我的JLINK-OB是裸的,其實TB買回來是有熱縮管套的。。。所以呢,我就把它熱縮管脫掉,拆看了下,GND那邊是被虛焊了,自己補(bǔ)一下,現(xiàn)在穩(wěn)穩(wěn)的,都不紅色報警日志了。
繼續(xù)之前的,點(diǎn)擊了CONNECT之后,可以看到,OTP是被寫過的(第一二行顯示YES),這時候是不是有種藍(lán)瘦香菇的感覺?感覺買虧了?
再點(diǎn)下Read From memory 看看有沒有奇雞發(fā)生
當(dāng)。。。嘎了!OTP還是顯示 YES,如果沒有被OTP的話,應(yīng)該是顯示NO
于是乎又上了海鮮市場搞了一些沒有OTP的板子(想把沒有OTP的吹下來,焊接替換掉這個有OTP的DA14585芯片的板子上),訂單已下,老板人好,是個墨水屏常年玩家,告訴我,其實就算OTP了也可以用的。。。納里???
不過做人還是要厚道點(diǎn),單我買了,交點(diǎn)學(xué)費(fèi)了吧。所以等沒被OTP板子到的時候,我又開始了研究,結(jié)合老哥給的資料和信息我來重新對OTP認(rèn)識下;
其實OTP這部分,得看廠家的人品了,OTP的意思是一次性的寫入,寫后就不能更改了,所以英文翻譯過來是一次編程one time program,但是這么好的芯片不至于設(shè)計成這樣吧?所以DA14585這里有提供了一個小技巧(二次啟動);就是如果你不想讓別人再用的話,就把程序編寫好后生成二進(jìn)制直接寫入OTP,也就是在OTP里面寫你自己的APP,啟動的時候(一次啟動)就直接加載啟動到OTP里了;但是如果你想再次使用做開發(fā)的話,就不能直接把APP寫在OTP里了,那怎么辦?那就在OTP里面燒個二次啟動BOOT的程序呀,這個二次BOOT結(jié)合外部SPI-Flash進(jìn)行啟動,程序APP可以燒到外部SPI-Flash里(所以可以多次刷寫APP到SPI里),但是二次啟動的BOOT已經(jīng)固化到OTP里了;也就是說,OTP里面如果燒錄的是二次BOOT的話,那就可以多次利用了,那這個芯片你就繼續(xù)可以玩,不怕被OTP的限制無法使用。所以撿漏OTP的大致流程是(右邊的流程才撿漏哈):
所以我上面為啥說OTP這部分,得看廠家的人品了;所以對OTP的理解,其實就是取決于買到的芯片里面的OTP裝了啥程序,如果是二次BOOT的程序你就開心了,如果是正常的APP程序,你就買嘎了。然而二次BOOT程序廠家一般也都是直接去DA官方下SDK編或者直接有官方編好的HEX的文件拿來用了,基本上都是官方標(biāo)準(zhǔn)的代碼,所以大家也可以去下載瑞薩的DA14585X的SDK看,里面有二次BOOT的代碼。所以,怎么說呢,如何判斷OTP里面是不是寫了二次BOOT還是APP,這個本人也暫時無法識別,有知道的老哥哥們教我下,感謝!然后我們繼續(xù),既然流程圖上是說OTP如果被刷入二次BOOT的話SPI-FLASH應(yīng)該刷的是APP,所以我們寫個APP,燒到SPI-FLASH看看不就可以了?OK,開始前,我們先看看SPI-FLASH是否可以讀取,點(diǎn)擊紅色框,進(jìn)入SPI-FLASH界面
Connect成功
然后讀取32K看看,點(diǎn)擊 Read 32kb按鈕
看來這個地方可以被讀取的,也可以被擦除的,所以我們先開始寫個閃燈的代碼吧。
這個板子其實還可以用來做開發(fā)板,因為板子上預(yù)留了一個LED燈的空焊接,這個測了下,是跟芯片的P2_5引腳相通,那么就可以閃燈走起來。
先看下板子對比圖,一個是我沒焊接燈的,一個是我焊接了燈的,那邊我加了個600歐的R4, LED用了0603的以前的料子焊接到D1,上板子是我焊好的,下面圖是原來的沒有焊R4和D1的對比。
OK,先去官網(wǎng)或者其他渠道下載DA的SDK,我用的是SDK_6.0.18.1182.1,里面自帶blink工程,路徑參考圖片下面的文件路徑:
閃燈代碼
這里我們要修改一下了,因為要閃燈,所以引腳要對得上,先看看代碼里面的
LED_PORT和 LED_PIN是多少。
好家伙是1和0,那么就跟我們的P2_5對不上了,代碼中的Port 就是P 下劃線5就是PIN,所以P2_5對應(yīng)的代碼就是 GPIO_PORT_2 和 GPIO_PIN_5,改它!
順便看下上面的串口P0_4,這個跟我們黑色板子對得上,所以不需要改。
選一下工程DA14585,點(diǎn)Rebuild
很快就構(gòu)建完成了,基本上沒有報錯,妥妥的生成了bin文件。
然后我們進(jìn)行DEBUG看看,燈閃不閃,先進(jìn)行JLINK設(shè)置點(diǎn)擊魔法棒-切換到DEBUG標(biāo)簽頁面USE選擇JLINK,然后點(diǎn)擊Settings
如果你有插著JLINK-OB并且替換好商家給的那幾個DLL和EXE的話,這里就會顯示這些信息:
都不用動,點(diǎn)擊確定就好,外面的那個點(diǎn)擊OK就好。然后我們開始點(diǎn)DEBUG按鈕
到匯編這個頁面不用管,直接按F5
按F5后
完美成功閃亮。
本節(jié)我們就只是熟悉開發(fā)環(huán)境,點(diǎn)燈,感興趣的同學(xué)關(guān)注下等待我們下一節(jié)的更新。
關(guān)于墨水屏的學(xué)習(xí),希望大家Enjoy,我們一步一步的會進(jìn)行更多開源好玩兒項目的開源。