<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于TI MSPM0L1306芯片的共享充電寶系統設計

基于TI MSPM0L1306芯片的共享充電寶系統設計

作者:鄭思源 時(shí)間:2025-01-20 來(lái)源:EEPW 收藏

1   作者介紹

本文引用地址:http://dyxdggzs.com/article/202501/466479.htm

我來(lái)自北京,碩士研究生,中級嵌入式工程師職稱(chēng)。畢業(yè)后一直從事嵌入式開(kāi)發(fā)領(lǐng)域工作,涉及工業(yè)控制,網(wǎng)絡(luò )通訊,人機界面等項目。雖多年工作經(jīng)驗,仍然熱愛(ài)著(zhù)嵌入式開(kāi)發(fā),也擁抱開(kāi)源,樂(lè )于分享。

2   項目概要

本次設計是在做項目選型時(shí)了解到TI 公司L1306 芯片非常適合做為等小設備的主控芯片。于是,計劃使用L1306 復刻系統。

系統主要有兩個(gè)核心功能:一、充電、放電控制,包含PD協(xié)議;二、管理與計費;還有輔助功能:充、放電監測與保護功能;數據加密,解密與日志記錄功能等。

在本次原型設計中,我們將利用L1306 的特性來(lái)快速、簡(jiǎn)潔的實(shí)現上述功能。

3   系統架構圖

1737353084698247.png

4   功能特性

TI 公司的MSPM0L1306 芯片有著(zhù)豐富的外設,其中優(yōu)秀的數字通訊外設非常適合我們與外設器件進(jìn)行數據交互,而強大的模擬外設不僅讓我們的PCB 設計簡(jiǎn)單,也提高了應用的靈活性。下面我們簡(jiǎn)單列出我們本次實(shí)現的主要功能,再重點(diǎn)講述一下,我們利用MSPM0L1306 芯片實(shí)現的高階應用。

4.1 系統時(shí)鐘

在本次項目設計中,我們考慮到共享充電寶是基于電池設備的原因,所以我們盡量降低MCU 的運行功耗。因此,我們將MSPM0L1306 的運行主頻設定為4MHz,并使用內部OSC 以減少功耗及BOM 成本。

4.2 Uart串口

我們使用Uart 串口做為我們調試輸出口,在調試階段打印輸出系統狀態(tài),以便我們分析,了解程序運行狀態(tài)。在本次項目設計中,我們使用“9600-8-N-1”的串口配置參數。

4.3 Timer外設的PWM模式

為節省共享充電寶的LED 顯示燈的數量,我們利用PWM 波調節LED 的狀態(tài),以便顯示更多的狀態(tài)給用戶(hù),增加用戶(hù)體驗。即,在亮、滅兩種狀態(tài)下,增加呼吸燈狀態(tài),以示當前在充、放電狀態(tài)。

4.4 RTC實(shí)時(shí)時(shí)鐘

共享充電寶需要有時(shí)基來(lái)計量當前使用時(shí)間,充電時(shí)間,放電時(shí)間等參數。我們在MSPM0L1306 芯片上使能LFOSC,其將產(chǎn)生32.768KHz 的時(shí)鐘源激勵RTC實(shí)時(shí)時(shí)鐘。

4.5 CRC校驗

CRC 校驗算法,其在數據完整性檢查方面是最廣泛的應用。部署CRC 算法的實(shí)現幾乎成為數據通訊的必選項,而在MSPM0L1306 芯片內,已經(jīng)集成了CRC16和CRC32 兩種硬件算法,可以省去我們軟件實(shí)現,釋放部分算力與代碼空間。

4.6 AES加密解密算法

在共享充電寶系統中,計費系統是關(guān)鍵,也是非常重要的一環(huán)。計費失敗導致的問(wèn)題這里不多說(shuō),但每一個(gè)都“致命”級別的問(wèn)題。而保障計費安全的一個(gè)有力措施就是對數據進(jìn)行加密處理。復雜的AES 算法由MSPM0L1306的硬件模塊來(lái)實(shí)現,將使得加密不再復雜,不再影響系統性能。

4.7 NVM模塊

每個(gè)產(chǎn)品都要有一個(gè)唯一的產(chǎn)品序列號,我們共享充電寶亦如此。不再程序開(kāi)發(fā)階段寫(xiě)入的序列號,也就只能在出廠(chǎng)前寫(xiě)入。此時(shí)NVM 模塊便起到關(guān)鍵作用。我們也借助NVM 模塊,通過(guò)串口通道,將序列號寫(xiě)入產(chǎn)品中。

4.8 I2C通訊

I2C 通訊是一個(gè)低成本,低速率的通訊協(xié)議。其使用2 線(xiàn)制即可傳輸數據,主要應用于板上通訊。在我們本次設計系統里面,我們主控芯片MSPM0L1306 做主設備通過(guò)I2C 外設與PD 充放電模塊從設備進(jìn)行數據交互,獲取當前充電、放電的狀態(tài),從而進(jìn)行計費與統計功能。我們的I2C 外設配置速率為100Kbps。

4.9 I2C-SMBus通訊

SMBus 協(xié)議是I2C 協(xié)議的一個(gè)子集。其使用I2C 協(xié)議,但在其之上又進(jìn)行了一層上層應用層的封裝,可謂“青出于藍,而勝于藍”。

在本項目中的共享充電寶來(lái)說(shuō),其可以選擇任意一個(gè)充電站,選擇任意一個(gè)充電槽。所以,共享充電寶不可能以固定從地址的方式來(lái)接入充電站。這時(shí),低成本的I2C 總線(xiàn)協(xié)議,再加上SMBus-ARP 協(xié)議則可以輕松解決這個(gè)技術(shù)難題。

