導航:首頁 > 編程語言 > tlv320aic33編程實例

tlv320aic33編程實例

發布時間:2022-11-01 16:09:47

『壹』 TVL320AIC33IZQE是個什麼晶元原理是什麼

是不是弄反了,TLV320AIC33IZQE 是立體聲音頻編解碼器。

『貳』 TLV320AIC14K工作原理

建議直接去德州儀器的網站下這款IC的晶元資料

結合你的應用向TI的技術支持問詢,或去電源網等相關的專業論壇和大家一起討論會更快的熟悉

『叄』 tlv320aic23b 使用i2c模式的晶元地址是7bits,請問晶元地址具體是多少,第八位是補在最高位還是最低位

最低位表示是讀還是寫,所以7位地址可以左移一位,讀寫信號補在最低位,調試這個晶元可以買個I2C適配器來調試,可以很方便的讀取或寫入相關數據,推薦緯圖虛擬儀器有限公司的Ginkgo I2C適配器,我用過,感覺還不錯!

『肆』 tlv320aic23可不可以採集兩路語音信號

你好!
不能同時採集兩路語音信號,只能分別進行模擬信號的編輯!

TLV320AIC23是TI公司推出的一款高性能立體聲音頻編解碼器,內置耳機輸出放大器,支持mic和line in二選一的輸入方式。輸入和輸出都具有可編程的增益調節功能。

『伍』 TLV320AIC23的應用

TLV320AIC23的應用:
基於DDK的TLV320AIC23型編解碼器的驅動設計
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結合使用。
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
在一般應用中。上述結構體的大多數參數無需更改,需要修改的主要是aie23Config.它是TLV320AIC23控制寄存器值.需要通過它來控制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。
可見.需要通過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包中包含了各種庫的源代碼.這使得修改庫文件成為可能。本文用到的庫生成工程是tiddksrcaudioevmdm642目錄下的evmdm642_edma_mc23_64.pjt,只需要打開該工程.修改其中aic23.h中的默認參數,重新編譯就能生成新的庫文件。這樣,所有的音頻常式都會默認按修改過的參數運行。
這種方法適合TLV320AIC23參數配置相對固定的應用場合。配置完全通過調用evmdm642_ed_ma_aic23.164庫初始化時進行.不用在應用工程文件中添加任何附加代碼.使得工程文件更簡潔.可移植性更高。
方法二
自定義符合標准結構EVMDM642_EDMA_A.IC23一DevParams的結構體,例如:
然後將「_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參數可變的特殊場合。
在實際工作基礎上對TLV320AIC23參數配置提出了3種方法,各有特點且都十分實用。在進行基於DDK的TLV320AIC23驅動程序設計時.可以根據需要方便地選用。

『陸』 如何使用tlv320aic3104來播放音頻

不能同時採集兩路語音信號,只能分別進行模擬信號的編輯! TLV320AIC23是TI公司推出的一款高性能立體聲音頻編解碼器,內置耳機輸出放大器,支持mic和line in二選一的輸入方式。輸入和輸出都具有可編程的增益調節功能。

『柒』 如何在ARM linux上使用FDT和initrd

這文章算是最近工作的備忘。
FDT是ARM
Linux最新的設備驅動程序信息表,使用FDT的內核,就不用像過去的內核那樣,一個板子加一個mach的C文件,所有的設備信息可以記錄在一個樹狀信息文件裡面。

目前這方面資料比較少,我以AM335x處理器為例概括一下FDT的使用:

