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

On 8/22/2022 at 8:22 AM, NefoRalt said:

По хорошему, надо, чтобы АЦП (синий сигнал), измерял столько же раз, сколько раз появляется импульс (желтый сигнал). Или даже в два раза чаще.

Как-будто у вас АЦП слишком медленно делает преобразования.

Проверьте настройки тактирования АЦП, проверьте настройки выборки АЦП.

On 8/22/2022 at 8:32 AM, haker_fox said:

Непонятно. Раз у Вас АЦП запускается теперь по измерительному сигналу, почему это происходит только раз в 10 мс? 

Я раз в 50 mS насчитал 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, haker_fox сказал:

Непонятно. Раз у Вас АЦП запускается теперь по измерительному сигналу, почему это происходит только раз в 10 мс? Преобразование одного канала (даже нескольких) происходит гораздо быстрее... Куда тратится это время, на что?

Есть еще передача по ЮСАРТУ, но я не уверен, что это из-за него. Других вариантов пока нет.

snprintf(trans_str, 61, "%d, %d, %d, %d, %d, %d, %d, %d, %d, %d;\n", dark1[0], dark1[1], dark1[2], dark1[3], dark1[4], dark1[5], dark1[6], dark1[7], dark1[8], dark1[9] );
HAL_UART_Transmit_DMA(&huart1, (uint8_t*)trans_str, strlen(trans_str));
			

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, dimka76 said:

Я раз в 50 mS насчитал 

Господи) Я ошибся, мне кажется, что там вообще 5 мс) Клетка же 1 мс внизу в экране... Я не люблю риголовские осциллы, у них как-то ИМХО не всё чётко обозначено...

1 minute ago, NefoRalt said:

Есть еще передача по ЮСАРТУ

Если она по прерываниям, то сделайте прерывание УСАПП приоритетом ниже и используйте FIFO TX/RX, чтобы ничего не пропускать. Прерывания от АЦП важнее. Но как-то уж сильно ровно получается время задержки. Не уверен, что это УСАПП... А если он не по прерываниям, то вообще мешать не должен. Если, конечно, не блокирует прерывания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/22/2022 at 8:43 AM, NefoRalt said:

Есть еще передача по ЮСАРТУ, но я не уверен, что это из-за него. Других вариантов пока нет.

 

Для отладки уберите выдачу в UART, отключите DMA. Пускай АЦП делает однократное измерение. 

Убедитесь, что АЦП запускается на каждый измеряемый импульс.

On 8/22/2022 at 8:44 AM, haker_fox said:

Господи) Я ошибся, мне кажется, что там вообще 5 мс) Клетка же 1 мс внизу в экране...

Точно, 5 mS )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, dimka76 сказал:

Проверьте настройки тактирования АЦП, проверьте настройки выборки АЦП.

Разрешение АЦП - 12 бит, скорость сэмплирования - 4,5 циклов, работает на частоте 12 МГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, NefoRalt said:

Разрешение АЦП - 12 бит, скорость сэмплирования - 4,5 циклов, работает на частоте 12 МГц.

Там ещё выборка, ЕМНИП, 12.5 циклов. В итоге выходит 1.5 мкс. Примерно. Могу ошибаться, в доку лень лезть. Но точно меньше 1 мс. Много меньше)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

38 минут назад, haker_fox сказал:

Если она по прерываниям, то сделайте прерывание УСАПП приоритетом ниже и используйте FIFO TX/RX, чтобы ничего не пропускать. Прерывания от АЦП важнее. Но как-то уж сильно ровно получается время задержки. Не уверен, что это УСАПП... А если он не по прерываниям, то вообще мешать не должен. Если, конечно, не блокирует прерывания.

 

35 минут назад, dimka76 сказал:

Для отладки уберите выдачу в UART, отключите DMA. Пускай АЦП делает однократное измерение. 

Отключил ЮАРТ, но это ничего не изменило

30 минут назад, haker_fox сказал:

Там ещё выборка, ЕМНИП, 12.5 циклов. В итоге выходит 1.5 мкс. Примерно. Могу ошибаться, в доку лень лезть. Но точно меньше 1 мс. Много меньше)

1,4 мкс, если быть точным)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, NefoRalt said:

1,4 мкс, если быть точным)

Если быть точным, то (12.5 + 4.5) / 12e6 = 1.41666 .... мкс. Да, лучше округлить до 1.4 мкс, согласен. Я бухнул окруление "на так")

1 hour ago, NefoRalt said:

Отключил ЮАРТ, но это ничего не изменило

Трудно что-то дальше посоветовать. Пока в голову ничего не приходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/22/2022 at 9:23 AM, NefoRalt said:

Отключил ЮАРТ, но это ничего не изменило

1. У вас в main алгоритмическая ошибка.

    1.1. После завершения очередного преобразования АЦП выставляется переменная flag и по ней останавливается DMA. Получается у вас происходит одиночное преобразование, а не многократное.

    1.2. Пока преобразование не завершилось - переменная flag в нуле, и при этом DMA перевключается, если можно так выразиться ))) 

2. Отчего у вас сейчас стартует DMA ? От какого сигнала ?

3. От какого сигнала стартует АЦП ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 часов назад, dimka76 сказал:

2. Отчего у вас сейчас стартует DMA ? От какого сигнала ?

3. От какого сигнала стартует АЦП ?

АЦП, по идее, запускается от таймера, а ДМА следует за АЦП

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/23/2022 at 7:32 AM, NefoRalt said:

АЦП, по идее, запускается от таймера, а ДМА следует за АЦП

ОТ какого таймера ? От того, что генерирует тестовые импульсы ?

В вашем случае надо, чтобы АЦП запускался либо от того таймера, который генерирует тестовые импульсы, либо от внешнего прерывания

ножки, которая генерирует тестовые импульсы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, dimka76 сказал:

ОТ какого таймера ? От того, что генерирует тестовые импульсы ?

Да, от него. 

Решил полностью отчистить main. Оставил только запуск таймера и ацп-дма. Результат тот же 

NewFile0.jpg.1220b80adc6c90cd173a1b541f8290be.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 minutes ago, NefoRalt said:

Оставил только запуск таймера и ацп-дма. Результат тот же 

Я уже запутался во всём, что Вы написали))) Может быть изобразить графически что от чего запускается и все пути прохождения сигнала. Хотя бы от руки и фото сюда. На диаграммке желательно все сигналы, названия модулей микроконтроллера и нормы времени прописать... Я и сам так делаю в своей профессиональной Деятельности. Иногда, рисуя такую диаграмму, находишь ошибку или ошибку концепции.

32 minutes ago, NefoRalt said:

Оставил только запуск таймера и ацп-дма. Результат тот же

Проверяйте настройки в самих регистрах. Они доступны через отладчик. Сравнивайте с тем, что должно быть по Reference Manual. Возможно, что в Вашей библиотеке кроется ошибка или Вы неправильно интерпретировали работу с ней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 17.08.2022 в 12:28, NefoRalt сказал:

За длительность одного импульса (100 мкс) сделать 10 измерений напряжения

Либо добавить аналоговый компаратор, который будет обнаруживать импульс и запускать делитель до 100 кГц на таймере (reset и gated), который в течение этого импульса 10 раз запустит АЦП с нужной фазой, которую можно будет подкрутить регистром компаратора этого таймера, либо АЦП на этих 100 кГц должен работать постоянно, а импульс по данным с него обнаруживать его оконным компаратором (AWD), но тогда фаза будет произвольной и усреднение будет с ошибкой.

 

Вообще, всё это нагромождение сильно похоже на обработку сигнала с датчика тока — обычными решениями такое делается на порядки проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...