Mündəricat:

MSP430 Breadboard Audio Spektr Analizatoru: 6 addım
MSP430 Breadboard Audio Spektr Analizatoru: 6 addım

Video: MSP430 Breadboard Audio Spektr Analizatoru: 6 addım

Video: MSP430 Breadboard Audio Spektr Analizatoru: 6 addım
Video: MSP430 Breadboard Audio Spectrum Analyser 2024, Iyul
Anonim
Image
Image
MSP430 Breadboard Audio Spektr Analizatoru
MSP430 Breadboard Audio Spektr Analizatoru

Bu layihə mikrofon əsaslıdır və minimal xarici komponentlər tələb edir. 2 x LR44 sikkə hüceyrələri istifadə olunur ki, bütün quruluşu 170 bağlama nöqtəsi olan mini çörək taxtasında işləyim. ADC10, TimerA fasilə LPM oyanışı, TimerA PWM kimi çıxış, düymələrin istifadəsi, tam ədəd hesabları istifadə olunur və nümayiş olunur.

Xüsusiyyətləri

  • 500Hz ayırmada 8 bit tam ədədli FFT 16 nümunəsi
  • 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K qeyri-xətti 8 amplitüd göstərir
  • amplitüdləri göstərmək üçün qismən logarifm xəritəsi, qətnamə 8 bit FFT üçün azaldığı üçün məhduddur
  • TLC272 bir mərhələli mikrofon 100 dəfə 100 dəfə qazanır (2 mərhələdə yaşaya bilərsiniz)
  • menyu seçilə bilən isteğe bağlı Hamming pəncərəsi
  • Menyu 4 səviyyəli parlaqlığı tənzimləyir
  • menyu 8 səviyyəli nümunə dərəcəsi / cavab vaxtını tənzimləyir
  • "Gəmidə" işləyən 2 x LR44 sikkə hücrəsi

Addım 1: hissələri əldə edin

Bu layihə üçün lazım olanlar aşağıdakılardır

  • MSP430G2452 (TI Launchpad G2 -dən əlavə çip və ya hər hansı bir 4K 20 pinli MSP430G seriyalı MCU)
  • pre-amp qurulması üçün 170 bağlama nöqtəsi olan mini çörək taxtası və ya mükəmməl lövhə
  • TLC272 İkili op-amp
  • mini elektrikli mikrofon
  • 47k (çəkmə), 100k, 2x10k, 1k rezistorlar
  • 1 x 0.1 uF
  • tullanan tellər
  • Batareya tutucusu üçün istifadə ediləcək cüt sıra kişi pin başlığı
  • 2 x LR44 sikkə hüceyrəli batareya

Addım 2: Komponentlərin Layihəsini Planlayın

Layihə 170 bağlama nöqtəli mini çörək taxtası üzərində qurulacaq. Komponentlərin düzeni aşağıda göstərildiyi kimidir. Xüsusi qeyd etmək lazımdır ki, 8x8 LED matrisi MSP430 MCU -nun üstünə qoyulmalıdır. Komponentlərdən başqa, "+------+" işarələri ilə təsvir olunan birləşdirici tullanan tellər də mövcuddur.

G V + Gnd (1 mərhələ düzeni) BU YERDƏN İSTİFADƏ EDİRİK + ================================= =================+ c0 ………… c7 | MİK……. + -----++-+…. | r0 o o o o o o o o | o || o + ----- [100k] --------------- +….. | r1 X o o o o o o o |. +--------------+-+. C7 C6 R1 C0 R3 C5 C3 R0 |. o o o o o o o o |…… |.. | b6 a7 | | c0 və r1 eyni pini paylaşır və göstərmir | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *C6 + c0 + r1 olması üçün mümkün tətbiq | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | Bu 32 kHz xtal saatı üçün b6 -nı azad edəcək | | | TLC272 | | | | | | | çıxdı - + G | | |+ a0 a1 a2 a3 a4 a5 b0 b1 b2 | | | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| | o || o o o. +-+.. R4 R6 C1 C2 R7 C4 R5 R2 | |…. o- [10k]-o……… | |. o- [1k] o o o………._. | | o ---- [10k] ----------- o……. o o | +================================================ ====+.1uF 100k 10k ADC Button+ -----------------+

yalnız TLC272 -nin bir mərhələsini istifadə edirik

Addım 3: Montaj

Məclis
Məclis
Məclis
Məclis

