<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Hi3861:智能錄音筆【WM8978錄放音】

Harmony&嵌入式學習 ? 來源:Harmony&嵌入式學習 ? 作者:Harmony&嵌入式學 ? 2023-06-14 10:24 ? 次閱讀

Gitee倉庫:https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/dev/team_x/demo_record_pen
一、Codec介紹
WM8978為DAC+ADC芯片,本身并不具備編解碼的功能,一方面,可通過I2S接口接收PCM數據,轉為模擬信號輸出,此為DAC過程,即放音;一方面,可接收模擬信號轉為數字信號,通過I2S接口傳輸給MCU,此為ADC過程,即錄音。WM8978還使用I2C接口配置其工作參數,比如音量,EQ,3D環繞等。WM8978本身可直連1W/8歐的小喇叭。

Hi3861:智能錄音筆【WM8978錄放音】-開源基礎軟件社區


引腳配置:

Hi3861:智能錄音筆【WM8978錄放音】-開源基礎軟件社區


1、I2S和I2C的使能
首先需要打開config下usr_config.mk文件,打開編譯I2S和I2C的使能

Hi3861:智能錄音筆【WM8978錄放音】-開源基礎軟件社區


2、導入lal_audio文件
打開使能后進行編譯,導入lal_audio文件,可見wm8978_init函數,對引腳進行使能:

Hi3861:智能錄音筆【WM8978錄放音】-開源基礎軟件社區


3、WM8978的I2C配置
WM8978需要使用I2C引腳對輸入方式、喇叭音量、輸入增益等等進行控制,詳情可見lal_audio中其它函數

Hi3861:智能錄音筆【WM8978錄放音】-開源基礎軟件社區


