Контроллер оптических линеек / энкодеров (Step/Dir)

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

Я б предложил тебе посмотреть в сторону stm32f3 или stm32f4 - в варианте один МК на всё может получиться дешевле. Да и stm32f1 ST гнобит помаленьку, в том числе и с помощью цен - предлагает stm32f2 в качестве альтернативы.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

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

Один проц на все - тоже проблемно.
Чего-то может не хватить, и плату сложнее разработать, возрастает вероятность допустить ошибку.
Я подумаю над вариантом более дорогого проца.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

UAVpilot писал(а):Я б предложил тебе посмотреть в сторону stm32f3 или stm32f4 - в варианте один МК на всё может получиться дешевле. Да и stm32f1 ST гнобит помаленьку, в том числе и с помощью цен - предлагает stm32f2 в качестве альтернативы.
Не удалось найти подходящих вариантов.
Мне на каждую ось нужно минимум три 16-битных таймера, при чем два из них должны уметь считать в обе стороны (для подсчета входящих импульсов Step и для обработки сигнала с энкодера).
этим требованиям удовлетворяют не многие процессоры. В частности у STM32F103, которые я использую - 6 двусторонних таймеров, и, вроде бы, можно было бы обрабатывать одновременно три оси (если повезет и получится распределить функционал по ногам),
но у него лишь два DAC выхода.

Стал искать процессоры с тремя аналоговыми выходами и USB - оказалось это только STM32F373
Но у них только 5 таймеров способны считать вверх и вниз.
2016-08-28_23-41-05.png (2129 просмотров) <a class='original' href='./download/file.php?id=87937&mode=view' target=_blank>Загрузить оригинал (324.88 КБ)</a>
Есть процессоры F3 с шестью таймерами, но без USB, т.е. возвращаемся к началу.
В общем - рылся долго, сравнивал цены, доступность, возможность замены,.. но безрезультатно.
Максимум удается запихнуть два канала в один процессор, но при этом и цена процессора вдвое выше, и сложность разработки возрастает.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

Вот смотрю я на фотку StepMaster v2.5 и не понимаю тебя... Кто мешает оставить два stm32f103, а вместо stm32f100 поставить stm32f102 или тот-же stm32f102 в 48-ногом корпусе?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

UAVpilot писал(а):Вот смотрю я на фотку StepMaster v2.5 и не понимаю тебя... Кто мешает оставить два stm32f103, а вместо stm32f100 поставить stm32f102 или тот-же stm32f102 в 48-ногом корпусе?..
А я не вижу смысла делать относительно дорогую сложную пятиканальную плату с большим количеством разъемов.
Мне вот потребовался контроллер линеек на два канала. Кому-то нужно будет три, кому-то один.
Да и разработка одноканального варианта займет меньше сил и времени, что сократит стоимость, особенно с учетом того, что спрос на эту штуку будет относительно скромным.

Как я уже писал - получилось бы устройство с ценой в пару тысяч рублей. И мне заработок и покупателям вполне подъемная сумма.
Сколько нужно каналов - столько и купил.
Все равно настраивать каждый канал в отдельности, да и общего у них почти ничего нет. Так же как у драйверов моторов - вполне удобно, что они отдельные.

Или ты предполагал апгрейдить степмастер и добавить ему возможность контроля по линейкам?
Мне кажется это уже слишком.
К тому же алгоритм работы степмастера значительно отличается от ПИД управления. Т.е. это получились совсем разные по функционалу устройства.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение selenur »

У stm есть микроконтроллеры поддерживающие возможность "Encoder interface mode", "quadrature (incremental) encoder input", в таком режиме, вроде используется лишь 1 таймер (если я правильно понял), в контроллере который я сейчас изучаю stm32vet6, из 7-ми таймеров, 3 таймера поддерживают этот режим. Может найдутся и для твоих задач подходящие микроконтроллеры....
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

michael-yurov писал(а):А я не вижу смысла делать
Вот тут я ещё более не понял... Вчера ты жаловался, что нет чипов с 12-ю таймерами, а сегодня оказывается тебе и хватит и всего трёх... :thinking:
:hehehe:
selenur писал(а):У stm есть микроконтроллеры поддерживающие возможность "Encoder interface mode", "quadrature (incremental) encoder input"
Так он и использует эти таймеры - один на входе для step/dir, второй планирует для линейки. Получается по два реверсивных таймера на ось.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение sidor094 »

selenur писал(а):У stm есть микроконтроллеры поддерживающие возможность "Encoder interface mode",
Все поддерживают.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

UAVpilot писал(а):Вот тут я ещё более не понял... Вчера ты жаловался, что нет чипов с 12-ю таймерами, а сегодня оказывается тебе и хватит и всего трёх... :thinking:
:hehehe:
Ну ты предложил посмотреть процессоры старших серий. Я так понял, что предполагалось найти микроконтроллер, способный обрабатывать сразу несколько каналов, так что в пересчете затрат на 1 канал получится не дороже, чем с F100 микроконтроллером.
UAVpilot писал(а):Я б предложил тебе посмотреть в сторону stm32f3 или stm32f4 - в варианте один МК на всё может получиться дешевле. Да и stm32f1 ST гнобит помаленьку, в том числе и с помощью цен - предлагает stm32f2 в качестве альтернативы.
F2 и F3, действительно, незначительно отличаются по цене от F1 при схожем же функционале, но значительно большей производительности.
Но большая производительность мне не требуется, т.к. код не прожорливый. Нужна только аппаратная поддержка деления, что обеспечивает F1.

Я просто рассмотрел варианты, но вернулся к первоначальной идее. Что, в общем-то, хорошо.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

michael-yurov писал(а):F2 и F3, действительно, незначительно отличаются по цене от F1 при схожем же функционале, но значительно большей производительности.
Я б посоветовал обратить внимание на других производителей, например на Сypress и NXP, у последнего вообще во всех моделях не только есть порт USB, но уже и аппаратный стек зашит.

Если делать в виде одна плата на ось/две, то наверно имеет смысл просто вывести на трёхконтактный разъём UART1 и в комплекте давать копеечный кабель USB-COM(TTL) с ответным разъёмом - можно будет и конфигурять и прошивку заливать и какой-нибудь мониторинг/диагностику приделать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение sidor094 »

UAVpilot писал(а):Я б посоветовал обратить внимание на других производителей, например на Сypress и NXP, у последнего вообще во всех моделях не только есть порт USB, но уже и аппаратный стек зашит.
С Сypress не работал но у NXP всего один энкодер.И таймеры считают только вверх.Для привода не удобно.Приходится энкодер подключать к порту энкодера,а степ /дир через прерывания. Так что на NXP остался только контроллер ЧПУ.А для приводов использую STM. Так ,что в данном случае STM предпочтительней.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

UAVpilot писал(а): Если делать в виде одна плата на ось/две, то наверно имеет смысл просто вывести на трёхконтактный разъём UART1 и в комплекте давать копеечный кабель USB-COM(TTL) с ответным разъёмом - можно будет и конфигурять и прошивку заливать и какой-нибудь мониторинг/диагностику приделать.
Рассматривал такой вариант.
Заказал несколько разных переходников для пробы. Хочу проверить с какими меньше проблем с драйверами в новых OS.
UART, естественно, вывел.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

michael-yurov писал(а):Хочу проверить с какими меньше проблем с драйверами в новых OS.
В Линуксе любые работают замечательно и без установки драйверов. :)
В Win7 на прошлой неделе поставил родной драйвер pl2303 для поддельного pl2303hx - работает нормально, даже stm32 шьётся.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

Больше волнуют 64-битные Win 8.1 и Win 10 в плане автозагрузки рабочих драйверов из сети.
Про драйверы в Linux - знаю.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

Если вернуться к USB и прикинуться HID, то никаких драйверов вообще не понадобится. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

UAVpilot писал(а):Если вернуться к USB и прикинуться HID, то никаких драйверов вообще не понадобится. :)
Пока что плату развожу под STM32F103C8T6
UART вывел.
USB подключил.
Оставил выбор RS422 или TTL (в зависимости от установленных на плату компонентов).
Сигнал с нолевой метки пропустил через микроконтроллер и вывел на PC817.
Сигнал Enable тоже на всякий случай провел через микроконтроллер.

Как уж буду подключаться (как виртуальный COM порт или HID) пока решил.
На счет возможности обновления - тоже сомневаюсь пока.

Сейчас мне нужно начертить плату и отдать в изготовление, а потом уже видно будет, к чему все это приедет.

Блин, забыл про аналоговый выход...
Еще раз блин! В этом процессоре нет DAC!

Ну и ладно. Значит не судьба.
Сделаю сначала без аналогового выхода, а потом переделаю плату, скорее всего на двухканальную, учтя недоработки.
Можно, конечно, ШИМ перевести в аналог, но это нужно еще подумать, как правильно сделать, и, опять же, нужен будет выход таймера (видимо тот же, что на step). Лучше проц заменю потом.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение michael-yurov »

Нарисовал платку.
Закажу пару десятков для пробы.
2016-08-31_14-15-52 (2).png (1980 просмотров) <a class='original' href='./download/file.php?id=88073&mode=view' target=_blank>Загрузить оригинал (204.8 КБ)</a>
2016-08-31_14-16-27.png (1980 просмотров) <a class='original' href='./download/file.php?id=88074&mode=view' target=_blank>Загрузить оригинал (509.64 КБ)</a>
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

Разводка довольно безграмотная... :)
Например конденсаторы кварца нельзя присоединять к общей земле. Если вдруг на каком экземпляре генератор не всегда будет запускаться - не удивляйся...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Сергей Саныч »

UAVpilot писал(а):конденсаторы кварца нельзя присоединять к общей земле.
Земля до выводов МК достаточно короткая и толстая.
Посмотрел на STM32-discovery - конденсаторы кварцев разведены не менее "безграмотно".
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Блок контроля для оптических линеек (проект)

Сообщение Serg »

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

Вернуться в «Электроника»