Например TDA7294

Форум РадиоКот • Просмотр темы - STM32. Быстрый частотомер. Reciprocal counter.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 07:56:53

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 229 ]     ... , , , 9, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Пн дек 08, 2014 14:48:50 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
wait mode это грустно... это ограничить себя во всём...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Вт дек 09, 2014 00:05:24 
Нашел транзистор. Понюхал.

Зарегистрирован: Сб фев 09, 2013 23:00:23
Сообщений: 183
Рейтинг сообщения: 0
Galizin писал(а):
Я позволил себе сделать предположение что Вы не поняли и расписал все с точностью до битов и алгоритмов.


Обижаться мне не на что - Вы меня не знаете и можете предположить что угодно. Хотя вроде идею CCR = CNT + 2 высказал именно я. Но оказалось что это не было оригинально :)

Что до битов и алгоритмов, я с большим удовольствием обсужу до того как делать. STM32 для меня относительно новая игрушка и все что я знаю - исключительно из чтения datasheet'ов.

Более того: я не все понял из вашего поста:
>>>Предсказание срабатывания уже нужно будет записывать в CCR а не в ARR.

По моемУ методу, пока не проверенному, как раз предсказанное значение записывать в ARR. Если входная частота (относительно) постоянна, то можно ничего не переписывать заново. Пусть на входе около 1 МГц. Запишем один раз в ARR скажем 10000 и будем получать update event каждые 10 мсек. По ним делаем capture опорной частоты. Набрали скажем 10 (или 100) отсчетов - считаем наименьшие квадраты и т.д. Если есть графийеский LCD, можно и график с дисперсией нарисовать. Если же на каком то из отсчетов оказалось, что время на переполнение сильно отличается от рассчетного, поменяем ARR. Естественно по системному таймеру следим за тем чтобы переполнения наступали. Если скажем за 50 мсек не было переполнения, либо сигнал пропал совсем, либо частота сильно поменялась.

При этом методе индивидуальные захваты могут заметно отличаться от идеальных (например 10 мсек), но при усреднении это не важно - если частота увеличилась и захваты раз в 5 мсек, наберем их 20 а не 10 и все равно получим "большой" gate time те же 0.1 (или 1) сек.

Если есть какие либо соображения чем это плохо, с удовольствием выслушаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Вт дек 09, 2014 14:14:57 
Мучитель микросхем

Карма: 11
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 475
Откуда: Воронеж
Рейтинг сообщения: 0
alexf58 писал(а):
вроде идею CCR = CNT + 2

HHIMERA показал что это безосновательно и приводит к лишнему ожиданию.
alexf58 писал(а):
каждые 10 мсек.

Вот это можно улучшить Нужно делать захват как позволяет процессор и сигнал, чем чаще тем лучше. Чем больше захватов тем точнее посчитается частота. Так что как только сохранили данные нужно сразу же делать следующий захват, вернее подготавливаться к следующему захвату. Потом начинать обсчитывать и т.д. А оно пусть захватывается в процессе расчета. Время расчета не постоянно. Но такой алгоритм обеспечит минимальный простой процессора и захват максимального количества точек, следовательно максимальную точность МНК.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Вт дек 09, 2014 20:39:32 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
alexf58 писал(а):
Хотя вроде идею CCR = CNT + 2 высказал именно я. Но оказалось что это не было оригинально :)

Ну и что??? Главное, что вы представляете как оно должно работать... У других всё ещё хуже... для них всё это вообще тёмный лес...
Цитата:
По моемУ методу, пока не проверенному, как раз предсказанное значение записывать в ARR. Если входная частота (относительно) постоянна, то можно ничего не переписывать заново. Пусть на входе около 1 МГц. Запишем один раз в ARR скажем 10000 и будем получать update event каждые 10 мсек.

Метод не нов... Для отладки алгоритма и прочего самое оно... Вот и сейчас на столе на STM8S103K3 юзается тоже самое... 100мС, потом домножается или меняется входной делитель... После этого тупо молотит в цикле... частота то не меняется... Важнее было проверить устойчивость измерений и вообще возможность реализации Reciprocal counter на STM8S... потому что полностью хардварно реализовать нет возможности... из-за особенностей STM8S...
Цитата:
Если есть какие либо соображения чем это плохо, с удовольствием выслушаю.

Это не хорошо и не плохо... это возможности реализации... И чем их больше, тем лучше... всегда можно что-то выбрать и добиться результата...
Начинайте работать с железом... многое прояснится и утрамбуется... Быть может у вас получится лучше чем у других... всякое бывает...

================
Можно с уверенностью сказать, что частотомер с Reciprocal counter на STM8S состоялся... даже без хардварного вязания таймеров... Семь знаков получаем устойчиво, неадекватностей не выявлено... кроме причуд ИАРа... чтобы им там до рвоты икнулось...
Осталось прямой счёт попробовать... для полной картины...

UPD: В общем прямой счёт на STM8S тоже взлетел... Хотя... на таких частотах (в случае с STM8S)... юзать прямой счёт и особого смысла нет... ИМХО...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Ср дек 10, 2014 00:54:17 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
Любопытно, что за причуды ИАРа?


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Ср дек 10, 2014 01:28:09 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
ИАР под STM8...

Нет поддержки uint64_t...
float и double два сапога пара... на одну ногу...
Покоцанный sprintf...
Но самое интересное... pow()... 10 в степени 2 оказывается... 99 !!!

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Пт дек 12, 2014 07:54:43 
Нашел транзистор. Понюхал.

Зарегистрирован: Сб фев 09, 2013 23:00:23
Сообщений: 183
Рейтинг сообщения: 0
Попробовал свою идею в железе. Частичный успех. Вариант выводить наружу события от таймера, тактируемого входной частотой и заводить внешним проводом обратно на вход захвата другого таймера работает. Входная частота 10 МГц прекрасно меряется практически без участия CPU. Пока частота сильно не меняется, я не переписываю период входного таймера.

Теперь плохие новости. Похоже я не разобрался до конца с таймерами. Хочу чтобы TIM2 генерировал события по переполнению (update)
MMS=010b

и чтобы TIM3 захватывал по внутреннему тригеру от TIM2 (ITR1)
CCMR1->CC1S=11
SMCR->TS=001

и ничего не работает. Что то видимо упускаю. Вот все регистры таймеров:

TIM2

CR1 = 0x1
CR2 = 0x20,
SMCR = 0x4000,
DIER = 0x0,
SR = 0x1f,
EGR = 0x0,
CCMR1 = 0x0
CCMR2 = 0x0
CCER = 0x0,
CNT = 0x1fb9
PSC = 0x0,
ARR = 0xffff,
RCR = 0x0,
CCR1 = 0x0,
CCR2 = 0x0,
CCR3 = 0x0,
CCR4 = 0x0,
BDTR = 0x0,
DCR = 0x0,
DMAR = 0x1,


