標(biāo)題: 開源一下可能是功能最全面的KT1025A MP3藍(lán)牙音頻數(shù)傳芯片模塊方案(源碼+電路) [打印本頁]

作者: qyvhome    時間: 2018-11-7 16:11
標(biāo)題: 開源一下可能是功能最全面的KT1025A MP3藍(lán)牙音頻數(shù)傳芯片模塊方案(源碼+電路)
一、消費類電子產(chǎn)品SOC芯片開發(fā)的一些經(jīng)驗

1、其實在開發(fā)軟件這個工作上,一些芯片原廠推出的SDK軟件包是非常值得學(xué)習(xí)和借鑒的

(1)、因為他們?yōu)榱朔奖阌脩糸_發(fā),和閱讀,以及一些驅(qū)動的寫法的重復(fù)利用,都是做了很多的工作,其中的思維和
方法都是值得借鑒和學(xué)習(xí)的

(2)、很多時候,我們開發(fā)一些不算龐大的系統(tǒng),總覺得自己寫的程序還是可以的,但是一旦功能復(fù)雜了,整個程序

的架構(gòu)就不得不重新的思考,這個時候,你就需要去參考別人高端人士的寫法和思維

(3)、我們開發(fā)過程中,芯片原廠開發(fā)包,基本都是“消息機制”、“宏選擇功能”、“大量的結(jié)構(gòu)體封裝”

我可以上傳一下芯片廠商提供的開發(fā)SDK,有300多個文件,我個人認(rèn)為整個框架清晰明了,值得學(xué)習(xí)


下面就進(jìn)入產(chǎn)品資料介紹環(huán)節(jié),請耐心的看一下,只要是有藍(lán)牙相關(guān)的需求,我都可能略知一二,也能回答一下。

二、首先說一下芯片的優(yōu)勢:

1、成本低,支持的功能特別多,使用其他及其簡單。照抄就行了

2、由于是國產(chǎn)的芯片,所以依托于海量的出貨量,和超強的市場競爭,所以拉低了成本

3、芯片內(nèi)部的軟件支持,也是接口非常豐富,值得深入研究


三、再說一下芯片的缺點:

1、芯片由于是SOC系統(tǒng),所以很多的功能都是以接口的形式,太個性化的功能可能實現(xiàn)非常費勁

2、芯片由于帶音頻,所以不支持低功耗,手環(huán)、紐扣電池供電的場合就不合適了



四、藍(lán)牙芯片的介紹

    KT1025A芯片是一款支持藍(lán)牙音頻和數(shù)據(jù)以及U盤、TF卡播放的4合一的單芯片,芯片的亮點在支持TF卡或者U盤無損音樂的播放,以及簡單明了的串口AT控制功能,支持BLE透傳,以及SPP透傳功能。大大降低了嵌入藍(lán)牙在其它產(chǎn)品的開發(fā)難度。

    KT1025這個是我們在原廠芯片的基礎(chǔ)上,開發(fā)了軟件的芯片,配合壇友直接使用,超低成本3元RMB

可以適用于下面的這些類型的應(yīng)用:

1、藍(lán)牙音頻產(chǎn)品                如:藍(lán)牙音箱、藍(lán)牙耳機、車載藍(lán)牙 等等
2、藍(lán)牙數(shù)傳產(chǎn)品         如:智能門鎖、車載OBD檢測、智能小車、打印機、醫(yī)療設(shè)備數(shù)據(jù)采集
3、藍(lán)牙數(shù)傳+音頻產(chǎn)品        如:藍(lán)牙音樂燈、藍(lán)牙音樂廣播


廢話不多說,上芯片的手冊,和參考圖紙

KT1025A藍(lán)牙音頻數(shù)據(jù)BLE芯片參考原理圖如下:

注:原理圖中注釋說明設(shè)計時需特別注意
MCU
設(shè)計注意事項:
1、主控所有電源的退耦電容必須靠近芯片放置,
退耦電容的回路地必須最短回到該電源地.
2、藍(lán)牙匹配電路參數(shù)以調(diào)試結(jié)果為準(zhǔn)
4、為保證產(chǎn)品的安全可靠性,電池必須用帶保護(hù)板的電池

晶振選型:
封裝:兼容3225,M49S,HC49S等封裝
要求:穩(wěn)定性、一致性要好,
頻偏偏差:±10PPM以內(nèi)
電容:晶振匹配電容位置請預(yù)留

按鍵電路說明:
1、如果要做按鍵分離, R11上拉電阻最好
放在主板一邊
2、AD_KEY走線遠(yuǎn)離音頻線和數(shù)據(jù)線
3、電阻阻值盡量按我的來設(shè)計
4、按鍵功能定義還可以多加

充電電路說明:
這里采用的是專用充電管理芯片LP4054B
芯片的5腳是用來設(shè)置充電電流的
調(diào)節(jié)外部電阻R20可以設(shè)置充電電流的大小
最大充電電流不要超過800MA,否則有可能
損壞充電芯片

