Например TDA7294

Форум РадиоКот • Просмотр темы - Энкодер и STM32
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб ноя 09, 2024 08:02:57

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


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



Начать новую тему Ответить на тему  [ Сообщений: 71 ]    , 2, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 10:54:18 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2523
Рейтинг сообщения: 0
Dimon456, а то, что битовым сдвигом определить количество оборотов нельзя будет! Придется использовать деление, которое, напомню, у STM32F0 СОФТОВОЕ!

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 11:27:35 
Открыл глаза

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Ср апр 17, 2019 12:04:23
Сообщений: 75
Рейтинг сообщения: 0
Что-то я совсем загнался, а может такое быть, что регистр CCR недоступен для записи? пишу туда напрямую через TIM3->CCR1, через функцию TIM_SetCompare1 (хотя это конечно одно и то же, подготовки как таковой не наблюдается), а толку ноль. Таймер в режиме интерфейса энкодера вроде как может генерировать прерывания по сигналам Capture/Compare, но упорно не хочет писать в регистры сравнения.
Вопрос, если я пытаюсь воспользоваться фильтром (TIM_ICInit), я получается отказываюсь тем самым от работы регистров CCR1 и CCR2 в режиме compare? Просто если так, тогда понятно, эти регистры содержат сигналы и доступны для чтения. Блин как быть? Хочется и фильтр чтобы был, и уставки были на прерывание.


Последний раз редактировалось auric Чт окт 14, 2021 14:05:22, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 14:03:52 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Eddy_Em писал(а):
что битовым сдвигом определить количество оборотов нельзя будет!
он у вас что, крутится с бешеной скоростью? Про какой энкодер речь идет?
Eddy_Em писал(а):
деление, которое, напомню, у STM32F0 СОФТОВОЕ!
На атмеге делили на 8-16МГц, а F0 на 48-72МГц не поделить?


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 14:39:59 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2523
Рейтинг сообщения: 0
Dimon456, если не экономить на мелочах, можно до того "допрограммироваться", что вместо STM32F0 потребуется F7!
Что до аврки, то ардуинщики такое подчас вытворяют, что волосы дыбом встают! Да, можно микроскопом орехи колоть, но зачем?

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Конденсаторы HONGA для силовых и промышленных источников питания высокой мощности

К конденсаторам источников питания высокой мощности предъявляются высокие требования по качеству и надежности. Пленочные – единственный тип конденсаторов, который может справиться с такой задачей. Компания Hongfa предлагает продукцию, которая подходит для применения практически во всех функциональных узлах типовых AC/DC- или DC/AC-преобразователей. Рассмотрим характеристики и применения плёночных конденсаторов Hongfa для различных решений.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 14:51:28 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Eddy_Em, так вы мне энкодер покажите или нет?


Вернуться наверх
 
Новые DC/DC от MEAN WELL со сверхшироким входным напряжением до 1500 В

Вслед за сериями на DIN-рейку DDRH-60/120/240 и на шасси RSDH-150/300 компания MEAN WELL выпустила новые маломощные DC/DC-преобразователи DDRH-15/30/45 со сверхшироким входным напряжением 150…1500 В, и монтажом не только на DIN-рейку, но и печатную плату или винтовым соединением. Все преобразователи семейства DDRH и RSDH работают при температурах -40…80°C и обладают высокой изоляцией 4000 В AC между входом и выходом, что обеспечивает надежную защиту. Они подходят для использования на высоте до 5000 м и сертифицированы по стандарту IEC62109-1 для фотоэлектрических систем. Преобразователи DDRH/RSDH есть в наличии и под заказ.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 16:02:10 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2523
Рейтинг сообщения: 0
энкодер покажете или нет?

Да любой энкодер с квадратурным выходом. От тупых "ручек" в формфакторе переменных резисторов до всякой оптики, устанавливаемой на вал шаговика и т.п.
В случае работы с шаговым двигателем нужно каждые несколько миллисекунд проверять, что там нащелкал энкодер. Сравнивать с тем, что нащелкал таймер, пинающий STEP шаговика, принимать решение - уменьшать скорость или же придерживаться рампа.
Я для всех трех шаговиков делаю это в суперлупе. Просто сравниваю текущее значение системного таймера (его SysTick каждую миллисекунду инкрементирует) с временем прошлой проверки. Как не равно, проводится проверка. И понятно, что если эта проверка будет занимать слишком много времени, то могут быть неравномерности хода. Ведь проверить нужно еще и концевики и т.п.
Еще один вариант - запихать проверку в само прерывание SysTick, понизив его приоритет до самого дна, но мне это как-то совсем претит. Нехорошо большие куски, выполняющиеся дольше единиц микросекунд, пихать в прерывания.
Вот если вынести проверку концевиков и всякую математику в суперлуп, то можно и в прерывании проверять заедание вала и управлять рампом. Понятно, что никаких делений в этом случае не допускается - слишком длинная операция.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 17:07:14 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Eddy_Em писал(а):
Да любой энкодер с квадратурным выходом. От тупых "ручек" в формфакторе переменных резисторов до всякой оптики, устанавливаемой на вал шаговика и т.п.
Думал, что мы про какую-то конкретную модель говорим, а вы охватили весь спектр.
Я то же как-то в поисках идеального решения, и пока его не нашел, а ваше
Eddy_Em писал(а):
Я в качестве пробы вот такое наваял.
Спойлер
Код:
            if(tim3cnt != TIM3->CNT){
                int32_t diff = TIM3->CNT - tim3cnt;
                if(tim3upd){
                    if(TIM3->CR1 & TIM_CR1_DIR) diff -= 80;
                    else diff += 80;
                    tim3upd = 0;
                }
                tim3cnt = TIM3->CNT;
это не идеальное решение, и только проба, +TIM3->CNT ожно три раза читаете, я бы один раз его прочитал.

Давайте поговорим про такой
СпойлерИзображение
это, наверное, самый дешевый.
При всех включенных "цифровых фильтров" не удается добиться его устойчивой работы при повороте вала на один шаг, хочу что бы как в магнитоле отрабатывал. Конденсаторы отсутствуют на выходах энкодера, вот все думаю попробовать поставить на 1nF.

В теме AVR программную обработку перетрясли с ног до головы, но там то же как бы без кондеров ни как.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 17:23:31 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2523
Рейтинг сообщения: 0
Dimon456, я с таким и начинал. Никаких проблем не было - поворот на 1 щелчок четко отрабатывался. Фильтр настроил - и ОК. А без фильтра - да, глючило.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 18:42:51 
Опытный кот
Аватар пользователя

Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 744
Откуда: Караганда, Казахстан
Рейтинг сообщения: 0
Dimon456 писал(а):
В теме AVR программную обработку перетрясли с ног до головы, но там то же как бы без кондеров ни как.
Этот энкодер разбирали в нескольких темах АВР, к одной и я приложил свою руку. Что могу сказать? Новый такой энкодер дребезжит действительно только на фронтах замыкания/размыкания контактов. Однако, после одной-двух тысяч поворотов он перестает быть новым, и с него лезет такое, что ой! Коллега sunjob привел осциллограммы того, что выдает этот энкодер поизносившись. Далее мы с ним общались в личной переписке, я правил программу, он пробовал ее со своим раздолбанным энкодером, результаты коллега sunjob опубликовал здесь.

А с красивыми оптическими энкодерами (наприме, такими) - никаких вопросов, они спокойно работают, в том числе, и с аппаратной поддержкой инкрементных (квадратурных) энкодеров STM32.

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 18:57:41 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
afz, но как же так, ведь Eddy_Em, писал
Eddy_Em писал(а):
я с таким и начинал. Никаких проблем не было
надо было просто
Eddy_Em писал(а):
Фильтр настроил - и ОК.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 19:03:37 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2523
Рейтинг сообщения: 0
Однако, после одной-двух тысяч поворотов он перестает быть новым, и с него лезет такое, что ой! Коллега sunjob привел осциллограммы

Жесть-то какая! Хотелось бы все-таки посмотреть, как на это будет реагировать МК. Если дребезг недетерминированный, никаких проблем не должно быть: ну, подумаешь, будет младший бит дребезжать. Да даже если второй бит — хрен с ним, можно ограничить работу минимум двумя "щелчками". А вот если щелчки детерминированы, то нафиг нужен такой дурацкий энкодер? Там и RC-фильтр не поможет, т.к. поди-ка определи частоту среза, чтобы при этом еще и на быстрое вращение энкодера реагировать...

Да, кстати, а не пробовали задрать фильтр на максимум? Конечно, это ограничит частоту вращения, но для энкодера, который крутит человек, не критично. Это ж не движок какой на 10000RPM!

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 19:17:27 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Eddy_Em писал(а):
а не пробовали задрать фильтр на максимум?
Да куда уж максимальнее
Код:
   TIM3->CR1 |= TIM_CR1_CKD_1;
   TIM3->CCMR1 |= TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0;
   TIM3->CCMR1 |= TIM_CCMR1_IC2F_3 | TIM_CCMR1_IC2F_2 | TIM_CCMR1_IC2F_1 | TIM_CCMR1_IC2F_0;


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 20:49:34 
Опытный кот
Аватар пользователя

Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 744
Откуда: Караганда, Казахстан
Рейтинг сообщения: 0
Нет, коллеги. Вы не совсем четко представили себе суть происходящего. Есть два сигнала, очень похожих. И сдвинутых на 90 градусов. Высокий уровень сигнала - контакт разомкнут (скользит по голому стеклотекстолиту, без фольги. Низкий уровень с жуткими помехами - контакт скользит по фольге, время от времени обрываясь. Контактов этих два и расположены они так, что четверть периода они оба разомкнуты, следующую четверть периода первый замкнут, второй еще разомкнут, третью четверть замкнуты оба и четвертую первый уже разомкнулся, второй еще замнут. Далее все повторяется. Так вот, прочувствуйте, что там творится в момент, когда замкнуты оба контакта и на оба входа вашего устройства валится тот самый мусор от плохих сухих контактов.

Моя методика с довольно грубой программной моделью сочетания интегратора и триггера Шмитта вполне справляется с этими помехами при не очень высокой скорости вращения вала энкодера (спокойное вращение рукой). Если более тщательно подобрать константы, возможно, она справится и с резким поворотом ручки энкодера, но тут, как всегда, будет компромисс между надежностью и скоростью.

Спросите, зачем это нужно, не проще ли выкинуть этот энкодер и поставить новый? Ответ прост: чем надежнее будет распознаваться вращение энкодера, тем реже придется брать в руки паяльник, чтобы его заменить... :-)

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 21:06:35 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2523
Рейтинг сообщения: 0
Dimon456, фильтр неправильно настроен! У тебя fdts/32, 8 семплов. А можно сделать 0101 - fdts/2, 8 семплов. Будет куда как лучше!

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 21:40:14 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Eddy_Em, я усе перепробовал, начиная от 0000 до 1111, и это CKD от 00 до 10.
Осталось только кондерчики припаять, еще есть вариант с DVD плеера выдрать, уж больно они мне нравятся, но они без кнопки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Чт окт 14, 2021 21:57:18 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2523
Рейтинг сообщения: 0
Аж интересно этого "пациента" пощупать стало! С таким-то дребезгом.
Надо будет, если уж делать будет нефиг на выходных, раздраконить один свой энкодер, чтобы звенел получше, да попробовать с ним поработать...
Хотя.. Я работаю с STM32F0, может, это глюки именно STM32F1? Там-то полным-полно багов в железе...

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Пт окт 15, 2021 06:37:42 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 80
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 445
Откуда: 69.Ржев
Рейтинг сообщения: 4
Если энкодером управляет человек, какая разница сколько именно натрещит энкодер при резком повороте. Резко крутанули - параметр +10. Я так делал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Пт окт 15, 2021 08:13:16 
Опытный кот
Аватар пользователя

Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 744
Откуда: Караганда, Казахстан
Рейтинг сообщения: 0
Eddy_Em писал(а):
Надо будет, если уж делать будет нефиг на выходных, раздраконить один свой энкодер, чтобы звенел получше
Делается довольно просто: берем тихий слабенький движок с редуктором, 30-90 об/мин, через гибкий вал (отрезок резинового шланга 6 мм внутренний) подключаем его к энкодеру и запускаем на некоторое время. Раз в полчаса смотрим, что он выдает. Заодно можно будет оценить долговечность этого энкодера и косвенно - всей партии этих энкодеров, купленной у одного продавца.

Противодействие такому дребезгу - всегда компромисс. Ладно, разряд можно сделать быстрым - если на подтяжку к +5в ставить обычные 10 кОм, поставить разрядный резистор 100 Ом, и вперед. В моей программной модели - еще проще - по замыканию контакта сразу разряжать модель интегратора в ноль. А вот с зарядом сложнее. С одной стороны за время обрыва плохого контакта при скольжении по сектору фольги интегратор не должен успеть зарядиться до порога срабатывания триггера Шмитта. С другой, при сходе контакта в просвет между секторами фольги, интегратор обязан успеть зарядиться до срабатывания триггера Шмитта за время, заметно меньшее четверти периода, иначе будут пропуски. И, при таком подходе, верхняя скорость вращения энкодера всегда ограничена.

Подозреваю, если смазать стеклотекстолитину с контактами какой-нибудь приличной консистентной смазкой, долговечность этого энкодера увеличится раз в 10. Если, конечно, освоить технологию их разборки и последующей правильной сборки. Я с этим точно не справлюсь - зрение не позволит.

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Сб окт 16, 2021 15:43:33 
Открыл глаза

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Ср апр 17, 2019 12:04:23
Сообщений: 75
Рейтинг сообщения: 0
Решил потестировать каскад таймеров, тк так и не добился полной защиты от сбоев при анализе в прерывании, но честно говоря не понял сути каскадирования, толку у меня от него ноль, настроил таймера так:
Код:
// Внутренний триггер для слейва выставляем на сигнал Update
TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update);
//Обозначаем TIM3 как мастер
TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);

//Для TIM3 Master необходим TIM4 Slave TS=TIM4_ITR2
TIM_SelectInputTrigger(TIM4, TIM_TS_ITR2);
//Выбираем тип связи таймеров
TIM_SelectSlaveMode(TIM4, TIM_SlaveMode_External1);

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Энкодер и STM32
СообщениеДобавлено: Сб окт 16, 2021 18:19:37 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
a797945 писал(а):
какая разница сколько именно натрещит энкодер при резком повороте.
Вот именно, без разницы.
Мы имеем что? таймер с аппаратной поддержкой энкодера.
a797945 писал(а):
Резко крутанули - параметр +10. Я так делал.
А я так не делал.
Таймер посчитает сам, мне достаточно только считать значение счетного регистра и сравнить его с предыдущим значением, и я буду знать не только в какую сторону у меня энкодер крутится но и на сколько крутанули.

Основная проблема в том, что плохо отрабатывает один щелчок.


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

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


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

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


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

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


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