KT803C的測試模組是UDPF1FS
1.1?簡介?
UDP1FS是一個提供串口的語音模塊,**的集成了MP3、WAV的硬解碼。同時軟件支持工業(yè)級別的串口通信協(xié)議,以SPIFLASH作為存儲介質(zhì)。通過簡單的串口指令即可完成播放指定的語音,以及如何播放語音等功能,無需繁瑣的底層操作,使用方便,穩(wěn)定可靠是此款產(chǎn)品的**特點。
無需任何燒錄器,無需任何軟件,USB直接燒寫FLASH。同時支持串口直接下載語音
UDP1FS模塊是基于KT803C芯片開發(fā)的測試模塊,用以滿足串口下載語音的需求
兼容KT803C[SSOP24] 和KT804C[SOP16]兩款芯片的測試
1.2?功能
1、支持采樣率(KHz):8/11.025/12/16/22.05/24/32/44.1/48
2、24位DAC輸出,動態(tài)范圍支持90dB,信噪比支持85dB
3、**支持16M字節(jié)的SPIFLASH。例如W25Q16[2M字節(jié)]、W25Q128[16M字節(jié)]
4、Miniusb接口更新語音文件,無需安裝任何軟件。支持XP和WIN7系統(tǒng)。
5、30級音量可調(diào)。支持外掛多種類型的功放,如3W、5W、10W等等
6、支持用戶直接單片機窗口下載語音,按照我們給出的協(xié)議。滿足遠程更換聲音的需求,常見的如藍牙、wifi、4G等等無線方案來輕松的更換聲音
7、存儲的語音文件可以很方便的通過串口進行動態(tài)更新。適用于一些短聲音文件,以及小文件
1.3?應(yīng)用
1、 車載導(dǎo)航語音播報
2、 公路運輸稽查、收費站語音提示;
3、 火車站、汽車站安全檢查語音提示;
4、 電力、通信、金融營業(yè)廳語音提示;
5、 車輛進、出通道驗證語音提示;
6、 公安邊防檢查通道語音提示; ????
8、 電動觀光車安全行駛語音告示; ??
9、 機電設(shè)備故障自動報警;
10、消防語音報警提示;
1.?方案說明
芯片選用的是SOC方案,集成了一個16位的MCU,以及一個專門針對音頻解碼的aDSP,采用硬解碼的方式,更加保證了系統(tǒng)的穩(wěn)定性和音質(zhì)。小巧的封裝尺寸更加滿足嵌入其它產(chǎn)品的需求
2.1?參數(shù)說明
?
名稱 | 參數(shù) |
MP3文件格式 | 1、支持所有比特率11172-3和ISO13813-3 layer3音頻解碼 |
2、采樣率支持(KHZ):8/11.025/12/16/22.05/24/32/44.1/48 | |
3、支持Normal、Jazz、Classic、Pop、Rock等音效 | |
USB接口 | 2.0標準 |
UART接口 | 標準串口,TTL電平,波特率可設(shè)[用戶不可設(shè)] |
輸入電壓 | 3.7V-5.2V[7805后級串一個二極管為*] |
額定電流 | 10MA[靜態(tài)] |
低功耗電流 | |
功放功率 | 負載32歐姆0.25W[只支持驅(qū)動耳機][不支持直接驅(qū)動喇叭] |
尺寸 | 參見封裝章節(jié) |
工作溫度 | [-40度] -- [80度] |
濕度 | 5% ~ 95% |
主芯片型號 | KT803C[SSOP24] |
2.2?管腳說明
引腳序號 | 引腳名稱 | 功能描述 | 備注 | |
1 | GND | 地[負極] | 系統(tǒng)地 | |
2 | RX | UART串行數(shù)據(jù)輸入 | 3.3V的TTL電平 | |
3 | TX | UART串行數(shù)據(jù)輸出 | 3.3V的TTL電平 | |
4 | DR | 芯片DAC輸出右聲道 | ? | |
5 | DL | 芯片DAC輸出左聲道 | ? | |
6 | SPK2 | 外接單聲道喇叭 | 不可超過4歐姆3W | |
7 | IO4 | 通用輸入輸出口4 | ? | |
8 | IO3 | 通用輸入輸出口3 | ? | ? |
9 | IO1 | 通用輸入輸出口1 | ? | ? |
10 | IO2 | 通用輸入輸出口2 | ? | |
11 | SPK1 | 外接單聲道喇叭 | 不可超過4歐姆3W | |
12 | BUSY | 播放狀態(tài)腳 | 播放時輸出低 | |
13 | V33 | ? | ? | |
14 | USB+ | USB數(shù)據(jù)線DATA+ | ? | |
15 | USB- | USB數(shù)據(jù)線DATA- | ? | |
16 | VIN | 電源輸入[正極] | **5.2V |
備注:模塊內(nèi)置單聲道功放。另外模塊第1腳和第16腳都有絲印標注的
(1)、用戶如果拿一個喇叭對模塊進行測試,把喇叭的兩個腳分別連接SPK1和SPK2.
(2)、DACL和DACR只能推動耳機,是芯片內(nèi)部自己產(chǎn)品的音頻信號,就像電腦的音頻接口一樣
2.3?簡單測試方法
1、我們的模塊自帶Microusb座子,用戶可以直接接電腦更新語音
2、直接使用安卓的充電線下載或者供電即可[非typeC接口]
3、用戶拿到模塊,可以用鑷子IO1到地[模擬一個微動開關(guān)]來判斷
模塊是否正常,但是前提是設(shè)備中至少要有1段語音
4、模塊如果正常播放聲音之后,就可以使用串口對模塊進行正常的
測試了
5、一定不要用usb連接電腦供電,因為會進入下載模式
?
?
?
?
?
2.4下文的概念解析
1、分區(qū)的概念
(1)、由于我們將spiflash默認的分為了兩個區(qū)間,所以下文會提到,**分區(qū)和第二分區(qū)的概念.
(2)、其中**分區(qū)指的是可以通過USB下載固定語音的部分空間
(3)、其中第二分區(qū)指的是通過串口動態(tài)更新的部分空間
(4)、兩個空間相互獨立,互不干擾,可以分別控制,也可以統(tǒng)一控制,詳見下文的介紹
?
2.5串口下載流程說明---最為核心的部分
以下所有的流程,您只需要在邏輯上面分析一下,知道一個大概即可,我們有單獨的上位機軟件來配合調(diào)試的,所有的命令以及下載的流程都在上位機里面有體現(xiàn)
?
2.5.1?串口下載的協(xié)議
波特率:115200????數(shù)據(jù)位:8??奇偶校驗:None???停止位:1????流控制:全部關(guān)閉
一、串口下載文件數(shù)據(jù)格式(0xA1)?----這里只爭對下載數(shù)據(jù)包
字節(jié)序號 | 字節(jié)內(nèi)容 | 字節(jié)含義 |
1 | 0x7E | 起始標記 |
2 | CMD | 命令字節(jié) |
3 | lenH | 包的序號--高字節(jié)[不包含校驗和結(jié)束、自身] |
4 | lenL | 包的序號--低字節(jié)[不包含校驗和結(jié)束、自身] |
..... | DAT | 數(shù)據(jù)區(qū)[固定256個字節(jié)] |
結(jié)束 | 0xEF | 結(jié)束標志 |
備注:我們規(guī)定一幀數(shù)據(jù)的數(shù)據(jù)區(qū)固定為256個字節(jié) |
完整的下載有效數(shù)據(jù)格式:
幀頭 | 命令 | 包序號[高字節(jié)] | 包序號[低字節(jié)] | 有效數(shù)據(jù)...... | 結(jié)束 |
0x7E | 0xA1 | lenH | lenL | DAT[256] | 0xEF |
?
?
?
?
?
?
?
2.5.2?串口下載的詳細說明
1、如果上位機發(fā)送一個100.2KB的音頻文件至芯片,那么發(fā)送的細節(jié)如下
?
(1)、首先分析這100.2KB的數(shù)據(jù),將這個數(shù)據(jù)拆分為以256[0.25kb]個字節(jié)為單位的數(shù)據(jù)包.那么總共需要傳400.8次才能將這一幀數(shù)據(jù)傳完。重點注意后面的0.8次實際上是占用一次的,不夠256個字節(jié)的字節(jié)補0。組成一個完整的256字節(jié)的數(shù)據(jù)包,即總包數(shù)為401包
(2)、開始握手。上位機發(fā)送7E A0 00 03 03?01 91 ?EF
==> 這個代表上位機準備發(fā)送下載數(shù)據(jù),03代表的是第3個文件。這個數(shù)據(jù)的總包數(shù)為“0x0191= 401”
==> 下位機收到之后,會返回7E A0 00 02 00 00 EF,代表下位機準備就緒
==> 此時上位機開始發(fā)送**包數(shù)據(jù),下位機收到之后,會返回“7E A0 00 02 00 01 EF”代表**包數(shù)據(jù)收到,此時上位機依次往下發(fā),下位機每次收到之后,都會返回當前包的序號作為應(yīng)答
==> 如果上位機在5秒之類沒有收到下位機的應(yīng)答,則重發(fā)。重發(fā)第二次還未收到應(yīng)答,則意味著此次下載失敗,上位機需要做的事情就是發(fā)送“復(fù)位命令”,然后等待100ms,再重新發(fā)起下載。
?
2、如果第3個文件上位機發(fā)送完畢:
(1)、上位機主動往下位機發(fā)送“7E A3 00 02 00 03?EF”,這樣代表上位機已經(jīng)將當前全部下發(fā)完畢。
(2)、等待下位機應(yīng)答。如果下位機接收沒問題,會返回這條指令作為應(yīng)答,上位機再繼續(xù)下一個文件的下載流程
【備注:每一包數(shù)據(jù),我們芯片收到之后會自動寫入到存儲器之中?!?/b>
?
3、如果上位機發(fā)送完所有的數(shù)據(jù)之后的處理
(1)、確認一下所有的應(yīng)答都接收是否有誤,如果無誤,則上位機主動發(fā)出一個
“7E A3 00 02 00 00 EF” --- 代表整個下載過程完成,告知下位機退出下載模式
(2)、同時下位機收到這個命令之后,開始校驗整個的文件數(shù),確認沒問題返回“7E 3F?00 02 dat1?dat2?EF”作為應(yīng)答,同時下位機退出下載模式。進入正常等待狀態(tài)”。
[dat1:**分區(qū)文件總數(shù)]
[dat2:第二分區(qū)文件總數(shù)] --- 串口下載的部分
?
?
?
?
?
這里使用上位機單獨下載一個文件的截圖:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
2.5.3?串口下載的相關(guān)指令說明
串口下載所使用的指令“0xA0”、“0xA1”、“0xA2”、“0xA3”
?
1、下載信息交換(A0)
?
7E A0 00 03 03?01 91?EF | 上位機發(fā)起下載申請[dat1:文件編號][dat2:總包數(shù)高][dat3:總包數(shù)低] |
7E A0 00 02 00 00 EF | 下位機給上位機的應(yīng)答,上位機收到就可以開始發(fā)送數(shù)據(jù) |
7E A0 00 02 00 01 EF | 下位機返回給上位機第1包的應(yīng)答 |
7E A0 00 02 00 02 EF | 下位機返回給上位機第2包的應(yīng)答 |
.......... | ? |
7E A0 00 0201 91?EF | 下位機返回給上位機第401包的應(yīng)答 |
?
7E A3 00 02 00 03 EF | 上位機本文件的**一包數(shù)據(jù)的應(yīng)答收到之后,就發(fā)送這條命令代表上位機當前文件的全部數(shù)據(jù)發(fā)送完畢,等待下位機校驗之后的應(yīng)答,下位機校驗無誤之后,返回此幀數(shù)據(jù),作為應(yīng)答。上位機收到之后開啟下一幀的數(shù)據(jù)發(fā)送流程 |
7E A3 00 02 00 04 EF | 代表第4個文件接收完畢 |
... | ? |
7E A3 00 02 00 0b EF | 代表第11個文件接收完畢 |
7E A3 00 02 00 00 EF | 收到下位機****文件的**一個應(yīng)答之后,上位機主動發(fā)出,代表文件全部更新完畢,下位機收到之后,校驗全部的文件是否正常,如果正常,則返回此幀數(shù)據(jù)作為應(yīng)答,同時退出下載模式 |
?
2、傳輸過程中出錯的代碼反饋【下位機到上位機】(A2)
7E A2 00 02 00 01?EF | 下位機傳輸超容量范圍的應(yīng)答 |
7E A2 00 02 00 02?EF | 文件編號錯誤的應(yīng)答(未連續(xù)或未從**個開始) |
7E A2 00 02 00 03?EF | 當前數(shù)據(jù)包接收錯誤,請求重發(fā) |
7E A2 00 02 00 04?EF | 當前文件校驗出錯[針對單個文件下載完之后] |
7E A2 00 02 00 05?EF | 全部文件校驗出錯[針對全部文件下載完之后] |
這個暫時可以不處理。
?
?
?
3.?串口通訊協(xié)議
????串口作為一種在控制領(lǐng)域常用的通信,我們進行了工業(yè)級別的優(yōu)化,加入的幀的校驗、重發(fā)、錯誤處理等措施,大大加強通信的穩(wěn)定性和可靠性,串口的通信波特率默認為115200,不可再設(shè)置
?
3.1?通訊格式
支持異步串口通訊模式,通過串口接受上位機發(fā)送的命令 ????停止位 ?:1 | ||
格式:$S ?VER ?Len ?CMD ?Feedback?para1 ?para2 ?checksum ?$O | ||
1 | 0x7E | 起始標記 |
2 | CMD | 命令字節(jié) |
3 | lenH | 包的序號--高字節(jié) |
4 | lenL | 包的序號--低字節(jié) |
..... | DAT | 數(shù)據(jù)區(qū) |
結(jié)束 | 0xEF | 結(jié)束標志 |
舉個例子,如果我們指定播放SPIFLASH,就需要發(fā)送:7E A5?00?02?00 01 EF
數(shù)據(jù)長度為2?,這2個字節(jié)分別是[00 01] 。代表是指定**分區(qū)的**段語音播放
?
?
?
?
?
?
?
?
?
?
3.2?通訊指令
我們的通訊分為以下兩大塊
n?控制指令
n?查詢芯片的參數(shù)以及狀態(tài)
3.2.1?控制指令
CMD命令 | 對應(yīng)的功能 | 參數(shù)(16位) |
0x01 | 下一曲 | ? |
0x02 | 上一曲 | ? |
0x03 | 指定曲目(NUM) | 詳見3.4.1 |
0x04 | 音量+ | ? |
0x05 | 音量- | ? |
0x06 | 指定音量 | 詳見3.4.2 |
0x0C | 芯片復(fù)位 | 任何狀態(tài)有效 |
0x0D | 播放 | ? |
0x0E | 暫停 | ? |
0x0F | 指定文件夾文件名播放 | 暫不開放 |
0x16 | 停止 | ? |
0x17 | 指定文件夾循環(huán)播放 | 暫不開放 |
0x19 | 對當前播放的曲目設(shè)置為循環(huán)播放 | 暫不開放 |
0x21 | 組合播放 | 暫不開放 |
0x25 | 多文件夾插播 | 暫不開放 |
0x28 | 指定文件夾隨機播放 | 暫不開放 |
0xA5 | 指定**分區(qū)播放 | 詳見3.4.1 |
0xA6 | 指定第二分區(qū)播放 | 詳見3.4.2 |
0xA0 | 開始下載的起始指令 | 詳見“串口下載完整說明” |
0xA1 | 下載的有效數(shù)據(jù)指令 | 詳見“串口下載完整說明” |
0xA2 | 應(yīng)答信息 | 詳見“串口下載完整說明” |
0xA3 | 當前的文件下載完畢 | 詳見“串口下載完整說明” |
?
?
?
?
?
?
?
?
3.2.2?查詢指令
這里是查詢芯片的狀態(tài)和相關(guān)的參數(shù)
CMD命令詳解(查詢) | 對應(yīng)的功能 | 參數(shù)(16位) |
0x3C | 保留 | ? |
0x3D | 保留 | ? |
0x3E | 保留 | ? |
0x3F | 查詢初始化的狀態(tài) | 詳見3.5.1 |
0x40 | 返回錯誤,請求重發(fā) | ? |
0x41 | 應(yīng)答 | ? |
0x42 | 查詢當前狀態(tài) | 詳見3.4.10 |
0x43 | 查詢當前音量 | ? |
0x49 | 查詢FLASH的總文件數(shù) | 高字節(jié)[**分區(qū)] ????低字節(jié)[第二分區(qū)] |
0x50 | 查詢使用的flash的容量 | ? |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
3.3?芯片返回的數(shù)據(jù)
芯片在關(guān)鍵地方均會有數(shù)據(jù)返回。供用戶掌控芯片的工作狀態(tài)
n?芯片上電初始化成功的數(shù)據(jù)
n?芯片播放完當前曲目的數(shù)據(jù)
n?芯片成功接收到指令返回的ACK(應(yīng)答)
n?芯片接收一幀數(shù)據(jù)出錯[包括數(shù)據(jù)沒收完整、校驗出錯兩種情況]
n?芯片在繁忙時,有數(shù)據(jù)過來,芯片會返回忙的指令
?
3.3.1?芯片上電返回的數(shù)據(jù)
(1)、芯片上電,需要一定的時間初始化,這個時間是需要根據(jù)SPIFLASH設(shè)備的文件多少決定的,一般情況在小于500ms。如果超過這個時間芯片的初始化數(shù)據(jù)還沒有發(fā)送出來,說明芯片初始化出錯,請檢查硬件的連接
(2)、芯片初始化返回的數(shù)據(jù)為當前的有效文件夾,譬如返回7E 3F 00 002 06 05 EF
==>其中0x06代表的是**分區(qū)的總文件數(shù)為6個
==>其中0x05代表的是第二分區(qū)的總文件數(shù)為5個
?
(3)、MCU必須等待芯片初始化指令發(fā)出之后才能發(fā)送相應(yīng)的控制指令,否則發(fā)送的指令芯片將不予處理。同時還會影響芯片的正常初始化。
?
?
3.3.2?曲目播放完畢返回的數(shù)據(jù)[0x39][0x3E]
FLASH**分區(qū)播放完第1曲 | 7E3E 00 02 0001EF |
FLASH第二分區(qū)播放完第2曲 | 7E39 00 02 0001EF |
?
1、爭對很多的觸發(fā)型的播放需求,我們模塊更正為播放一曲之后自動進入停止狀態(tài)。如果用戶需要此類應(yīng)用。只需要指定曲目播放即可。這樣,曲目播放完畢會自動停止,等待指令
2、另外我們專門開辟一個IO作為解碼和暫停的狀態(tài)指示。請參見第BUSY腳
(1)、播放狀態(tài)輸出低電平[很多功放有靜音腳,可以通過此IO直接進行控制]
(2)、播放暫停狀態(tài),輸出高電平。模塊睡眠狀態(tài)。也是低電平
3、模塊通電之后,初始化正常 ,模塊會自動進入設(shè)備播放狀態(tài)。并且停止解碼,等待用戶發(fā)送播放的相關(guān)指令
4、另外用戶在指定設(shè)備之后,需要等待200ms的時間,再發(fā)送指定的曲目,因為一旦指定設(shè)備之后,系統(tǒng)會對指定的設(shè)備進行文件系統(tǒng)的初始化,如果立刻發(fā)送指定的曲目命令,會導(dǎo)致模塊接收不到。
?
3.3.3?芯片接收數(shù)據(jù)正常返回的ACK
1、芯片在所有的命令或者查詢數(shù)據(jù)包接收完畢之后,會返回當前接收到的數(shù)據(jù)給MCU,作為接收到的ACK信號
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
3.4?串口控制指令詳解
以下我們對關(guān)鍵的地方進行詳細的說明--針對控制指令:
n?指定曲目播放
n?指定播放的音量
n?指定播放的設(shè)備
?
3.4.1?指定歌曲播放指令[0xA5--**分區(qū)]
我們給出的指令是支持指定曲目播放的,歌曲的選擇范圍為0~256.其實是可以支持更多的,因為涉及到文件管理的原因,支持過多的歌曲,會導(dǎo)致系統(tǒng)操作緩慢,一般的應(yīng)用也不需要支持這么多的文件。如果客戶有非常規(guī)的應(yīng)用,請事前和我們溝通。
**分區(qū)指的是通過USB下載的部分
(1)、例如選擇**首歌播放,串口的發(fā)送部分7E A5?00?02?00 01 EF
數(shù)據(jù) | 詳解 |
0x7E | 起始字節(jié) |
0xA5 | 命令字節(jié) |
0x00 | 數(shù)據(jù)長度-高字節(jié)[不包含校驗] |
0x02 | 數(shù)據(jù)長度-低字節(jié)[不包含校驗] |
0x00 | 曲目的高字節(jié)[DH] |
0x01 | 曲目的低字節(jié)[DL] |
0xEF | 結(jié)束字節(jié) |
(2)、對于選曲,如果選擇第100首,首先將100轉(zhuǎn)化為16進制,默認為雙字節(jié),就為0x0064。
DH = 0x00 ?;?DL = 0x64
(3)、其它的操作依次類推即可,因為在嵌入式領(lǐng)域采用16進制是最為方便的一種操作。
?
3.4.2?指定歌曲播放指令[0xA6--第二分區(qū)]
第二分區(qū)指的是通過串口下載的部分
1、例如選擇第二分區(qū)第10首歌播放,串口的發(fā)送部分7E A6?00?02?00 0A EF
?
3.4.3?指定音量播放指令[0x06]
(1)、我們系統(tǒng)上電默認的音量為30級,如果要設(shè)置音量的話,直接發(fā)送相應(yīng)的指令即可
(2)、芯片內(nèi)部設(shè)置的音量細分級數(shù)為0--30.請用戶注意
(3)、例如指定音量為30級,串口發(fā)送的指令:7E 06 00 02 00 1E?EF
(4)、DH = 0x00 ; DL = 0x1E?,30轉(zhuǎn)化為16進制為0x000F??梢詤⒄詹シ徘坎糠值恼f明
3.4.6?指定文件夾文件名播放[0x0F]
3.4.8?全部循環(huán)播放指令[0x11]
3.4.9?播放停止指令[0x15][0x16]
3.4.16?多文件夾插播功能[0x25]
3.4.17?復(fù)位的說明[0x0C]
[模塊復(fù)位] | 7E0C?00?02?00 00EF |
?
1、芯片的復(fù)位指令為軟復(fù)位,這點請用戶朋友注意一下,因為芯片內(nèi)部集成了MAX831L的看門狗芯片,采用的是內(nèi)部的獨立RC震蕩時鐘,雖然不準,但是確實獨立的,這樣可以保證芯片在**干擾下會自動復(fù)位。復(fù)位的時間為5S-8S。
2、在任何狀態(tài)下,都可以發(fā)送復(fù)位指令讓芯片復(fù)位。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
4.?參考電路
爭對芯片的應(yīng)用,我們提供了詳細的設(shè)計參考,讓您可以更快的上手體驗到該芯片的強大功能
n?串行通信接口,波特率默認115200,可以根據(jù)客戶的要求修改
n?外部的IO按鍵的功能可以按照客戶需求訂制
n?外部單聲道功放參考電路
?
4.1串行接口
?
1、芯片的串口為3.3V的TTL電平,所以默認的接口的電平為3.3V。
2、如果系統(tǒng)是5V。那么建議在串口的對接接口串聯(lián)一個1K的電阻。這樣足以滿足一般的要求,
3、如果應(yīng)用于強電磁干擾的場合,請參考“注意事項”的說明。
4、芯片在5V和3.3V的系統(tǒng)中均正常的測試過,一切正常。均采用的是直連的方式,并沒有串1K的電阻。一般的芯片都是能夠兼容3.3V和5V的電平。
5、但是用戶在實際的產(chǎn)品開發(fā)過程中,一定要嚴格的測試,留意電平的轉(zhuǎn)換。強烈建議用戶在能修改的條件下,使用3.3V的MCU,響應(yīng)環(huán)保、低功耗的號召。
?
?
?
?
?
?
?
?
?
?
?
?
?
4.2外接單聲道功放
?
這里功放我們采用的是CSC8002,具體參數(shù)請參考IC的datasheet。應(yīng)用于一般場合足以,如果追求更高的音質(zhì),請客戶自行尋找合適的功放。上圖中紅色的框框的參數(shù),請按照我們給出的推薦值,這樣在調(diào)試的過程中,就會少很多雜音
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
4.5 USB更新語音說明
我們的芯片可以使用USB充電線直接更新語音,方便、靈活。
?
其實SPIFLASH在插入USB連接電腦,原則上是一致的,使用的都是MASSSTORAGE協(xié)議。但是目前技術(shù)上面,暫時還沒辦法實現(xiàn)插上USB連接電腦,同時顯示TF卡和SPIFLASH的盤符功能。這里就分為兩種操作,針對芯片說明
芯片一上電檢測到USB連接電腦,則進入SPIFLASH的讀卡器功能
?
?
?
?
?
?
?
?
4.7.1?USB更新SPIFLASH的語音詳細說明
?
我們的模塊可以使用充電線直接更新語音,方便、靈活。我們的優(yōu)勢如下
n?可以按照客戶的要求,更正下載語音的窗口信息
n?無需安裝任何軟件,直接更新,也不需要專用下載器
n?對音質(zhì)無任何壓縮和損壞,保證更高的音質(zhì)體驗
?
1、插上我們模塊的USB之后,可以以SPIFLASH作為存儲介質(zhì)的U盤,如下圖
?
(1)、可以從上圖看到FLASH的總?cè)萘繛?/span>15.8M字節(jié)。已經(jīng)使用的空間為15.4M字節(jié)。虛擬出來的設(shè)備的文件系統(tǒng)的為FAT格式。FAT文件系統(tǒng)占的存儲空間為442K
(2)、進入設(shè)備之后,如下圖
?
可以很清晰的看到設(shè)備里面的文件,以及文件名稱??梢韵癫僮鱑盤或者讀卡器一樣操作FLASH.只是速度會比他們慢。至于為什么后面會詳細解釋。
?
(3)、無論用戶使用多大容量的FLASH,我們模塊都是支持的,并且內(nèi)部已經(jīng)做了自動識別,無需用戶操心,用戶也僅僅需要根據(jù)自己的需求來確定FLASH的容量和型號。
?
(4)、目前經(jīng)過我們反復(fù)的測試和驗證,SPIFLASH支持**的容量為16M字節(jié),對應(yīng)型號W25Q128
因為再大容量的FLASH。由于技術(shù)的原因暫時還沒有突破,后續(xù)會直接更新,請用戶知曉
4.8 用戶使用空白的FLASH說明
用戶在調(diào)試的過程中,會按照自己的需求更換FLASH的大小來滿足自己的需求,這樣就需要以下三個步驟來完成FLASH的替換。
n?將新的空白的FLASH焊接在板子上面
n?通過USB接口對空白的FLASH進行枚舉和格式化
n?格式化完畢,就可以像使用U盤一樣使用
?
1???? 2
3????? 4
如上面的4個圖片,就是使用空白FLASH,FLASH的型號為W25Q80,容量為1Mbyte。使用USB連接電腦**次的處理過程。上面的截圖可以很詳細的看出步驟
?
?
?
?
?
?
?
1、我們的方案目前**支持64M字節(jié)的FLASH。換算為FLASH一般的型號,如:W25Q512.但是市面上目前量產(chǎn)的FLASH為32M字節(jié),也就是W25Q256。請用戶注意,并且封裝還不是SOP8的
型號 | 容量 | 封裝 |
W25Q80 | 1Mbyte | SOP8L[寬體] |
W25Q16 | 2Mbyte | SOP8L[寬體] |
W25Q32 | 4Mbyte | SOP8L[寬體] |
W25Q64 | 8Mbyte | SOP8L[寬體] |
W25Q128 | 16Mbyte | SOP8L[寬體] |
W25Q256 | 32Mbyte | SOP16[寬體] |
W25Q512 | 64Mbyte | SOP16[寬體] |
標紅色的代表我們此版本暫時還不支持。后續(xù)會加大測試和技術(shù)力度,做到完全兼容
2、我們的芯片支持自動識別FLASH的容量大小。所以用戶無需關(guān)心,只需要按照自己的需求使用合適大小的FLASH即可
?
3、因為空白的FLASH里面什么都沒有,所以拿到空白的FLASH**件事情,就需要對FLASH進行格式化。將文件系統(tǒng)的鏈表寫入FLASH中。
?
4、等到格式化成功之后,再拔掉USB,再插上USB之后,就可以進行SPIFLASH的讀寫了。另外不同容量的SPIFLASH,格式化的所需要的時間長度是不一致的。也就是說,FLASH的容量越大,格式化所需要的時間越長。
5、經(jīng)過我們大量的測試,基本市面上大部分的FLASH都是支持的,如:GD[兆易]、華邦、旺宏、飛索、港宏等等市場上最常見的。都是無縫支持的,這點請用戶朋友放心。
?
?
?
?
?
?
?
?
5.?注意事項
芯片的使用,關(guān)鍵的地方做如下說明:
n?芯片的GPIO的特性
n?應(yīng)用的中注意事項
n?串口編程部分的注意
?
5.1 GPIO的特性
?
IO輸入特性 | ||||||
符號 | 參數(shù) | 最小 | 典型 | ** | 單位 | 測試條件 |
VIL | Low-Level Input Voltage | -0.3 | ?- | 0.3*VDD | V | VDD=3.3V |
VIH | High-Level Input Voltage | 0.7VDD | - | VDD+0.3 | V | VDD=3.3V |
IO輸出特性 | ||||||
符號 | 參數(shù) | 最小 | 典型 | ** | 單位 | 測試條件 |
VOL | Low-Level Output Voltage | ?- | ?- | 0.33 | V | VDD=3.3V |
VOH | High-Level Output Voltage | 2.7 | - | ?- | V | VDD=3.3V |
? | ? | ? | ? | ? | ? | ? |
?
?
?
?
?
?
?
5.2 應(yīng)用中的注意點
1、芯片對外的接口均是3.3V的TTL電平,所以在硬件電路的設(shè)計中,請注意電平的轉(zhuǎn)換問題。
另外在強干擾的環(huán)境中,請注意電磁兼容的一些保護措施,GPIO采用光耦隔離,增加TVS等等
?
2、串口通信,在一般的使用環(huán)境下,注意好電平轉(zhuǎn)換即可。如果強干擾環(huán)境,或者長距離的RS485應(yīng)用,那么請注意信號的隔離,嚴格按照工業(yè)的標準設(shè)計通信電路??梢月?lián)系我們,我們提供設(shè)計參考
?
3、我們支持音頻文件的采樣率**為8KHZ。也就是說低于8KHZ的音頻文件是不支持的,不能正常解碼播放。用戶可以使用音頻處理軟件,提高音頻文件的采樣率來解決這個問題。
?
4、芯片在睡眠狀態(tài)的電流在10MA左右,播放中,依據(jù)音量的大小以及外接的喇叭負載,峰值電流可以達到1A。功耗會比較大。如果使用在低功耗場合,請用戶控制芯片或者芯片的供電。這樣可以減小芯片的功耗
?
5、用戶如果直接使用我們芯片自帶的功放,請選擇合適的喇叭即可。推薦使用4歐姆/3W。這個是使用效果**的配置。選用其它的喇叭,請注意負載大小,以及功率這兩個參數(shù)
?
6、該芯片芯片支持MP3、WAV二種主流的音頻格式。推薦用戶盡量使用MP3格式,因為這樣就更節(jié)省FLASH的容量。
?
8、我們的芯片支持8/11.025/12/16/22.05/24/32/44.1/48KHZ采樣率的音頻文件,這些也是網(wǎng)絡(luò)上絕大多數(shù)的音頻文件的參數(shù)。如果用戶的音頻文件的采樣率不在此范圍內(nèi),是不支持播放的,但是可以通過專用的軟件轉(zhuǎn)換一下即可。我們的優(yōu)勢就是無壓縮播放和高音質(zhì),所以不太建議用戶對音頻進行壓縮。
?