工作項(xiàng)目中,有一個(gè)3x8段數(shù)碼管顯示的需求,無(wú)意中從網(wǎng)上有看到有大牛改裝電子胸牌的帖子。
因而對(duì)電子胸牌的原理做了仔細(xì)的了解。選擇的是淘寶上買(mǎi)的 ”樂(lè)閃優(yōu) 五字電子胸牌“。
廠家不提供通訊接口,但提供PC上位機(jī)改字軟件,本來(lái)想通過(guò)bus hound直接抓取USB通訊數(shù)據(jù)協(xié)議。
這樣主機(jī)(Android) 可以直接把電子胸牌做數(shù)碼管顯示。結(jié)果,協(xié)議破解還相對(duì)容易,只是每次改字軟件每次更新顯示內(nèi)容時(shí),胸牌上都會(huì)固定的顯示 “M1-8 ”,用來(lái)提示。故不能直接使用。看來(lái)只能重寫(xiě)固件代碼了;1,胸牌上電前,按下靠近胸牌的按鍵,胸牌會(huì)進(jìn)入DFU模式,但自己寫(xiě)的代碼燒進(jìn)去后,總是無(wú)法運(yùn)行,每次都提示option bytes未擦除,這條路沒(méi)走通。
2,找到芯片上的Jtag引腳,將PA13 PA14引腳接到J-link, j-link采用SWD 模式 可以調(diào)試代碼了。
但是因驅(qū)動(dòng)GPIO中有用到PA13, PA14引腳,故中途調(diào)試時(shí),調(diào)試一次后,就沒(méi)辦法再調(diào)試了,SWD引腳指向GPIO功能了。3,最后想到用廠家的ISP串口下載功能。PCB板上Pin44 BOOT0腳強(qiáng)行接到了GND,但進(jìn)入ISP需要BOOT0接VCC,故將芯片Pin44腳翹起,通過(guò)一個(gè)按鍵開(kāi)關(guān),來(lái)選擇是接GND,還是接VCC,
順便把Pin7 Reset引腳也接了出來(lái),通過(guò)按鍵可以進(jìn)行復(fù)位。PCB上預(yù)留了串口接BT模塊的接口,故PCB上有USART1的接口焊盤(pán),方便了不少。PA14->Usart1.TX PA15->Usart1.RX.
(二) 胸牌點(diǎn)亮邏輯圖
通過(guò)萬(wàn)用表測(cè)量,胸牌共11行,55列,GPIO點(diǎn)亮邏輯圖如下:
從輯邏圖中可以看出,每二列由一個(gè)GPIO控制。
所以驅(qū)動(dòng)時(shí)序如下1,先將要點(diǎn)亮的列GPIO設(shè)置為Push_Pull 輸出高,其它輸出低。2,對(duì)選中列的11行進(jìn)行掃描,每次掃描輸出一行中二個(gè)燈的狀態(tài)。主要點(diǎn)亮函數(shù)代碼附上:
void LED_Open(uint8_t x, uint8_t y)
{
if(x >= LED_COL || y >= LED_ROW)return;
Clear_All_LED();
Write_One_LED_Pin(Led_GPIO_Port_Arrange[x / 2], Led_GPIO_Pin_Arrange[x / 2], 1); //áD??í¨
if (y <= 4){?
if(x % 2 == 0)
{
if(x <= 4 * y ) ? ? ? ? Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2 + 1], Led_GPIO_Pin_Arrange[y * 2 + 1], 0);
else Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2], Led_GPIO_Pin_Arrange[y * 2], 0);
}else{
if(x <= 4 * y + 3) ? ? ? ? Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2 + 2], Led_GPIO_Pin_Arrange[y * 2 + 2], 0);
else Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 2 + 1], Led_GPIO_Pin_Arrange[y * 2 + 1], 0);
}
}else{
if(x % 2 == 0)
{
if(x <= 6 * y - 10) Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 3 - 4], Led_GPIO_Pin_Arrange[y * 3 - 4], 0);
else Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 3 - 5], Led_GPIO_Pin_Arrange[y * 3 - 5], 0);
}else{
if(x <= 6 * y - 7) ? ? ? ? Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 3 - 2], Led_GPIO_Pin_Arrange[y * 3 - 2], 0);
else Write_One_LED_Pin(Led_GPIO_Port_Arrange[y * 3 - 4], Led_GPIO_Pin_Arrange[y * 3 - 4], 0);
}
}
}
現(xiàn)在胸牌屏改為了串口通訊接口,就做了一下串口的上位機(jī)軟件,可以手動(dòng)點(diǎn)亮屏。
項(xiàng)目中,要將游戲中的運(yùn)動(dòng)人物的時(shí)間,速度,個(gè)數(shù)顯示到屏,在Excel中弄一些顯示模板,對(duì)協(xié)議也做了包裝,上面只要發(fā)送 目標(biāo)值(小數(shù)字)及即時(shí)值(大數(shù)字)就可以實(shí)現(xiàn)顯示功能了。
這樣游戲和硬件中都不需要含字庫(kù)了。具體軟件Android游戲的同事正在調(diào)試使用,等樣機(jī)出來(lái)后,我會(huì)上圖,敬請(qǐng)大家期待哈~~~
(顯示屏外套上濾光片后,顯示效果就好很多,先上個(gè)裸照)
最終的效果圖出來(lái)了,實(shí)際的顯示效果比拍出來(lái)的效果好。
拍出來(lái)的圖片紅暈太明顯了,實(shí)際顯示沒(méi)有紅暈。
要做樣機(jī),后續(xù)又買(mǎi)了兩個(gè),居然發(fā)現(xiàn)版本號(hào)不一樣了,MCU換成了MM的單片機(jī)~~~~~~
找電話給淘寶店主,一是不給換,二要再買(mǎi)之前GD的版本,店主也愛(ài)理不理,態(tài)度不好。
可能是我沒(méi)能如他希望的那樣,沒(méi)有下個(gè)大單給他吧~~~
下載了MM的下載軟件,同樣把BOOT0拉到高,用MM32ISP下載工具,然而怎么樣都連不上,無(wú)法用ISP。
懷疑有二點(diǎn):1,MM單片機(jī)ISP串口不知是不是PA14,PA15,從MM資料中沒(méi)有找到這方法的介紹。
2,網(wǎng)絡(luò)上說(shuō)MM單片機(jī)有些是沒(méi)有ISP功能的。搞的我也很懷疑了。官方資料上,對(duì)ISP好像也很排斥一樣,一點(diǎn)介紹都沒(méi)有。最后只能用終級(jí)一招了,換MCU。從嘉立創(chuàng)上買(mǎi)來(lái)GD單片機(jī)換掉它。
最終搞定!
-
pcb
+關(guān)注
關(guān)注
4326文章
23161瀏覽量
399997 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1887瀏覽量
91409 -
ISP
+關(guān)注
關(guān)注
6文章
478瀏覽量
52017
原文標(biāo)題:胸牌DIY改裝記錄
文章出處:【微信號(hào):weixin21ic,微信公眾號(hào):21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
求大牛電子血壓計(jì)設(shè)計(jì)原理
改裝的移動(dòng)電源
【FireBLE申請(qǐng)】藍(lán)牙胸牌定位系統(tǒng)
關(guān)于匯納玩具挖機(jī)的遙控定時(shí)改裝
NEC閃光胸牌及閃存編程器原理及設(shè)計(jì)
汽車(chē)音響原理及改裝實(shí)用技術(shù)
![汽車(chē)音響原理及<b class='flag-5'>改裝</b>實(shí)用技術(shù)](https://file.elecfans.com/web2/M00/48/C4/pYYBAGKhtCKAN-qEAAA_nmt4PMI081.jpg)
LED燈改裝要注意導(dǎo)熱和散熱_最全燈光改裝知識(shí)詳解
汽車(chē)音響改裝基礎(chǔ)知識(shí)點(diǎn)匯總_汽車(chē)音響改裝流程
改裝汽車(chē)電路有哪些危害?
大牛都是怎么學(xué)習(xí)STM32的?看完頓悟資料下載
![<b class='flag-5'>大牛</b>都是怎么學(xué)習(xí)STM32的?看完頓悟資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
藍(lán)色音箱改裝電源_禪城區(qū)丹拿音響改裝多少錢(qián)
![藍(lán)色音箱<b class='flag-5'>改裝</b>電源_禪城區(qū)丹拿音響<b class='flag-5'>改裝</b>多少錢(qián)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論