p/x TIM3->SR
$5 = 0x19
p/x *TIM3
$6 = {
CR1 = 0x1
, CR2 = 0x20
SMCR = 0x10
DIER = 0x6
SR = 0x19
EGR = 0x0
CCMR1 = 0x103
CCMR2 = 0x0
CCER = 0x10
CNT = 0x3d95
PSC = 0x0
ARR = 0xffff
RCR = 0x0
CCR1 = 0x0
CCR2 = 0x0
CCR3 = 0x0
CCR4 = 0x0
BDTR = 0x0
DCR = 0x0
DMAR = 0x1

Не подскажете, люди добрые?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Пт дек 12, 2014 10:30:20 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
HHIMERA писал(а):
Нет поддержки uint64_t...


Вообще нет типа long long, или только unsigned?

HHIMERA писал(а):
float и double два сапога пара... на одну ногу... Покоцанный sprintf...


Плавающую запятую и sprintf на микроконтроллерах ни разу не использовал. Но я пока начинающий программист, все еще впереди.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Пт дек 12, 2014 10:46:16 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
Леонид Иванович писал(а):
Вообще нет типа long long, или только unsigned?

Ни того, ни другого... 64-бит отсутствует как класс... что в некоторых моментах напрягает...
Цитата:
Плавающую запятую и sprintf на микроконтроллерах ни разу не использовал.

Запилил самостоятельно... "но осадочек остался"... Особенно... если оно нужно было только для проверки...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Пт дек 12, 2014 10:56:03 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
alexf58 писал(а):
и ничего не работает.

"Разделяй и властвуй!"(С)
Вывод наружу - одна задача... ввод-захват - другая... триггеры - третья... что не работает то???
Типичные примеры есть в референсе... в SPL... и в сниппетсе под F0... Их можно смело юзать под любой камень... с учётом различий таймеров... они там, в основном, обезличенные...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Пт дек 12, 2014 11:05:34 
Нашел транзистор. Понюхал.

Зарегистрирован: Сб фев 09, 2013 23:00:23
Сообщений: 183
Рейтинг сообщения: 0
HHIMERA писал(а):
Вывод наружу - одна задача... ввод-захват - другая... триггеры - третья... что не работает то???


Вывод наружу - работает
Захват с внешней ноги - тоже
Комбинация 1 и 2 тоже, т.е. идея работает через внешний провод.

Таймер 3 успешно захватывает с внешней ноги (РА7) на СС2. Не захватывает update event TIM2, хотя тот успешно переполняется. И генерирует PWM, когда включил.

Вопрос мой именно про связку TIM2 TRGO как сигнал для CC1 TIM3.

P.S. Snippets бегло смотрел, но нигде не видел capture по внутреннему тригеру. Может плохо искал.

P.P.S. Нашел! Бит в CCER разрешает работу capture, но не влияет на захват с внешнего пина (?).

Короче все заработало по описанной схеме. Чуть позже посмотрю, дает ли больше точности, чем просто reciprocal. Но главная цель достигнута: более или менее разобрался с хитрыми таймерами. Заодно можно довольно точный частотомер сделать без внешних элементов кроме входных цепей.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Пт дек 12, 2014 12:24:19 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
HHIMERA писал(а):
64-бит отсутствует как класс...


Да, странно. Для 8-битных AVR 64-битные типы в IAR есть, в частотомере их активно использую.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Вт дек 16, 2014 18:53:43 
Мучитель микросхем

Карма: 11
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 475
Откуда: Воронеж
Рейтинг сообщения: 0
http://electronix.ru/forum/index.php?sh ... 796&st=135 - вот тут еще была дискуссия по поводу увеличения разрешающей способности.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Вт дек 16, 2014 20:16:14 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
Это старая тема, ничего нового.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Чт дек 18, 2014 14:11:18 
Опытный кот

Карма: 1
Рейтинг сообщений: 173
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 775
Рейтинг сообщения: 0
Кто-нибудь прикручивал к STM32 двойной интерполятор от PICTIC http://www.ko4bb.com/dokuwiki/doku.php?id=precision_timing:pictic Что то с синхронизацией АЦП и таймеров запутался.
Можно ли логику PICTIC (первой версии с дифференциальными ключами) запихать в CPLD? Как выровнять фронт для двух каналов управления ключами?
Ну и встроенный ЦАП STM32 интересно бы приспособить для автокалибрации тока интерполятора.


Вложения:
Комментарий к файлу: Интерполятор частотомера
PICTIC1_Interpolator.jpg [107.79 KiB]
Скачиваний: 532
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Чт дек 18, 2014 15:13:05 
Грызет канифоль

Карма: 4
Рейтинг сообщений: 33
Зарегистрирован: Чт ноя 29, 2012 08:27:22
Сообщений: 295
Рейтинг сообщения: 0
Цитата:
Интересно, интересно... Кто-то проверял... или это ОБС???

Это, наверное, я писал . У меня был проект датчика - меандр с таймера подавался через резистор на параллельный контур , частота меандра - на склоне характеристики контура, сигнал на контуре детектировался, напряжение пропорционально индуктивности и присутствию металла. Конденсатор пленочный. Кварцевый генератор внешний. STM32F051.
Вот в этой системе на выходе детектора были импульсные помехи с периодичностью от 1 сек до 10 минут , период зависел от температуры кристалла. Плата была оценочная, на ней стоял и ДДС генератор от того-же питания и того-же генератора. Если сигнал подавался от ДДС - скачков не было . Я смог предположить только срыв захвата clock PLL .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Чт дек 18, 2014 15:52:18 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
khach писал(а):
первой версии с дифференциальными ключами


А почему именно первой версии? Диодный коммутатор второй версии лучше.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Чт дек 18, 2014 19:30:02 
Опытный кот

Карма: 1
Рейтинг сообщений: 173
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 775
Рейтинг сообщения: 0
Вторая версия не лучше, а проще. Время обратного восстановления примененных диодов 1n4448 4 нс, что ограничивает точность интерполятора. На паре дифференциальных транзисторов можно интерполятор с точностью 50 пс делать. Там ограничивающим фактором будет внутренний джиттер микросхем управления.
С другой стороны параметры коммутатора на диодах требуют достаточно высокого напряжения управления. Для 5В TTL это работать будет, а для современных CPLD c 3 вольтовым питанием- скорее всего нет. С другой стороны CPLD, не предназначенные для работы с дифференциальными сигналами, дадут разбег по времени между ключами в паре, придется или задержки подбирать, или ставить внешние драйвера, что усложняет схему. В идеале вся логика интерполятора делается на дискретных ЭСЛ или ПЭСЛ схемах, но где их достать за вменяемую цену, да и по питанию потребности будут высокие.
Так что пока хочу сделать модель первого интерполятора на xilinx coolrunner (он с диффсигналами вроде умеет работать) и посмотреть, что получится, ну и написать софт для STM32.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Чт дек 18, 2014 20:03:03 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1027
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
Ничего подобного. Переключатель тока на диодах - самый быстрый. И у него значительно меньшая инжекция заряда. Совсем не обязательно ставить 1N4148, можно взять и что-то побыстрее. Но даже с ними можно получить порядка 50 пс. Сам лично получал с ними примерно 250 пс, но я особо за разрешением не гнался. Время восстановления диода и апертурное время переключателя тока - не одно и то же.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32. Быстрый частотомер. Reciprocal counter.
СообщениеДобавлено: Вс дек 21, 2014 13:55:03 
Опытный кот

Карма: 1
Рейтинг сообщений: 173
Зарегистрирован: Сб сен 12, 2009 15:43:19
Сообщений: 775
Рейтинг сообщения: 0
Леонид Иванович писал(а):
Ничего подобного.

Вы тут самый большой эксперт по любительским интерполяторам. Вот думаю как сравнить объективно разные конструкции. Может что посоветуете по методике проверки точности интерполяторов. Что то типа гистограмм. Ведь еще надо учитывать внутренний джиттер ПЛИС, а он весьма большой, до 300 пс. С интерполятором на 5 вольтовой внешней логике трудно согласовать логические уровни STM32.
Попросили вот к этой конструкции http://radiokot.ru/forum/viewtopic.php?f=10&t=110984 добавить НЧ канал вот и хочется втиснуть интерполятор для повышения точности.
ЗЫ. Планируется, что программировать CPLD будет сам STM32, так что при повторении конструкции проблема с программатором отпадет.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 229 ]     ... , , , 9, , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y