功放電路說明:
1、功放特點:
A、8W、防失真、7V耐壓、AB/D類可選
B、單聲道、帶過熱保護(hù)功能音頻功放
C、寬工作電壓范圍2.5V—7V
(HX8358)
D、超低EMI,高效率,音質(zhì)優(yōu)
2、8W輸出功率設(shè)置:
A、8W功率輸出的條件:
VDD=6V,RL=2Ω,Po=8W,THD+N≤10%
B、8W功率輸出設(shè)置:
芯片1腳(SD腳):
1、0V--0.7V,防失真啟動(功率輸出小
,沒有跛音)
2、0.7V--1.6V,防失真關(guān)斷
(條件滿足,功率輸出可達(dá)到8W)
 3、1.6V--VDD,防失真關(guān)斷,芯片關(guān)斷
(喇叭沒有聲音輸出)



單片機源程序:
  1. /*************************************************************************
  2. - 功能描述: 串口發(fā)送一個字節(jié)
  3. - 隸屬模塊: 外部
  4. - 參數(shù)說明:
  5. - 返回說明:
  6. - 注:         
  7. 1、每種芯片的串口輸出的方式不一樣,這里是我們自己的芯片的方式
  8. 2、您也只用修改這個接口封裝一下即可
  9. *************************************************************************/

  10. void func_send_byte( u8 dat )
  11. {
  12.     ctrl_uart_write(dat) ;/*替換這個接口*/
  13. }

  14. /*************************************************************************
  15. - 功能描述: 串口發(fā)送字符串
  16. - 隸屬模塊: 外部
  17. - 參數(shù)說明:
  18. - 返回說明:
  19. - 注:         
  20. *************************************************************************/
  21. void func_UartPutStr (const char *Str )
  22. {
  23.     while ( *Str)
  24.     {
  25.         func_send_byte ( *Str );
  26.         *Str++;
  27.     }
  28. }

  29. /*************************************************************************
  30. - 功能描述: 串口接收處理 --- 參考
  31. - 隸屬模塊: 外部
  32. - 參數(shù)說明:
  33. - 返回說明:
  34. - 注:         
  35. 1、串口接收都是采用中斷的方式,一定要設(shè)置一個超時的計數(shù)器,超時做錯誤處理
  36. 2、由于我們所有的命令都是以0x0D和0x0A作為結(jié)束,所以只用檢測0x0A就認(rèn)為接收完成
  37. *************************************************************************/

  38. void uart_isr_recv(u8 uto_buf)
  39. {
  40.     g_uart_flag.uart_timeout = UART_TIMEOUT ;/*一般100ms*/
  41.     g_uart_flag.uart_stop  = 0;
  42.     buf_uart1.buf[buf_uart1.index++] = uto_buf;/*字符存到緩存中*/
  43.     if(uto_buf == 0x0A)               /*收到數(shù)據(jù)0x0A則認(rèn)為一幀數(shù)據(jù)結(jié)束了*/
  44.     {
  45.         g_uart_flag.uart_stop  = 1;   /*接收完成標(biāo)志位置1*/
  46.         g_uart_flag.uart_analysis = 1;/*分析數(shù)據(jù)使能打開*/         
  47.         g_uart_flag.uart_timeout = 0 ;
  48.         uart_recv_ok_pro(buf_uart1.buf ,buf_uart1.index) ;  /*這里就是接收完成之后的處理*/
  49.         
  50.         /*這里添加你自己的應(yīng)用程序*/
  51.     }
  52. }


  53. /*************************************************************************
  54. - 功能描述: main
  55. - 隸屬模塊: 外部
  56. - 參數(shù)說明:
  57. - 返回說明:
  58. - 注:         
  59. *************************************************************************/
  60. void main()
  61. {
  62.     uart_init() ;/*串口初始化*/
  63.     delay_2ms(500) ;/*延時1秒*/
  64.         func_UartPutStr("AT+CA30\r\n") ;/*設(shè)置音量為30級*/
  65.     delay_2ms(500) ;/*延時1秒*/
  66.         func_UartPutStr("AT+CA15\r\n") ;/*設(shè)置音量為15級*/
  67.     delay_2ms(500) ;/*延時1秒*/
  68.         func_UartPutStr("AT+BD12354678\r\n") ;/*設(shè)置藍(lán)牙名為12345678*/
  69.     delay_2ms(500) ;/*延時1秒*/
  70.         func_UartPutStr("AT+CT02\r\n") ;/*設(shè)置波特率為19200 -- 參考手冊*/
  71.     delay_2ms(500) ;/*延時1秒*/

  72.     while(1) ;
  73. }
復(fù)制代碼


全部資料51hei下載地址:
資料打包.zip (1.32 MB, 下載次數(shù): 147)



作者: lang6976    時間: 2018-12-17 20:20
不錯不錯
作者: qyvhome    時間: 2019-2-25 17:18
頂一頂,沉了
作者: nfdlwwp    時間: 2020-3-29 01:25
看不懂,還是謝謝,學(xué)習(xí)一下。
作者: Wshee    時間: 2021-3-26 09:56
zlp里沒有SDK,能否提供?





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1