TI 新推出的MSPM0L1306 系列MCU 不僅支持SMBus 協(xié)議,而且支持到了SMBus 3.0,領(lǐng)先同行的MCU??此朴侄嗔艘粋€(gè)協(xié)議層,但我們具體實(shí)現步驟依然非常簡(jiǎn)單,僅需要根據共享充電寶的序列號來(lái)生成SMBus 協(xié)議下的UDID(128bit 數據)即可。當我們把共享充電寶插入充電槽后,MSPM0L1306 則主動(dòng)向Host 發(fā)起Notify 命令,當充電站Host 接收到Notify 通知后,則按協(xié)議要求發(fā)起SMBus-ARP 流程,開(kāi)始按步驟為共享充電寶分配當前從地址。當SMBus-ARP 流程完成后,充電寶則有自己的從地址(離開(kāi)插槽失效),而充電站也記錄下當前已經(jīng)有共享充電寶插入,并分配了從地址。充電站之后則按此分配的從地址進(jìn)行通訊。

在本項目中,我們還實(shí)現SMBus 協(xié)議命令中的BlockRead/Write 命令,用于充電站(Host)向共享充電寶獲取和寫(xiě)入數據。

4.10 ADC,OPA,COMP模擬外設

共享充電寶在充、放電過(guò)程中,我們需要對其進(jìn)行監測,監測充電寶當前的運行狀態(tài),保護其不超壓,不過(guò)放,在短路、超壓等情況發(fā)生下,快速切斷連接;也要測量電流,用于統計充、放電量的數值。上述功能的實(shí)現,在MSPM0L1306 芯片下,其已經(jīng)全部集成于一身,不需要增加外圍器件。我們輕松使用12bit 的ADC 來(lái)測量電池電壓,使用COMP 比較器快速響應過(guò)流,短路的情況發(fā)生;使用OPA 外設,輕松實(shí)現PD 協(xié)議下充電電壓的范圍變化而不影響測量精度。

5   系統實(shí)現

5.1 引腳分配

1737353041942728.png

5.2 軟件架構

本項目軟件架構相對簡(jiǎn)潔,主要分為兩大部分:

一、充、放電狀態(tài)監測;

二、與充電站通訊;

5.2.1 流程圖

1737353067801622.png

5.2.1 核心數據結構

當共享充電寶返回充電站后,充電站需要收集共享充電寶的使用狀態(tài),如本次充電時(shí)長(cháng),本次充電電量,本次放電時(shí)長(cháng),本次放電電量,當前電池電壓,當前電量,累計充電時(shí)長(cháng),累計充電電量,累計放電時(shí)長(cháng),累計放電電量等。我設計數據結構如下:

image.png

5.2.2 低功耗設計

在本項目中,低功耗設計有兩種應用場(chǎng)景:一、工作狀態(tài)下。當系統空閑時(shí),進(jìn)入sleep 狀態(tài),以節省功耗;二、在共享充電寶低電量情況,則MSPM0L1306 進(jìn)入深度休眠。

5.3 核心代碼

5.3.1 按鍵代碼實(shí)現

image.png

image.png

5.3.2 Uart串口輸出實(shí)現

image.png

image.png

5.3.3 LED呼吸燈

image.png

image.png

image.png

5.3.4 ADC采樣

image.png

image.png

6   項目展示

6.1 擴展板

1737353114368498.png

6.2 成品實(shí)物圖

image.png

7   經(jīng)驗分享

在開(kāi)發(fā)過(guò)程中,我也遇到了一些困難,踩過(guò)一些坑。在這里也一并分享出來(lái),希望對大家有所幫助。

7.1 板載調試器XDS110

TI 公司的XDS110 的名氣非常大,但在MSPM0L1306 開(kāi)發(fā)板上使用起來(lái)非常簡(jiǎn)單。我們只需要連接到電腦,看到任務(wù)管理器中已經(jīng)枚舉出來(lái)“XDS110”,打開(kāi)Keil 軟件后,在debug 標簽頁(yè)選擇”CMSIS-DAP”選項即可連接調試。

所以,此XDS110 調試器,非彼XDS110。大家不要弄錯喲!

補充說(shuō)明:在MSPM0L1306 的官方QuickGuide 文檔里面有特別提醒,只是我沒(méi)有仔細看。

8   項目總結

我們突出分享I2C-SMBus,低功耗與模塊外設這三個(gè)特性,主要是TI MSPM0L1306 芯片內部完美集成。我在電路設計時(shí),無(wú)需再使用外圍器件實(shí)現,節約了PCB 面積,減少了BOM 物料,直接CostDown 了項目成本,而且還帶來(lái)了軟件實(shí)現的靈活性?!昂螛?lè )而不為呢?”

9   致謝

感謝TI 公司提供MSPM0L1306 開(kāi)發(fā)板,讓我提早試用,完成原型開(kāi)發(fā),這必將會(huì )節省我實(shí)際項目的開(kāi)發(fā)時(shí)間,也會(huì )讓我更加從容面對項目周期的壓力。

感謝EEPW 論壇提供各種幫助,讓我有機會(huì )分享我的小作品。

感謝其他在本原型開(kāi)發(fā)過(guò)程中幫助我的人。再次感謝您的收聽(tīng),收看。

(本文來(lái)源于《EEPW》



關(guān)鍵詞: 202501 MSPM0L1306 共享充電寶 MSPM0

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>