《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于DDK的TLV320AIC23型編解碼器的驅動設計
基于DDK的TLV320AIC23型編解碼器的驅動設計
摘要: 以Tl的DM642EVM板為例,介紹基于DDK的TLV320AIC23型編解碼器驅動程序設計的一般方法。針對常用的需求,給出三種實用的參數配置方法。
Abstract:
Key words :

1 引言

  TLV320AIC23" title="TLV320AIC23">TLV320AIC23是TI公司推出的一款高性能立體聲音頻" title="音頻">音頻編解碼器" title="編解碼器">編解碼器,內置耳機輸出放大器,支持mic和line in二選一的輸入方式。輸入和輸出都具有可編程的增益調節功能。TLV320AIC23的模/數轉換器(ADC)和數,模轉換器(DAC)集成在芯片內部.采用先進的Σ一△過采樣技術.可以在8kHz至96kHz的采樣率下提供16bit、20bit、24bit和32bit的采樣數據。ADC和DAC的輸出信噪比分別可達90dB和100dB。同時。TLV320AIC23還具有很低的功耗(回放模式為23mW。節電模式為15μw)。上述優點使得TLV320AIC23成為一款非常理想的音頻編解碼器,與TI的DSP系列相配合更是相得益彰。

  DSP/BIOS Driver Developer’s Kit(DDK)是TI為簡化驅動程序開發為TMS320系列DSP及其EVM板等提供的驅動程序開發套件。該套件為TMS320系列各種外圍器件提供完整的標準化驅動程序模型,使得驅動程序可以很方便地移植到其他應用中,大大提高驅動程序開發的效率。DDK是對每種TMS320系列DSP都提供的芯片支持庫(Chip Support Library—CSL)的補充,CSL提供對外圍器件寄存器配置及初始化等的低級控制,DDK完全通過CSL來對外圍器件進行控制。簡單地說。DDK建立在CSL上層.所以用DDK來開發驅動程序將更為快捷且可移植性更好。

  DDK為開發驅動程序定義了標準模型和一系列的API。為簡化程序設計。標準模型又被分為二個層次.其中高層稱為Class driver,低層稱為Mini—driver。Class drivei與器件相對獨立.完成諸如緩沖區管理和請求同步等功能.同時扮演著與API和Mini—driver二者接口的角色。Mini—driver完成特定的器件初始化和控制功能.它符合IOM(I/O Mini—driver)的接口標準。DDK的這種分層結構使得驅動開發人員僅需了解單一的Mini—driver API就可以完成整體外圍器件的驅動設計,而且這一過程比設計整個驅動程序要簡單得多,因為Class driver控制了緩沖區管理和同步等。DDK提供3種Class driver.分別為SIO/DIO、PIP/PIO和GIO,它們都可以和任何Mini—driver結合使用。

基于DDK的TLV320AIC23型編解碼器的驅動設計

2 TLV320AIC23的驅動設計基礎

  DDK的標準模型結構如圖1所示。高層的應用和底層驅動相互沒有直接的關聯,開發中只需通過Class driver控制Mini—driver。

  下面以DM642 EVM板為例.說明基于DDK的TLV320AIC23的驅動程序設計方法。

  首先,需要使用配置工具建立驅動程序的入口。在DSP/BIOS con_fig下的cdb文件中.依次選擇In-puffOutplut---Deviee Drivers→User→defined Drivers.在這些例程中一般已經添加了udevCodec.如果需要的話,用戶可以自行添加或編輯。右鍵單擊選擇Properties選項來編輯其屬性,其屬性應設置如下:

  Comment:可以加入自己的注釋

  lnit function:鍵入EVMDM642_EDMA_AIC23一init

  Function table ptr:鍵入 EVMDM642_EDMA_A-IC23一Fxn8

  Function table type:選擇IOM_Fxns

  Deviceid:該項會被自動忽略.因為DM642 EVM板上只有一塊TLV320AIC23

  Device params ptr:TLV320AIC23參數結構的入口指針.使用缺省參數時設為0x0

  Device global data ptr:必須設置為OxO

  正確配置驅動程序入口后.就要按照需要設置相關的參數。下面具體討論TLV320AIC23參數的設置。

  TLV320AIC23的參數結構體原型如下:

  typedef struct

基于DDK的TLV320AIC23型編解碼器的驅動設計

  在一般應用中。上述結構體的大多數參數無需更改,需要修改的主要是aie23Config.它是TLV320AIC23控制寄存器值.需要通過它來控制TLV320AIC23的工作模式、輸入/輸出選擇、采樣率等重要參數。

基于DDK的TLV320AIC23型編解碼器的驅動設計

基于DDK的TLV320AIC23型編解碼器的驅動設計

  除了復位寄存器外.TLV320AIC23共有9個控制寄存器.每個寄存器控制字長為9bit.地址位為7bit,共有16bit。地址位為高7位而控制字在低9位。具體如下:

  Register0:左聲道輸入音量控制,缺省值為 0x0017

  Register1:右聲道輸入音量控制,缺省值為 0x0017

  Register 2:左聲道輸出音量控制。缺省值為Ox01F9

  Register 3:右聲道輸出音量控制,缺省值為Ox01F9

  Register 4:模擬音頻通道設置.缺省值為Ox0011

  Register 5:數字音頻通道設置。缺省值為0x0000

  Register 6:節電模式控制.缺省值為0x0000

  Register 7:數字音頻接口格式控制,缺省值為0x0043

  Register 8:采樣率控制,缺省為48kHz,對DM642EVM板.缺省值為Ox0002

  Register 9:數字音頻接口激活開關.缺省值為0x0001

  通常情況下需要修改的寄存器包括4號和8號寄存器.即選擇是由mic輸入還是由line in輸入和根據需要選擇采樣率。這2個寄存器的詳細配置如下:

  4號寄存器配置見表1,其中,D2位。INSEL(In-put select for ADC)是輸入選擇,“O”為line in;“l”為mic.D1位MICM(Microphone mute)是mic靜音開關.為“l”表示靜音。DO位MICB(Microphone boost)如設置為“1”將為mic輸入提供20dB的增益。8號寄存器配置見表2,其中,采樣率控制位為D5~D2的SR[3:O]。對于DM642 EVM板,設置方式見表3。

基于DDK的TLV320AIC23型編解碼器的驅動設計

可見.需要通過4號寄存器的D2來選擇輸入,同時考慮Dl和DO對mic的控制;采樣率的控制通過設置8號寄存器的SR[3:0]來實現。

  3 TLV320AIC23的驅動配置方法

  很多初學者在運行DM642 EVM的echo或其他音頻例程時,最容易碰到的問題是通過line in輸入時有輸出.而通過mic輸入時沒有輸出,更不要說改變采樣率了。即使參考資料編輯aic23-h和emvdm642_edma_aic23.h修改Dcfauh參數仍然無法解決。

  出現這樣的問題時。首先要了解TLV320AIC23的模擬音頻輸入為mic和line in二選一的,其次要知道如何能夠正確配置TLV320AIC23的參數使之滿足特定應用的需要。如果仔細分析echo例程和其他音頻例程的話,可以發現只有在echo例程中包含了aie23.h和emvdm642_edma_aie23.h 2個頭文件。其實在echo例程中.所包含的這2個頭文件和TLV320AIC23的初始化語句實際并未使用。如果屏蔽掉對這2個頭文件的包含以及TLV320AIC23的初始化語句,會發現編譯后仍然能夠正常運行。實際上echo例程中的TLV320AIC23初始化語句只是提供了對Ⅱ,V320AIC23進行配置的一種方法而并未直接使用。該方法在DDK包的emvdm642部分說明文件中也已提及。

  由于在echo例程中初始化驅動程序人口和其他的音頻例程一樣使用了默認參數,而默認參數是通過調用DDK包中的evmdm642_edma_aic23.164庫獲得的.該庫不變則配置也不變,于是就會出現上述問題。

  在明確了以上原理后.通過實踐證明,本文提供的以下三種配置方法可以適應各種應用。

  方法一

  既然默認參數是通過調用evmdm642_edlna_a-ic23.164庫獲得的.那么自然可以通過修改該庫來達到修改參數的目的。TI提供的DDK包中包含了各種庫的源代碼.這使得修改庫文件成為可能。本文用到的庫生成工程是tiddksrc\audio\evmdm642目錄下的evmdm642_edma_mc23_64.pjt,只需要打開該工程.修改其中aic23.h中的默認參數,重新編譯就能生成新的庫文件。這樣,所有的音頻例程都會默認按修改過的參數運行。

 這種方法適合TLV320AIC23參數配置相對固定的應用場合。配置完全通過調用evmdm642_ed_ma_aic23.164庫初始化時進行.不用在應用工程文件中添加任何附加代碼.使得工程文件更簡潔.可移植性更高。

  方法二

  自定義符合標準結構EVMDM642_EDMA_A.IC23一DevParams的結構體,例如:

