Агуулгын хүснэгт:

MSP430 Breadboard аудио спектрийн анализатор: 6 алхам
MSP430 Breadboard аудио спектрийн анализатор: 6 алхам

Видео: MSP430 Breadboard аудио спектрийн анализатор: 6 алхам

Видео: MSP430 Breadboard аудио спектрийн анализатор: 6 алхам
Видео: MSP430 Breadboard Audio Spectrum Analyser 2024, Арваннэгдүгээр
Anonim
Image
Image
MSP430 Breadboard аудио спектрийн анализатор
MSP430 Breadboard аудио спектрийн анализатор

Энэхүү төсөл нь микрофон дээр суурилсан бөгөөд хамгийн бага гадаад бүрэлдэхүүн хэсгүүдийг шаарддаг. 2 x LR44 зоосны эсийг ашигладаг бөгөөд ингэснээр би бүхэл бүтэн бүтэцтэй, 170 ширхэг тэнцэх цэгийн мини талхны хавтангийн хүрээнд ажиллах боломжтой болно. ADC10, TimerA тасалдал LPM-ийг сэрээх, TimerA ХБХ-ийг гаралт, товчлуур ашиглах, бүхэл тооны арифметикийг ашиглан үзүүлэв.

Онцлог шинж чанарууд

  • 500 Гц тусгаарлах үед 8 битийн бүхэл тоо FFT 16 дээж
  • 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K шугаман бус 8 далайцыг харуулдаг
  • 8 битийн FFT -ийн нарийвчлал буурсан тул далайцыг харуулах логарифмын хэсэгчилсэн газрын зураг
  • TLC272 нэг үе шаттай микрофон нь 100 дахин 100 дахин нэмэгддэг (та 2 үе шатыг мэдрэх боломжтой)
  • цэсийг сонгох боломжтой Hamming цонх
  • цэс нь 4 түвшний тод байдлыг тохируулдаг
  • цэс 8 түвшний түүврийн хурд / хариу өгөх хугацааг тохируулна
  • "Хөлөг дээр" ажилладаг 2 x LR44 зоосны үүр

Алхам 1: эд анги худалдаж авах

Энэ төсөлд дараахь зүйлс хэрэгтэй болно

  • MSP430G2452 (TI Launchpad G2 -ийн нэмэлт чип эсвэл 4K 20 зүү MSP430G цуврал MCU)
  • урьдчилсан өсгөгч барихад зориулагдсан 170 уялдаатай мини талхны самбар эсвэл төгс төгөлдөр самбар
  • TLC272 Хос op-amp
  • мини цахилгаан цахилгаан микрофон
  • 47k (татах), 100k, 2 x 10k, 1k эсэргүүцэл
  • 1 x 0.1uF
  • холбогч утас
  • Батерей эзэмшигчийн хувьд хоёр эгнээтэй эрэгтэй зүү толгой
  • 2 x LR44 зоосны зай

Алхам 2: Бүрэлдэхүүн хэсгүүдийн зохион байгуулалтыг төлөвлөх

Төслийг 170 уях цэгийн мини талхны хавтан дээр барихаар төлөвлөж байна. Бүрэлдэхүүн хэсгүүдийн зохион байгуулалтыг доор харуулав. Онцгой анхаарал татсан зүйл бол 8x8 LED матрицыг MSP430 MCU дээр байрлуулах явдал юм. Бүрэлдэхүүн хэсгүүдээс гадна "+------+" тэмдэгтээр дүрсэлсэн холбогч холбогч утаснууд бас байдаг.

G V + Gnd (1 үе шаттай зохион байгуулалт) БИД ЭНЭ БАЙРШИЛИЙГ АШИГЛАЖ БАЙНА + ================================= =================+ c0 ………… c7 | MIC……. + -----++-+…. | 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 ба r1 ижил зүү хуваалцаж, харуулахгүй | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *c6 + c0 + r1 байх боломжтой програм | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | Энэ нь b6 -ийг 32 кГц -ийн цагаар чөлөөлөх болно | | TLC272 | | | | | | | гарах - + 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 товчлуур+ -----------------+

Бид зөвхөн TLC272 -ийн нэг үе шатыг ашиглаж байна

Алхам 3: угсрах

Чуулган
Чуулган
Чуулган
Чуулган

Та талхны самбар дээр үндэслэн бүрэлдэхүүн хэсгүүдийг байрлуулж эхлэх боломжтой. ASCII урлаг тул тийм ч тодорхой биш байж магадгүй юм. Та бүх холболтыг тодорхойлохын тулд энэ алхам дээрх зургуудыг хослуулж болно.

IC чипийг байрлуулахад анхаарах хэрэгтэй. Төхөөрөмжийн 1 -р зүүг зааж өгөх нэг буланд ихэвчлэн цэг байдаг.