FDT僅僅是一個信息的目錄和參數表,要使用某個功能內核中還必須有相應的驅動程序代碼
FDT的源文件位置在:arch/arm/boot/dts,例如,TI的Beagle bone black,源文件是arch/arm/boot/dts/am335x_boneblack.dts
FDT在make ARCH=arm的時候就會自動生成,也可用make ARCH=arm
dtbs來生成,例如TI的Beagle bone black生成的文件是arch/arm/boot/dts/am335x_boneblack.dtb,這是一個二進制文件
要想新增你自定義的FDT,請修改arch/arm/boot/dts/Makefile,並在相應的Kconfig中增加config選項,例如,TI的Beagle
bone black,Kconfig的位置在arch/arm/mach-omap2/Kconfig
FDT的dtb文件由u-boot傳遞給內核,u-boot必須把這個文件拷貝到內核解壓地址之後的某個位置,確保內核解壓的時候不會覆蓋,然後使用「bootm
[內核地址] - [dtb地址]」來啟動內核
如果dtb文件不正確,對於3.10以上的內核,可能什麼顯示都沒有,3.8內核,可能就顯示到Uncompressing kernel......done
FDT的編寫規則說明在Documentation/devicetree/bindings,不同的設備有相應的txt文件說明,其中的「compatible」可以作為關鍵字搜索驅動程序的源文件,例如,AM335x的GPIO,用「ti,omap4-gpio」為關鍵字,可以找到其代碼位於drivers/gpio/gpio-omap.c
FDT可以包含子文件,比如am335x_boneblack.dts就包含了am33xx.dtsi,am335x-bone-common.dtsi

以一個例子來說明編寫規則,我的板子上,I2C0上掛了一個音頻CODEC,其地址是0x18,型號是TLV320AIC3104IRHBT。

先找到i2c0節點的位置,這在arch/arm/boot/dts/am33xx.dtsi中:
i2c0: i2c@44e0b000
{
compatible =
"ti,omap4-i2c";
#address-cells =
<1>;
#size-cells =
<0>;
ti,hwmods =
"i2c1";
reg = <0x44e0b000
0x1000>;
interrupts =
<70>;
status =
"disabled";
};

要在這個節點上掛東西,可以直接在am33xx.dtsi中掛,可以寫成這樣:

i2c0: i2c@44e0b000
{
compatible =
"ti,omap4-i2c";
#address-cells =
<1>;
#size-cells =
<0>;
ti,hwmods =
"i2c1";
reg = <0x44e0b000
0x1000>;
interrupts =
<70>;
status =
"okay";

tlv320aic3x: tlv320aic3x@18 {

compatible = "ti,tlv320aic3x";

reg = <0x18>;

status = "okay";

AVDD-supply = <&ldo4_reg>;

IOVDD-supply = <&ldo4_reg>;

DRVDD-supply = <&ldo4_reg>;

DVDD-supply = <&ldo4_reg>;

};
};

其中compatible字串「ti,tlv320aic3x」是在Documentation/devicetree/bindings裡面全文搜索「tlv320aic」獲得的,「tlv320aic3x:
tlv320aic3x@18」遵循的是「標識符:名稱@地址」的格式,前面的「i2c0:
i2c@44e0b000」也是這個格式。這里的標識符可以在包含這個文件的文件或這個文件的其他位置引用,因此,可以使用arch/arm/boot/dts/am335x-boneblack.dts包含arch/arm/boot/dts/am33xx.dtsi,然後在am335x-boneblack.dts里寫:

&i2c0 {

status = "okay";

tlv320aic3x: tlv320aic3x@18 {

compatible = "ti,tlv320aic3x";

reg = <0x18>;

status = "okay";

AVDD-supply = <&ldo4_reg>;

IOVDD-supply = <&ldo4_reg>;

DRVDD-supply = <&ldo4_reg>;

DVDD-supply = <&ldo4_reg>;

};

};

&i2c0表示引用了i2c0這個標識符,然後把括弧里的內容掛載到標識符下,如果屬性的名字相同,例如status出現兩次,前面是「disabled」後面是「okay」,以後面的為准,引用標識符的次數不受限制。

也許一開始會覺得FDT的工作過程很神秘,但你只要用compatible的字串去全文搜索一下C文件,然後仔細閱讀一下,就會發現很簡單,沒過幾分鍾你就可以自定義FDT節點的屬性了。反倒是這些操作過程我沒找到什麼文檔說,比較頭痛,所以我把這些寫出來,希望能給大家幫助。

下面說說initrd,initrd的用處是給內核一個初始的基本文件系統,用來載入內核模塊之類的東西。很多人覺得嵌入式系統不需要initrd,也可以把initrd作為最終的根文件系統。我用initrd是用來校驗真正的根文件系統,因為在嵌入式設備上,無法預測用戶到底什麼時候關機,可能會造成文件系統問題。

initrd可以用buildroot,像製作正常文件系統一樣做,最後把根下的linuxrc換成一個例如下面這樣的文件:

#!/bin/sh

/bin/echo Now Check SD Card

/sbin/fsck.ext4 /dev/mmcblk0p5

雖然Documentation/initrd.txt裡面說,內核會執行initrd裡面的/sbin/init,但在我用的linux-3.8.13上,init/do_mounts_initrd.c裡面,執行的是/linuxrc,不知道是不是文檔沒有更新過來。具體的調用順序是,kernel_init(init/main.c)
> kernel_init_freeable(init/main.c)
> prepare_namespace(init/do_mounts.c)
> initrd_load(init/do_mounts_initrd.c) > handle_initrd
(init/do_mounts_initrd.c)。

在使用initrd的時候有幾點需要注意的:

不建議在initrd上掛載別的東西,會引起未知的問題,貌似看到個文章說這個,找不到了
因為上面的這條,而且在initrd的時候,內核還沒有掛載devtmpfs,因此建議使用靜態設備節點,以AM335x為例(內核參數console=/dev/ttyO0,115200n8),必須的節點有:

/dev/null

/dev/console

/dev/ttyO0

這些節點可以用fakeroot之後mknod在buildroot的output/target/dev里創建,除了/dev/console,buildroot會自己創建,其他也可以寫到buildroot的system/device_table.txt裡面讓buildroot自動創建:

#

/dev/null
c 666 0 0
1 3
-
-
-

/dev/ttyO0 c 600
0 0 250
0
-
-
-

如果你用的是Atmel的處理器,上面的ttyO0可能是ttyS0,如果是三星的,可能是ttySAC0,而且major和minor也會不一樣,請自行解決。如果你像我一樣要檢驗SD卡,那就還必須加上SD卡的分區對應的節點。

/linuxrc可以是個程序也可以是個腳本,腳本的話,命令寫絕對路徑,而且記得把/linuxrc的mode改為755

使用initrd只需要用u-boot把buildroot製作的文件系統映像拷貝到內存里,然後傳遞initrd=[地址],[容量]這樣的參數給內核,例如initrd=0x81300000,8M,最終的root參數可以不變,例如root=/dev/mmcblk0p5,這表示最終的root是SD卡上擴展分區中的第一個邏輯分區。給兩個內核參數的例子:

console=ttyO0,115200n8 root=/dev/mmcblk0p5 initrd=0x81300000,8M vram=16M
consoleblank=0
console=ttyO0,115200n8 initrd=0x81300000,8M root=/dev/nfs rw
nfsroot=192.168.5.226:/home/c/nfsroot
ip=192.168.5.222:192.168.5.226:192.168.5.1:255.255.255.0:core335x:eth0:off
vram=16M consoleblank=0

第一個不解釋了,第二個表示使用initrd,同時使用nfsroot。

最後啰嗦一句,使用initrd需要在內核配置里打開支持,這個網上的資料太多了,我就不說在哪裡了。

『捌』 怎麼驗證linux tlv320aic3104 驅動代碼

你好,Linux的驅動都是集成在內核里的
一般情況下 只需要 另外 安裝顯卡驅動就好了
如果 你的Linux能夠正常使用 就證明 你的硬體是被支持的
建議樓主 去你用發行版本的Linux官方網站上 查看 硬體是否支持
另外 在自己 安裝 顯卡驅動就好了

『玖』 請教關於TLV320AIC3101使用中的一些問題

mp4目前,還有許多消費者對MP4的認識比較模糊,就簡單認為MP4,就是MP3的下一代,能夠播放MPEG-4的播放器, 後來,隨著知識的積累,才有比較系統的認識。關於MP4的准確概念,一言難盡,因為無論是從MP4的品牌、市場、產品規格、配置標准等各方面來說,都可以用一個字來形容——「亂」。不知是炒作還是趨勢 ,在現在商家眼裡,只要能視頻沾一邊的播放器,統統都叫MP4,這種說法簡單直觀,似乎和筆者當初模糊的認識基本一致。

關於MP4的概念眾說紛紜,下圖是筆者集百家之言,總結出來的關於MP4概念的認識,MP4既「軟」,又「硬」,紛繁復雜。

音頻MP4格式:AAC

MP4最初是一種,音頻格式,和MPEG-4沒有太大的關系,就像MP3和MPEG-3沒有關系一樣。MP3是MPEG-1 Audio Layer 3 的縮寫;而MP4是MPEG-2 AAC,完完全全是一種音頻壓縮格式, 增加了諸如對立體聲的完美再現、多媒體控制、降噪等新特性,最重要的是,MP4通過特殊的技術實現數碼版權保護,這是MP3所無法比擬的。

視頻MP4格式:MPEG-4

現在市面上的MP4多數偏向於多媒體播放器,能夠播放AAC的,可以說是鳳毛麟角。甚至有媒體把MP4說成是MPEG4的縮寫,這在以前看來是一個謬論,但是經過商家不斷的炒作,這個謬論也就成為了真理。現在若果你去電腦城聽到MP4這個詞,絕對是能播放視頻格式的多媒體播放器的概念,而不是能播放音頻MP4 AAC的隨身聽。出現這種怪現象不是毫無原因的,上面已提到AAC有版權保護功能,這也是眾多唱片公司支持AAC的原因,要使自己的播放器支持AAC,還得支持付一定的版權費或專利費,另外,AAC的來源也是個問題,不像MP3那麼開放,網上來源極少,所以目前音頻MP4播放器發展尚不成熟,鑒於以上現狀,眾商家乾脆「借屍還魂」,把MP4等同MPEG-4縮寫而論,這樣也恰好應了MP4是MP3的下一代這條規律,除了支持MP3所具有的音樂播放功能外,還具備強大的MPEG-4視頻播放能力,另外,恰好「4」在「3」後,從這點出發,把MP4等同MPEG-4是合理的。

能播放視頻的MP3

這種播放器其實不算是MP4,本質上是MP3,視頻播放只不過是其附件功能,被稱作MP4,純粹是商業炒作。這種播放器局限性極大屏幕很小(0.8~1.8英寸),快閃記憶體容量小,支持特定的格式(MTV、MP4、MPV和DMV等),而且大多數是採用OLED和CSTN等低端屏幕,所以准確地說,這只能稱作可播放視頻的MP3罷了。代表有:DEC F12R、金邦炫彩王、3E E1000和PISA 炫彩飛艇等。

硬碟式MP4

這類MP4是現階段發展的主流,產品數量也占絕對的優勢,對於硬碟MP4的概念,簡單來說就是以硬碟作媒介的隨身看。大肚能容天下,有了硬碟再也不用擔心不夠空間了。硬碟MP4一般來說還集成其它很多功能,例如, 數碼相機、攝像機、錄音筆、數碼伴侶...... 本次橫評有11款是硬碟MP4。

快閃記憶體式MP4

對比硬碟式MP4,快閃記憶體式MP4就是以快閃記憶體來作存儲媒介的隨身看,這種MP4一般都支持內接快閃記憶體卡擴充,一般都是SD卡。這次橫評有兩款是這類型MP4,分別是Govideo PMP-120 和 JXD-680。快閃記憶體式MP4相對小巧輕便得多,價格便宜幾倍。

沒有顯示屏的MP4

有些廠商認為MP4的3.5英寸屏幕太小,播放高質量的視頻顯得寒暄,另外對於快閃記憶體式MP4的128~256M,也令人不能欣賞大片,因此這些廠商設計出一種沒有屏幕的硬碟MP4,這種MP4可以通過AV-OUT等輸出端輸出到電視等屏幕,並且採用的是2.5英寸硬碟,體積上偏大,但是對於這種不強調移動性的MP4來說,體積上比傳統的DVD機要小巧不少,市面上僅有寥寥可數的幾款,這種MP4帶有幾十吉的容量,但售價和快閃記憶體式MP4相若。例如, 博可視MP4 。

關於MP4的各種稱呼

雖然MP4這個概念有軟硬之分,但是就硬體的MP4來說,根據所採用的設計標准不一樣或是功能的側重點相異又有不同的名字,例如,MP4,PMP,PMC,PVP,PVR,PMA等。

MP4

一個籠統而沒有統一定義的概念,這里說的是硬體MP4的概念,MP4可以是隨身看,可以是MP3的下一代,可以是所有的PMP,PMC,PVP,PVR......諸多如此的播放器的總稱。

PMP( Portable Media Player)

沒有統一的標准,而是完全按照廠商自己的要求生產,如iRiver PMP-120,PMP-120的軟體系統基於Linux,PMP的系統一般都是Linux開發的,沒有固定的軟體和硬體要求,可以任意組合,但這也是造成MP4產品多樣化的原因。另外,PMP的格式兼容性和解碼能力跟硬體有關,所以升級比較難。

PMC( Portable Media Center)

該平台的硬體和軟體都由微軟統一規定,硬體方面指定用Intel的XScale處理器,而軟體系統是Windows Portable Media Player,這個平台屬於開放式構架,軟體方面容易擴展。PMC是微軟為進軍移動娛樂數碼領域而制定的新標准。例如,YH-999,完完全全符合PMC的標准。

PVR( Personal Video Recorder )

PVR的功能側重點是視頻錄像,可以說PVR具有強大的視頻錄像功能,PVR一般都帶有AV-IN/AV-OUT或錄像功能。例如,拍得麗iTouch,Mustek PVR-H140。

PVP(Personal Video Player)

和PMP差不多的概念。

PMA( Pocket Media Assistant)

簡單地說就是PDA與硬碟MP4的合體,是比較新潮的數碼產品,Archos PMA 4XX系列,是全球首款也是現今唯一一款集個人娛樂,商務應用和無線上網於一體的PMA。

2.MP4的硬體構架

MP4的「芯」臟

從原理上說,MP4與MP3區別不大,但是從硬體性能來說,兩者相差甚遠,主要是因為視頻播放功能,Divx和Xvid等MPEG-4的播放,要求中央處理器和DSP較高的處理能力,而且要有一定的系統內存,Divx編碼器問世之初,編碼器開發者就使用主頻為400MHz以上的計算機來完成解碼,可見MP4要求晶元具有很高的計算性能,很多MP4華麗的操作界面也會消耗不少的系統資源,MP4不僅僅是視頻數據和圖像數據的處理器,現在的MP4還是很多數碼功能和多媒體功能的統一體,要實現形形式式的功能,例如,數碼伴侶,視頻採集,DC,FM,Game......甚至有些MP4還支持多線工作。所以MP4的晶元不僅要求具有很高的計算能力,還要集成多方面的功能。

由於MP4核心晶元的製作,工藝水平要求過高,所以一般的MP4廠商都無能為力,這些核心一般由有傳統晶元大家製作,如Intel,TI,Sigma Designs等,甚至AMD也推出了MP4專用處理晶元—— AU1200。現階段MP4主要採用的都是TI的方案和Wintel的完整軟硬體方案。其中,TI(Texas Instruments)是移動娛樂設備的晶元巨頭,而Intel台式平台的晶元巨頭,由於TI起步早,所以現在大多是MP4都是採用TI的晶元方案佔領絕大部分的市場份額。雖然硬體有一定的規范,但是軟體系統沒有一個統一的標准,而是格商家自己進行開發(多數是Linux),這也是「造亂」的一個很大的原因。現在絕大部分廠商都是採用TI的方案,主要的有愛可視、以及歐美和日系數碼廠商的sony、東芝。

