RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

Hi3861:智能錄音筆【W(wǎng)M8978錄放音】

Harmony&嵌入式學(xué)習(xí) ? 來源:Harmony&嵌入式學(xué)習(xí) ? 作者:Harmony&嵌入式學(xué) ? 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數(shù)據(jù),轉(zhuǎn)為模擬信號輸出,此為DAC過程,即放音;一方面,可接收模擬信號轉(zhuǎn)為數(shù)字信號,通過I2S接口傳輸給MCU,此為ADC過程,即錄音。WM8978還使用I2C接口配置其工作參數(shù),比如音量,EQ,3D環(huán)繞等。WM8978本身可直連1W/8歐的小喇叭。

Hi3861:智能錄音筆【W(wǎng)M8978錄放音】-開源基礎(chǔ)軟件社區(qū)


引腳配置:

Hi3861:智能錄音筆【W(wǎng)M8978錄放音】-開源基礎(chǔ)軟件社區(qū)


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

Hi3861:智能錄音筆【W(wǎng)M8978錄放音】-開源基礎(chǔ)軟件社區(qū)


2、導(dǎo)入lal_audio文件
打開使能后進行編譯,導(dǎo)入lal_audio文件,可見wm8978_init函數(shù),對引腳進行使能:

Hi3861:智能錄音筆【W(wǎng)M8978錄放音】-開源基礎(chǔ)軟件社區(qū)


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

Hi3861:智能錄音筆【W(wǎng)M8978錄放音】-開源基礎(chǔ)軟件社區(qū)


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

Hi3861:智能錄音筆【W(wǎng)M8978錄放音】-開源基礎(chǔ)軟件社區(qū)


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

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,對應(yīng)-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,對應(yīng)-12dB~35.25dB,0.75dB/Step
void WM8978_MIC_Gain(hi_u8 gain)
{
	gain&=0X3F;
	WM8978_Write_Reg(45,gain);		//R45,左通道PGA設(shè)置 
	WM8978_Write_Reg(46,gain|1ADC輸入部分的增益)
//gain:0~7,0表示通道禁止,1~7,對應(yīng)-12dB~6dB,3dB/Step
void WM8978_LINEIN_Gain(hi_u8 gain)
{
	hi_u16 regval;
	gain&=0X07;
	regval=WM8978_Read_Reg(47);	//讀取R47
	regval&=~(7

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • PCM
    PCM
    +關(guān)注

    關(guān)注

    1

    文章

    195

    瀏覽量

    53203
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304797
  • 錄音筆
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    13072
  • WM8978
    +關(guān)注

    關(guān)注

    1

    文章

    5

    瀏覽量

    3720
  • Hi3861
    +關(guān)注

    關(guān)注

    1

    文章

    59

    瀏覽量

    6491
收藏 人收藏

    評論

    相關(guān)推薦

    專業(yè)設(shè)計錄音筆

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

    錄放音電話設(shè)計問題

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

    wm8978的lout和rout沒有輸出

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

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

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

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

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

    數(shù)據(jù)傳輸進行錄音時進不去中斷

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

    wm8978實現(xiàn)了錄音和播放音樂但無法修改音量

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

    wm8978錄音回放改成24位調(diào)不通

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

    I2S總線是怎樣驅(qū)動WM8978

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

    wm8978音頻回環(huán)

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

    Hi3861:智能錄音筆【環(huán)境搭建+配網(wǎng)】

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

    Hi3861:智能錄音筆WM8978錄放音

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

    錄放音電路

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

    WM8978數(shù)據(jù)手冊

    WM8978數(shù)據(jù)手冊好資料有需要的下來看看
    發(fā)表于 12-16 22:45 ?111次下載

    wm8978模塊原理圖

    wm8978模塊原理圖免費下載。
    發(fā)表于 05-15 09:19 ?23次下載
    RM新时代网站-首页