B10 - RES, B1 - DC для дисплея. Для отладки использую выход MCO(А8) , его нужно соединить с А0, А1. Время измерения 0.5 сек, 6-7 знаков стабильны. Тим5 в режиме захвата считает тактовые тики 125Мгц, Тим2 считает импульсы измеряемой частоты со входа ETR , Тим4 каждые 0.5 сек в прерывании по переполнению включает прерывание по захвату Тим5, в котором это прерывание запрещается и по разности показаний счетчиков за измеряемый интервал рассчитывается частота. Настройки в Кубе. Диапазон частот 0.1 Гц - 50Мгц. Стартуем. HAL_TIM_Base_Start(&htim2); // В кубе выставить тактирование ETR2, остальное по умолчанию. HAL_TIM_Base_Start_IT(&htim4); // В кубе настроить прерывание через 0.5с или другое. HAL_TIM_IC_Start_IT(&htim5, TIM_CHANNEL_2); // В кубе выставить канал 2 Input Capture, включить прерывание , остальное по умолчанию.
Прерывание Тим4, время измерения. void TIM4_IRQHandler(void) { /* USER CODE BEGIN TIM4_IRQn 0 */ NVIC_EnableIRQ(50); snprintf(str1, 96,"%.6f", f1); // В настройках куба разрешить printf_Float. ST7735_WriteString(0, 0,str1 , Font_11x18, ST7735_GREEN, ST7735_BLACK); ...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Тим4 каждые 0.5 сек в прерывании по переполнению включает прерывание по захвату Тим5, в котором это прерывание запрещается
Во первых, запрет прерываний не запрещает захват, по приходу события регистр всё равно обновится. Во вторых, фронт входного сигнала может прийти между событием, вызывающем прерыванием и командой чтения регистра. Это будет вызывать периодические ошибки.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Andrey_B, я тестировал с LSE/4. Нужно прежде посмотреть осциллом на сигнал, бывает фигня. Захват не мешает. Ошибок не замечал. По идее должны быть ошибки, если предыдущее показание счетчика больше и разность отрицательна, но это не наблюдается. Сначала делал условие перед расчетом, но потом отказался. Чем проще, тем понятней. codenamehawk, этот частотомер измеряет Герцы, а не Херцы!:)
И я об этом, если хотите чтобы было как у всех, то герцы, английскими символами обозначают Hz, а Gz ближе всего к GHz. Впрочем каждый сам себе художник, делайте как получается.
codenamehawk, На видео нельзя исправить, но в программе можно. snprintf(str1, 96,"%.6f", f1);// выводится то, что в кавычках. Вам должно понравиться : snprintf(str1, 96,"%.6f Hz ", f1);
Ещё одна версия частотомера на STM32F401. Вход А0. Перед чтением показаний таймеров каналы синхронно закрываются, после чтения открываются. Исключается вероятность захвата между чтениями двух таймеров. Ведущий TIM2 по захвату с входа А0 считает импульсы и управляет захватом TIM5, который считает системные тики. TIM10 отвечает за время счета 0.5сек. https://drive.google.com/file/d/1heW0HQ ... drive_link //архив проекта в CubeIDE. К сожалению, в кубе нельзя настроить нужный режим для TIM2. Эти строки нужно вписать вручную вместо тех, что делает куб в настройках TIM2. sSlaveConfig.InputTrigger = TIM_TS_TI1FP1; sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
Логика пока такая. if(flag==1)//время измерения прошло. { //выключение каналов. //Сохранение свежих данных с каналов. //включение каналов. //Извлечение ранее сохраненных данных. //Расчет частоты. //Замещение ранее сохраненных данных на свежие. //Вывод частоты. //Сброс флага. } Что бы реализовать конвейер будем данные каналов сохранять в массивы m[](канал измеряемых импульсов) и n[](канал тактовых импульсов). Ещё нам понадобится сдвигать данные этих массивов(по 4 значения) вправо такой строкой. for(i=3;i>0;i--) m[i]= m[i-1], n[i]= n[i-1];
А куда вставить строку сдвига? if(flag==1)//время измерения прошло. { //выключение каналов. //Сохранение свежих данных с каналов в начало массивов n[] и m[]. //включение каналов. //Извлечение ранее сохраненных данных c конца массивов n[] и m[]. //Расчет частоты по данным начала и конца массивов n[] и m[]. //Вывод частоты. for(i=3;i>0;i--) m[i]= m[i-1], n[i]= n[i-1];//сдвиг вправо массивов n[] и m[] //Сброс флага. } Где-то так.
На ВЧ от 50 МГц обычно 50 Ом, но мало вольт для входов STM. Тут поможет повышающий ВЧ трансформатор. Низкие и средние частоты до 50Мгц оптимально полевик BF998R на входе и HC132 или другой триггер Шмидта.
Карма: 1
Рейтинг сообщений: 11
Зарегистрирован: Вс май 15, 2022 23:04:19 Сообщений: 98 Откуда: Белгородская обл.
Рейтинг сообщения:0
NXP выпуск 998ых двухзатворных полевиков прекратил в 2019. И ели они 15-20 ма Сейчас рекомендуют в ВЧ биполярники при 3,3 в мшу 2SC3099 3ма. Тригер Шмидта на входе МК мне кажется лишний.
Последний раз редактировалось Игорь2111 Пт дек 01, 2023 23:44:34, всего редактировалось 1 раз.
Игорь2111, с тюнера на спутник выдрал биполярник на 12 Гиг и поставил в схему с ОЭ вместо BC546 - по частоте выигрыш небольшой, а чуйка на низах упала в разы. А какую схему посоветуешь? Посмотрел входа на STM - там Шмидт заложен, может обойдемся без внешнего?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения