2017-01-17 15 views
9

USB Audio Class 2.0'da çoklu bit hızları/örnek hızları için destek ekleme konusunda biraz kafam karıştı. USB Audio Class 1.0 ile karşılaştırıldığında (size birden fazla ücret ve benzeri ekleme seçeneği sunar), USB Audio Class 2.0 bu seçeneği sunmaz. Tanımlayıcılarımı bunun için nasıl değiştiririm? Ben USB Ses Sınıfı 2.0 - Çoklu bit hızları/örnek hızları nasıl desteklenir

İşte benim ses biçimi açıklayıcısı var ... Daha alternatif ayarları kullanmak ama bu yardımcı olacağını bilmiyorum olduğunu okumuştum:

audioformat.bLength     = sizeof(usb_audio_format_type_1_desc_t) 
audioformat.bDescriptorType   = 0x01 
audioformat.bDescriptorSubtype  = 0x02 
audioformat.bFormatType    = 0x01 
audioformat.bSubSlotSize   = 3 
audioformat.bBitResolution   = 24 

Teşekkür!

cevap

5

Evet, onu anladım ve bu yüzden ödülün önemi yok.

Çoklu bit hızları yapmak için: Sırayla farklı bit hızlarını desteklemek için karşılık gelen ses veri formatı tanımlayıcıları/etc ile alternatif ayarları yapın; örneğin: Alternatif Ayar 0 (bitiş noktası yok), Alternatif Ayar 1 (tüm akış/sınıf tanımlayıcıları ile, format tanımlayıcısı 16 biti destekler), Alternatif Ayar 2 (tüm akış/sınıf tanımlayıcıları ile, format tanımlayıcısı 24 biti destekler).

Birden çok örnekleme hızı yapmak için: USB Audio Class 2.0 belgesini CUR, MIN, MAX biçimiyle takip etmeli ve ana makineye denetim vermelisiniz. Örneğin

:

#define USB_AUDIO_SAMP_RATE_RANGE   { CPU16_TO_LE8_ARRAY(2), \ 
               CPU32_TO_LE8_ARRAY(SAMPLE_RATE_44_1), \ 
               CPU32_TO_LE8_ARRAY(SAMPLE_RATE_44_1), \ 
               CPU32_TO_LE8_ARRAY(0), \ 
               CPU32_TO_LE8_ARRAY(SAMPLE_RATE_48_0), \ 
               CPU32_TO_LE8_ARRAY(SAMPLE_RATE_48_0), \ 
               CPU32_TO_LE8_ARRAY(0)} 

referans olarak, LE8 düşük endian 8 bittir ve tanımlar alt endian biçimlendirilmiş 8 bitlik sayı dizisi bir 16 ya da 32 bit tam sayı dönüştürürler.

1

USB Audio 2.0'da (UAC2) bazı Saat Varlıkları vardır. Ancak USB Audio 1.0 (UAC1) buna sahip değil. UAC1, talep edebileceğimiz çeşitli Örnekler oranlarını doğrudan sağlar.

Ancak UAC2'de Saat Öğelerini kullanmak zorundayız. Saat varlıkları hakkında bilgi veren belirli bir tanımlayıcı vardır.

+1

Teşekkürler Ganesh, sonunda bu soruyu sorduğumda UAC2 ayları hakkında bu bölümü öğrenmeye/anlamaya geldim. –

İlgili konular