基于DDK的TLV320AIC23型編解碼器的驅動設計

  然后將“_myParms”作為Device params ptr在指定人口指針時替代默認的0x0。這就符合TI推薦的方法,在echo例程中的相關代碼也說明了這種方法。

  這種方法能夠適應幾乎任何使用情況,初始化參數自定義非常明確,代碼易讀性較高。但是不建議像echo例程中那樣直接包含默認參數的頭文件.最好參照該頭文件定義自己的結構體。

  方法三

  通過仔細分析生成evmdm642_edma_aic23.164庫的源代碼,可以發現對TLV320AIC23寄存器的設置是通過AIC23_setParams()函數來完成的。在大多數情況下,只要修改寄存器值而不必修改標準結構EVMDM642_EDMA_AIC23_DevParams結構體中的其他變量。所以可以調用AIC23_setParams()函數來完成對TLV320AIC23參數的配置。這樣就只需要定義1個符合標準的寄存器數組.將數組名作為參數來調用AIC23_setParamsf()函數就可以達到目的。

  這種方法使用靈活,代碼長度很短,含義非常明確,可以用不同參數多次調用.尤其適用于TLV320AIC23參數可變的特殊場合。

  4 結束語

  筆者在實際工作基礎上對TLV320AIC23參數配置提出了3種方法,各有特點且都十分實用。在進行基于DDK的TLV320AIC23驅動程序設計時.可以根據需要方便地選用。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产一区二区三区久久悠悠色av| 美女网站久久| 亚洲精品国产精品乱码不99按摩| 黑人极品videos精品欧美裸| 亚洲第一精品福利| 欧美成人69av| 欧美性淫爽ww久久久久无| 免费久久99精品国产自| 亚洲网站在线| 欧美激情中文字幕在线| 中国成人黄色视屏| 麻豆精品在线视频| 国产日韩在线视频| 亚洲国语精品自产拍在线观看| 亚洲精品综合精品自拍| 欧美一区二区在线免费播放| 国产一区二区电影在线观看| 欧美成人三级在线| 一区二区在线观看av| 亚洲免费观看高清完整版在线观看| 国产精品久久久久一区二区| 欧美va亚洲va香蕉在线| 亚洲高清久久网| 在线观看视频一区二区| 国产精品丝袜91| 亚洲视频观看| 亚洲六月丁香色婷婷综合久久| 性做久久久久久久免费看| 亚洲一区二区精品在线| 黑人极品videos精品欧美裸| 国产精品无人区| 国产日韩欧美在线一区| 国产精品美女诱惑| 性高湖久久久久久久久| 一区电影在线观看| 国产亚洲精品aa午夜观看| 亚洲激情婷婷| 老巨人导航500精品| 欧美裸体一区二区三区| 日韩午夜剧场| 亚洲精品欧美日韩| 麻豆精品精品国产自在97香蕉| 欧美在线视频免费播放| 国产欧美日本| 亚洲欧洲精品成人久久奇米网| 国产欧美一区二区三区在线看蜜臀| 国产欧美日韩一级| 欧美日韩精品二区第二页| 午夜宅男久久久| 激情欧美国产欧美| 欧美日韩综合不卡| 国产一区二区精品久久| 红桃视频国产一区| 国产精品久久久久毛片大屁完整版| 免费人成精品欧美精品| 国产午夜精品在线观看| 久久精品国产亚洲高清剧情介绍| 鲁大师影院一区二区三区| 国产精品嫩草99av在线| 久久在线观看视频| 亚洲福利国产| 亚洲欧美日韩国产综合在线| 欧美日韩a区| 欧美日韩国产成人在线| 欧美国产综合视频| 国产精品亚洲网站| 亚洲美女诱惑| 亚洲一区美女视频在线观看免费| 欧美不卡一卡二卡免费版| 亚洲男同1069视频| 国产精品视频精品| 久久视频在线视频| 欧美午夜国产| 亚洲神马久久| 欧美 日韩 国产在线| 在线观看视频免费一区二区三区| 亚洲深夜激情| 夜夜嗨av一区二区三区网页| 在线观看91久久久久久| 欧美一区中文字幕| 欧美理论电影在线观看| 亚洲特级片在线| 久久精品国产第一区二区三区最新章节| 亚洲国产高清在线| 久久综合电影| 久久综合狠狠综合久久激情| 在线观看中文字幕亚洲| 久久综合九色欧美综合狠狠| 欧美在线不卡| 国产亚洲一二三区| 欧美巨乳在线观看| 中文精品99久久国产香蕉| 妖精成人www高清在线观看| 国产欧美高清| 国产精品久久久久久久久久三级| 亚洲黄色精品| 欧美黄免费看| 午夜精品99久久免费| 国产日韩欧美另类| 亚洲社区在线观看| 国内精品写真在线观看| 亚洲国产另类 国产精品国产免费| 欧美大片第1页| 亚洲美女精品久久| 国产日韩一级二级三级| 欧美大片在线观看一区二区| 中文日韩欧美| 国产色产综合产在线视频| 国产精品yjizz| 国产精品美女www爽爽爽| 欧美一级二级三级蜜桃| 久久精品中文字幕免费mv| 99国产精品久久久久久久成人热| 欧美午夜在线一二页| 国产精品国产三级国产aⅴ无密码| 欧美日韩一区二区三区| 欧美亚州韩日在线看免费版国语版| 欧美日韩免费观看一区=区三区| 亚洲午夜激情| 一区二区视频免费在线观看| 国产日韩精品一区观看| 亚洲国产你懂的| 狠狠色噜噜狠狠狠狠色吗综合| 午夜一区不卡| 亚洲电影在线免费观看| 久久精品中文| 亚洲欧美日韩中文在线制服| 亚洲人成在线观看网站高清| 欧美日韩成人免费| 亚洲理论在线观看| 久久综合婷婷| 欧美日韩精品一区二区天天拍小说| 欧美日本在线视频| 欧美人与性动交α欧美精品济南到| 国产精品美女www爽爽爽| 欧美日韩中国免费专区在线看| 欧美wwwwww| 欧美日韩第一区日日骚| 亚洲欧洲综合| 影音先锋中文字幕一区二区| 欧美日本精品在线| 国产精品久久国产三级国电话系列| 久久人人爽人人爽| 欧美一级视频一区二区| 国内精品久久久久久久97牛牛| 久色婷婷小香蕉久久| 亚洲一级在线观看| 亚洲日本成人女熟在线观看| 在线播放日韩专区| 一本久久综合亚洲鲁鲁| 国产日韩综合一区二区性色av| 亚洲人成在线影院| 亚洲人成网站影音先锋播放| 噜噜噜噜噜久久久久久91| 亚洲六月丁香色婷婷综合久久| 亚洲国产视频一区二区| 国产日韩精品在线观看| 欧美精品一区在线观看| 久久久蜜桃一区二区人| 另类综合日韩欧美亚洲| 欧美精品一区二区久久婷婷| 亚洲精品在线免费| 免费短视频成人日韩| 一色屋精品视频在线观看网站| 国产精品久久77777| 一区二区三区在线观看国产| 1769国内精品视频在线播放| 欧美性猛片xxxx免费看久爱| 国产亚洲精品久久久久婷婷瑜伽| 久久精品系列| 正在播放亚洲一区| 欧美日韩在线电影| 亚洲激情在线观看| 亚洲国产欧美在线| 国内精品嫩模av私拍在线观看| 欧美日韩视频一区二区| 国产一区二区高清视频| 黑丝一区二区| 欧美福利视频在线| 久久xxxx精品视频| 欧美顶级少妇做爰| 国产精品美女| **欧美日韩vr在线| 韩日精品中文字幕| 亚洲国产高清高潮精品美女| 国产精品视频在线观看| 欧美精品一区二区在线观看| 日韩一级免费观看| 好看的av在线不卡观看| 国产麻豆综合| 在线成人激情黄色| 亚洲国产天堂网精品网站| 欧美成年人网站| 在线看成人片| 亚洲国产欧美日韩| 久久婷婷综合激情| 一区二区三区四区五区精品视频| 亚洲自啪免费| 蜜月aⅴ免费一区二区三区| 久久午夜色播影院免费高清| 一区二区三区欧美在线| 亚洲视频播放| 一本色道久久综合亚洲精品按摩| 亚洲精品国精品久久99热| 欧美在线中文字幕| 国产一区二区三区自拍| 久久综合久久综合久久综合| 久久久无码精品亚洲日韩按摩| 欧美日韩视频在线观看一区二区三区| 老司机免费视频一区二区三区| 国产综合亚洲精品一区二| 伊人久久男人天堂| 日韩午夜av在线| 日韩视频一区二区三区在线播放| 国产精品亚洲不卡a| 久热精品视频在线观看| 欧美午夜精品一区二区三区| 亚洲国产精品传媒在线观看| 国产精品国产a级| 欧美精品九九99久久| 国产精品久久久久久久久久直播| 欧美激情第五页| 久久精品一级爱片| 一本色道久久综合亚洲精品小说| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲自拍三区| 久久在精品线影院精品国产| 影院欧美亚洲| 99www免费人成精品| 亚洲视频电影在线| 亚洲视频 欧洲视频| 欧美日韩精品免费观看视一区二区| 免费的成人av| 亚洲精品中文在线| 久久―日本道色综合久久| 久久精品动漫| 亚洲一区二区在| 在线不卡中文字幕| 午夜精品久久久久久久99樱桃| 亚洲综合清纯丝袜自拍| 激情欧美国产欧美| 日韩一区二区精品在线观看| 欧美激情欧美狂野欧美精品| 久久久噜噜噜久久| 99视频在线观看一区三区| 欧美中文字幕在线播放| 亚洲第一中文字幕在线观看| 国产综合激情| 欧美日本精品一区二区三区| 亚洲图片在线| 亚洲夜晚福利在线观看| 美女视频一区免费观看| 久久国产视频网站| 激情文学一区| 欧美成人精精品一区二区频| 亚洲国产成人久久综合| 国内激情久久| 精品1区2区3区4区| 狠狠久久五月精品中文字幕| 有坂深雪在线一区| 欧美日韩亚洲不卡| 亚洲一区二区伦理| 欧美三级在线播放| 久久久99国产精品免费| 亚洲高清资源| 欧美在线视频一区二区三区| 午夜精品久久久久久久蜜桃app| 国产欧美日韩视频一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲电影专区| 亚洲国产天堂网精品网站| 伊人精品视频| 性做久久久久久| 国产精品午夜国产小视频| 一区二区三区产品免费精品久久75| 日韩一级视频免费观看在线| 久久人人97超碰人人澡爱香蕉| 久久蜜桃资源一区二区老牛| 亚洲电影专区| 国产精品另类一区| 亚洲视频免费观看| 欧美成人中文字幕在线| 亚洲精品资源| 欧美国产日韩一区| 欧美黄色成人网| 99精品欧美一区二区蜜桃免费| 91久久极品少妇xxxxⅹ软件| 国产一区久久| 欧美一区二区三区四区在线| 亚洲破处大片| 欧美一区二区三区另类| 久久综合伊人77777蜜臀| 国产欧美精品一区aⅴ影院| 欧美一级二区| 欧美一区二区在线播放| 欧美va亚洲va国产综合| 欧美与欧洲交xxxx免费观看| 亚洲一区二区毛片| 久久精品国产免费观看| 欧美高清不卡在线| 欧美日韩在线不卡一区| 免费久久99精品国产| 91久久香蕉国产日韩欧美9色| 国产综合久久| 欧美日韩天堂| 亚洲片国产一区一级在线观看| av成人黄色| 久久久激情视频| 欧美亚洲免费高清在线观看| 午夜精品久久久久久久99热浪潮| 国产资源精品在线观看| 欧美视频免费在线| 亚洲激情另类| 在线播放日韩欧美| 国产欧美日韩精品专区| 99re6热在线精品视频播放速度| 久久综合伊人77777蜜臀| 欧美日韩ab片| 国内伊人久久久久久网站视频| 在线视频国内自拍亚洲视频| 亚洲一区二区三区视频| 亚洲第一区在线| 欧美三级午夜理伦三级中文幕| 影音先锋亚洲视频| 在线视频免费在线观看一区二区| 久久一区精品| 亚洲第一中文字幕在线观看| 久久se精品一区二区|