Jump to content

    

Mysteo

Свой
  • Content Count

    268
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Mysteo

  • Rank
    Местный
  • Birthday 01/05/1991

Контакты

  • Skype
    seil91

Информация

  • Город
    Пенза

Старые поля

  • Vkontakte
    https://vk.com/alekseev_e

Recent Profile Visitors

1159 profile views
  1. Да дополнительная кнопка прошлый век, плюс юзерам удобнее без всяких кнопок) Вроде как сейчас никаких проблем особо нету, программно подлатал все
  2. zoolu а можете показать код каким образом вы звук выводите ? У меня при передаче через ЦАП частые щелчки, скорее всего дело в рассинхронизации скорости работы SAI и таймера работы с ЦАП
  3. stm32F030k6 "ушёл в себя"

    Да что то у вас с RESET было не так, потому что если бы микроконтроллер в режиме сброса бы находился, ему все равно бы было на конфиги SWCLK и SWDIO
  4. А я не стал с AEC разбираться , хотя нужно тоже осваивать. Через ШИМ + RC цепочка звук лучше чем через 12 битный ЦАП получается?
  5. Ура )) А что за проект делаете если не секрет. И шимом я как понимаю вы звук с микрофона куда то выводите?
  6. При децимейшн факторе 64 вам нужно скормить 4 полуслова, а не 32. DECIMATION_FACTOR_64 - это 64 бита, одно полуслово это 16 бит. Соответственно 4 полуслова. Начните сначала с самого простого, в настройках PDM фильтра поставьте outputSamplesNumber = 1; Заведиде DMA : HAL_I2S_Receive_DMA(&hi2s2, PDM_BUFFER, 8); В обработчике по заполнению половины буфера и полного буфера скармливайте PDM фильтру соответственно первые 4 полуслова, и последние 4 полуслова. Все должно работать. В моем проекте фильтр настроен на 256 выходных значений. Decimation Factor 64 . 1 / (64 * 256 / 1025000) = 62.5 Гц. Каждые 62.5 Гц у меня заполняется по половине буфера. Осциллограф тоже самое подтверждает
  7. Попробуйте Clock Polarity поменять на Low И communication Standard на MSB . У меня в настройках проекта такие параметры были. Завтра STM32F4Discovery из дома на работу принесу подробнее еще разберу.
  8. А куда вы выводите звук, чтобы проверить искаженный он или нет? И вы потом выводите PCM звук или то что получаете в вашей функции PWM Buf? Проверьте еще частоту тактирования микрофона , при ваших настройках она должна быть 2МГц , ослилографом желательно посмотрите, а у меня как раз с ней еще проблемы при настройках через CubeMX были, а я как понимаю вы им и пользуетесь И вроде как буфер Вы не правильно инициализировали. У вас PDM FACTOR 64 бита , это значит что подав на вход фильтра 8 байт (64 бита / 8) PDM сигнала получите 1 PCM отчет. А outputSamples у вас выбрано 16 , то есть фильтр ожидает от вас 8 * 16 = 128 байт. Таким образом 128 * 2 = 256 вам нужен рабочий буфер на 256 байт. При заполнении половины буфера в 128 байт скармливаете эти значения фильтру. При заполнении другой половины буфера , снова скармливаете Плюс насколько я помню возня еще с этими HAL библиотеками была. Некорректно DMA буфер заполнялся. Так что проверьте верно ли заполняется у вас буфер В общем все от начала до конца то что я написал проверьте.
  9. Блин , где то допустил ошибку и не правильно режим задал. Думал что настроил чтобы в прерывание входило при удержании ножки в нуле 20мс , а по факту от любого импульса из 1 в 0 прерывание вызывается
  10. Да чисто для собственного опыта. В общем похоже напрямую связать длительность нажатия кнопки со скважностью ШИМ без прерываний невозможно. Сейчас сделал более оптимизировано перевел таймер в режим Input Capture и если кнопка нажата более 20 мс генерю прерывания. Это оптимальнее чем до этого было сделано. Впустую постоянно таймер гонялся и проверялось условие нажата ли кнопка
  11. Здравствуйте! В устройстве имеется кнопка с подстветкой , нужно было мне сделать так, чтобы при нажатии кнопки и ее удержании подствека включалась и загоралась сильнее. После отжатия кнопки - подсветка тухнет. Выполнил я это конечно кривовато, следующим алгоритмом. 1. Запустил таймер на 1 мс. 2. Каждую 1мс считываю нажата ли кнопка. 3. Если кнопка нажата, то меняю скважность ШИМ сигнала подсветки, если отжата, то вырубаю подстветку. Но мне кажется, что используя режимы типа Gate Mode либо Trigger Mode можно как то данную штуку выполнить более аппаратным уровнем, чем программно моим алгоритмом. Может быть дадите наводку. Есть возможность поменять схемотехнику. Осознаю , что нужно использовать у одного из таймеров Input Direct Mode, повесить подсчет длительности нажатия на данную функцию. И как то связать данный счетчик с другим таймером , который рулит ШИМом. Хотелось бы чтобы всякие прерывания минимально были задействованы
  12. Нет не мегафон, но по ходу многие подумали , что мегафон. Вообще домофонная трубка с громкоговорителем. Если со стороны вызывной панели слишком громко что-то скажут, то из динамика звук в микрофон попадает и на улице сами себя слышут. Вот это устранить хотелось
  13. Слушайте у меня проблема, у меня известен сигнал поступающий на УНЧ динамика. Я его могу спокойно вычитать из сигнала микрофона с любой задержкой. Но вот проблема , что нужно еще как то знать коэффициент передачи (динамик - микрофон) Ведь например на УНЧ динамика приходит синусоида амплитудой 200 мВ, а микрофон от динамика поймает данный сигнал уже с совсем другой амплитудой. И для разных громкостей все разное будет.... Как решить данную проблему? Взять несколько частот и на разной громкости погонять их ? И примерный коэффициент вычислить ?
  14. Делал на похожей микрухе гитарный delay. Оперативки достаточно 16 килобайт. И частота дискретизации не высокая 16кГц
  15. Посмотрел и даже разобрал ) Там МС34118 рулит звуком. Накидал небольшую программу с использованием функции корреляции , посмотрим что получится. Почему именно 20 см и 0.6 мс ? Связано со скоростью распространения звука ? Задержку программно сделать не проблема