Çörək taxtasının düzülüşünə əsasən komponentləri yerləşdirməyə başlaya bilərsiniz. ASCII sənəti olduğu üçün çox aydın olmaya bilər. Bütün əlaqələri müəyyən etmək üçün bu addımdakı fotoşəkilləri cütləşdirə bilərsiniz.

IC çiplərinin yerləşdirilməsinə diqqət yetirilməlidir. Cihazın 1 nömrəli pinini göstərmək üçün adətən künclərdən birində nöqtə olur.

CAT5 ethernet kabel tellərindən istifadə edirdim və çörək taxtası layihələrində işləmək çox asandır. Köhnə CAT5 kabelləriniz varsa, onu kəsə bilərsiniz və içərisində 6 əyilmiş tel olduğunu görəcəksiniz. Çörək bişirmək üçün idealdır.

Addım 4: Firmware tərtib edin və yükləyin

Mənbə kodu ümumiyyətlə github depolarımda yerləşir.

Bu xüsusi layihə üçün, nfft.c adlı tək C mənbə faylı çörək taxtası kolleksiyalarım anbarında toplanmışdır. Sadəcə nfft.c lazımdır

Firmware tərtib etmək üçün mps430-gcc istifadə edirəm, lakin TI CCS ilə yaxşı getməlidir. Veb əsaslı bir IDE olan TI CCS buluduna gedərək IDE və ya tərtibçilərin quraşdırılması ilə bağlı bütün çətinliklərin qarşısını ala bilərsiniz. Hətta proqram təminatını hədəf cihazınıza yükləyəcək.

Bu w/ switches əmrini tərtib etmək nümunəsidir

msp430 -gcc -Os -Wall -funksiya -bölmələri -fdata -bölmələri -fno -inline -kiçik -funksiyalar -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- bölmələr -I/energia -0101E0016/hardware/msp430/core/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

MCU proqramlaşdırmaq üçün bir proqramçı olaraq TI Launchpad G2 istifadə edirəm.

Addım 5: Dövrəni anlayın

Dövrəni anlayın
Dövrəni anlayın
Dövrəni anlayın
Dövrəni anlayın

Dövrə sxemini aşağıda təqdim edirik

MSP430G2452 və ya bənzəri, 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 mənfəət, 17Khz-ə qədər bant genişliyinə ehtiyac var

* yalnız TLC272 -nin bir mərhələsini istifadə edirik

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | çəkmə (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (çörək taxtasının düzməsinə baxın) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | matris | ((O)) |. | | / | | _ | | MİK | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ //////////

LED Sürücülük

LED matrisi 8 x 8 elementdən ibarətdir. 15 GPIO sancağı ilə idarə olunur. Onlar 8 satır və 8 sütun sxeminə malik multipleksləşdirilmişdir. ADC girişi üçün 1 pin istifadə etdikdən sonra cəmi 15 sancaq olduğundan, multiplexingdə tək pin paylaşan sıra 1 və sütun 0 var. Bu o deməkdir ki, satır 1 və sütun 0 -dakı xüsusi LED yandırıla bilməz. Bütün LED elementlərini idarə etmək üçün kifayət qədər GPIO pinləri olmadığı üçün bu bir kompromisdir.

Səs çəkmə

Səs, Educational BoosterPack üzərindəki göyərtədəki kondensator mikrofonu vasitəsilə çəkilir. Mikrofon siqnalları kiçik olduğundan, onu msp430 ADC10 -un ağlabatan bir qətnamə ilə istifadə edə biləcəyi səviyyəyə qaldırmalıyıq. Bu məqsədlə iki mərhələli op-amp gücləndiricisindən istifadə etmişdim.

Op-amp gücləndiricisi hər biri təxminən 100 dəfə artan iki mərhələdən ibarətdir. TLC272 qəbul etdim, çünki bu da çox yayılmış bir hissədir və 3V ilə işləyir. Təxminən 1.7Mhz olan qazanc bant genişliyi, 100x qazancımız üçün, yalnız 17Khz altında gözəl işləyəcəyinə (yəni istədiyimiz qazancı qoruyub saxlaya biləcəyimizə) zəmanət verə biləcəyimiz deməkdir. (1,7 MHz / 100).

Əvvəlcə bu spektr analizatorunu 16-20Khz-ə qədər ölçmək niyyətindəyəm, amma sonunda 8Khz-də musiqini göstərmək üçün kifayət qədər yaxşı olduğunu gördüm. Bu, LM358-i audio qiymətli bir şeylə əvəz etmək və nümunə götürmə sürətini dəyişdirməklə dəyişdirilə bilər. Yalnız seçdiyiniz op-amp-in qazanc bant genişliyinə baxın.

Nümunə götürmə və FFT

İstifadə olunan FFT funksiyası, bir çox layihənin qəbul etdiyi "fix_fft.c" kodudur, bir neçə ildir internetdə dolaşır. 16 bit və 8 bit versiyasını sınamışdım. Nəhayət 8 bitlik versiyaya qərar verdim, məqsədimə görə, 16 bitlik versiyada böyük bir irəliləyiş görmədim.

FFT mexanizmi haqqında yaxşı bir anlayışa malik deyiləm, ancaq tezlikdən domenə çevrilmənin bir zaman domeni. Yəni səs nümunələrinin sürəti (vaxtı), FFT hesablama funksiyasına verildikdən sonra əldə etdiyim amplitudun tezliyinə təsir edəcək. Nümunə səsi nisbətini tənzimləyərək nəticə tezliyi diapazonunu təyin edə bilərəm.

Nümunə alma müddətini saxlamaq üçün TimerA 0 CCR0 istifadə olunur. Əvvəlcə bant tezliyinə çatmaq üçün lazım olan sayları təyin edirik (16Mhz DCO saat sürətimizə uyğundur). yəni TA0CCR0 (8000/(BAND_FREQ_KHZ*2) olaraq təyin olunur)-1; BAND_FREQ_KHZ mənim üçün 8 -dir. Daha yaxşı bir op-amp alsanız və / və ya fərqli olmasını istəsəniz dəyişdirilə bilər.

Tezlik Bantları və Genlik Ölçülməsi

Firmware, bir taramada 16 bant işlədir və çəkmə vaxtı bu banklar arasında 500Hz ayırma yaradır. LED matrisi 8 sütundan ibarətdir və yalnız 8 bant / amplituda göstərəcək. Hər iki bantdan birini göstərmək əvəzinə, daha dinamik tezlik diapazonlarını (musiqi baxımından) göstərmək üçün xətti olmayan bir tezlik diapazonu siyahısı istifadə olunur. Siyahı aşağı ucunda 500Hz boşluqlar, orta bantlarda 1KHz boşluqlar və yüksəkliklərdə 1.5Khz bantlardır.

Fərdi bantların amplitudu, LED matris ekranındakı üfüqi 'nöqtələrin sayı ilə təmsil olunan 8 səviyyəyə qədər aşağı salınır, amplitüd səviyyələri FFT nəticələrini 8-dən birinə çevirən xətti olmayan bir xəritə ilə aşağı salınır. nöqtələr Səs səviyyələrini qavramağımızı ən yaxşı şəkildə təmsil etdiyi üçün bir növ logarifmik miqyaslama istifadə olunur.

Daxili AGC məntiqi var və əvvəlki dövrlərdə birdən çox pik səviyyəsi aşkar edildikdə spektr analizatoru amplituda səviyyələrini aşağı salmağa çalışacaq. Bu müqayisə cədvəli sürüşən bir hökmdarla aparılır.

Addım 6: Cihazın istismarı

  • Ekran rejimində qısa düyməni basaraq nöqtə yox, bir nöqtə, 2 nöqtə və 3 nöqtə göstərilir.
  • Uzun basma quraşdırma rejiminə keçir, sonrakı uzun basma menyu vasitəsilə dönər.
  • Menyu elementləri 'Hamming Pəncərə Seçimi', 'Dimmer', 'Nümunə Alma / Yeniləmə Hızı' vasitəsilə dövr edir.
  • 'Hamming Pəncərəsi' quraşdırma rejimində, qısa vuruşlar heç bir çırpma, 1 çırpma, 2 çırpma, 3 vurma, uzun basma ayarı təsdiqləyir.
  • 'Dimmer' quraşdırma rejimində, 0 -dan 3 -ə qədər mövcud parlaqlıq səviyyələrində qısa basma dövrü, uzun basma ayarı təsdiqləyir.
  • 'Nümunə alma / Yeniləmə sürəti' quraşdırma rejimində, 0 -dan 7 -ə qədər olan yeniləmə dərəcələri arasında qısa basma dövrləri, 0 gecikmənin olmaması deməkdir, uzun basma ayarı təsdiqləyir.
  • Led seqmenti multipleksləşdirmə fərdi sıralar üçün parlaqlıq fərqlərini kompensasiya etmək üçün vaxt gecikmələrini əhatə edir.

Tövsiyə: