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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

CKS32F4xx系列I2S功能介紹

中科芯MCU ? 來源:匯創科電子 ? 2024-03-17 09:40 ? 次閱讀

Inter-IC Sount Bus(I2S)是針對數字音頻設備之間的音頻數據傳輸而制定的一種總線標準。I2S標準中,既規定了硬件接口規范,也規定了數字音頻數據的格式。

I2S總線接口介紹

I2S總線接口有3個主要信號,但只能實現數據半雙工傳輸,后來為實現全雙工傳輸有些設備增加了擴展數據引腳。CKS32F4xx系列控制器支持擴展的I2S總線接口。

SD(Serial Data)

串行數據線,用于發送或接收兩個時分復用的數據通道上的數據(僅半雙工模式),如果是全雙工模式,該信號僅用于發送數據。

WS(Word Select)

字段選擇線,也稱幀時鐘(LRC)線,表明當前傳輸數據的聲道,不同標準有不同的定義。WS線的頻率等于采樣頻率(FS)。

CK(Serial Clock)

串行時鐘線,也稱位時鐘(BCLK),數字音頻的每一位數據都對應有一個CK脈沖,它的頻率為:2*采樣頻率*量化位數,2代表左右兩個通道數據。

ext_SD(extend Serial Data)

擴展串行數據線,用于全雙工傳輸的數據接收。另外,有時為使系統間更好地同步,還要傳輸一個主時鐘(MCK),CKS32F4xx系列控制器固定輸出為256*FS。

CKS32F4xx系列控制器有兩個I2S,I2S2和I2S3,兩個的資源是相互獨立的,但分別與SPI2和SPI3共用大部分資源。這樣I2S2和SPI2只能選擇一個功能使用,I2S3和SPI3相同道理。資源共用包括引腳共用和部分寄存器共用,當然也有部分是專用的。控制器的I2S支持兩種工作模式,主模式和從模式;主模式下使用自身時鐘發生器生成通信時鐘。I2S功能框圖如下圖所示:

1177d822-e394-11ee-a297-92fbcf53809c.png ? ?

功能引腳

I2S的SD映射到SPI的MOSI引腳,ext_SD映射到SPI的MISO引腳,WS映射到SPI的NSS引腳,CK映射到SPI的SCK引腳。MCK是I2S專用引腳,用于主模式下輸出時鐘或在從模式下輸入時鐘。I2S時鐘發生器可以由控制器內部時鐘源分頻產生,亦可采用CKIN引腳輸入時鐘分頻得到,一般使用內部時鐘源即可。

參考下表CKS32F4xx系列控制器I2S引腳分布:

11873db2-e394-11ee-a297-92fbcf53809c.png ? ?

數據寄存器

I2S有一個與SPI共用的SPI數據寄存器(SPI_DR),有效長度為16bit,用于I2S數據發送和接收,它實際由三個部分組成,一個移位寄存器、一個發送緩沖區和一個接收緩沖區,當處于發送模式時,向SPI_DR寫入數據先保存在發送緩沖區,總線自動把發送緩沖區內容轉入到移位寄存器中進行傳輸;在接收模式下,實際接收到的數據先填充移位寄存器,然后自動轉入接收緩沖區,軟件讀取SPI_DR時自動從接收緩沖區內讀取。I2S是掛載在APB1總線上的。

邏輯控制

I2S的邏輯控制通過設置相關寄存器位實現,比如通過配置SPI_I2S配置寄存器(SPI_I2SCFGR)的相關位可以實現選擇I2S和SPI模式切換、選擇I2S工作在主模式還是從模式并且選擇是發送還是接收、選擇I2S標準、傳輸數據長度等等。SPI控制寄存器2(SPI_CR2)可用于設置相關中斷和DMA請求使能,I2S有5個中斷事件,分別為發送緩沖區為空、接收緩沖區非空、上溢錯誤、下溢錯誤和幀錯誤。SPI狀態寄存器(SPI_SR)用于指示當前I2S狀態。

時鐘發生器

I2S比特率用來確定I2S數據線上的數據流和I2S時鐘信號頻率。I2S比特率=每個通道的位數×通道數×音頻采樣頻率。圖為I2S時鐘發生器內部結構。I2SxCLK(x可選2或3)可以通過RCC_CFGR寄存器的I2SSRC位選擇使用PLLI2S時鐘作為I2S時鐘源或I2S_CKIN引腳輸入時鐘作為I2S時鐘源。一般選擇內部PLLI2S(通過R分頻系數)作為時鐘源。例程程序設置PLLI2S時鐘為258MHz,R分頻系數為3,此時I2SxCLK時鐘為86MHz。

1196fe96-e394-11ee-a297-92fbcf53809c.png

SPI_I2S預分頻器寄存器(SPI_I2SPR)的MCKOE位用于設置MCK引腳時鐘輸出使能;ODD位設置預分頻器的奇數因子,實際分頻值=I2SDIV*2+ODD;I2SDIV為8位線性分頻器,不可設置為0或1。當使能MCK時鐘輸出,即MCKOE=1時,采樣頻率計算如下:

FS=I2SxCLK/[(16*2)*((2*I2SDIV)+ODD)*8)](通道幀寬度為16bit時)

FS=I2SxCLK/[(32*2)*((2*I2SDIV)+ODD)*4)](通道幀寬度為32bit時)當禁止MCK時鐘輸出,即MCKOE=0時,采樣頻率計算如下:

FS=I2SxCLK/[(16*2)*((2*I2SDIV)+ODD))](通道幀寬度為16bit時)

FS=I2SxCLK/[(32*2)*((2*I2SDIV)+ODD))](通道幀寬度為32bit時)

I2S初始化結構體介紹

標準庫函數對I2S外設建立了一個初始化結構體I2S_InitTypeDef。初始化結構體成員用于設置I2S工作環境參數,并由I2S相應初始化配置函數I2S_Init調用,這些設定參數將會設置I2S相應的寄存器,達到配置I2S工作環境的目的。

代碼清單:I2S_InitTypeDef結構體

typedef struct
{
  uint16_t I2S_Mode;         
  uint16_t I2S_Standard;    
  uint16_t I2S_DataFormat;  
  uint16_t I2S_MCLKOutput;  
  uint32_t I2S_AudioFreq;   
  uint16_t I2S_CPOL;        
}I2S_InitTypeDef;

(1)I2S_Mode:I2S模式選擇,可選主機發送、主機接收、從機發送以及從機接收模式,它設定SPI_I2SCFGR寄存器I2SCFG位的值。一般設置CKS32控制器為主機模式,當播放聲音時選擇發送模式;當錄制聲音時選擇接收模式。

(2)I2S_Standard:通信標準格式選擇,可選I2S Philips標準、左對齊標準、右對齊標準、PCM短幀標準或PCM長幀標準,它設定SPI_I2SCFGR寄存器I2SSTD位和PCMSYNC位的值。一般設置為I2S Philips標準即可。

(3)I2S_DataFormat:數據格式選擇,設定有效數據長度和幀長度,可選標準16bit格式、擴展16bit(32bit幀長度)格式、24bit格式和32bit格式,它設定SPI_I2SCFGR寄存器DATLEN位和CHLEN位的值。對應16bit數據長度可選16bit或32bit幀長度,其他都是32bit幀長度。

(4)I2S_MCLKOutput:主時鐘輸出使能控制,可選使能輸出或禁止輸出,它設定SPI_I2SPR寄存器MCKOE位的值。為提高系統性能一般使能主時鐘輸出。

(5)I2S_AudioFreq:采樣頻率設置,標準庫提供采樣采樣頻率選擇,分別為8kHz、11kHz、16kHz、22kHz、32kHz、44kHz、48kHz、96kHz、192kHz以及默認2Hz,它設定SPI_I2SPR寄存器的值。

(6)I2S_CPOL:空閑狀態的CK線電平,可選高電平或低電平,它設定SPI_I2SCFGR寄存器CKPOL位的值。




審核編輯:劉清

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

    關注

    555

    文章

    8102

    瀏覽量

    353681
  • 電機控制
    +關注

    關注

    3555

    文章

    1921

    瀏覽量

    270256
  • FFT
    FFT
    +關注

    關注

    15

    文章

    438

    瀏覽量

    60117
  • 定時器
    +關注

    關注

    23

    文章

    3265

    瀏覽量

    116363
  • 浮點算法
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1372

原文標題:MCU微課堂|CKS32F4xx系列I2S功能

文章出處:【微信號:中科芯MCU,微信公眾號:中科芯MCU】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    CKS32F4xx系列ETH通信詳解

    CKS32F4xx系列芯片自帶以太網模塊,該模塊包括帶專用DMA控制器的MAC 802.3(介質訪問控制)控制器
    的頭像 發表于 11-10 11:13 ?1212次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>ETH通信詳解

    CKS32F4xx系列DSP功能介紹

    CKS32F4xx系列使用高性能的32位內核,支持浮點運算單元(FPU),同時還支持DSP指令以及存儲保護(MPU)用來加強應用的安全性。
    的頭像 發表于 03-04 13:43 ?1831次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DSP<b class='flag-5'>功能</b><b class='flag-5'>介紹</b>

    CKS32F4xx系列產品串口DMA傳輸

    在上一講,我們講過CKS32F4xx系列的6個串口都支持DMA傳輸。因此本節我們對CKS32F4xx系列的DMA進行介紹,同時利用DMA對串
    的頭像 發表于 04-10 11:18 ?1202次閱讀

    CKS32F4xx系列RNG功能設置

    ? MCU 微課堂 CKS32F4xx 系 列RNG功能 隨機數發生器簡介 ? ? CKS32F4xx系列自帶了硬件隨機數發生器(RNG),RNG處理器是一個以連續模擬噪聲為基礎的隨機
    的頭像 發表于 09-08 10:01 ?762次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>RNG<b class='flag-5'>功能</b>設置

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的頭像 發表于 11-06 16:56 ?1017次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC<b class='flag-5'>功能</b>

    CKS32F4xx系列ADC多通道DMA電壓采集

    CKS32F4xx系列ADC多通道DMA電壓采集
    的頭像 發表于 11-06 16:53 ?1251次閱讀

    CKS32F4xx系列ADC單通道電壓采集

    CKS32F4xx系列ADC單通道電壓采集
    的頭像 發表于 11-06 16:54 ?1097次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>ADC單通道電壓采集

    CKS32F4xx系列低功耗模式STANDBY模式

    CKS32F4xx系列低功耗模式STANDBY模式
    的頭像 發表于 11-06 16:57 ?636次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式STANDBY模式

    CKS32F4xx系列低功耗模式SLEEP模式

    CKS32F4xx系列低功耗模式SLEEP模式
    的頭像 發表于 11-06 16:59 ?823次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式SLEEP模式

    CKS32F4xx系列低功耗模式STOP模式

    CKS32F4xx系列低功耗模式STOP模式
    的頭像 發表于 11-06 17:08 ?753次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式STOP模式

    CKS32F4xx系列產品Timer的基本使用方法-比較輸出

    CKS32F4xx系列產品Timer的基本使用方法-比較輸出
    的頭像 發表于 11-09 17:39 ?1014次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產品Timer的基本使用方法-比較輸出

    CKS32F4xx系列產品Timer的基本使用方法-定時操作

    CKS32F4xx系列產品Timer的基本使用方法-定時操作
    的頭像 發表于 11-09 17:41 ?746次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產品Timer的基本使用方法-定時操作

    MCU微課堂 | CKS32F4xx系列產品SPI通信

    MCU微課堂 | CKS32F4xx系列產品SPI通信
    的頭像 發表于 10-24 17:12 ?871次閱讀
    MCU微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產品SPI通信

    MCU微課堂 | CKS32F4xx系列產品GPIO口配置

    MCU微課堂 | CKS32F4xx系列產品GPIO口配置
    的頭像 發表于 10-24 15:14 ?967次閱讀
    MCU微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產品GPIO口配置

    CKS32F4xx系列FSMC功能簡介

    本課講為大家講解CKS32F4xx系列產品的FSMC應用實例,FSMC全稱是Flexible Static Memory Controller,讀作靈活的靜態存儲控制器,顧名思義,MCU可以通過FSMC擴展靜態內存
    的頭像 發表于 04-14 15:06 ?1227次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>FSMC<b class='flag-5'>功能</b>簡介
    主站蜘蛛池模板: 精品一区二区三区免费爱 | 天天干干天天 | 四虎国产精品永久在线播放 | 免费观看欧美成人1314色 | 婷婷综合五月中文字幕欧美 | 欧美在线视频看看 | 91成人在线免费视频 | 伊人狼人综合 | 亚洲一区在线视频观看 | 夜夜夜夜夜夜夜猛噜噜噜噜噜噜 | 亚洲久久在线 | 色天使久久| 天天爽夜夜爽天天做夜夜做 | 欧美1024性视频 | 久久婷五月 | 欧美日韩一区二区三区视频在线观看 | 自拍偷拍福利 | 国产视频精品久久 | 大喷水吹潮magnet | 18性夜影院午夜寂寞影院免费 | 超黄视频在线观看 | 免费看啪啪网站 | 小屁孩和大人啪啪 | 久久人人精品 | 涩涩涩综合在线亚洲第一 | 特黄一级视频 | 高h细节肉爽文bl文 高h细节肉爽文男男 | 18欧美乱大交 | 黄页网站在线 | 亚洲www网站 | 欧美7777kkkk免费看258 | 1024国产欧美日韩精品 | 国内真实实拍伦视频在线观看 | 日日夜夜天天干干 | 五月婷婷六月合 | 日韩一级在线 | 亚洲免费区 | 久久久久大香线焦 | 欧美性猛交xxxx乱大交高清 | 久久国产精品无码网站 | 日本wwwhdsex69|

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品