Jump to content

    

Vladimir_T

Свой
  • Content Count

    559
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Vladimir_T

  • Rank
    Vladimir_T

Recent Profile Visitors

3971 profile views
  1. Нашел причину! Обнаружил причину в функции формирования условия формирования массива данных АЦП. Эта функция вычисляет средний уровень Uср сигнала по предыдущим периодам, потом в прерываниях АЦП ожидается сигнал, по превышению Uср формируется флаг разрешения заполнения массива данными. Этот флаг иногда пере взводится, что и приводит к появлению ошибки в работе фильтра. Беспечность подвела - я был уверен в безупречности функции запуска. Еще раз всех сердечно благодарю за помощь.
  2. Сигнал на АЦП приходит из усилителя с узкополосным фильтром. Генератор высокостабильный TXCO, вся система от него работает. Прием по USB, по протоколу, с контрольной суммой. Ошибка, конечно, аппаратная набегает - буду продолжать ее поиски. Благодарю всех за дельные советы и желание помочь.
  3. С МатЛабом не умею работать. Для тестирования фильтра заранее сформирован табличный синус -сигнал, который подменяет сигнал АЦП. В этом случае артефактов не замечено. Видать в сигнале все же есть помехи.
  4. Стараюсь у себя искать ошибки в первую очередь. Много раз перепроверил - пока ошибок не нашел. Выборка, конечно не абсолютно синхронная, но я пытаюсь ее сделать таковой. По предыдущим выборкам находится средний уровень, как уровень запуска АЦП. А последующая обработка состоит в том, чтобы методом квадратурного демодулятора вычислить фазу сигнала. Эта часть работает хорошо, но вот из-за сбоев в НЧ-фильтре появляются ошибки. Их тоже можно отфильтровать, но сам факт их появления - не дает покоя, их не должно быть.
  5. Почти всегда в начале сбора массива, и я это принимаю за переходной процесс. Чтобы переходной процесс уменьшить по амплитуде, не обнуляю промежуточный вспомогательный массив фильтра, чтобы помнил историю, но этот переходный процесс есть всегда - это приемлемо. Но иногда один раз из двадцати этот переход появляется в середине - это приводит к большой ошибке в конечных данных.
  6. Здравствуйте, уважаемые коллеги, очень прошу подсказать в вопросе фильтрации данных АЦП. С помощью программы Filter Solution 2020 сформировал цифровой полосовой фильтр Чебышева 4-го порядка. Работает вроде норамально. Параметры сбора данных: 1. Данные с АЦП набираются в буфер; 2. Частота входного сигнала - 3 кГц: 3. Количество периодов входного сигнала - 6; 4. Частота дискретизации входного сигнала - 810 кГц; 5. Количество выборок АЦП на период входного сигнала - 270. На рисунках два сигнала: после фильтра и до фильтра. Когда переходной процесс в первом из шести периодов, то приходится первый период просто исключать. Но почему переходной процесс бывает и на других периодах? При том, что сигнал стационарный, срывов нет, а фильтр не часто, но иногда сбоит. В чем может быть причина? Такое поведение приводит в последствии к ошибкам. Буду очень признателен за любую подсказку. Исходный текст самого фильтра. long double DigFil_Cheb_4 (__packed u16 *invar, long double initval, int setic) /******************************************************************************/ /* 4th Order Low Pass Chebyshev I */ /* Bilinear Transformation with Prewarping */ /* Sample Frequency = 810.0 KHz */ /* With 3rd Order Sin(X)/X Correction */ /* Standard Form */ /* Arithmetic Precision = 16 Digits */ /* */ /* Pass Band Frequency = 3.000 KHz */ /* Pass Band Ripple = 0.5 dB */ /* */ /******************************************************************************/ { long double sumnum=0.0, sumden=0.0; int i=0; static long double states[7] = {0.0,0.0,0.0,0.0,0.0,0.0,0.0}; static long double znum[8] = { 0.0, 0.0, 0.0, 1.037407205012938e-08, 4.14962882005175e-08, 6.224443230077626e-08, 4.14962882005175e-08, 1.037407205012938e-08 }; static long double zden[7] = { 5.789401890785755e-03, -5.037903441204501e-02, .3103400477673596, .1064201415196578, -2.763130885390835, 5.182779870521576, -3.791819375911347 }; if (setic==1){ for (i=0;i<7;i++) states[i] = 6024635.234649306*initval; return initval; } else{ sumnum = sumden = 0.0; for (i=0;i<7;i++){ sumden += states[i]*zden[i]; sumnum += states[i]*znum[i]; if (i<6) states[i] = states[i+1]; } states[6] = *invar - sumden; sumnum += states[6]*znum[7]; return sumnum; } }
  7. Здравствуйте, подскажите в чем может быть дело? В АД17 при выводе на печать или PDF на листах схемы в УГО микросхем отсутствуют надписи для выводов (дизигнаторы) на правых полях, а на левых есть. Шрифты ГОСТ. Все параметры системы просмотрел, но причину не нашел Прошу извинить за качество рисунка. Прошу извинить и прошу удалить мое сообщение, так как нашел ответ на форуме в соседних ветках.
  8. Делаю как предлагаете: скачал CubaF7, а она не устанавливается на WIN7/32. Есть плата Nucleo722. Установил CubaMX F7, создал проект, скомпилировал, отладка работает. Таким образом, новый Keil и старый проект прекрасно принял и новый процессор освоить появилась возможность. Сердечно благодарю всех за помощь.
  9. Благодарю всех за советы. MPU в проекте, как родной, без него нельзя. В версии Keil 5.24 этой процессор не поддерживается, нашел сервис-пак Keil.STM32F7xx_DFP.2.14.1, установил, в общем списке доступных процессоров он появился, а вот в свойствах проекта, где нужно выбрать, этот процессор не появился. Нашел в папке ARM Кейла папку Pack, там и нашел библиотеки и файлы конфигурации для семейства STM32F7. Можно ли настроить MDK, чтобы все эти обновления были бы доступны? Пример для 722-го из этой папки скомпилировал, но там применяется библиотеки HAL. Насколько они надежны и оптимальны для использования?
  10. Такие разные процессоры и периферия. Читал в брошюрках от ST, что переход вполне закономерный и не затратный. Благодарю, буду тщательнее изучать мат часть.
  11. Здравствуйте, уважаемые коллеги, давно назрел вопрос по переводу проекта с STM32F405 на STM32F722. Проект для 405-го создан в среде KEIL 4.70. Поэтому хочу спросить наперед, что мне нужно предусмотреть. 1. Будут ли корректно работать на ПК две среды MDK Keil (4.70 и 5.20)? Это нужно, чтобы и прежний проект поддерживать (для 405-го). 2. MDK Keil 5.20 будет компилировать проект версии 4.70? В проекте используются только стандартные библиотеки CMSIS. 3. Если проект хорошо отлажен и работает на 405-м будет ли он нормально работать на 722-м? Заранее благодарен.
  12. По FFT

    Благодарю вас, я просто забыл про эту библиотеку, а вернее сказать не знал...
  13. По FFT

    Здравствуйте, уважаемые коллеги, подскажите пожалуйста, посоветуйте, пожалуйста, библиотеку вычисления Фурье-преобразования адаптированную для STM32F405 ? Желательно с описанием. Сколько не пробовал разных примеров: на ПК - результат и на МК существенно отличаются. На МК все расчеты ведутся в формате float.
  14. Великолепная книга! Плохая работа синтезатора вызвана, видимо, ошибками трассировки и согласования выхода PLL с нагрузками. Осталось только это поправить... Но методику я понял. Благодарю вас за вашу огромную помощь!