Би CAT5 ethernet кабелийн утас ашиглаж байсан бөгөөд талхны самбар дээр ажиллахад маш хялбар байдаг. Хэрэв танд хуучин CAT5 кабель байгаа бол та үүнийг таслахад дотор нь 6 мушгирсан утас байгааг олж харах болно. Тэд талхны тавцан дээр тохиромжтой.

Алхам 4: Firmware -ийг хөрвүүлж, ачаална уу

Эх код нь ихэвчлэн миний github репозиторуудад байдаг.

Энэхүү тодорхой төслийн хувьд nfft.c гэсэн ганц С эх файлыг миний талхны цуглуулгын санд цуглуулдаг. Танд nfft.c хэрэгтэй болно

Би mps430-gcc-ийг ашиглан програмыг эмхэтгэж байгаа боловч энэ нь TI CCS-тэй сайн нийцэх ёстой. Та вэб дээр суурилсан IDE болох TI CCS үүл рүү орсноор IDE эсвэл хөрвүүлэгчийг суулгахтай холбоотой бүх бэрхшээлээс зайлсхийх боломжтой. Энэ нь програмыг таны зорилтот төхөөрөмж рүү татаж авах болно.

Энэ бол w/ switch командыг хөрвүүлэх жишээ юм

msp430 -gcc -Os -Wall -function -qism -fdata -section -fno -inline -small -functions -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- хэсгүүд -I/energia -0101E0016/hardware/msp430/core/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

Би MCU -ийг програмчлахад TI Launchpad G2 -ийг програмист болгон ашиглаж байна.

Алхам 5: Цахилгаан хэлхээг ойлгох

Цахилгаан хэлхээг ойлгох
Цахилгаан хэлхээг ойлгох
Цахилгаан хэлхээг ойлгох
Цахилгаан хэлхээг ойлгох

Хэлхээний схемийг доор үзүүлэв

MSP430G2452 эсвэл үүнтэй төстэй 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 ололт, 17Khz хүртэл зурвасын өргөн хэрэгтэй

* бид зөвхөн TLC272 -ийн нэг үе шатыг ашиглаж байна

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | татах (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10к | | 10к | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (талхны хавтангийн байршлыг үзнэ үү) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Гнд +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | матриц | ((O)) |. | | / | | _ | | MIC | | 10к | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ _ _ _ _/////////

LED жолоодох

LED матриц нь 8х8 элементээс бүрдэнэ. Тэдгээрийг 15 GPIO тээглүүрээр удирддаг. Тэдгээрийг 8 мөр, 8 баганы схемээр үржүүлсэн болно. ADC оролтод 1 зүү ашигласны дараа ердөө 15 зүү байдаг тул мултиплекс нь 1 мөр, 0 -р баганатай бөгөөд нэг зүү хуваалцдаг. Энэ нь 1 -р мөр ба 0 -р багана дээрх LED -ийг асаах боломжгүй гэсэн үг юм. Бүх LED элементүүдийг жолоодоход хангалттай GPIO зүү байхгүй тул энэ нь буулт юм.

Дуу бичлэг хийх

Боловсролын BoosterPack дээрх конденсаторын микрофоноор дамжуулан дууг олж авдаг. Микрофоны дохио нь жижиг тул бид үүнийг msp430 ADC10 -ийг боломжийн нарийвчлалтайгаар ашиглах түвшинд хүртэл нэмэгдүүлэх хэрэгтэй. Би энэ зорилгоор хоёр үе шаттай оп-өсгөгч ашиглаж байсан.

Оп-өсгөгч нь хоёр үе шаттай бөгөөд тус бүр нь 100 дахин их ашиг олдог. Би TLC272 -ийг авсан бөгөөд энэ нь бас түгээмэл хэсэг бөгөөд 3V -тэй ажилладаг. Олзны зурвасын өргөн нь ойролцоогоор 1.7 МГц байх нь бидний 100x ашиг олохын тулд бид зөвхөн 17 кГц -ийн хүрээнд сайн ажиллах болно (өөрөөр хэлбэл бидний хүссэн ашгийг хадгалах) болно гэсэн үг юм. (1.7 МГц / 100).

Эхэндээ би энэ спектрийн анализаторыг 16-20 кГц хүртэл хэмжих бодолтой байсан боловч эцэст нь 8 кГц орчим нь хөгжим үзүүлэхэд хангалттай сайн болохыг олж мэдсэн. Үүнийг аудио үнэлгээтэй LM358 төхөөрөмжөөр сольж, түүвэрлэх хурдыг өөрчлөх замаар өөрчилж болно. Зөвхөн сонгосон op-amps-ийн ашиг олох зурвасын өргөнийг хайж олох хэрэгтэй.

Дээж авах ба FFT

Ашигласан FFT функц нь олон төслүүдийн баталсан "fix_fft.c" код бөгөөд хэдэн жилийн турш интернетэд хөвж байсан. Би 16 битийн хувилбар, 8 битийн хувилбарыг туршиж үзсэн. Эцэст нь би 8 битийн хувилбарыг өөрийн зорилгын дагуу шийдсэн боловч 16 битийн хувилбар дээр томоохон ахиц дэвшил олж хараагүй.

Би FFT механизмын талаар сайн ойлголтгүй байгаа бөгөөд энэ нь давтамжийг домэйн руу хөрвүүлэх цаг хугацааны домэйн биш юм. Энэ нь FFT тооцооллын функцэд өгсний дараа дууны дээжийн хурд (цаг) нь миний олж авсан далайцын давтамжид нөлөөлнө гэсэн үг юм. Тиймээс дууны хэмжээг тохируулах замаар би давтамжийн зурвасыг тодорхойлж чадна.

TimerA 0 CCR0 нь дээж авах хугацааг хадгалахад ашиглагддаг. Бид эхлээд зурвасын давтамжид хүрэх шаардлагатай тоонуудыг тодорхойлдог (бидний 16 МГц -ийн DCO цагийн хурдтай нийцдэг). өөрөөр хэлбэл TA0CCR0 (8000/(BAND_FREQ_KHZ*2))-1; BAND_FREQ_KHZ миний хувьд 8 байна. Хэрэв та илүү сайн op-amp-тай болсон эсвэл өөр байхыг хүсч байвал үүнийг өөрчилж болно.

Давтамжийн зурвас ба далайцын масштаб

Програм хангамж нь нэг урсгалд 16 хамтлаг боловсруулдаг бөгөөд зураг авах хугацаа нь эдгээр банкуудын хооронд 500 Гц -ийн зайтай байдаг. LED матриц нь 8 баганатай бөгөөд зөвхөн 8 хамтлаг / далайцыг харуулна. Хоёр зурвас тутамд нэгийг харуулахын оронд илүү динамик давтамжийн зурвасуудыг (хөгжмийн хувьд) харуулахын тулд шугаман бус давтамжийн зурвасын жагсаалтыг ашигладаг. Жагсаалт нь доод хэсэгт 500 Гц, дунд хэсэгт 1 КГц, дээд хэсэгт 1.5 Гц давтамжтай байна.

Тус тусад нь хамтлагуудын далайцыг 8 түвшинд хүртэл бууруулдаг бөгөөд энэ нь LED матрицын дэлгэц дээрх хэвтээ "цэгүүдийн" тоогоор илэрхийлэгддэг бөгөөд далайцын түвшинг шугаман бус газрын зургаар багасгаж, FFT-ийн үр дүнг 8-ийн аль нэг болгон хөрвүүлдэг. цэгүүд Логарифмын масштабыг ашиглан дууны түвшний талаарх бидний ойлголтыг хамгийн сайн илэрхийлдэг.

AGC логик байдаг бөгөөд спектрийн анализатор нь өмнөх мөчлөгт хэд хэдэн оргил түвшинг илрүүлэх үед далайцын түвшинг бууруулахыг хичээдэг. Үүнийг гүйлгэх захирагчтай харьцуулах хүснэгтийн тусламжтайгаар хийдэг.

Алхам 6: Төхөөрөмжийг ажиллуулах

  • Дэлгэцийн горимд богино товчлуур дарахад цэггүй, нэг цэг, 2 цэг, 3 цэгтэй дэлгэц эргэлддэг.
  • Удаан дарах нь тохиргооны горимд орно, дараа нь удаан дарахад цэс эргэдэг.
  • Цэсийн зүйлүүд 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate' -ээр дамждаг.
  • 'Hamming Window' тохиргооны горимд богино даралтаар ямар ч цохилт хийхгүй, 1 -ийг цохиж, 2 -ийг цохиж, 3 -ыг дарж, урт дарах нь тохиргоог баталгаажуулдаг.
  • 'Диммер' тохируулгын горимд богино товчлуурууд нь 0 -ээс 3 хүртэлх гэрэлтүүлгийн түвшинг дамжуулдаг бөгөөд урт дарах нь тохиргоог баталгаажуулдаг.
  • 'Түүвэрлэх / шинэчлэх хурд' тохируулгын горимд 0 -ээс 7, 0 хүртэлх шинэчлэлтийн хурдыг богино дарах нь хоцрогдолгүй гэсэн үг юм.
  • LED сегментийн мультиплекс нь тус тусын эгнээний гэрэлтүүлгийн ялгааг нөхөхийн тулд цаг алдах хугацааг агуулдаг.

Зөвлөмж болгож буй: