|
一、消費(fèi)類電子產(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ā)包,基本都是“消息機(jī)制”、“宏選擇功能”、“大量的結(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)的芯片,所以依托于海量的出貨量,和超強(qiáng)的市場競爭,所以拉低了成本
3、芯片內(nèi)部的軟件支持,也是接口非常豐富,值得深入研究
三、再說一下芯片的缺點:
1、芯片由于是SOC系統(tǒng),所以很多的功能都是以接口的形式,太個性化的功能可能實現(xiàn)非常費(fèi)勁
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)牙耳機(jī)、車載藍(lán)牙 等等
2、藍(lán)牙數(shù)傳產(chǎn)品 如:智能門鎖、車載OBD檢測、智能小車、打印機(jī)、醫(yī)療設(shè)備數(shù)據(jù)采集
3、藍(lán)牙數(shù)傳+音頻產(chǎn)品 如:藍(lán)牙音樂燈、藍(lán)牙音樂廣播
廢話不多說,上芯片的手冊,和參考圖紙
KT1025A藍(lán)牙音頻數(shù)據(jù)BLE芯片參考原理圖如下:
04_KT1025A參考原理圖1.jpg (483.51 KB, 下載次數(shù): 89)
下載附件
2018-11-7 16:10 上傳
注:原理圖中注釋說明設(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)斷
(喇叭沒有聲音輸出)
0.png (87.42 KB, 下載次數(shù): 61)
下載附件
2018-11-8 02:38 上傳
單片機(jī)源程序:
- /*************************************************************************
- - 功能描述: 串口發(fā)送一個字節(jié)
- - 隸屬模塊: 外部
- - 參數(shù)說明:
- - 返回說明:
- - 注:
- 1、每種芯片的串口輸出的方式不一樣,這里是我們自己的芯片的方式
- 2、您也只用修改這個接口封裝一下即可
- *************************************************************************/
- void func_send_byte( u8 dat )
- {
- ctrl_uart_write(dat) ;/*替換這個接口*/
- }
- /*************************************************************************
- - 功能描述: 串口發(fā)送字符串
- - 隸屬模塊: 外部
- - 參數(shù)說明:
- - 返回說明:
- - 注:
- *************************************************************************/
- void func_UartPutStr (const char *Str )
- {
- while ( *Str)
- {
- func_send_byte ( *Str );
- *Str++;
- }
- }
- /*************************************************************************
- - 功能描述: 串口接收處理 --- 參考
- - 隸屬模塊: 外部
- - 參數(shù)說明:
- - 返回說明:
- - 注:
- 1、串口接收都是采用中斷的方式,一定要設(shè)置一個超時的計數(shù)器,超時做錯誤處理
- 2、由于我們所有的命令都是以0x0D和0x0A作為結(jié)束,所以只用檢測0x0A就認(rèn)為接收完成
- *************************************************************************/
- void uart_isr_recv(u8 uto_buf)
- {
- g_uart_flag.uart_timeout = UART_TIMEOUT ;/*一般100ms*/
- g_uart_flag.uart_stop = 0;
- buf_uart1.buf[buf_uart1.index++] = uto_buf;/*字符存到緩存中*/
- if(uto_buf == 0x0A) /*收到數(shù)據(jù)0x0A則認(rèn)為一幀數(shù)據(jù)結(jié)束了*/
- {
- g_uart_flag.uart_stop = 1; /*接收完成標(biāo)志位置1*/
- g_uart_flag.uart_analysis = 1;/*分析數(shù)據(jù)使能打開*/
- g_uart_flag.uart_timeout = 0 ;
- uart_recv_ok_pro(buf_uart1.buf ,buf_uart1.index) ; /*這里就是接收完成之后的處理*/
-
- /*這里添加你自己的應(yīng)用程序*/
- }
- }
- /*************************************************************************
- - 功能描述: main
- - 隸屬模塊: 外部
- - 參數(shù)說明:
- - 返回說明:
- - 注:
- *************************************************************************/
- void main()
- {
- uart_init() ;/*串口初始化*/
- delay_2ms(500) ;/*延時1秒*/
- func_UartPutStr("AT+CA30\r\n") ;/*設(shè)置音量為30級*/
- delay_2ms(500) ;/*延時1秒*/
- func_UartPutStr("AT+CA15\r\n") ;/*設(shè)置音量為15級*/
- delay_2ms(500) ;/*延時1秒*/
- func_UartPutStr("AT+BD12354678\r\n") ;/*設(shè)置藍(lán)牙名為12345678*/
- delay_2ms(500) ;/*延時1秒*/
- func_UartPutStr("AT+CT02\r\n") ;/*設(shè)置波特率為19200 -- 參考手冊*/
- delay_2ms(500) ;/*延時1秒*/
- while(1) ;
- }
復(fù)制代碼
0.png (49.11 KB, 下載次數(shù): 59)
下載附件
2018-11-8 02:36 上傳
全部資料51hei下載地址:
資料打包.zip
(1.32 MB, 下載次數(shù): 147)
2018-11-7 16:11 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|