如上圖,進行初始化后即可對錄音和放音進行測試;
4、WM8978錄音測試
其中需要用到I2S的讀寫函數,本文件中設置的采集頻率和位寬是16K和16位(方便后續語音識別

Hi3861:智能錄音筆【WM8978錄放音】-開源基礎軟件社區


使用二維數組緩存的方式進行讀取和播放,經驗證后滿足要求。

hi_u32 WM8978_Write_Reg(hi_u8 reg, hi_u16 val)
{
    //unsigned char buf[2];
    //buf[0] = (reg>8)&0X01);
    //buf[1] = val&0XFF;

    hi_i2c_data i2c_data;
    hi_u8 send_data[2]= { 0 };
    send_data[0] = (reg>8)&0X01);
    send_data[1] = val&0XFF;
/* 	send_data[0] = reg;
	send_data[1] = val; */
    i2c_data.send_buf = send_data;
    i2c_data.send_len = 2; 
//(WM8978_DEVICE_ADDR>>1)|0
	wm8978_register_tbl[reg] = val;
   // return hi_i2c_writeread(HI_I2C_IDX_1,(WM8978_DEVICE_ADDRADC輸入部分的增益)
//gain:0~7,0表示通道禁止,1~7,對應-12dB~6dB,3dB/Step
void WM8978_AUX_Gain(hi_u8 gain)
{
	hi_u16 regval;
	gain&=0X07;
	regval=WM8978_Read_Reg(47);	//讀取R47
	regval&=~(7ADC輸入部分的增益)
//gain:0~63,對應-12dB~35.25dB,0.75dB/Step
void WM8978_MIC_Gain(hi_u8 gain)
{
	gain&=0X3F;
	WM8978_Write_Reg(45,gain);		//R45,左通道PGA設置 
	WM8978_Write_Reg(46,gain|1ADC輸入部分的增益)
//gain:0~7,0表示通道禁止,1~7,對應-12dB~6dB,3dB/Step
void WM8978_LINEIN_Gain(hi_u8 gain)
{
	hi_u16 regval;
	gain&=0X07;
	regval=WM8978_Read_Reg(47);	//讀取R47
	regval&=~(7

審核編輯:湯梓紅


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PCM
    PCM
    +關注

    關注

    1

    文章

    188

    瀏覽量

    52731
  • 嵌入式
    +關注

    關注

    5001

    文章

    18414

    瀏覽量

    291508
  • 錄音筆
    +關注

    關注

    0

    文章

    86

    瀏覽量

    12945
  • WM8978
    +關注

    關注

    0

    文章

    5

    瀏覽量

    3645
  • Hi3861
    +關注

    關注

    1

    文章

    58

    瀏覽量

    6260
收藏 人收藏

    評論

    相關推薦

    專業設計錄音筆

    `本人專業設計錄音筆,包括軟件硬件!主要開發炬力 安凱等方案!開發設計過聯想 紐曼 現代等多家知名品牌的錄音筆!如有需要請QQ1292841172。`
    發表于 03-07 15:29

    錄放音電話設計問題

    本帖最后由 gk320830 于 2015-3-8 02:05 編輯 語音芯片ISD4004如何與電話連接才能實現對電話的錄放音呢?錄音由電話話筒錄入,放音到電話話筒,謝謝!
    發表于 03-27 11:25

    wm8978的lout和rout沒有輸出

    這一路稍微和歷程的配置有點不一樣。我們用Rout1和Lout1做的。附件如下圖所示:用sai的那一路播放和錄音都正常,但是wm8978這一路沒有聲音,我們量Rout1和Lout1引腳也沒有電平,輸入
    發表于 01-24 23:57

    請問音頻芯片WM8978雙通道錄音時左右通道錄的數據是怎么存儲的?

    請問各位音頻芯片WM8978雙通道錄音時,左右通道錄得數據是以怎樣的規則存儲的???
    發表于 02-13 05:43

    請問m8960 wm8974 wm8978 wm8994 一系列音頻接口芯片在錄放音的音質上有提升嗎?

    wm8960 wm8974 wm8978 wm8994,這一系列音頻接口芯片,在錄放音的音質上有沒有提升? 或者只是通道數量的差別?看了看立
    發表于 02-19 06:02

    數據傳輸進行錄音時進不去中斷

    設計的錄放一體的聲卡,進行播放的時候,數據傳輸完成可以進入中斷的,正常播放音頻,為什么進行錄音的時候,進不去中斷呢?IIS DMA設置的都正確啊,求大神指點一下。用的是STM32探索者和WM8
    發表于 02-28 00:26

    wm8978實現了錄音和播放音樂但無法修改音量

    最近用wm8978來實現音樂播放功能,現在已經可以正常錄音,也可以播放wav音頻,mp3用mcu來解碼后也可以正常播放,但遇到個問題,wm8978的MCLK是通過mcu提供的,在播放音
    發表于 03-04 23:37

    wm8978錄音回放改成24位調不通

    wm8978的寄存器R4,將數據長度改為243,修改接收(錄音)和發送(放音)中斷函數。以錄音為例,改為24位數據后需要四次中斷才能接收到兩個聲道的24位數據以左聲道的兩次數據為例,按
    發表于 03-16 04:35

    I2S總線是怎樣驅動WM8978

    接口只有一個數據引腳,因此在設計引腳的時候,就需要確定是錄音還是放音。WM8978為DAC+ADC芯片,本身并不具備編解碼的功能。1)WM8978可通過I2S接口接收PCM數據,轉為模
    發表于 01-05 07:10

    wm8978音頻回環

    有大佬知道為啥wm8978采集的音頻數據一直是高電平嗎(位時鐘信號和對齊信號都是有效信號)
    發表于 10-22 10:24

    Hi3861:智能錄音筆【環境搭建+配網】

    。二、項目內容(1)選用Hi3861芯片開發;(2)使用Codec_Wm8978實現收音放音;(3)使用WIFI_AP_STA實現WEB配網;(4)使用云服務語音API識別實現語音識別;三、編譯環境
    發表于 12-31 10:35

    Hi3861:智能錄音筆WM8978錄放音

    進行使能:3、WM8978的I2C配置WM8978需要使用I2C引腳對輸入方式、喇叭音量、輸入增益等等進行控制,詳情可見lal_audio中其它函數如上圖,進行初始化后即可對錄音放音
    發表于 12-31 10:41

    錄放音電路

    錄放音電路主要由ISD4003和89C2051-2兩個主IC構成。
    發表于 04-09 17:02 ?5180次閱讀
    <b class='flag-5'>錄放音</b>電路

    WM8978數據手冊

    WM8978數據手冊好資料有需要的下來看看
    發表于 12-16 22:45 ?110次下載

    wm8978模塊原理圖

    wm8978模塊原理圖免費下載。
    發表于 05-15 09:19 ?23次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>