在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

第三十五章 I2S——音頻傳輸接口

W55MH32 ? 來(lái)源:W55MH32 ? 作者:W55MH32 ? 2025-07-01 16:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單芯片解決方案,開啟全新體驗(yàn)——W55MH32高性能以太網(wǎng)單片機(jī)

W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機(jī),它為用戶帶來(lái)前所未有的集成化體驗(yàn)。這顆芯片將強(qiáng)大的組件集于一身,具體來(lái)說(shuō),一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲(chǔ)與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨(dú)立的32KB以太網(wǎng)收發(fā)緩存,可供8個(gè)獨(dú)立硬件socket使用。如此配置,真正實(shí)現(xiàn)了All-in-One解決方案,為開發(fā)者提供極大便利。

在封裝規(guī)格上,W55MH32提供了兩種選擇:QFN100和QFN68。

W55MH32L采用QFN100封裝版本,尺寸為12x12mm,其資源豐富,專為各種復(fù)雜工控場(chǎng)景設(shè)計(jì)。它擁有66個(gè)GPIO、3個(gè)ADC、12通道DMA、17個(gè)定時(shí)器、2個(gè)I2C、5個(gè)串口、2個(gè)SPI接口(其中1個(gè)帶I2S接口復(fù)用)、1個(gè)CAN、1個(gè)USB2.0以及1個(gè)SDIO接口。如此豐富的外設(shè)資源,能夠輕松應(yīng)對(duì)工業(yè)控制中多樣化的連接需求,無(wú)論是與各類傳感器、執(zhí)行器的通信,還是對(duì)復(fù)雜工業(yè)協(xié)議的支持,都能游刃有余,成為復(fù)雜工控領(lǐng)域的理想選擇。同系列還有QFN68封裝的W55MH32Q版本,該版本體積更小,僅為8x8mm,成本低,適合集成度高的網(wǎng)關(guān)模組等場(chǎng)景,軟件使用方法一致。更多信息和資料請(qǐng)進(jìn)入http://www.w5500.com/網(wǎng)站或者私信獲取。

此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及 MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。

為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32L這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實(shí)現(xiàn)調(diào)試、下載以及串口打印日志等功能。開發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開發(fā)者全面評(píng)估芯片性能。

若您想獲取芯片和開發(fā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價(jià)格等,歡迎訪問官方網(wǎng)頁(yè):http://www.w5500.com/,我們期待與您共同探索W55MH32的無(wú)限可能。

wKgZPGhjkceAQighABA5X7BENG0290.png

第三十五章 I2S——音頻傳輸接口

I2S(Inter-Integrated Circuit Sound)是W55MH32中用于數(shù)字音頻傳輸?shù)闹匾涌冢瑥V泛應(yīng)用于各種音頻設(shè)備與嵌入式系統(tǒng)。本文將從工作原理、注意事項(xiàng)、應(yīng)用場(chǎng)景以及程序設(shè)計(jì)來(lái)講解I2S接口,和大家一起學(xué)習(xí)和使用這一技術(shù)。

1I2S概述

1.1簡(jiǎn)介

I2S(Inter-Integrated Circuit Sound)是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),專門用于音頻設(shè)備之間的高質(zhì)量數(shù)字音頻傳輸。在W55MH32中,I2S功能與SPI模塊共享相同的硬件資源,通過(guò)將寄存器SPI_I2SCFGR的I2SMOD位置為'1'即可使能I2S功能,將SPI模塊轉(zhuǎn)換為I2S音頻接口

I2S接口與SPI接口使用大致相同的引腳、標(biāo)志和中斷,但專為音頻數(shù)據(jù)傳輸優(yōu)化。它采用獨(dú)立的導(dǎo)線傳輸時(shí)鐘與數(shù)據(jù)信號(hào),通過(guò)將數(shù)據(jù)和時(shí)鐘信號(hào)分離,避免了因時(shí)差誘發(fā)的失真,為用戶節(jié)省了購(gòu)買抵抗音頻抖動(dòng)的專業(yè)設(shè)備的費(fèi)用。I2S已成為數(shù)字音頻領(lǐng)域的事實(shí)標(biāo)準(zhǔn)接口,廣泛應(yīng)用于各種消費(fèi)電子和專業(yè)音頻設(shè)備中。

1.2功能特點(diǎn)

W55MH32的I2S接口有以下特點(diǎn):

單工通信(僅發(fā)送或接收)

主或者從操作

8位線性可編程預(yù)分頻器,獲得精確的音頻采樣頻率(8KHz到96kHz)

數(shù)據(jù)格式可以是16位,24位或者32位

音頻信道固定數(shù)據(jù)包幀為16位(16位數(shù)據(jù)幀)或32位(16、24或32位數(shù)據(jù)幀)

可編程的時(shí)鐘極性(穩(wěn)定態(tài))

從發(fā)送模式下的下溢標(biāo)志位和主/從接收模式下的溢出標(biāo)志位

16位數(shù)據(jù)寄存器用來(lái)發(fā)送和接收,在通道兩端各有一個(gè)寄存器

支持的I2S協(xié)議:

I2S飛利浦標(biāo)準(zhǔn)

MSB對(duì)齊標(biāo)準(zhǔn)(左對(duì)齊)

LSB對(duì)齊標(biāo)準(zhǔn)(右對(duì)齊)

PCM標(biāo)準(zhǔn)(16位通道幀上帶長(zhǎng)或短幀同步或者16位數(shù)據(jù)幀擴(kuò)展為32位通道幀)

數(shù)據(jù)方向總是MSB在先

發(fā)送和接收都具有DMA能力

主時(shí)鐘可以輸出到外部音頻設(shè)備,比率固定為256xFs(Fs為音頻采樣頻率)

1.3工作原理

I2S接口的核心工作原理基于三個(gè)主要信號(hào)線的協(xié)同工作:

串行時(shí)鐘(SCK/CK):也稱為位時(shí)鐘(BCLK),由主設(shè)備產(chǎn)生,用于同步數(shù)據(jù)傳輸。每個(gè)時(shí)鐘周期對(duì)應(yīng)音頻數(shù)據(jù)的一位。SCK的頻率計(jì)算公式為:SCK頻率 = 2 ×采樣頻率 ×采樣位數(shù)。例如,對(duì)于44.1kHz采樣率、16位精度的立體聲音頻,SCK頻率應(yīng)為44.1kHz×16bits×2(左右聲道)=1.4112MHz。

字選擇(WS):也稱為幀時(shí)鐘(LRCK),用于指示當(dāng)前傳輸?shù)囊纛l數(shù)據(jù)所屬聲道。在I2S飛利浦標(biāo)準(zhǔn)下,WS為'0'表示左聲道數(shù)據(jù),為'1'表示右聲道數(shù)據(jù)。WS信號(hào)在發(fā)送第一位數(shù)據(jù)(MSB)前1個(gè)時(shí)鐘周期即變?yōu)橛行А?/p>

串行數(shù)據(jù)(SD):承載實(shí)際的音頻數(shù)據(jù),采用二進(jìn)制補(bǔ)碼表示。數(shù)據(jù)總是從最高位(MSB)開始傳輸,與SPI接口的MSB優(yōu)先模式類似。

在某些需要更高精度時(shí)鐘同步的系統(tǒng)中,還可以使用第四個(gè)信號(hào)線:

主時(shí)鐘(MCK):為外部音頻編解碼器提供系統(tǒng)時(shí)鐘參考,通常設(shè)置為采樣頻率的256倍(256xFs)。當(dāng)寄存器SPI_I2SPR的MCKOE位為'1'時(shí),W55MH32可輸出此額外時(shí)鐘信號(hào)。

I2S的數(shù)據(jù)傳輸遵循嚴(yán)格的時(shí)序關(guān)系。在I2S飛利浦標(biāo)準(zhǔn)下,發(fā)送方在時(shí)鐘信號(hào)(CK)的下降沿改變數(shù)據(jù),接收方在上升沿讀取數(shù)據(jù)。WS信號(hào)也在時(shí)鐘信號(hào)的下降沿變化。這種同步機(jī)制確保了數(shù)據(jù)傳輸?shù)目煽啃裕词乖诟咚俾氏乱材鼙3州^低的誤碼率。

對(duì)于不同數(shù)據(jù)格式的處理,I2S硬件提供了自動(dòng)的數(shù)據(jù)對(duì)齊和填充功能。例如,當(dāng)16位數(shù)據(jù)擴(kuò)展到32位幀時(shí),高16位(MSB)為有效數(shù)據(jù),低16位被硬件強(qiáng)制為0x0000,無(wú)需軟件干預(yù)。24位數(shù)據(jù)擴(kuò)展到32位幀時(shí),高24位為有效數(shù)據(jù),低8位由硬件置0。這種自動(dòng)處理大大簡(jiǎn)化了軟件開發(fā),特別是在使用DMA傳輸時(shí)。

I2S的功能框圖如下:

wKgZO2hjmJWAcCzDAANbHHopDTo075.png

1.4利用DMA通信的I2S

1.4.1I2S配合DMA通信工作原理

I2S接口與DMA控制器協(xié)同工作時(shí),形成高效的數(shù)據(jù)傳輸通道。通過(guò)將寄存器SPI_CR2的TXDMAEN/RXDMAEN位置1,可使能DMA傳輸請(qǐng)求。I2S模式下DMA的工作方式與SPI模式基本相同,只是沒有CRC功能。當(dāng)I2S接口需要發(fā)送或接收數(shù)據(jù)時(shí),會(huì)自動(dòng)觸發(fā)DMA請(qǐng)求:

發(fā)送過(guò)程:TXE標(biāo)志置1時(shí)觸發(fā)DMA請(qǐng)求,DMA控制器將數(shù)據(jù)從內(nèi)存搬運(yùn)至SPI_DR寄存器。

接收過(guò)程:RXNE標(biāo)志置1時(shí)觸發(fā)DMA請(qǐng)求,DMA控制器將數(shù)據(jù)從SPI_DR寄存器搬運(yùn)至內(nèi)。

使用DMA發(fā)送和接收的時(shí)序圖如下:

wKgZO2hjmJSACsCKAAG_ERLIs60482.png

wKgZO2hjmJSAO5jqAAFpE9BnaxU341.png

1.4.2配置要點(diǎn)

數(shù)據(jù)格式處理

I2S支持多種數(shù)據(jù)格式,DMA需要相應(yīng)配置:

數(shù)據(jù)格式 DMA傳輸次數(shù) 備注
16位→16位幀 1次 直接傳輸
16位→32位幀 1次 硬件自動(dòng)補(bǔ)0
24位→32位幀 2次 硬件補(bǔ)低8位0
32位→32位幀 2次 完整32位處理

聲道管理

左聲道數(shù)據(jù)總是先傳輸

通過(guò)CHSIDE標(biāo)志識(shí)別當(dāng)前聲道

從模式需提前準(zhǔn)備好第一個(gè)數(shù)據(jù)

發(fā)送流程

配置DMA:內(nèi)存→SPI_DR,設(shè)置數(shù)據(jù)寬度

啟動(dòng)傳輸:TXE=1時(shí)自動(dòng)觸發(fā)

聲道切換:根據(jù)CHSIDE處理左右聲道

完成處理:等待TXE=1及BSY=0后關(guān)閉

接收流程

配置DMA:SPI_DR→內(nèi)存,設(shè)置數(shù)據(jù)寬度

啟動(dòng)傳輸:RXNE=1時(shí)自動(dòng)觸發(fā)

數(shù)據(jù)解析:根據(jù)標(biāo)準(zhǔn)處理數(shù)據(jù)對(duì)齊

關(guān)閉時(shí)序:按數(shù)據(jù)格式選擇正確時(shí)序

2應(yīng)用場(chǎng)景

W55MH32的I2S接口憑借其高質(zhì)量數(shù)字音頻傳輸能力,在眾多領(lǐng)域得到廣泛應(yīng)用:

2.1消費(fèi)類音頻設(shè)備

便攜式音樂播放器:連接音頻DAC實(shí)現(xiàn)高質(zhì)量音樂播放,支持從MP3解碼器到功率放大器的數(shù)字音頻傳輸。

智能音箱:用于主控芯片與數(shù)字音頻處理器之間的連接,實(shí)現(xiàn)語(yǔ)音助手和音樂播放功能。

數(shù)字電視和機(jī)頂盒:傳輸數(shù)字音頻信號(hào)到音頻處理芯片或直接驅(qū)動(dòng)數(shù)字功放。

2.2專業(yè)音頻設(shè)備

錄音設(shè)備:連接高性能ADC實(shí)現(xiàn)多通道音頻采集,支持24位高分辨率錄音。

音頻混音器:在數(shù)字域混合多個(gè)音頻源,保持信號(hào)完整性。

效果處理器:傳輸音頻數(shù)據(jù)到DSP芯片進(jìn)行實(shí)時(shí)效果處理。

2.3通信設(shè)備

VoIP電話:實(shí)現(xiàn)雙向語(yǔ)音通信,同時(shí)支持回聲消除等高級(jí)功能。

會(huì)議系統(tǒng):連接數(shù)字麥克風(fēng)陣列和音頻處理單元。

無(wú)線耳機(jī):在藍(lán)牙模塊與編解碼器之間傳輸音頻數(shù)據(jù)。

2.4汽車電子

車載娛樂系統(tǒng):連接多個(gè)音頻源和功放,支持環(huán)繞聲處理。

主動(dòng)降噪系統(tǒng):實(shí)時(shí)采集車內(nèi)噪聲并生成反相聲波。

語(yǔ)音識(shí)別系統(tǒng):傳輸高清晰度語(yǔ)音數(shù)據(jù)到語(yǔ)音處理單元。

2.5嵌入式系統(tǒng)

工業(yè)控制人機(jī)界面:實(shí)現(xiàn)語(yǔ)音提示和報(bào)警功能。

醫(yī)療監(jiān)護(hù)設(shè)備:傳輸心音、呼吸音等生物音頻信號(hào)。

智能家居:用于門鈴、對(duì)講系統(tǒng)等需要音頻功能的設(shè)備。

3注意事項(xiàng)

時(shí)鐘同步:從模式需確保在外部時(shí)鐘有效前完成初始化。

數(shù)據(jù)對(duì)齊:注意不同標(biāo)準(zhǔn)(Philips/MSB/LSB)的數(shù)據(jù)對(duì)齊差異。

電源管理模擬部分供電需加強(qiáng)濾波處理。

PCB布局:時(shí)鐘信號(hào)線應(yīng)盡量短并考慮端接匹配。

關(guān)閉順序:嚴(yán)格按照規(guī)范流程關(guān)閉接口,避免數(shù)據(jù)損壞。

4程序設(shè)計(jì)

4.1IIS_CS4344例程

IIS_CS4344例程主要實(shí)現(xiàn)了基于W55MH32芯片的I2S音頻傳輸功能。以下是實(shí)現(xiàn)過(guò)程和結(jié)果驗(yàn)證:

4.1.1I2S初始化

I2S的初始化函數(shù)為IIS_Configuration()函數(shù):

void IIS_Configuration(void)
{
    I2S_InitTypeDef  I2S_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA| RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);
 
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA,&GPIO_InitStructure);
 
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_3| GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
 
    GPIO_InitStructure.GPIO_Pin= GPIO_Pin_7;
    GPIO_Init(GPIOC,&GPIO_InitStructure);
 
    SPI_I2S_DeInit(SPI3);
    I2S_InitStructure.I2S_Mode       = I2S_Mode_MasterTx;
    I2S_InitStructure.I2S_Standard   = I2S_Standard_Phillips;
    I2S_InitStructure.I2S_DataFormat= I2S_DataFormat_16b;
    I2S_InitStructure.I2S_AudioFreq  = I2S_AudioFreq_8k;
    I2S_InitStructure.I2S_CPOL       = I2S_CPOL_Low;
    I2S_InitStructure.I2S_MCLKOutput= I2S_MCLKOutput_Enable;
    I2S_Init(SPI3,&I2S_InitStructure);
 
    SPI_I2S_DMACmd(SPI3, SPI_I2S_DMAReq_Tx, ENABLE);
    I2S_Cmd(SPI3, ENABLE);
}

該函數(shù)首先使能了相關(guān)時(shí)鐘并釋放GPIOA15資源(PA15默認(rèn)為調(diào)試接口,必須先釋放其默認(rèn)的調(diào)試功能,否則,調(diào)試接口會(huì)持續(xù)占用該引腳,導(dǎo)致I2S無(wú)法正常工作。),然后配置GPIOA15、GPIOB3、GPIOB5和GPIOC7為復(fù)用推挽輸出模式以連接I2S的SCK、SD、WS和MCLK信號(hào),接著將SPI3初始化為I2S模式并設(shè)置為主機(jī)發(fā)送模式,采用飛利浦標(biāo)準(zhǔn)、16位數(shù)據(jù)格式、8kHz采樣率,啟用MCLK輸出和低時(shí)鐘極性,最后使能DMA傳輸以提高數(shù)據(jù)效率并激活I(lǐng)2S外設(shè)。

4.1.2DMA初始化

DMA_Configuration()為DMA初始化函數(shù):

void DMA_Configuration(void)
{
    DMA_InitTypeDef DMA_InitStructure;
 
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);
 
    DMA_DeInit(DMA2_Channel2);
 
    DMA_InitStructure.DMA_PeripheralBaseAddr=(uint32_t)&SPI3->DR;
    DMA_InitStructure.DMA_MemoryBaseAddr     =(uint32_t)I2S3_Buffer_Tx;
    DMA_InitStructure.DMA_DIR                = DMA_DIR_PeripheralDST;
    DMA_InitStructure.DMA_BufferSize         =BufferSize;
    DMA_InitStructure.DMA_PeripheralInc      = DMA_PeripheralInc_Disable;
    DMA_InitStructure.DMA_MemoryInc          = DMA_MemoryInc_Enable;
    DMA_InitStructure.DMA_PeripheralDataSize= DMA_PeripheralDataSize_HalfWord;
    DMA_InitStructure.DMA_MemoryDataSize     = DMA_MemoryDataSize_HalfWord;
    DMA_InitStructure.DMA_Mode               = DMA_Mode_Circular;
    DMA_InitStructure.DMA_Priority           = DMA_Priority_VeryHigh;
    DMA_InitStructure.DMA_M2M                = DMA_M2M_Disable;
    DMA_Init(DMA2_Channel2,&DMA_InitStructure);
 
    DMA_ITConfig(DMA2_Channel2, DMA_IT_TC, ENABLE);
 
    /* Enable SPI1 DMA TX request */
    DMA_Cmd(DMA2_Channel2, DISABLE);
}

該函數(shù)首先使能了DMA2時(shí)鐘,然后將DMA2通道2初始化為從內(nèi)存到外設(shè)的傳輸模式,設(shè)置外設(shè)基址為SPI3的數(shù)據(jù)寄存器(用于I2S通信),內(nèi)存基址為音頻數(shù)據(jù)緩沖區(qū)I2S3_Buffer_Tx,配置傳輸方向?yàn)閮?nèi)存到外設(shè)、緩沖區(qū)大小為BufferSize,禁用外設(shè)地址自增、啟用內(nèi)存地址自增,設(shè)置數(shù)據(jù)寬度為半字(16位,與I2S數(shù)據(jù)格式匹配),采用循環(huán)模式確保連續(xù)傳輸,設(shè)置優(yōu)先級(jí)為非常高,禁用內(nèi)存到內(nèi)存模式,最后使能傳輸完成中斷并暫時(shí)禁用DMA通道。

4.1.3中斷配置函數(shù)

NVIC_Configuration()為NVIC(嵌套向量中斷控制器)的配置函數(shù):

void NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;
    NVIC_InitStructure.NVIC_IRQChannel                  = DMA2_Channel2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority       =0;
    NVIC_InitStructure.NVIC_IRQChannelCmd               = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}

該函數(shù)首先定義NVIC了初始化結(jié)構(gòu)體,然后將中斷通道設(shè)置為DMA2通道2(對(duì)應(yīng)I2S3的TX DMA傳輸),配置搶占優(yōu)先級(jí)和子優(yōu)先級(jí)均為0(最高優(yōu)先級(jí)),使能該中斷通道,最后調(diào)用初始化函數(shù)完成配置,整體實(shí)現(xiàn)了對(duì)DMA2通道2傳輸完成事件的高優(yōu)先級(jí)中斷響應(yīng)設(shè)置,確保音頻數(shù)據(jù)傳輸中斷能被及時(shí)處理。

4.1.4中斷服務(wù)函數(shù)

DMA2_Channel2_IRQHandler()為DMA2通道2的中斷服務(wù)函數(shù):

void DMA2_Channel2_IRQHandler(void)
{
    if(DMA_GetITStatus(DMA2_IT_TC2)== SET)
    {
        DMA_ClearITPendingBit(DMA2_IT_TC2);
        DMA_ClearFlag(DMA2_FLAG_TC2);
        DMA_Cmd(DMA2_Channel2, DISABLE);
        Flag=1;
    }
}

程序首先檢查是否為DMA傳輸完成中斷(TC2),若是則清除中斷掛起位和完成標(biāo)志位,禁用DMA2通道2以暫停傳輸,最后將標(biāo)志位Flag置1以通知主程序數(shù)據(jù)已傳輸完畢,整體實(shí)現(xiàn)了對(duì)I2S音頻數(shù)據(jù)DMA傳輸完成的響應(yīng)處理,確保在數(shù)據(jù)發(fā)送完成后能進(jìn)行必要的狀態(tài)更新和后續(xù)操作。

4.1.5數(shù)據(jù)處理函數(shù)

DATA_Processing()是數(shù)據(jù)處理函數(shù),通過(guò)以下步驟實(shí)現(xiàn)將8位數(shù)據(jù)轉(zhuǎn)換為16位格式:

