Мазмуну:

STM32CubeMx микрофону (STM32F407VG): 5 кадам
STM32CubeMx микрофону (STM32F407VG): 5 кадам

Video: STM32CubeMx микрофону (STM32F407VG): 5 кадам

Video: STM32CubeMx микрофону (STM32F407VG): 5 кадам
Video: STM32Cube DAC triangle генерация треугольника на микроконтролере STM32F407 discovery 2024, Ноябрь
Anonim
STM32CubeMx микрофону (STM32F407VG)
STM32CubeMx микрофону (STM32F407VG)

Салам! Бул долбоордо биз микрофонду колдонуу менен үндү алууга аракет кылабыз (тышкы микрофон эмес) жана аны динамик аркылуу ойнотобуз. Бул окуу куралы өтө кыска болот, анткени мен кээ бир видеолорго шилтеме берүү менен долбоордун бөлүктөрүнө түшүндүрмө берем. Ошентип, долбоорго өтөлү:)

1 -кадам: Программалык камсыздоого жана жабдыкка талаптар

Аппараттык талаптар:

  • STM32F4 табуу тактасы (же башка STM32F4 тактасы)
  • MAX9814 күчөткүчү бар электр микрофону
  • PAM8403 аудио күчөткүч модулу
  • 4 OHM спикери

Программалык камсыздоого талаптар:

  • STM32CubeMX
  • Keil uVision5

2 -кадам: Долбоордун планын аныктоо

Андыктан, келгиле, эмне кылгыбыз келгенин биринчи түшүнөлү. Биринчиден, биз электрет микрофонунан үн алгыбыз келет. Белгилүү болгондой, MCU баарын санариптик түрдө иштетет. Бирок, үн аналогдук сигнал болуп саналат. Ошентип, биз аны санарип сигналга айландырышыбыз керек жана муну ADC (аналогдук санариптик конвертер) аткарат жана процесс тандалма деп аталат. Көбүрөөк маалымат алуу үчүн издесеңиз болот. Бул жерде бир маанилүү жагдай бар: спикерден үндү тийиштүү түрдө алуу үчүн, тандоо ылдамдыгы чыгарылыштагы аудио жыштыгынан кеминде эки эсе жогору болушу керек. Бул Nyquist-Shannon теоремасы деп аталат.

Аны санариптик сигналга айландыргандан кийин, биз аны каалагандай иштетип, кайра ошол үндү чыгара алабыз. Бирок, динамик аналогдук сигналга муктаж. Ошентип, биз бул санарип сигналды аналогдук артка которушубуз керек. Бул үчүн биз DACти (санариптен аналогдук которгучка) колдонобуз. Аягында биз бул үндү чыгара алабыз:)

3 -кадам: DMA менен ADC жана DACти кантип орнотуу жана ишке ашыруу

Мен айткандай, бул процессти видеодон да үйрөндүм. Мен бул видеонун ссылкасын берем. Сабырдуу болуңуз жана кунт коюп угуңуз. Ал бардык процессти эң сонун түшүндүрөт.

Шилтемелер: Part1 жана Part2

*Эскертүү: Кодуңуздагы бул сапты текшериңиз жана DMA тынымсыз өтүнүчүн иштетиңиз:

hadc1. Init. DMAContinuousRequests = ENABLE;

4 -кадам: Спикерге чыгуу

Спикерге чыгуу
Спикерге чыгуу

Бардык кадамдарды жасагандан кийин, динамикти жогорудагы сүрөттөгүдөй туташтыруу керек. Андан кийин, телефонуңуздагы үндү ойнотуңуз жана үндү дээрлик укпаган чекке чейин азайтыңыз. Андан кийин, телефонду микрофондун жанына алып барсаңыз, катуу сүйлөткүчтөн үн угулат. Микрофон менен сүйлөбөңүз, анткени динамиктен чыккан же чыкпаганын түшүнүү кыйын болот:)

5 -кадам: Жыйынтык

Ошентип, биз долбоордун аягына чыктык. Эгерде сизде кандайдыр бир суроо же көйгөй болсо, суроодон тартынбаңыз:)

Сунушталууда: