[Решен] Кодер не уменьшается

школьник
Солнце 02 декабря 2018 г. 18:43
У меня есть энкодер, прикрепленный к таймеру2 (PA0 и PA1), и он не уменьшается. У меня есть 2 других энкодера, которые работают правильно. Я могу поменять проводку другим таймером, и физический энкодер работает правильно. Я не думаю, что это провода, потому что я вижу напряжение на обоих выводах Encoder A/B.



Это приводит меня к нескольким вопросам:

1. Hardwaretimer :: AttachInterrupt (int -канал, обработчик voidfuncptr). Это не кажется каналом. Похоже, что это Timer_interrupt_id, и в примере используется канал 0, но не использует DEF в таймере.H и, кажется, сбрасывает значение значения, заявив, что «канал тоже не значит здесь."Очень запутанно. Нужно ли примеры обновлять? Является ли timer_update_interrupt единственный допустимый идентификатор для энкодера?
onTransmit(handler); onReceive(handler);

Mrburnette
Солнце 02 декабря 2018 г., 19:44
Немного времени с Google «Поиск сайта» предполагает, что STM32FXXX и множественные прерывания для нескольких энкодеров не очень хорошо работают:

http: // stm32duino.com/viewtopic.PHP?T = 3681#P45739

Этот подход может быть полезен:

https: // www.STM32duino.com/viewtopic.PHP?t = 15

Или вот результаты Google

Я упоминаю в моем вступлении в новый пользователь, что на старом форуме Leaflabs рассматривались множество общих проблем; например:

http: // форумы.Leaflabs.com/форумы.лист ... TML?ID = 110

Если вы заинтересованы в обучении таймерам: PDF

Охват того, как внутреннее переключение осуществляется внутри UC на ввод/вывод слишком сложный, чтобы обсудить здесь. Для людей, не относящихся кей, все это звучит странно, но я считаю, что эта статья будет поучительной:
https: // itp.Нью -Йоркский университет.edu/physcomp/mressons/mi ... функции/ Каждый микроконтроллер имеет разные конфигурации для своих булавок, и часто один вывод будет иметь более одной функции. Это объединение функций на одном выводе называется мультиплексированием PIN. Некоторые компании по микроконтроллерам называют матрицу ввода/вывода «Ткань (ING)», чтобы вы могли встретить этот термин вместо мультиплексирования. В некоторых микроконтроллерах, таких как Cypress PSOC, гибкость для картирования штифтов для функционирования распространяется практически на все булавки. POC 4 Pioneer Kit-это простая в использовании и недорогую платформу разработки, позволяющая создавать уникальные дизайны с гибкостью PSOC 4. Показывая семейство устройств PSOC 4200, этот комплект дает вам силу коры Arm Cortex-M0 в сочетании с Полностью настраиваемая аналоговая и цифровая ткань PSOC в ладони Луча

Flyboy74
Солнце 02 декабря 2018 г., 21:00
Хорошо, я нуб, который следил за всем постом о счетчиках энкодера, так как у меня есть проект, который я хочу использовать для них для. В прошлом я использовал внешний счетчик, LS7366R.

Мой первый вопрос заключается в?? Как только таймер настройка не может просто прочитать регистр TIMX_CNT в любое время, когда вы хотите узнать, что такое текущее количество? Конечно, вам также придется проверить поток или по потоку.

Кроме того, с помощью операционной связи счетчика, не подсчитанного, может ли таймер настроен только на один вывод, а не подсчитывает в качестве квадратурного счетчика на 2 контактах, так как отдельный счетчик будет только подсчитать, но квадратурная счетчик будет считать как вверх, так и вниз.

Mrburnette
Пн декабря 03, 2018, 2:15 утра
Есть два типа вращающегося энкодера: абсолютный и инкрементный. Абсолютный ротационный энкодер производит уникальный цифровой код для каждого отдельного угла вала. Инкрементный вращающийся энкодер производит две квадратные волны, обычно на квадратурном выходе (канал A и B). Квадратура означает, что выходные импульсы канала A и B находятся на 90 градусов вне фазы.