而Wintel強強聯盟,推出PMC新標准,中央處理器採用Intel的XScale系列,軟體系統是微軟的Windows Portable Media Center系統,軟體和硬體都具有統一的標准,充分體現微軟進軍便攜媒體市場,雄心勃勃,由於系統Windows Portable Media Center,整體架構為開放式,所以可以在操作系統的基礎上自行擴展應用軟體。Wintel的反感,統一了業界的標准,某種程度上為MP4的發展點明了方向。目前該方案的支持這主要有iRiver、微星、三星和創新等。

TMS320DM270晶元:

TMS320DM270內部結構:

由TMS320DM270的核心,可以看出該晶元是一款功能極強大的晶元,主要由ARM(80MHz)、C54xDSP(90MHZ)和iMX(180MHz)三核心組成,其中ARM7 RISC 微處理器主要負責外部介面的管理, C54X DSP數字信號處理器負責音頻方面的各種處理,而iMX引擎處理視頻數據和圖像數據。另外,集成的各種功能模塊和控制器使其還具有其它強大的功能,如照相,讀卡器,錄音,AV-IN/AV-OUT等。

TI關於MP4系統方案:

TI的tms320dm270方案是MP4目前最先進解決方案之一,具有畫質好和視頻格式兼容性好的特證,本次橫評大多數MP4都是採用該方案。MP4內部核心架構大多數都是採用中央處理器配合DSP協調工作的方式,一般中央處理器和DSP是集成在一起的。DSP(Digit Signal Processor)主要負責視頻解碼和編碼;而中央處理器主要是處理檔案管理、存取,以及使用介面、周邊組件的掌控等事務。另外,某些功能模塊還要增加特殊的晶元,例如DC控制模塊和顯示控制模塊等。

從上圖看,該方案主要由音頻處理、視頻顯示、存取管理、電源管理、視頻採集和TMS320DM270等幾部分組成。

音頻處理

音頻處理方面,TI主要採用自家開發的TLV320AIC23B編碼器,它一款高性能低功耗的立體聲音頻Codec晶元,內置耳機輸出放大器,支持MIC和LINE IN兩種輸入方式,輸入/輸出都具有可編程增益調節。AIC23內部集成了模數轉換(ADC)和數模轉換(DAC)電路,輸出信噪比可分別達到90dB和100dB,可在8K~96K的頻率范圍內提供16/20/24/32位的采樣。 音質較為純正,保真度高,高音響亮,低音實凈。本次橫評的MSI MEGAWVIEW 561就是採用這種音頻解碼晶元。

視頻顯示

視頻顯示即可以是通過NTSC或PAL制式往外部輸出,也可以是輸出到自帶的液晶屏幕,現在MP4採用的屏幕主要有:CSTN、TFT和LPTS等液晶屏,關於這三種屏幕的特性與效果方面的知識,請參考太平洋較早前的文章: 《掃盲運動 攜帶型媒體播放器MP4全面釋疑》。

存取管理

目前主流的硬碟MP4採用的都是來自HITACHI、FUJITSU及TOSHIBA的1.8英寸的為硬碟,偶爾也有採用2.5英寸筆記本硬碟的;而為了節約成本,市面上也有採用小容量和縮小體積快閃記憶體的MP4,不過對於MP4來說採用快閃記憶體作為介質,從目前的技術背景和市場價格來看,雖然快閃記憶體具有硬碟無從攀比的優點(穩定,能耗低,防震性好),但是快閃記憶體還不是正道。自HITACHI上一年發布的0.8英寸的微硬碟以來,給處於尷尬局面的MP4帶來了新希望。

電源管理

關於電源的問題,正如片源一樣,一直都是MP4的死穴,一般的硬碟MP4僅能支持一部大片時間的視頻播放續航,這是絕對不夠的,特別是對於內置鋰電池的MP4,這是極不方便的,因為電池續航力太短等於失去了隨身看的意義。不過,這次從接評的10多款MP4種看到了電池問題的新希望,有MP4用可拆御的鋰電池,有用AA干電池,更令人欣喜的就是有當中有可以連續播放視頻8小時和11小時的。想知誰是誰非,請看下文。

微軟PMC採用的核心——Intel XScale PXA255

PXA255的內部構成

3.關於MPEG-4編碼與格式

MP4播放器所支持的編碼格式可以說是「亂中之亂」,除了PMC,由於硬體平台的沒有統一的標准,軟體系統也是由廠商自行設計,這是造成MP4播放器的解碼兼容性和解碼穩定性參差不齊的根本原因;另外,由MPEG-4編碼體系洐生出來的格式很多,除PMC之外的MP4,解碼兼容性和硬體有關,這就大大增加了解碼的難度,視頻格式本來就多例如AVI,ASF,MPG,WMV,再加上編碼演算法也多:MPEG-1,MPEG-2,MPEG-4,而大多MP4播放器所支持的MPEG-4編碼,又有多種衍生的編碼演算法:DivX、XviD、H.263、 MS MPEG-4 3688 、 Microsoft Video1 、Microsoft RLE......

流媒體格式當中,微軟所開發的ASF和WMV都是採用MPEG-4編碼的,部分MP4支持ASF或WMV這兩種流媒體格式,而RM和RMVB,這兩種網路上流傳極為廣泛的流媒體格式,居然沒有一款MP4能夠支持。而mpg格式既可以是MPEG-1和MPEG-2編碼又可以是MPEG-4編碼。

另外需要注意的就是,MPEG-4並沒有確定必須用什麼擴展名,它只是一種編碼方法而已,使用avi作為擴展名,是一種習慣性的沿用,這和標準的AVI是有所區別的。現在主流的MP4一般都支持DivX或Xvid編碼的avi格式,但是其它很多編碼的avi就不一定支持了。最後一提,格式兼容性還跟視頻格式的解析度,zhen率和比特率有關,一個支持DivX的MP4播放器,卻播放不了DivX的avi,很可能跟前面的三個因素有關。

『拾』 大家來幫我選一下器件

精密運算放大器opa727 , opa365
高速運算放大器opa843 , opa355
完全差分放大器ths4520
差分放大器ina159
儀表放大器ina217 , ina331
比較tlv3501
可編程增益放大器pga202
電壓控制放大器vca822
∑ - Δ ADC的ads1255 ( 24位)
特區藝發局ads7886 ( 12位) , ads7888 ( 8位)
流水線模數轉換器ads830 ( 8位)
輸出電壓發援tlv5636 ( 12位) , tlv5624 ( 8位)
電流輸出發援dac902 ( 12位) , dac908 ( 8位)
音頻編解碼器tlv320aic23b ( 24位)
雙輸出的DSP / FPGA的tps70302
直流/直流轉換器(集成開關) tps5430 , tps54310 , tps61045
直流/直流控制器(外部開關) tps40200
電壓參考lm4041c , ref3012 , ref3020 , ref3025 , ref3030 , ref3033 , ref3040
模擬開關ts5a23166

閱讀全文

與tlv320aic33編程實例相關的資料

熱點內容
我的世界國際服為什麼登不進伺服器 瀏覽:994
微盟程序員老婆 瀏覽:928
intellij創建java 瀏覽:110
java連接odbc 瀏覽:38
啟動修復無法修復電腦命令提示符 瀏覽:359
手機編程是什麼 瀏覽:97
山東移動程序員 瀏覽:163
蘇州java程序員培訓學校 瀏覽:476
單片機液晶驅動 瀏覽:854
魔拆app里能拆到什麼 瀏覽:130
新預演算法的立法理念 瀏覽:144
wdcpphp的路徑 瀏覽:134
單片機p0口電阻 瀏覽:926
瀏覽器中調簡訊文件夾 瀏覽:594
五菱宏光空調壓縮機 瀏覽:68
為什麼app佔用幾百兆 瀏覽:680
自動解壓失敗叫我聯系客服 瀏覽:484
易語言新手源碼 瀏覽:457
oa伺服器必須有固定ip地址 瀏覽:45
傳奇源碼分析是什麼 瀏覽:270