3.一線通訊協(xié)議
目前芯片支持一線串口通訊協(xié)議,采用的也是高低電平時(shí)間寬度來確定0或者1 。
3.1 通訊格式

注意:必須高電平在前,低電平在后。
推薦使用 200us:600us。取值范圍:窄脈沖=[150us--400us] 寬脈沖[500us--1000us]
注意使用 3:1 和 1:3 電平比例以保障通訊穩(wěn)定。
注意起始的6ms低電平,初次調(diào)試時(shí),盡量用示波器或者邏輯分析儀看一下,誤差在10%左右都能接受
1、0x00H到0xDFH為聲音地址碼或定義功能碼。
2、0xFE為語音停止碼,發(fā)送該命令可以停止播放語音。
3、編碼之間的間隔須大于20ms
3.2 通訊指令

4.參考例程
/*******************************************************************************
- 函數(shù)說明:一線通數(shù)據(jù)發(fā)送【注意調(diào)試的時(shí)候,用示波器或者邏輯分析儀看一下脈沖寬度】
- 隸屬模塊:內(nèi)部
- 參數(shù)說明:dat = 待發(fā)送的數(shù)據(jù)
- 返回說明:無
********************************************************************************/
#define IO1_HIGH() JL_PORTA->DIR &= ~BIT(6);JL_PORTA->OUT |= BIT(6);
#define IO1_LOW() JL_PORTA->DIR &= ~BIT(6);JL_PORTA->OUT &= ~BIT(6);
void oneline_send_one_data(u8 dat)
{
u8 i = 0 ;
IO1_LOW() ;/*現(xiàn)將總線拉低*/
udelay(5000) ;/*延時(shí)6MS --- 這里就是發(fā)起通訊的起始信號(hào)*/
CPU_SR_ALLOC();//關(guān)中斷--芯片不同,可能接口不同
OS_ENTER_CRITICAL();//關(guān)中斷
for(i=0 ; i<8 ;i++){
if(dat & 0x01){
IO1_HIGH() ;
udelay(500);/*延時(shí)600us*/
IO1_LOW();
udelay(170) ;/*延時(shí)200us*/
}else{
IO1_HIGH() ;
udelay(170);/*延時(shí)200us*/
IO1_LOW();
udelay(500) ;/*延時(shí)600us*/
}
dat = dat >> 1 ;/*發(fā)送的時(shí)候,先發(fā)送最高位,再發(fā)送次高位,以此類推*/
}
IO1_HIGH() ;/*空閑時(shí)將該腳拉高即可*/
OS_EXIT_CRITICAL();//開中斷
/*同時(shí)注意,芯片初始化的時(shí)候,請(qǐng)將信號(hào)腳拉高。*/
}
oneline_send_one_data(0x05);//對(duì)應(yīng)播放第5段聲音
4.1通訊舉例F2--循環(huán)播放
void oneline_test_CMD_F2(void){
oneline_send_one_data(0x01) ;
udelay(20) ;/*延時(shí)25ms*/
oneline_send_one_data(0xF2) ;
udelay(20) ;/*延時(shí)25ms*/
} 實(shí)現(xiàn)的效果,就是第一段聲音,循環(huán)播放,不停止。如果需要停止,可以發(fā)送FE指令
4.2 通訊舉例F3--組合播放
void oneline_test_CMD_F3(void){
oneline_send_one_data(0xF3) ;
udelay(20) ;/*延時(shí)25ms*/
oneline_send_one_data(0x01) ;
udelay(20) ;/*延時(shí)25ms*/
oneline_send_one_data(0x02) ;
udelay(20) ;/*延時(shí)25ms*/
oneline_send_one_data(0x03) ;
udelay(20) ;/*延時(shí)25ms*/
} 組合播放第1段、第2段、第3段聲音,依次按照順序播放。如果需要停止,可以發(fā)送FE指令
同時(shí),在組合播放的過程中,接收到新的組合播放數(shù)據(jù),會(huì)停止當(dāng)前的組合播放,轉(zhuǎn)去播放新的指令
4.3 通訊指令F0描述【超低功耗】
1、專用于芯片進(jìn)入超低功耗,因?yàn)樾酒诓シ沤Y(jié)束之后,會(huì)自動(dòng)進(jìn)入待機(jī)狀態(tài),功耗維持在25uA 。
2、如果需要芯片的功耗再低,則需要發(fā)送F0指令,任何狀態(tài)下都可以
3、芯片接收到F0指令之后,就會(huì)進(jìn)入關(guān)機(jī)狀態(tài),功耗維持在1.7uA左右
4、如果需要芯片再次接收指令,必須先將dat信號(hào)拉低40ms,讓芯片被喚醒,再發(fā)送數(shù)據(jù)就可以了
4.4 通訊細(xì)節(jié)注意事項(xiàng)
1、控制MCU上電之后,第一時(shí)間就要將通訊IO,也就是ONELINE腳設(shè)置為高電平輸出
2、盡量和KT148A芯片的通訊之間,串1K的電阻,來適配不同的電平
3、芯片的2腳PB9,在播放的時(shí)候,電壓大概是3.1V左右 。一旦進(jìn)入空閑狀態(tài),此IO會(huì)變成2.8V左右
因?yàn)樾酒瑑?nèi)部有一個(gè)空閑進(jìn)入低功耗待機(jī)的機(jī)制。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
459文章
52323瀏覽量
438209 -
通訊協(xié)議
+關(guān)注
關(guān)注
10文章
288瀏覽量
20770 -
串口控制
+關(guān)注
關(guān)注
0文章
27瀏覽量
9994
發(fā)布評(píng)論請(qǐng)先 登錄
國產(chǎn) KT148A 重復(fù)擦寫語音芯片:420 秒存儲(chǔ) + 串口更換 + 1.5 元高性價(jià)比

KT6368A藍(lán)牙芯片應(yīng)該自帶數(shù)據(jù)校驗(yàn)機(jī)制嗎?

SC5080B sop8語音芯片替代開發(fā)記錄_KT148A flash型420秒

KT148A語音芯片的一線通訊起始信號(hào)6ms,一幀數(shù)據(jù)有幾個(gè)起始信號(hào)


KT148A的語音地址是u8類型,只支持256個(gè)語音文件尋址 超了怎么辦

KT142C語音芯片內(nèi)置的320Kbyte空間不夠,還有其他方案嗎?

KT142C語音芯片支持的語音文件格式什么?Mp3還是wav呢?

KT148A語音芯片一個(gè)mp3語音,有辦法分成一段一段的嗎

KT148A語音芯片一線串口和5V單片機(jī)MCU相連需要串電阻嗎?

KT148A語音芯片的聲音小,如何讓喇叭聲音變大?聲音影響注意點(diǎn)

KT148A語音芯片的7腳VDDIO平時(shí)是2.8V,響語音時(shí)變成3.3V是為什么呢

KT142C語音芯片的10腳VDDIO平時(shí)是2.8V 播放語音時(shí)變成3.3V的原因

KT142C語音芯片可以外掛NS4110B LM386 8002功放嗎?如何燒錄語音?

評(píng)論