Перейти к содержанию
    

murmur

Участник*
  • Постов

    665
  • Зарегистрирован

  • Посещение

Весь контент murmur


  1. Попробовала запустить хотя бы ваш проект - он у Вас на 24 МГц что ли? По крайней мере из комментариев к настройкам таймера это следует. Однако при изучении проекта я нашла что файл system_stm32 в проект вообще не добавлен, а в main.c есть функция настройки тактовой чатсоты, которая закомментирована. Признавайтесь, где вы спрятали настройку тактовой частоты, хочу настроить на 72 МГц. Кстати в том виде в котором вы выложили, я слышу не речь а чириканье.
  2. Ах тыж вот оно что - FRAME_SIZE нужно менять в зависимости от частоты дискретизации, а ENCODED_FRAME_SIZE - в зависимости от сжатия. Скажите, вы что-то меняли кроме исполняемых файлов и их заголовков? Файлы в папке с библиотекой SPEEX не изменены? Просто ваш проект я запускать не буду, я хочу свой, уже готовый переделать.
  3. Вчитавшись в описание... По моему эта библиотека от ST рассчитана только на quality=4. Да, там есть дефайны, определяющие длину пакетов, видимо они сделаны для удобства.
  4. Уважаемый! Мне как раз голос и нужен. Я сгенерировала голос программой Acapela, конвертировала его кодеком ACMSpeex в 32 kHz 5 кбит/сек, quality=10. Отличий от оригинала не услышала. Понятно, что если бы была музыка, то это была бы ерунда. В общем 5 кбит/сек меня устраивает, есть готовый аудиофайл. Есть также работающий код для STM32, который настроен на 8 кГц и quality=4, битрейт - 1 кбит/сек. Мой вопрос в том, может ли кто либо, реально этим занимавшийся, привести полный список того, что нужно поменять. Академичные рекомендации типа "ну настройте частоту дискретизации" не помогут. Что сделать в принципе я знаю, не это не помогает, какая-то заковырка в самом коде.
  5. Господа, есть такой кодек речевой - Speex, под него есть библиотека для STM32. Кто работал тот знает. Пример в ней заточен под quality=4, 8 кГц 1 кбит/сек. Хочется попробовать звук получше - quality 10, 32 кГц, 5 кбит/сек Что только не делала, дефайны меняла, размеры фреймов пересчитывала - слышно шипение. Такое ощущение что не все переменные исправила. Может кто занимался? Подскажите, как перенастроить?
  6. Все-таки переделала под импульсник LM2596HVS-3.3 (60 вольтовая версия) Посмотрите, все ли хорошо с разводкой?
  7. То есть стабилитрон и диод это вариант, лишенный недостатков обоих вариантов (просто диоды либо TVS). Единственный минус - это небольшой ток, но он решается установкой резистора (последовательно). Я правильно поняла?
  8. Скажите, так может мне на всех входах в том числе и на цифровых вместо диодов поставить вот такие штуки? http://www.mouser.com/ds/2/54/CDNBS16-T03_T36C-69148.pdf
  9. Эта схема будет питаться от мотоциклетной бортовой сети и измерять напряжение в этой же сети. Сам делитель собираюсь рассчитать на всякий случай на подачу 24 вольт. То есть при 24 вольтах на вход АЦП больше 3.3 вольт не поступит. А вот все что свыше 24 вольт - это уже импульсые помехи.
  10. хорошо, попробую. Тогда еще вопрос - у меня 3 входа АЦП, один из них меряет напряжение питания, съем показаний идет на входе преобразователя питания после индуктивности, конденсатора и двунаправленного супрессора. Имеет ли смысл защищать это вход, если это уже защищено. Не будет ли это "надеванием презерватива на презерватив"?
  11. Совет то конечно хороший. Я его даже реализовала в проекте и чуть было уже на заказала плату, как вдруг поняла. Если делитель расположить после диода то получится ерунда - на вход схемы защиты, до делителя будут подаваться законные 20 вольт а диодная цепь, верхнее плечо которой подсоединено к 3.3. вольт будет ее безжалостно рубить. Если же верхнее плечо диодной защиты подключить к плюсу питания - та тогда цепь при вгозникновении высоковольтной помехи с этой же помехой и будет сравнивать сигнал, смысл диодной защиты пропадает... Как поступить-то?
  12. ODROID-XU4

    http://www.ebay.com/itm/ODROID-XU4-/172106...~4AAOSwll1WxaTK Кто-нибудь юзал уже такое? Как понимать это "Samsung Exynos5422 Cortex™-A15 2Ghz and Cortex™-A7 Octa core CPUs" ? Два камня с разным числом ядер? Или два варианта платы? Можно ли залить Андроид? Есть отзывы?
  13. Есть 20-ти ваттный динамик, есть магнитола, к которой он подключен. На этот динамик нужно подавать звук из дополнительного источника. Очень не хочется лезть в магнитолу, подавать звук до усилителя. Готова сделать отдельный усилитель на 20 ватт и переключать динамик - отключать его от магнитолы и подключать к моему усилителю. Самый простой вариант - реле, но хочется, чтобы не щелкало. Есть какие-нибудь микросхемные решения?
  14. Как раз и навсегда настроить, чтобы при импортировании изменений в PCB Editor не предлагало создавать комнату?
  15. Дисплей не мешал контроллеру. Еще раз говорю - кто-то мне посоветовал в SWD кабеле пустить только линии данных и плюса питания. У него видимо работало благодаря земле USB. У меня (еще 2 недели назад) не заработало, я соединила минус питания с землей J-LINK. Заработало. я осталась довольна. Нужен этот разъем был на один раз (при серийном производстве), почему бы и нет. Не знаю почему, может положение кабеля питания относительно какого-нибудь источника помех поменялось, но программироваться контроллер перестал. Когда я стала играться с RC-цепочкой на NRST, предположение о ресете от помех было ошибочным - как в том анекдоте про таракана, который без ног не слышит, а потому не реагирует на команды. Вылечилось только тогда, когда я подпаяла провод поближе к SWD и соединила его с землей J-LINK. На этом проблемы с прошивкой контроллера исчезли. Но осталась проблема с запуском. Так мне SWD для отладки хватало выше крыши. На худой конец, отлаживаемую информацию я выводила на экран. Все ножки контроллера были задействованы, UART-не вариант. Код дисплея был отработанный, проверенный, сам дисплей надежно припаян, исправен, как казалось. Поэтому когда включаешь устройство и видишь пустой экран, который даже не моргает от инициализации, первая мысль - про контроллер. Ничего он не наводил. Еще раз говорю, контроллер работал, просто если он обращался к дисплею в первую секунду после включени питания (не запуска, контроллера, а именно включения питания), дисплей молчал. Дисплей прогревался 2-3 секунды, обретал работоспособность и если контроллер перезагружался дисплей работал. Программа перестроена так, что контроллер обращается к дисплею непрерывно после старта, пока тот не ответит. В результате - холодное устройство выводит на экран информацию через 3-4 секунды, прогретое- сразу же. RC-цепочку с NRST убрала, ситуация не ухудшилась. Все программирутеся, все запускается, ничто не ресетится само.
  16. Разрешилось. Прям как в анекдоте - Владимир Владимирович, скажите, что делаю российские войска на Украине? - Что делают? Отсутствуют. Так и тут. Почему не запускается контроллер? Да на самом деле он запускался и наверное все это время тихо надо мной посмеивался. На самом деле ПЕРИОДИЧЕСКИ не стартовал не контроллера, а дисплей, программа контроллера узрев ошибку дисплея, спокойно шла дальше, а так как никаких других исполнительных устройств на плате нет, догадаться что контроллер работает никак было нельзя. Вы скажете, эх ты раззява, а отладчик на что? Дело в том, что, как я уже писала выше, за день до этого была замена микросхемы феном. С противоположной стороны платы располагается дисплей, его контроллер как раз в проекции микросхемы. Перегрела я контроллер и теперь дисплей должен 2-3 секунды после включения прогреться, тогда он заводится и работает без сбоев. Так вот по поводу отладчика - пока прошьешь контроллер, пока повозишься с кнопками - дисплей прогревается и обретает работоспособность. И когда происходит ресет, запускается функция инициализации дисплея и устройство в целом работает нормально. Иными словами, отладчиком по определению нельзя было поймать момент сбоя. А как же прикосновение пальца? Вот как раз прикосновение пальцем после прогрева дисплея и вызывало ресет и нормальный запуск устройства. Доказательство вышесказанному - убрала RC цепочку с NRST - все работает нормально. Как вылечилось? В конечном устройстве конечно же будет установлен исправный дисплей, но в программу добавлена проверка работоспособности дисплея в цикле, пока дисплей не откликнется. Спасибо за поддержку)
  17. ПРичиной появления пятивольтового импульса была "культура производства" - плохой контакт земли с земляным "крокодильчиком" осциллографа (все это сносно и даже без искажений компенсировалось связью по земле USB осцилографа и J-LINK, как оказывается для работы этого достаточно, а в моменты включения происходят перекосы). Пятивольтовый импульс исчез, на осциллографе плавное нарастание напряжения до 3.3 вольт. Но вот проблемы это почему-то не решило. Контроллер бывает не стартует. Может какая наносекундная помеха? У меня осциллограф всего 200 кГц дискретизации, может и не поймать. Подтверждаю. Я отпаяла преобразователь и запитала схему от импульсника на LM2596s - та же периодически возникающая проблема. Полностью отключила плату от паразитов, ни осциллографа, ни программатора, только питание - знаете, частота сбоев только возросла. Будем искать...
  18. Это не число проходит проверку, это ошибка логики. Условие сформировано так что идет проверка не лежит ли число в пределах, отличных от рассматриваемого? То есть не находится ли оно в пределах от 0 до 12 и от 20 до 65535. Естественно оно в этих пределах не находится, поскольку не является числом. Отсюда программа делает ошибочный вывод, что расссматриваемое число лежит в пределах от 12 до 20 ти. Правильно нужно было сделать так
  19. Согласна насчет емкостей. Странно, у меня и тантал на выходе и керамика... Плюс на NRST конденсатор... Не могут же все три конденсатора быть бракованными... С пайкой точно все хорошо - у меня нет тестовых точек на плате, точно помню как тыкала щупом на эти конденсаторы, напряжение на них есть. Ну бог с ними, я отпаяла ножку до конденсаторов и факт остается фактом - пребразователь бракованый. Буду разбираться потихоньку со всем.
  20. HardEgor, вот честно, еще до вашего сообщения сама к этому пришла. Отпаяла ножку выхода линейного преобразователя от платы, то есть фактически отсоединила всю схему от узла питания. Померяла напряжение на этой ножке - кошмар, на ней как раз 5 вольтовый всплеск. Бракованый преобразователь получается. P.S. сколько раз при подобных проблемах (не запускается, не программируется и пр.) первые советы, которые давали - посмоти помехи, посмотри разводку, посмотри длину кабелей. Некоторые, взглянув на топологию, критиковали разводку земли и били себя в грудь, что именно в этом дело. Никогда вышеперечисленное не оказывалось причиной, она жевсегда была банальна. Вроде нынешней.
  21. В целом может быть вы и правы. В моем случае, если настройки сбросятся, ничего страшного не произойдет. Их просто нужно будет поставить на место. И таким образом имеем два варианта 1. Ваш - прикручиваем CRC, загружаемся, ловим ошибку CRC - дальше что делаем? Наверное то же что делаю я - ставим безопасные настройки. Причем все, вы ведь по CRC всю структуру будете браковать? 2. Мой вариант - проверяем корректность настроек поштучно. Ставим по дефолту только тот параметр, который невменяем.
  22. Была такая мысль. Но из-за одного испорченного байта сбрасывать в дефолт все настройки? Не есть гуд. Можно конечно поставить цель меганадежного хранения данных, тогда нужно писать три копии переменных и сверять их содержимое, то есть будет возможность восстановления данных. Но это не самоцель.
  23. Коллеги, есть проблемка. Сохраняю настройки во флеш. Есть функция, которая читает настройки при старте и в случае их некорректности (порча ячейки) устанавливает дефолтное значение. Эта функция за время жизни устройства запускается как минимум один раз - при первой прошивке настройки пусты, программа понимает, что в ячейке бред, устанавливает дефолтное значение и пишет его во флеш. В одной из ячеек хранится float. Его корректность проверяется следующим образом: flash_data=flash_read(page_address+8); // Читаем OPTIONS_VAR.VoltageMAX=UintToFloat(flash_data); //Преобразуем во float if ((OPTIONS_VAR.VoltageMAX<12) || (OPTIONS_VAR.VoltageMAX>20)) // проверяем диапазон и если там некорректные данные то... { OPTIONS_VAR.VoltageMAX=14; // ставим дефолт OPTIONS_FLASH_ERROR=1; // ставим флаг ошибки, ориентируясь на который программа в дальшейшем пытается записать во флеш правильное значение } Но вот беда, при пустом флеше в ячейке располагается нечто, что будучи преобразованным при помощи UintToFloat отображается в отладчике как " -1.#QNAN ". Это полбеды, настоящая беда в том, что вышеприведенная функция считает что данные корректны и не считает нужным их исправлять. То есть " -1.#QNAN " удовлетворяет условиям if ((OPTIONS_VAR.VoltageMAX<12) || (OPTIONS_VAR.VoltageMAX>20)) Что делать? Добавлено спустя 1 минуту Кто-нибудь объяснит феномен, по которому над проблемой бьешся час, не находишь решения, потом задаешь вопрос на форуме, после чего решение, не дожидаясь ответов, приходит в голову немедленно?
  24. Какая-то дрянь все-таки на ножку проникает. Пойман всплеск до 5 вольт(входное напряжение, до преобразователя, около 6-ти вольт). Но, к слову, большинство осциллограмм без этого всплеска, но устройство в эти моменты не запускается. Может быть всплески столь коротки, что осциллографи их не ловит. Схему и топологию вы видели, что может быть источником этого всплеска? Вот что на осциллограмме при подключении питания к устройству.
  25. Причина практически нашлась. Видать какие-то помехи наводятся на NRST. У меня на нем резистор на плюс 10 кОм и керамика 0.1 мкф - на минус. Интересная картина - если подавать питание подключая и отключая разъем на плате - имеется описанная выше проблема. Если же дергать адаптер из розетки - все нормально - и стартует и программируется, но через раз. Зато если прикоснуться пальцем к точке,гда соединюятся конденсатор резистор и NRST - проблема исчезает навсегда. Не хочется методом тыка дальше работать, хочу спросить, что правильнее сделать - поиграться с сопротивлением, изменить емкость конденсатора? Или добавить в параллель конденсаторов другой емкости?
×
×
  • Создать...