Jump to content

    

Mysteo

Свой
  • Content Count

    251
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Mysteo

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

Контакты

  • Skype
    seil91

Информация

  • Город
    Пенза

Старые поля

  • Vkontakte
    https://vk.com/alekseev_e

Recent Profile Visitors

1054 profile views
  1. После последовательности... кажется я понял все. Сейчас буду устранять багу спасибо большое.
  2. Попробую глубже поразобраться. Но фишка то в том что инжектированные каналу не лезут в DMA вообще , а просто порядок следования регулярных каналов в буфер местами меняется. Сейчас перед тем как запустить DMA я останаливаю инжектированные каналы, а потом после запуска DMA запускаю. На некоторых устройствах баг пропал, на некоторых вспыл 1 раз на 30 попыток. HAL_ADCEx_InjectedStop_IT(&hadc); HAL_ADC_Start_DMA(&hadc, ADC_Buffer, FRAME_SIZE*N_Channels); HAL_ADCEx_InjectedStart_IT(&hadc);
  3. Гоняет инжектированные каналы каждую 1мс
  4. Нет работает. Думаете в этом ошибка ? Мне кажется это связано как то с не пониманием как работает периферия, либо с кривой конфигурацией АЦП через куб , потому что если не запускать инжектироанные каналы АЦП , а только инициализировать их то проблема остается. Убираю инициализацию , то все работает как надо
  5. Здравствуйте! Была у меня исправно работающая программа со следующими настройками АЦП : два канала блока ADC исправно ложились в буфер через DMA сначала channel2 затем channel3 . Через таймер2 настроенный на 16кГц То есть в DMA буфере я имел следующую цепочку [Значение_Channel_2 , Значение_Channel_3 , Значение_Channel_2 , значение_Channel_3..........................] Понадобилось мне добавить еще 2 инжектированых канала значения которых я уже без всякого DMA считываю После добавления этих инжектированных каналов у меня началась проблема с DMA двух регулярных каналов: уже нету четкой последовательности в DMA буфере где сначала должен идти Channel 2 , затем Channel 3 , они могут поменяться местами И уже в DMA сначала идет Channel 3 а потом Channel 2 . На 20 перезагрузок устройства возникает 2-3 случая с подменой каналов. Если я убираю инициализацию инжектированных каналов, то проблема такая остуствует
  6. ничего себе, умную гранату придумывают . Она что будет сама катиться если ее не докинут? А дальномер имеет какие либо способы безконтактной передачи? Или вам и дальномер надо будет доработать?
  7. STM32L433 EEPROM EMULATION

    Сейчас проверю, я пока без дебагера и не пробовал запускаться... Сейчас прошью и запущу девайс без дебагера отпишу через пару минут проверил..... получается что ошибка при старте сама по себе возникает единожды, притом сначала SR 0x80 выдает...и затем 0xA0 спасибо за наводку... я то думал у меня в коде что не так кстати если прошить и запуститься без дебагера , то ошибок никаких нету
  8. STM32L433 EEPROM EMULATION

    Нашел где возникает ошибка не выполняется условие if (error != 0u) в регистре FLASH->SR в данный момент 0x00000A0 а это соответствует PGSERR и PGAERROR почитал, что это значит, но почему возникает только после прошивки единожды пока не понял HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) { /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. Even if the FLASH operation fails, the BUSY flag will be reset and an error flag will be set */ uint32_t tickstart = HAL_GetTick(); uint32_t error; while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)) { if(Timeout != HAL_MAX_DELAY) { if((HAL_GetTick() - tickstart) >= Timeout) { return HAL_TIMEOUT; } } } error = (FLASH->SR & FLASH_FLAG_SR_ERRORS); error |= (FLASH->ECCR & FLASH_FLAG_ECCD); if(error != 0u) { /*Save the error code*/ pFlash.ErrorCode |= error; /* Clear error programming flags */ __HAL_FLASH_CLEAR_FLAG(error); return HAL_ERROR; } /* Check FLASH End of Operation flag */ if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) { /* Clear FLASH End of Operation pending bit */ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); } /* If there is an error flag set */ return HAL_OK; }
  9. STM32L433 EEPROM EMULATION

    Понял , сейчас буду глубже копаться , я думал проблема на поверхности. Да ещё все совсем работать перестало. Что то с виртуальной таблицей что ли не так, или с конфигом. Отпишусь если что
  10. STM32L433 EEPROM EMULATION

    Всем привет! Возникла необходимость хранить некоторые параметры в энергонезависимой памяти. На борту у STM32L433 ее нет, как и у всей линейки L4, но зато есть мануал от STM https://www.st.com/content/ccc/resource/technical/document/application_note/group0/b2/94/a6/62/18/c0/4f/e6/DM00311483/files/DM00311483.pdf/jcr:content/translations/en.DM00311483.pdf и либа https://www.st.com/en/embedded-software/x-cube-eeprom.htmlПроблема следующего характера есть готовая функция EEInit код под споилером. И после первой прошивки микроконтроллера, данная инициализация возвращает мне всегда EE_ERASE_ERROR . Далее уже инициализация, запись и считывание происходит без проблем. Пробовал инициализировать и через EE_FORCED_ERASE и через EE_CONDITIONAL_ERASE , но всегда после первой прошивки возвращает ERASE_ERROR. Как подлечить , куда глядеть ?
  11. Всем привет ! Не подскажете хорошие и понятные статьи по алгоритмам распознавания заранее известных голосовых команд ? Я в данной теме не не профи, но первое что мне пришло на ум работает только с моим голосом и при произношении одинаковой интонации . Я просто вычисляю некоторые спектральные характеристики , заполняю вектор и через corrcoef нахожу корреляцию с эталонной командой. Естественно все это не работает если у человека тембр голоса другой , хотелось бы узнать какие признаки и алгоритмы нужно использовать
  12. FFT на STM32

    Да я прекрасно понимаю , что велосипед тут не изобретаю , но нужно было в устройстве сделать передачу данных как в яндекс станции смотреть с 35 секунды.
  13. В общем это передача данных нарушена была.... Видать при голосе частоты все время разные ... и не заметно, а при передачи синуса если хотя бы 1 значение вылетает из синусоиды то щелчок получается. Попробовал сначала накопить аудио в RAM , а потом передать. Щелчков никаких не было . В общем можно сказать что освоил наконец-то PDM с горем пополам.
  14. Скачал готовую программу USB микрофона для данной платы, на ней никаких таких проблем не возникает.... блин неуж то где то в передачи данных проблема. Но почему при записи речи и тишины щелчков не слышно
  15. Ребята почему то случаются пощелкивания .... пока не понимаю из-за чего. Ошибок в передачи данных быть не может. В тишине и при разговоре никаикх пощелкиваний нет. Но когда записываю какой либо синусоидальный сигнал частые щелчки возникают, внезависимости от уровня громкости источника звука и расстояния динамика до микрофона. Вот две записи: speech - я записал сначала немножко тишину потом все ближе и ближе разговаривал к микрофону, вплоть до дистанции 5 см. tone - запись где я синусоидальный звук через динамик воспроизводил и записывал микрофоном, дистанция более 1.5 м. Громкость разную пробовал. Дайте наводку, что может быть не так. speech.wav tone.wav