void DATA_Processing(void)
{
    uint32_t i;
 
    for(i=0; i< DATA_LEN?/?2; i++)
    {
        I2S3_Buffer_Tx[i]?= DATA[2?* i]?

程序首先定義循環(huán)計(jì)數(shù)器,然后對(duì)長(zhǎng)度為DATA_LEN的8位數(shù)據(jù)源數(shù)組DATA進(jìn)行遍歷,每次取連續(xù)的兩個(gè)8位數(shù)據(jù),將前一個(gè)左移8位后與后一個(gè)按位或運(yùn)算,組合成一個(gè)16位數(shù)據(jù)存入目標(biāo)數(shù)組I2S3_Buffer_Tx中,整體實(shí)現(xiàn)了將8位原始數(shù)據(jù)轉(zhuǎn)換為適合I2S傳輸?shù)?6位數(shù)據(jù)格式,確保音頻數(shù)據(jù)能夠正確地通過(guò)I2S接口發(fā)送。

4.1.6主程序

主程序main()通過(guò)以下步驟實(shí)現(xiàn)I2S音頻數(shù)據(jù)的持續(xù)傳輸:

int main(void)
{
    RCC_ClocksTypeDef clocks;
 
    delay_init();
    UART_Configuration(115200);
    RCC_GetClocksFreq(&clocks);
 
    printf("n");
    printf("SYSCLK: %3.1fMhz, HCLK: %3.1fMhz, PCLK1: %3.1fMhz, PCLK2: %3.1fMhz, ADCCLK: %3.1fMhzn",
           (float)clocks.SYSCLK_Frequency /1000000,(float)clocks.HCLK_Frequency/1000000,
           (float)clocks.PCLK1_Frequency /1000000,(float)clocks.PCLK2_Frequency/1000000,(float)clocks.ADCCLK_Frequency/1000000);
 
    printf("IIS CS4344 Test.n");
 
    IIS_Configuration();
    DMA_Configuration();
    NVIC_Configuration();
    DATA_Processing();
 
    DMA_Cmd(DMA2_Channel2, ENABLE);
 
    while(1)
    {
        if(Flag==1)
        {
            printf("IIS DMA Data Send Successn");
            Flag=0;
 
            DMA_Configuration();
            DMA_Cmd(DMA2_Channel2, ENABLE);
        }
    }
}

程序首先初始化系統(tǒng)時(shí)鐘和延時(shí)函數(shù),配置115200波特率的UART用于調(diào)試信息輸出,獲取并打印系統(tǒng)各時(shí)鐘頻率;接著依次配置I2S接口、DMA通道、NVIC中斷控制器,并將8位原始數(shù)據(jù)處理為16位格式以適配I2S傳輸;然后啟用DMA通道開始數(shù)據(jù)傳輸;最后在主循環(huán)中檢測(cè)傳輸完成標(biāo)志Flag,若置1則打印成功信息、重置標(biāo)志,重新配置并啟用DMA通道以實(shí)現(xiàn)循環(huán)傳輸,整體實(shí)現(xiàn)了通過(guò)I2S接口持續(xù)發(fā)送音頻數(shù)據(jù)的功能。

4.1.7下載驗(yàn)證

程序下載運(yùn)行后,首先打印了系統(tǒng)各時(shí)鐘的頻率和示例名稱,然后每發(fā)送成功一次I2S數(shù)據(jù)就會(huì)打印數(shù)據(jù)發(fā)送成功的信息:

wKgZO2hjmJWAEkj4AAPWUq6fSWM674.png

此時(shí)我們接上DAC音頻轉(zhuǎn)換器、戴上耳機(jī)就能持續(xù)聽到“微信到賬100萬(wàn)元”的音頻內(nèi)容。

4.2IIS_Dma例程

IIS_Dma例程通過(guò)I2S接口和DMA傳輸機(jī)制,發(fā)送預(yù)設(shè)的音頻數(shù)據(jù)。該例程的I2S初始化、DMA初始化、中斷配置函數(shù)與IIS_CS4344例程保持一致,這里不再贅述。其他程序設(shè)計(jì)如下:

4.2.1發(fā)送數(shù)據(jù)

I2S3_Buffer_Tx為需要發(fā)送的測(cè)試數(shù)據(jù):

uint16_t I2S3_Buffer_Tx[BufferSize]={0x0102,0x0304,0x0506,0x0708,0x090A,0x0B0C,
                                       0x0D0E,0x0F10,0x1112,0x1314,0x1516,0x1718,
                                       0x191A,0x1B1C,0x1D1E,0x1F20,0x2122,0x2324,
                                       0x2526,0x2728,0x292A,0x2B2C,0x2D2E,0x2F30,
                                       0x3132,0x3334,0x3536,0x3738,0x393A,0x3B3C,
                                       0x3D3E,0x3F40};

4.2.2中斷服務(wù)函數(shù)

DMA2_Channel2_IRQHandler是W55MH32中DMA2通道2的中斷處理函數(shù):

void DMA2_Channel2_IRQHandler(void)
{
    if(DMA_GetITStatus(DMA2_IT_TC2)== SET)
    {
        DMA_ClearITPendingBit(DMA2_IT_TC2);
        DMA_ClearFlag(DMA2_FLAG_TC2);
        DMA_Cmd(DMA2_Channel2, DISABLE);
        Flag=1;
    }
}

當(dāng)DMA完成預(yù)設(shè)的32個(gè)16位數(shù)據(jù)傳輸后觸發(fā)。函數(shù)首先檢查傳輸完成中斷狀態(tài),若中斷已觸發(fā)則清除中斷掛起位和傳輸完成標(biāo)志,避免重復(fù)響應(yīng);接著禁用DMA2通道2,停止數(shù)據(jù)傳輸;最后將全局標(biāo)志位Flag置1,通知主程序DMA傳輸已完成,主循環(huán)檢測(cè)到該標(biāo)志后會(huì)輸出成功信息并重置標(biāo)志。此函數(shù)實(shí)現(xiàn)了DMA傳輸?shù)闹袛囗憫?yīng)與狀態(tài)反饋,是I2S音頻數(shù)據(jù)傳輸流程中的關(guān)鍵環(huán)節(jié)。

4.2.3主程序

主程序main()通過(guò)以下步驟實(shí)現(xiàn)I2S音頻數(shù)據(jù)的傳輸:

int main(void)
{
    RCC_ClocksTypeDef clocks;
 
    delay_init();
    UART_Configuration(115200);
    RCC_GetClocksFreq(&clocks);
 
    printf("n");
    printf("SYSCLK: %3.1fMhz, HCLK: %3.1fMhz, PCLK1: %3.1fMhz, PCLK2: %3.1fMhz, ADCCLK: %3.1fMhzn",
           (float)clocks.SYSCLK_Frequency /1000000,(float)clocks.HCLK_Frequency/1000000,
           (float)clocks.PCLK1_Frequency /1000000,(float)clocks.PCLK2_Frequency/1000000,(float)clocks.ADCCLK_Frequency/1000000);
 
    printf("IIS DMA Test.n");
 
    IIS_Configuration();
    DMA_Configuration();
    NVIC_Configuration();
 
    DMA_Cmd(DMA2_Channel2, ENABLE);
 
    while(1)
    {
        if(Flag==1)
        {
            printf("IIS DMA Data Send Successn");
            Flag=0;
        }
    }
}

程序首先初始化系統(tǒng)時(shí)鐘、UART調(diào)試接口并打印時(shí)鐘信息,接著配置I2S接口(復(fù)用SPI3)、DMA2通道2(循環(huán)模式)和NVIC中斷控制器,隨后啟用DMA開始將預(yù)設(shè)的32個(gè)16位音頻數(shù)據(jù)循環(huán)傳輸?shù)絀2S接口,主循環(huán)持續(xù)檢測(cè)DMA傳輸完成標(biāo)志位Flag,當(dāng)Flag被中斷處理函數(shù)置1時(shí),打印傳輸成功信息并重置標(biāo)志,不過(guò)因中斷處理函數(shù)中禁用了DMA通道,實(shí)際數(shù)據(jù)僅能傳輸一次,此代碼常用于音頻設(shè)備初始化測(cè)試。

4.2.4下載驗(yàn)證

程序下載運(yùn)行后,首先打印了系統(tǒng)各時(shí)鐘的頻率和示例名稱,然后I2S數(shù)據(jù)發(fā)送成功后打印數(shù)據(jù)發(fā)送成功的信息:

wKgZO2hjmJSAQcYVAAF3x8F8tCU069.png

通過(guò)邏輯分析儀就可以解析出發(fā)送的數(shù)據(jù):

wKgZPGhjmJSAA5kzAAFY9xBuJYA662.png

wKgZO2hjmJSAYWcBAAFbVIFb7k0952.png

首幀和尾幀的數(shù)據(jù)實(shí)際已經(jīng)可以看到有數(shù)據(jù)脈沖信號(hào),未解析屬于硬件初始化特性(FIFO填充)或解析器同步延遲原因,不影響實(shí)際音頻功能。

4.3IIS_Int例程

IIS_Int例程通過(guò)I2S接口和中斷控制器實(shí)現(xiàn)音頻數(shù)據(jù)的中斷驅(qū)動(dòng)傳輸。其他程序設(shè)計(jì)如下:

4.3.1 I2S初始化

IIS_Configuration()函數(shù)用于初始化W55MH32的I2S接口(復(fù)用SPI3外設(shè))及中斷配置,其內(nèi)容如下:

void IIS_Configuration(void)
{
    I2S_InitTypeDef I2S_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;
 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);
 
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA,&GPIO_InitStructure);
 
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_3| GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
 
    GPIO_InitStructure.GPIO_Pin= GPIO_Pin_7;
    GPIO_Init(GPIOC,&GPIO_InitStructure);
 
    NVIC_InitStructure.NVIC_IRQChannel                  = SPI3_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority       =0;
    NVIC_InitStructure.NVIC_IRQChannelCmd               = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
 
    SPI_I2S_DeInit(SPI3);
    I2S_InitStructure.I2S_Mode      = I2S_Mode_MasterTx;
    I2S_InitStructure.I2S_Standard  = I2S_Standard_Phillips;
    I2S_InitStructure.I2S_DataFormat= I2S_DataFormat_16b;
    I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq_8k;
    I2S_InitStructure.I2S_CPOL      = I2S_CPOL_Low;
    I2S_InitStructure.I2S_MCLKOutput= I2S_MCLKOutput_Enable;
    I2S_Init(SPI3,&I2S_InitStructure);
 
    SPI_I2S_ITConfig(SPI3, SPI_I2S_IT_TXE, ENABLE);
    I2S_Cmd(SPI3, ENABLE);
}

函數(shù)首先使能GPIOA/B/C和SPI3的時(shí)鐘,配置相關(guān)引腳為復(fù)用推挽輸出(包括數(shù)據(jù)輸出、字選擇、串行時(shí)鐘和主時(shí)鐘引腳);接著配置NVIC中斷控制器,設(shè)置SPI3中斷的優(yōu)先級(jí)并使能中斷;然后重置SPI3并設(shè)置I2S參數(shù),包括主發(fā)送模式、飛利浦標(biāo)準(zhǔn)、16位數(shù)據(jù)格式、8kHz采樣率、低時(shí)鐘極性和主時(shí)鐘輸出;最后啟用發(fā)送緩沖區(qū)空中斷(TXE)并使能I2S外設(shè)。該配置適用于簡(jiǎn)單音頻發(fā)送場(chǎng)景,通過(guò)中斷驅(qū)動(dòng)方式實(shí)現(xiàn)數(shù)據(jù)傳輸。

4.3.2 中斷服務(wù)函數(shù)

SPI3_IRQHandler()是SPI3外設(shè)的中斷處理函數(shù),用于處理I2S發(fā)送緩沖區(qū)空(TXE)事件,函數(shù)內(nèi)容如下:

void SPI3_IRQHandler(void)
{
    if(SPI_I2S_GetITStatus(SPI3, SPI_I2S_IT_TXE)== SET)
    {
        /* Send a data from I2S3 */
        SPI_I2S_SendData(SPI3, I2S3_Buffer_Tx[TxIdx++]);
    }
    if(TxIdx==32)
    {
        SPI_I2S_ITConfig(SPI3, SPI_I2S_IT_TXE, DISABLE);
    }
}

當(dāng)檢測(cè)到TXE標(biāo)志置位時(shí),函數(shù)從預(yù)設(shè)的32元素?cái)?shù)據(jù)緩沖區(qū)I2S3_Buffer_Tx中讀取一個(gè)16位數(shù)據(jù)發(fā)送到I2S接口,并遞增索引TxIdx;當(dāng)TxIdx達(dá)到32時(shí),表示所有數(shù)據(jù)發(fā)送完畢,函數(shù)禁用TXE中斷以停止傳輸。該函數(shù)實(shí)現(xiàn)了基于中斷的單次數(shù)據(jù)塊發(fā)送,適用于小規(guī)模固定數(shù)據(jù)的傳輸場(chǎng)景。

4.3.3 主程序

以下為該例程的主程序,用于測(cè)試I2S接口的中斷驅(qū)動(dòng)數(shù)據(jù)發(fā)送功能:

int main(void)
{
    RCC_ClocksTypeDef clocks;
 
    delay_init();
    UART_Configuration(115200);
    RCC_GetClocksFreq(&clocks);
 
    printf("n");
    printf("SYSCLK: %3.1fMhz, HCLK: %3.1fMhz, PCLK1: %3.1fMhz, PCLK2: %3.1fMhz, ADCCLK: %3.1fMhzn",
           (float)clocks.SYSCLK_Frequency /1000000,(float)clocks.HCLK_Frequency/1000000,
           (float)clocks.PCLK1_Frequency /1000000,(float)clocks.PCLK2_Frequency/1000000,(float)clocks.ADCCLK_Frequency/1000000);
 
    printf("IIS Int Test.n");
 
    IIS_Configuration();
 
    while(1);
}

程序先初始化延時(shí)函數(shù)和UART1串口,獲取并打印系統(tǒng)各時(shí)鐘頻率,然后初始化I2S接口(配置GPIO、中斷及I2S參數(shù)),最后進(jìn)入無(wú)限循環(huán),數(shù)據(jù)發(fā)送由I2S發(fā)送緩沖區(qū)空中斷驅(qū)動(dòng),主程序不參與具體傳輸邏輯。

4.3.4 下載驗(yàn)證

程序下載運(yùn)行后,首先打印了系統(tǒng)各時(shí)鐘的頻率和示例名稱,I2S觸發(fā)中斷之后開始發(fā)送數(shù)據(jù),數(shù)據(jù)緩沖區(qū)有數(shù)據(jù)之后便不再觸發(fā):

wKgZPGhjmJSAEsN6AAE4KxZ4sZg990.png

邏輯分析儀解析數(shù)據(jù)如下:

wKgZPGhjmJWANsHQAAFCNgC_5G0277.png

wKgZPGhjmJWAcx_FAAE-DfXt1Wk450.png

同樣的,首幀和尾幀的數(shù)據(jù)實(shí)際也已經(jīng)可以看到有數(shù)據(jù)脈沖信號(hào),未解析屬于硬件初始化特性(FIFO填充)或解析器同步延遲原因,不影響實(shí)際音頻功能。

5總結(jié)

W55MH32的I2S接口為數(shù)字音頻應(yīng)用提供了強(qiáng)大而靈活的解決方案。通過(guò)與SPI模塊共享硬件資源,它既實(shí)現(xiàn)了專用音頻接口的高性能,又保持了設(shè)計(jì)的經(jīng)濟(jì)性。支持多種音頻標(biāo)準(zhǔn)和數(shù)據(jù)格式使其能夠與絕大多數(shù)音頻編解碼器無(wú)縫協(xié)作,滿足從消費(fèi)電子到專業(yè)音頻設(shè)備的各種需求。

WIZnet是一家無(wú)晶圓廠半導(dǎo)體公司,成立于1998年。產(chǎn)品包括互聯(lián)網(wǎng)處理器iMCU?,它采用TOE(TCP/IP卸載引擎)技術(shù),基于獨(dú)特的專利全硬連線TCP/IP。iMCU?面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。

WIZnet在全球擁有70多家分銷商,在香港、韓國(guó)、美國(guó)設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營(yíng)銷。

香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國(guó)和日本除外)。

