簡單介紹

我第一次認識 TLSR8232 是因爲我一直在尋找一個輕量的 BLE 方案, 偶然間拆解了 小米溫度計 之後看到。
然後就被驚艷到了, 它看起來非常適合我的需求。

它不僅封裝小(QFN24), 外圍電路還極端地簡單:
只需要 5個電容 和 1個電阻 外加 1個晶振 就能開始工作。

而且它竟然支援到 BLE 5.0 (媽耶)

特性

這個方案目前分爲兩個型號, 分別是

SoC SRAM Flash Protocol
TLSR8232F512ET32 16KB 512KB Bluetooth LE 5.0 (non-Audio)
TLSR8232F512ET24 16KB 512KB Bluetooth LE 5.0 (non-Audio)

但我手上的是 TLSR8232F128ET24 是 128KB 的 Flash, 看起來官網還沒有寫。
它們除了封裝和 Flash 大小有區別外, 都是使用的同一個 5316 IP核, 所以功能方面是一樣的。 應該連 Bug 都一樣

值得注意的是, 它們是用的 RISC-V 指令集的處理器。

一些小缺點

唯一一個較大的遺憾是, 它需要額外的下載器(Telink)對它編程,
協議還不是常用的 SWD / JTAG, 而是他們自己搞的 SWS / SWM (Single Wire Slave / Master)方案。

不過這裡有一個用串口模擬 SWS / SWM 的方案, 不想買 Telink 的朋友可以試一試。
其實我覺得用 FTDI 應該更好
pvvx/TlsrComSwireWriter
Ai-Thinker-Open/TBXX_Flash_Tool

據説開發起來有一些坑, 以後遇到了再補。
据某個大佬説, Telink 使用的編譯器還有 Bug (操作的 RAM 地址沒有對齊 2 / 4 字節會寫入出錯)

裝完打開IDE, 開幕雷擊:
img

這個 智障一樣的 魔改 Eclipse 竟然只會固定尋找 C 盤下的 JVM, 而不是從安裝目錄。
所以强制安裝 C 盤從來都是壞文明, 我是非常反感强制安裝 C 盤的做法。 (我就不裝 C 盤你來打我啊)

所以這裡就要用到一個小 Trick 來橄欖它 (記得使用UAC)

1
2
3
4
5
# 轉到 C 盤根目錄
> C: && cd /

# 將 C:\TelinkSDK 連接到 D:\TelinkSDK
> mklink /J TelinkSDK D:\TelinkSDK
這裡是大佬給的另外一種解決方法。

打開 D:\TelinkSDK\eclipse.ini
修改掉 jvm.dll 的路徑
img

然後它就調教好了? 才怪。

img
只能搖頭感嘆都 2202 年了爲什麽還有人在用這個垃圾玩意。 快從我電腦滾出去! (震聲)
這個爛泥扶不上墻的東西, 得想個辦法用 Makefile 直接用 SDK 的 Toolchain 在 Vscode 寫, 不然我會被氣死的。

構建樣例工程

先按照官方的步驟, 下載 SDK 這哪是 SDK, 我看就是工程模板 然後彈出導入向導, 跟隨向導提示將 SDK 導入到工作區。
接著就能在 vendor 下看到樣例工程了。
img

選中感興趣的樣例工程, 然後點擊工具欄上的 🔨 測試編譯, 不出意外 一堆 Warning 之後 編譯成功並生成 bin 檔案。
img

部署到評估板

拿出準備好的 Telink, 用測試探針飛到評估板,
img

像這樣連接就可以了。
img

打開 BDT 工具, 依次按照以下操作載入固件

  • 晶片型號選擇 8232
  • 點擊 File -> Open 選擇固件檔案
  • 點擊 Reset 重置晶片
  • 點擊 Active 激活晶片
  • 點擊 Download 載入

img

載入成功。
然後就能打開手機, 檢索 BLE 廣播信標訊號了。

一些囉嗦

個人感覺 Telink 的 BLE SoC 還算較方便入門了, 相比隔壁 Nordic 的各種爛大街的 NRF51822,
它的工程是分兩個層級 Soft DeviceUser App, 需要先編程它的 Soft Device 然後再編程自己的 App。

部署非常麻煩, 而且在編程自己的 App 之後, 還不知道 Soft Device 有沒有正常運行,
經常會發生 「調用 Soft Device API 然後就宕機」 的情況。

個人不是很喜歡這種開發結構了。還是做的太爛了
除開開發複雜以外, 而且拆機貨和翻新貨特別多。

而 Telink 是國產方案, 供貨充足, 價格也非常低廉。
不過這個上海的公司爲什麽用全英文