На микроконтроллере STM32F103C8 есть также встроенный таймер, который можно использовать для чтения квадратурного энкодера. Этот таймер действует как счетчик. Используя этот таймер, мы можем считать вращающийся энкодер без использования внешнего прерывания. Следовательно, ЦП не прервет каждый подъем и падающий край квадратурного сигнала только для увеличения или уменьшения счетчика. Это код для квадратурного энкодера с использованием Timer Encoder:
Больше здесь
-и-
https: // электроника.Stackexchange.com/Q ... прерывания

школьник
Пн, 03 декабря 2018 г., 3:22
это оказалось типом : oops:

В прошлом я использовал несколько кодеров на синей таблетках, но с Opto прерывателями, а не механическими переключателями. Это сработало хорошо, и в приложении я использовал их, там не было заметных проблем с отскоком.

У моих нынешних энкодеров EC12, кажется, есть проблемы с отскоком дешевых энкодеров, которые я использую. Я собираюсь попробовать фильтр RC, чтобы нацелиться на 3 мс максимальный отскок из листа данных Encoder. У меня есть оптические кодеры, и их довольно легко сделать, поэтому я могу вернуться к ним, если фильтры не работают хорошо.


Что касается мультиплексирования PIN -кода. Мой конкретный вопрос включает в себя отсутствие настройки. Есть ли данный опрос Timer Timer с аппаратным энкодером? Меня очень интересует этот единственный случай, чтобы лучше понять, какие булавки я могу использовать для GPIO, и TX/RX1..2

Flyboy74
Пн декабря 03, 2018, 3:42 утра
Так что я понимаю, что я могу пережить, если желать, но я не понимаю, почему это обязательно.

Хороший пример - я использую квадратурные энкодеры на своих двигателях, чтобы создать петлю обратной стороны. Но я не хочу прерывания с каждым районом счетчика. Я видел написание некоторыми замечательными ребятами по робототехнике, которые выигрывают много робототехники, которые вы не должны читать энкодер на скорости, когда энкодер не повернул не менее 10 шагов (рекомендуется гораздо более высокий счет, чем это, так как он все еще допускает ошибку до 10%, я.E, если это на 9.9 клещей он будет читать 9 или на 0.9 более 9 клещей). Также обычно вы хотите убедиться, что чтение не быстрее 10 Гц (20 Гц для супер отзывчивого двигателя), потому что в реальной жизни требуется время, чтобы двигатель изменил скорость, я.e Если вы прочитаете энкодер, и он говорит, что двигатель поворачивается, чтобы замедлить, поэтому увеличивайте обязанность к источнику питания на двигатель, сразу же прочитайте энкодер, двигатель все равно будет вращаться на той же скорости, он нуждается как минимум 0.1 сек, чтобы начать изменение скорости двигателя, если у вас нет супер высокопроизводительного двигателя, который может ускорить супер быстро.

Почему я не могу сделать то же самое, что и с внешним счетчиком счетчика LS7366R, и просто опросить его, когда я хочу вместо прерывания каждый раз, когда он увеличивает? С кодерами с высоким разрешением прерывание будет стрелять все время, особенно если у вас есть несколько энкодеров, которые работают одновременно.

Вот дешевый мотор/коробка передач/энкодер, который я использовал https: // www.aliexpress.com/item/1-set-2 ... A4F9AD2D28 Он имеет 11 -квадратный энкодер полюса на двигателе с коробкой передач 34: 1 к валу. Выполнение математики 11 (полюс) x 4 (квадратура) x 34 (передача) x 210 (оборотная часть) дает 314 160 клещей/сек, это много прерываний для каждого двигателя, который вы добавляете.

Mrburnette
Пн, 03 декабря 2018 г., 3:52
[школьник - Пн декабря 03, 2018 3:22] - ...
Что касается мультиплексирования PIN -кода. Мой конкретный вопрос включает в себя отсутствие настройки. Есть ли данный опрос Timer Timer с аппаратным энкодером? Меня очень интересует этот единственный случай, чтобы лучше понять, какие булавки я могу использовать для GPIO, и TX/RX1..2
Из вики...
Изображение

школьник
Пн, 03 декабря 2018 г., 5:09
Я попробовал эту схему, но она только улучшает поведение. Свалипы направления являются самыми раздражающими.

https: // exeeda.com/greenail/encoder-with-filter

школьник
Пн декабря 03, 2018 5:28 утра
[Mrburnette - Пн, 03 декабря 2018 г. 3:52] -
[школьник - Пн декабря 03, 2018 3:22] - ...
Что касается мультиплексирования PIN -кода. Мой конкретный вопрос включает в себя отсутствие настройки. Есть ли данный опрос Timer Timer с аппаратным энкодером? Меня очень интересует этот единственный случай, чтобы лучше понять, какие булавки я могу использовать для GPIO, и TX/RX1..2
Из вики...
// http: // wiki.STM32duino.com/images/a/ae/ ... разгона.гифка
Так же, как T1C1 прослушивает изменения края на BP12, BA8, PA7?

Какие суффиксы N/E -каналов?

Я предполагаю, что T1C1N отличается от T2C1, так как «m Использует T3C2 на PA7, но это перекрытие сбивает с толку, поскольку оно работает, возможно, он должен работать? Детали закурились в таймере.c где -нибудь, что настраивает булавки?

Я полагаю, что у меня есть еще один вопрос, если TX1, RX2 отображаются с USBERIAL, и если они не должны использоваться? Я использовал T4, и он работает с USBSerial, который, кажется, функционирует.

Подскажите множество вопросов и много пропущенных знаний, чтобы узнать, где найти ответы в документах.

Мой код для этого проекта здесь, кстати: https: // github.com/jschoch/grbl-mitm-pander

Вот снова фильтр RC, который я пытался сделать работу, но не https: // exeeda.com/greenail/encoder-with-filter

Flyboy74
Пн, 03 декабря 2018 г., 11:12
Я принес энкодеры Switch, у которых аппаратное оборудование деберует. Схема выглядит так, как будто она может быть похожа на опубликованный вами фильтр. У меня есть некоторые здесь, и я сравнивал их в области прицела с коммутаторами кодера без оборудования, и в прицеле показано всего 1 чистый край/переход по сравнению с переключателями кодера без схемы, не имеющей большого отскока во время транспортировки.

Я принес свой некоторое время назад, но быстрый поиск обнаружил, что они выглядят одинаково. https: // www.aliexpress.com/item/rotatin ... 49d882338a Хотя продавец называет их потенциометром, который они на самом деле энкодером.

школьник
Пн, 03 декабря 2018 г., 19:33
Следуя за моими вопросами
[школьник - Пн, 03 декабря 2018 г., 5:28 утра] -



Так же, как T1C1 прослушивает изменения края на BP12, BA8, PA7?

Согласно этому, F1 не допускает множественного отображения, но F4

https: // электроника.Stackexchange.com/Q ... E-Alternat

Я все еще не могу найти, где контакты канала таймера наносятся на карту.
[школьник - Пн, 03 декабря 2018 г., 5:28 утра] -

Какие суффиксы N/E -каналов?

Я предполагаю, что T1C1N отличается от T2C1, так как «m Использует T3C2 на PA7, но это перекрытие сбивает с толку, поскольку оно работает, возможно, он должен работать? Детали закурились в таймере.c где -нибудь, что настраивает булавки?

Я полагаю, что у меня есть еще один вопрос, если TX1, RX2 отображаются с USBERIAL, и если они не должны использоваться? Я использовал T4, и он работает с USBSerial, который, кажется, функционирует.
Похоже, здесь единственные жесткие булавки
https: // github.com/rogerclarkmelbourne/ ... rd/poard.час

Вики https: // wiki.STM32duino.com/index.PHP?Т ... Usb_serial Не очень четко сформулировано (загрузка слова, кажется, отбрасывает меня), и я не уверен, как его интерпретировать, но, поскольку оно использует «серийный.Печать "Я предполагаю, что серийные коммуникации по USB также сопоставлены с PA9/PA10.

