Контроллер оптических линеек / энкодеров (Step/Dir)
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Я б предложил тебе посмотреть в сторону stm32f3 или stm32f4 - в варианте один МК на всё может получиться дешевле. Да и stm32f1 ST гнобит помаленьку, в том числе и с помощью цен - предлагает stm32f2 в качестве альтернативы.
			
			
									
									Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- michael-yurov
 - Почётный участник

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

 - Сообщения: 11730
 - Зарегистрирован: 26 июл 2012, 00:10
 - Репутация: 4703
 - Настоящее имя: Михаил Львович
 - Откуда: Новоуральск
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Не удалось найти подходящих вариантов.UAVpilot писал(а):Я б предложил тебе посмотреть в сторону stm32f3 или stm32f4 - в варианте один МК на всё может получиться дешевле. Да и stm32f1 ST гнобит помаленьку, в том числе и с помощью цен - предлагает stm32f2 в качестве альтернативы.
Мне на каждую ось нужно минимум три 16-битных таймера, при чем два из них должны уметь считать в обе стороны (для подсчета входящих импульсов Step и для обработки сигнала с энкодера).
этим требованиям удовлетворяют не многие процессоры. В частности у STM32F103, которые я использую - 6 двусторонних таймеров, и, вроде бы, можно было бы обрабатывать одновременно три оси (если повезет и получится распределить функционал по ногам),
но у него лишь два DAC выхода.
Стал искать процессоры с тремя аналоговыми выходами и USB - оказалось это только STM32F373
Но у них только 5 таймеров способны считать вверх и вниз. Есть процессоры F3 с шестью таймерами, но без USB, т.е. возвращаемся к началу.
В общем - рылся долго, сравнивал цены, доступность, возможность замены,.. но безрезультатно.
Максимум удается запихнуть два канала в один процессор, но при этом и цена процессора вдвое выше, и сложность разработки возрастает.
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Вот смотрю я на фотку StepMaster v2.5 и не понимаю тебя... Кто мешает оставить два stm32f103, а вместо stm32f100 поставить stm32f102 или тот-же stm32f102 в 48-ногом корпусе?..
			
			
									
									Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- michael-yurov
 - Почётный участник

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

 - Сообщения: 4605
 - Зарегистрирован: 21 авг 2013, 19:44
 - Репутация: 1622
 - Настоящее имя: Сергей
 - Откуда: Новый Уренгой
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
У 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/
						Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Вот тут я ещё более не понял... Вчера ты жаловался, что нет чипов с 12-ю таймерами, а сегодня оказывается тебе и хватит и всего трёх...michael-yurov писал(а):А я не вижу смысла делать
Так он и использует эти таймеры - один на входе для step/dir, второй планирует для линейки. Получается по два реверсивных таймера на ось.selenur писал(а):У stm есть микроконтроллеры поддерживающие возможность "Encoder interface mode", "quadrature (incremental) encoder input"
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- 
				sidor094
 - Мастер
 - Сообщения: 826
 - Зарегистрирован: 20 фев 2014, 09:13
 - Репутация: 81
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Все поддерживают.selenur писал(а):У stm есть микроконтроллеры поддерживающие возможность "Encoder interface mode",
- michael-yurov
 - Почётный участник

 - Сообщения: 11730
 - Зарегистрирован: 26 июл 2012, 00:10
 - Репутация: 4703
 - Настоящее имя: Михаил Львович
 - Откуда: Новоуральск
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Ну ты предложил посмотреть процессоры старших серий. Я так понял, что предполагалось найти микроконтроллер, способный обрабатывать сразу несколько каналов, так что в пересчете затрат на 1 канал получится не дороже, чем с F100 микроконтроллером.UAVpilot писал(а):Вот тут я ещё более не понял... Вчера ты жаловался, что нет чипов с 12-ю таймерами, а сегодня оказывается тебе и хватит и всего трёх...![]()
F2 и F3, действительно, незначительно отличаются по цене от F1 при схожем же функционале, но значительно большей производительности.UAVpilot писал(а):Я б предложил тебе посмотреть в сторону stm32f3 или stm32f4 - в варианте один МК на всё может получиться дешевле. Да и stm32f1 ST гнобит помаленьку, в том числе и с помощью цен - предлагает stm32f2 в качестве альтернативы.
Но большая производительность мне не требуется, т.к. код не прожорливый. Нужна только аппаратная поддержка деления, что обеспечивает F1.
Я просто рассмотрел варианты, но вернулся к первоначальной идее. Что, в общем-то, хорошо.
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Я б посоветовал обратить внимание на других производителей, например на Сypress и NXP, у последнего вообще во всех моделях не только есть порт USB, но уже и аппаратный стек зашит.michael-yurov писал(а):F2 и F3, действительно, незначительно отличаются по цене от F1 при схожем же функционале, но значительно большей производительности.
Если делать в виде одна плата на ось/две, то наверно имеет смысл просто вывести на трёхконтактный разъём UART1 и в комплекте давать копеечный кабель USB-COM(TTL) с ответным разъёмом - можно будет и конфигурять и прошивку заливать и какой-нибудь мониторинг/диагностику приделать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- 
				sidor094
 - Мастер
 - Сообщения: 826
 - Зарегистрирован: 20 фев 2014, 09:13
 - Репутация: 81
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
С Сypress не работал но у NXP всего один энкодер.И таймеры считают только вверх.Для привода не удобно.Приходится энкодер подключать к порту энкодера,а степ /дир через прерывания. Так что на NXP остался только контроллер ЧПУ.А для приводов использую STM. Так ,что в данном случае STM предпочтительней.UAVpilot писал(а):Я б посоветовал обратить внимание на других производителей, например на Сypress и NXP, у последнего вообще во всех моделях не только есть порт USB, но уже и аппаратный стек зашит.
- michael-yurov
 - Почётный участник

 - Сообщения: 11730
 - Зарегистрирован: 26 июл 2012, 00:10
 - Репутация: 4703
 - Настоящее имя: Михаил Львович
 - Откуда: Новоуральск
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Рассматривал такой вариант.UAVpilot писал(а): Если делать в виде одна плата на ось/две, то наверно имеет смысл просто вывести на трёхконтактный разъём UART1 и в комплекте давать копеечный кабель USB-COM(TTL) с ответным разъёмом - можно будет и конфигурять и прошивку заливать и какой-нибудь мониторинг/диагностику приделать.
Заказал несколько разных переходников для пробы. Хочу проверить с какими меньше проблем с драйверами в новых OS.
UART, естественно, вывел.
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
В Линуксе любые работают замечательно и без установки драйверов.michael-yurov писал(а):Хочу проверить с какими меньше проблем с драйверами в новых OS.
В Win7 на прошлой неделе поставил родной драйвер pl2303 для поддельного pl2303hx - работает нормально, даже stm32 шьётся.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- michael-yurov
 - Почётный участник

 - Сообщения: 11730
 - Зарегистрирован: 26 июл 2012, 00:10
 - Репутация: 4703
 - Настоящее имя: Михаил Львович
 - Откуда: Новоуральск
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Больше волнуют 64-битные Win 8.1 и Win 10 в плане автозагрузки рабочих драйверов из сети.
Про драйверы в Linux - знаю.
			
			
									
									
						Про драйверы в Linux - знаю.
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Если вернуться к USB и прикинуться HID, то никаких драйверов вообще не понадобится. 
			
			
									
									Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- michael-yurov
 - Почётный участник

 - Сообщения: 11730
 - Зарегистрирован: 26 июл 2012, 00:10
 - Репутация: 4703
 - Настоящее имя: Михаил Львович
 - Откуда: Новоуральск
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Пока что плату развожу под STM32F103C8T6UAVpilot писал(а):Если вернуться к USB и прикинуться HID, то никаких драйверов вообще не понадобится.
UART вывел.
USB подключил.
Оставил выбор RS422 или TTL (в зависимости от установленных на плату компонентов).
Сигнал с нолевой метки пропустил через микроконтроллер и вывел на PC817.
Сигнал Enable тоже на всякий случай провел через микроконтроллер.
Как уж буду подключаться (как виртуальный COM порт или HID) пока решил.
На счет возможности обновления - тоже сомневаюсь пока.
Сейчас мне нужно начертить плату и отдать в изготовление, а потом уже видно будет, к чему все это приедет.
Блин, забыл про аналоговый выход...
Еще раз блин! В этом процессоре нет DAC!
Ну и ладно. Значит не судьба.
Сделаю сначала без аналогового выхода, а потом переделаю плату, скорее всего на двухканальную, учтя недоработки.
Можно, конечно, ШИМ перевести в аналог, но это нужно еще подумать, как правильно сделать, и, опять же, нужен будет выход таймера (видимо тот же, что на step). Лучше проц заменю потом.
- michael-yurov
 - Почётный участник

 - Сообщения: 11730
 - Зарегистрирован: 26 июл 2012, 00:10
 - Репутация: 4703
 - Настоящее имя: Михаил Львович
 - Откуда: Новоуральск
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Нарисовал платку.
Закажу пару десятков для пробы.
			
			
									
									
						Закажу пару десятков для пробы.
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Разводка довольно безграмотная... 
Например конденсаторы кварца нельзя присоединять к общей земле. Если вдруг на каком экземпляре генератор не всегда будет запускаться - не удивляйся...
			
			
									
									Например конденсаторы кварца нельзя присоединять к общей земле. Если вдруг на каком экземпляре генератор не всегда будет запускаться - не удивляйся...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- Сергей Саныч
 - Мастер
 - Сообщения: 9116
 - Зарегистрирован: 30 май 2012, 14:20
 - Репутация: 2858
 - Откуда: Тюмень
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
Земля до выводов МК достаточно короткая и толстая.UAVpilot писал(а):конденсаторы кварца нельзя присоединять к общей земле.
Посмотрел на STM32-discovery - конденсаторы кварцев разведены не менее "безграмотно".
Чудес не бывает. Бывают фокусы.
						- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Блок контроля для оптических линеек (проект)
В данном случае мимо кварца будут ходить земляные токи между линейками и выходом, что там на них будет наводится никому не известно.
Надо просто оторвать конденсаторы от общей земли и соединить их отдельной дорожкой (даже если она будет проходить рядом с общей землёй) с ногой контроллера
			
			
									
									Надо просто оторвать конденсаторы от общей земли и соединить их отдельной дорожкой (даже если она будет проходить рядом с общей землёй) с ногой контроллера
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...