審核編輯 黃宇

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

    關(guān)注

    3

    文章

    20

    瀏覽量

    42431
  • 音頻傳輸
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    12264
  • I2S
    I2S
    +關(guān)注

    關(guān)注

    1

    文章

    72

    瀏覽量

    42778
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    音頻總線I2S協(xié)議:I2S收發(fā)模塊FPGA的仿真設(shè)計(jì)

    1 概述 I2S(Inter—IC Sound)總線, 又稱 集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),該總線專門用于
    的頭像 發(fā)表于 12-14 17:34 ?9254次閱讀
    <b class='flag-5'>音頻</b>總線<b class='flag-5'>I2S</b>協(xié)議:<b class='flag-5'>I2S</b>收發(fā)模塊FPGA的仿真設(shè)計(jì)

    「正點(diǎn)原子NANO STM32開發(fā)板資料連載」第三十五章 USB 虛擬串口實(shí)驗(yàn)

    1)實(shí)驗(yàn)平臺(tái):alientek NANO STM32F411 V1開發(fā)板2)摘自《正點(diǎn)原子STM32F4 開發(fā)指南(HAL 庫(kù)版》關(guān)注官方微信號(hào)公眾號(hào),獲取更多資料:正點(diǎn)原子第三十五章 USB 虛擬
    發(fā)表于 04-24 16:54

    音頻傳輸除了用I2S還可以用什么其他的協(xié)議?

    音頻傳輸除了用I2S還可以用什么其他的協(xié)議
    發(fā)表于 10-10 07:53

    音頻接口I2S實(shí)驗(yàn)

    實(shí)驗(yàn)?zāi)康? 1.掌握有關(guān)音頻處理的實(shí)驗(yàn)原理及說(shuō)明;2.通過(guò)實(shí)驗(yàn)了解I2S(Inter–ICSound)音頻接口的工作原理;3.通過(guò)實(shí)驗(yàn)掌握對(duì)處理器S
    發(fā)表于 12-29 00:07 ?116次下載

    模擬電路網(wǎng)絡(luò)課件 第三十五節(jié):負(fù)反饋放大電路的穩(wěn)定問題

    模擬電路網(wǎng)絡(luò)課件 第三十五節(jié):負(fù)反饋放大電路的穩(wěn)定問題 7.5  負(fù)反饋放大電路的穩(wěn)定問題 一、產(chǎn)生自激振蕩的原因與條件 交流負(fù)
    發(fā)表于 09-17 12:14 ?1858次閱讀

    基于FPGA和AD1836的I2S接口設(shè)計(jì)

    I2S(Inter IC Sound Bus)是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),它既規(guī)定了硬件接口規(guī)范,也規(guī)定了數(shù)字
    發(fā)表于 03-29 11:02 ?6922次閱讀
    基于FPGA和AD1836的<b class='flag-5'>I2S</b><b class='flag-5'>接口</b>設(shè)計(jì)

    I2S接口工作原理_I2S接口介紹

    I2S總線, 又稱 集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),該總線專門用于音頻設(shè)備之間的數(shù)據(jù)
    發(fā)表于 01-29 17:18 ?11.1w次閱讀
    <b class='flag-5'>I2S</b><b class='flag-5'>接口</b>工作原理_<b class='flag-5'>I2S</b><b class='flag-5'>接口</b>介紹

    數(shù)字接口I2S數(shù)據(jù)傳輸模式和應(yīng)用框圖

    I2S(Inter-IC Sound)總線,是Philips公司為數(shù)字音頻傳輸制定的總線標(biāo)準(zhǔn)。
    發(fā)表于 10-12 15:07 ?9441次閱讀
    數(shù)字<b class='flag-5'>接口</b><b class='flag-5'>I2S</b>數(shù)據(jù)<b class='flag-5'>傳輸</b>模式和應(yīng)用框圖

    stm32 讀取sd卡圖片顯示_「正點(diǎn)原子STM32Mini板資料連載」第三十五章 漢字顯示實(shí)驗(yàn)...

    1)實(shí)驗(yàn)平臺(tái):正點(diǎn)原子STM32mini開發(fā)板2)摘自《正點(diǎn)原子STM32 不完全手冊(cè)(HAL 庫(kù)版)》關(guān)注官方微信號(hào)公眾號(hào),獲取更多資料:正點(diǎn)原子第三十五章 漢字顯示實(shí)驗(yàn)漢字顯示在很多單片機(jī)系統(tǒng)都
    發(fā)表于 11-26 13:36 ?19次下載
    stm32 讀取sd卡圖片顯示_「正點(diǎn)原子STM32Mini板資料連載」<b class='flag-5'>第三十五章</b> 漢字顯示實(shí)驗(yàn)...

    【正點(diǎn)原子FPGA連載】第三十五章高速AD/DA實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1

    【正點(diǎn)原子FPGA連載】第三十五章高速AD/DA實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1
    發(fā)表于 12-04 15:06 ?12次下載
    【正點(diǎn)原子FPGA連載】<b class='flag-5'>第三十五章</b>高速AD/DA實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1

    智能硬件設(shè)計(jì)中I2S、PDM、TDM選什么音頻接口

    智能硬件設(shè)計(jì),I2S、PDM、TDM選什么音頻接口?
    的頭像 發(fā)表于 02-23 15:08 ?1.3w次閱讀
    智能硬件設(shè)計(jì)中<b class='flag-5'>I2S</b>、PDM、TDM選什么<b class='flag-5'>音頻接口</b>

    基于MM32F5270的I2S音頻播放

    基于MM32F5270的I2S音頻播放
    的頭像 發(fā)表于 10-30 17:13 ?1858次閱讀
    基于MM32F5270的<b class='flag-5'>I2S</b><b class='flag-5'>音頻</b>播放

    基于I2S接口的Linux內(nèi)核音頻技術(shù)

    I2S是飛利浦定義的數(shù)字音頻傳輸標(biāo)準(zhǔn),用于數(shù)字音頻數(shù)據(jù)在系統(tǒng)內(nèi)部器件之間傳輸
    發(fā)表于 02-27 14:00 ?4615次閱讀
    基于<b class='flag-5'>I2S</b><b class='flag-5'>接口</b>的Linux內(nèi)核<b class='flag-5'>音頻</b>技術(shù)

    科普小課堂 | 5分鐘讀懂I2S、SPDIF數(shù)字音頻傳輸協(xié)議

    。數(shù)字音頻接口協(xié)議是指在數(shù)字音頻系統(tǒng)中用于傳輸音頻數(shù)據(jù)的標(biāo)準(zhǔn)化規(guī)定,是確保聲音信號(hào)能夠被正確傳輸和處理的關(guān)鍵,常見的數(shù)字
    的頭像 發(fā)表于 11-14 01:09 ?4135次閱讀
    科普小課堂 | 5分鐘讀懂<b class='flag-5'>I2S</b>、SPDIF數(shù)字<b class='flag-5'>音頻傳輸</b>協(xié)議

    從藍(lán)牙音頻模塊中了解I2S的主端和從端功能應(yīng)用

    工作,實(shí)現(xiàn)了近乎無(wú)損的無(wú)線音頻傳輸。那么,藍(lán)牙I2S主端和從端各自承擔(dān)什么功能?讓我們從安朔科技藍(lán)牙音頻模塊(ANS-BT301M)中深入解析!1、主從模式定義主設(shè)備:
    的頭像 發(fā)表于 04-25 16:06 ?380次閱讀
    從藍(lán)牙<b class='flag-5'>音頻</b>模塊中了解<b class='flag-5'>I2S</b>的主端和從端功能應(yīng)用
    主站蜘蛛池模板: 国产yw855.c免费观看网站 | 国产精品污视频 | 四虎影视最新地址 | 又黄又爽又猛午夜性色播在线播放 | 天天爽夜夜爽精品视频一 | 2021国产精品成人免费视频 | 222www在线观看免费 | 深夜视频在线 | 亚洲经典乱码在线播 | 欧美肉到失禁高h视频在线 欧美三级成人 | 亚洲精品美女视频 | 色成人综合网 | 视频三区 | 狠狠叉 | 男女爱爱免费视频 | 欧美成人在线网站 | 你懂的在线看 | 色婷婷六月 | 丝袜紧身裙国产在线播放 | www亚洲成人| 国产三级精品最新在线 | 一区二区三区视频在线 | 免费视频网站在线看视频 | vip影视免费观看 | 国产亚洲精品免费 | 特毛片| 午夜 福利 视频 | 色图插插插 | xxxx性开放xxxx| 国产经典一区 | 中文字幕在线观看一区 | 午夜看片网址 | 色多多黄色| 天堂网最新版www中文 | 久久久久久天天夜夜天天 | 天天舔天天操 | 麒麟色欧美影院在线播放 | 色香蕉在线观看网站 | 欧美午夜场| 免费观看片 | 国产亚洲综合视频 |