Казалось бы, это указывает на то, что TX1/RX1 не следует использовать с T1C1, если вы не можете переназначить T1C1 на альтернативный вывод (который я не могу выяснить, как это сделать), но может использоваться с T4C1, так как диаграмма платы только в списке. возможное альтернативное отображение, а не параллельное отображение.

Я до сих пор не знаю, что такое суффиксы N/E.

Я не уверен, что я разъясняю или смущаю на этом этапе...

школьник
Пн, 03 декабря 2018 г., 19:55

Я все еще не могу найти, где контакты канала таймера наносятся на карту.
булавки нанесены здесь, на доске.CPP

https: // github.com/rogerclarkmelbourne/ ... /доска.CPP

Похоже, они на карту на карту и не имеют никаких параллельных отображений, как кажется, возможно, на F4.

Таким образом, для STM32F103C контакты таймера, применимые для аппаратных квадратурных кодеров:

Таймер, CH1, CH2

Timer1, PA8, PA9
Timer2, PA0, PA1
Timer3, PA6, PA7
Timer4, PB6, PB7

Так что происходит, когда вы пытаетесь использовать PA9? Если T1C1 Timer Triggers и вы отправляете данные на TX1, путает ли он кодер? Похоже, что, поскольку поведение периферийных устройств, разделяющих вход!

школьник
Вторник 04 декабря 2018 г., 19:34
Я считаю, что моя проблема - это шум, но я такой нуб, я ничего не уверен на этом этапе. Я подключаю синюю таблетку с компьютером с ЧПУ, и шум был в целом, так как у меня есть стук, шаговые драйверы, а также шпиндель 220V и VFD.

Как ни странно, моя доска фильтров, кажется, вообще не работает. Когда я тестируюсь на нефильтрованную версию того же кодира, я получаю худшие результаты с фильтруемой версией. При тестировании, не подключенном к машине ЧПУ, я не вижу никаких проблем с обменами направления или пропущенными сигналами. Я могу отслеживать значения кодеров с серийным графиком, и они являются линейными и без проблем на нефильтрованных кодерах. Я также могу проверить оптические энкодеры с 600ppr, и они отслеживают без сбоев так быстро, как я их переворачиваю. Отфильтрованная плата будет обменять направление, если я переверну ее слишком быстро.

Когда я подключен к ЧПУ, я получаю шлепанцы направления, и я также получаю состояние, где кодировщик, кажется, ничего не делает, пока я не поверну в противоположное направление для целевого или двух путешествий. Это почти как "замок"

Вернуться к мультиплексированию, я не могу воспроизводить какие -либо проблемы. Версия на машине ЧПУ фактически не будет использовать PIN -код TX1, если он обрабатывает движение кодера. Версия, не подключенная к машине ЧПУ, действительно использует TX1, но, похоже, не вызывает никаких сбоев.

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

Аппаратное обеспечение наверняка - это весело!

П.С. Поскольку моей первоначальной проблемой была опечатка, если я отметил эту тему?

П.П.S - это хорошее время для меня, чтобы инвестировать в новичок осциллограф?

Mrburnette
Ср. 05 декабря 2018 г. 12:36
[школьник - Вторник 04 декабря 2018 г. 19:34] - ...
Аппаратное обеспечение наверняка - это весело!

П.С. Поскольку моей первоначальной проблемой была опечатка, если я отметил эту тему?

П.П.S - это хорошее время для меня, чтобы инвестировать в новичок осциллограф?
Да, оборудование - это весело.
Я пометил эту ветку [Решено]

По моему мнению, хороший объем не так полезен для работы UC, как и анализатор логики портов Saleae 8. Ты всегда будет Найдите проблемы переменного тока с раковиной, если вы не работаете в клетке Faraday.

Если ваш бюджет позволяет, хорошо Прицел также может иметь логический залив анализатора.

Я настоятельно рекомендую вам взять несколько дешевых досок Blue_boards и построить несколько специальных источников сигнала... Несколько лет назад, работая с алгоритмами GPS, я построил: этот Fox Gen.
Затем вы можете использовать свой новый логический анализатор для квалификации вашего нового генератора тестирования.

Луча

STM32WB - DualCore с 2.4 ГГц радио