看板 Headphone 關於我們 聯絡資訊
全線性電源系統在x86架構下的電腦去實現,有現實上的難處。大抵就是耗電量太高,電 供體積勢必過大,散熱需非常注意。 選用ARM處理器的好處,就是省電,但是效能上就無法跟主流的x86處理器。另一個問題在 於很多USB Audio的裝置並沒有支援Linux的環境,因此使用上就會受限。不過由於智慧型 手機的興起,投入於崁入式系統的資源就變多了,也許廠商也願意投入這部分的驅動開發 也不一定。 最近開始玩起了ARM的開發板,知名的Beagleboard與Beagleboard XM是屬於Cortex-A8的 架構,Ti也把自家的DSP內建,因此可以做很多硬體的加速在訊號處理上。但是進入門檻 有點高,很多與Linux kernel的支援有關。目前尚未玩到這部分。這次用來實驗的版子其 實是Pandaboard ES,這塊使用的CPU是OMAP4460,是Cortex-A9架構的雙核心處理器,實 脈高達1.5G。並搭配1G LPDDR2記憶體。 ARM系統的開機方式與x86有很大的不同,因為沒有BIOS的關係,因此有別於傳統的開機方 式。安裝系統這邊就不詳述了,若有興趣可以私下交流。本次選用Debian的armhf架構的 套件,代號是wheezy,不屬於stable的版本,但好處是支援比較多的硬體。而電源的使用 上更是省事,只要一個5V/2A的變壓器就可以搞定整套系統。 一開始比較克難一點,我們用ALSA (Advanced Linux Sound Architecture) 的命令模式 來播放wav檔案。選用的USB Audio是 TE7022L的方案。首先把aune T1接到pandaboard的 usb。接著kernel就會檢測到有新的usb 裝置,並載入必要的模組。 列出可用的聲音裝置,TE7022L位於裝置2上,等下用aplay去撥放wav檔案時,必須使用這 個id來啟動裝置。 root@pandaes:~# cat /proc/asound/cards 0 [PandaBoardES ]: PandaBoardES - PandaBoardES PandaBoardES 1 [OMAPHDMI ]: OMAPHDMI - OMAPHDMI OMAPHDMI 2 [Audio ]: USB-Audio - DigiHug USB Audio GFEC ASSP DigiHug USB Audio at usb-ehci-omap.0-1.2, full speed 播放檔案也很簡單,使用aplay即可。 -Dhw:2,0代表指定裝置ID=2進行撥放。 aplay -v -Dhw:2,0 ./"Prologue ~ deai.wav" 播放後發現音量實在過低,使用amixer可以進行調整。 首先列出id=2有哪些mixer可調整。 root@pandaes:~# amixer -c 2 contents numid=1,iface=MIXER,name='PCM Playback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=2,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=110,step=0 : values=110,110 | dBminmax-min=-55.00dB,max=0.00dB numid=5,iface=MIXER,name='PCM Capture Source' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Line' ; Item #1 'IEC958 In' : values=0 numid=3,iface=MIXER,name='Line Capture Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=4,iface=MIXER,name='Line Capture Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=104,step=0 : values=0,0 | dBminmax-min=-40.00dB,max=12.00dB 調整音量為100%的指令。 amixer -c 2 cset numid=2 100% 100% 接著再用aplay去撥放即可得到正常的音量。 這樣的過程實在有點煩人,最方便的就是裝上桌面套件,這樣就可以透過GUI介面去撥放 。有如使用windows系統的便利性。 版上有些對x86系統的調整,不外乎就是讓系統單純化,電源全線性化,在ARM系統下,自 由度更高,線性化更為簡單。只不過硬體支援度不夠高,進入門檻高。尤其是要打這麼多 指令,會讓更多人怯步。 接下來會找XMOS的晶片來試試。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.168.214 ※ 編輯: dnaspirit 來自: 59.124.168.214 (01/28 17:14)
odanaga:先推! 01/28 17:25
odanaga:話說這樣是不是PCIE裝置用不了... 01/28 17:26
legendmtg:有沒有編個realtime的kernel XD 01/28 17:26
dnaspirit:之後想跑android,畢竟kernel事差不多的 01/28 17:49
dnaspirit:如果說只拿來放音樂,可以不需要用到debian套件xd 01/28 17:50
Dopin:真懷念 這種用參數調音量的玩具 XD 01/28 17:58
sorkayi:linux 的音訊處理不是很悲劇嗎@@? 01/28 18:19
Dopin:多工分時不可能 realtime 啦 除非用單工的 OS 現在那裡找 XD 01/28 18:39
Dopin: ^^^^^^^^ ^^^^^^ 你該不會是指 EZGo 吧 ... 01/28 18:40
fuhsi:快推!不然別人以為我聽不懂 01/28 19:17
delaluna:我覺得嵌入式系統撥放會是未來電腦訊源的主流 可以真正 01/28 20:41
delaluna:實現完全隔離 01/28 20:41
turtleknight:.....為何不用rasberryPi 01/28 20:49
dnaspirit:realtime可以用RTOS,選擇還蠻多的 01/28 21:23
dnaspirit:ARM PC應該可以找到pci-e的插槽 01/28 21:32
legendmtg:單然是單工啊XD realtime kernel要自己編啊XDD 01/28 22:51
legendmtg:https://rt.wiki.kernel.org/ 01/28 22:53
legendmtg:現在有有PCI-E的產品嗎? 之前好像沒看過.... 01/28 22:54
Dopin:別的 OS 我不知道 但是 Linux 做為單工真的有點小拼現在大多 01/28 23:29
Dopin:都是靠控制 nice 來實現(模擬) RT ... 編 kernel 變 RTOS 這 01/28 23:30
Dopin:樣 Unix 都不 Unix 了 (不過似乎真的有搞<賺>頭 ? (炸)) 01/28 23:31
dnaspirit:rasberryPi 是用broadcom方案,沒跟RS買過東西,有機會 01/29 07:44
dnaspirit:對岸用三星arm有lay mini pci-e,Ti有arm內建2lane pci-e 01/29 07:56
Greentale:intel最近的atom功耗有在追上arm了喔~ 01/29 10:15
※ 編輯: dnaspirit 來自: 1.34.102.250 (04/27 20:56)
sneak : 之後想跑android https://muxiv.com 08/18 06:39
sneak : 我覺得嵌入式系統撥放會 https://daxiv.com 10/05 05:12