Попытка запихнуть незапихуемое в формат LPT порта

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

Попытка запихнуть незапихуемое в формат LPT порта

Сообщение nanthony »

Приветствую Вас, Господа!

Руки чешутся, моск воспален, мысли прут, разрываюсь между тысячей дел. Однако, в зависимости от того, могу я что-то пилякать или не могу пытаюсь все время тратить на сочинение новой сказки для Вас. Те из Вас кто понимает в электронике больше меня (а это все те, кто знает что-то больше чем "Закон Омуля" :D ) - раскритикуйте пожалуйста сказочку.

Действующие лица и исполнители: Олень по кличке "Зайчик", Ваш покорный слуга.
Сцена: Дождь, грязь, говно, теплый офис, диван, ноутбук, скучающий неподалеку станок, кфемашина.
Время: идут к концу третьи сутки запусков/проверок всех сервисов и служб после новогоднего обморожения, совмещенные с нездоровым рвением к работе у клиентов. Сегодня домой в теплую постельку.

Собственно и повествование:
Составив план мероприятий по развитию станкостроения в Лапландской области и написав бизнес план, Олень "Зайчик" решил уходить от Деда Мороза на вольные хлеба. Все копыта стоптал развозя за праздники дурацкие подарки невыносимым детишкам. А ведь были времена, когда Дед Мороз работал как надо - увозил непослушных детей в лес и там оставлял. Какая была прелесть! Ни тебе подарков таскать, ни тебе стишки выслушивать. И у волков была еда, оленями меньше интересовались. Детенку-то замерзшую куда проще слопать. И ладно бы просто стишки, а то все норовят на табуретку залезть. Вон одна, так даже Гимн спела в 6-то лет! Куда мы катимся?
Так, о чем это я?
На радостях и выходных Олень все свободное время и стоя в пробках ваял схемы, чертежи, что-то, что приближало бы его к его мечте и расставанию со Старым Козлом.

Составляя планы и думая о грядущем олень осознал, что без разумной платы коммутации - нормальный станок не поднять и не осилить. Возюкаясь с разными схемами подключения оленьего станка к оленьему контроллеру оленьеми проводами с оленьими датчиками и, что не маловажно, оленьими копытами!, олень все никак не мог найти нужной схемы. Вроде и входов-выходов хватает, вроде и продумано все у затейников-производителей. А нет-нет, да и напорется олень на косяк. И косяки эти были таковы:
1. Все хорошо и гладко, но при загрузке компьютера включается шпиндель. Ведь на пине появляется единица и шпиндель думает что его попросили поработать, да на полных оборотах.
2. Вентиляторы, столь любовно установленные оленем на радиатор охлаждения шпинделя крутятся только тогда, когда БП будет включен в розетку. А вместе с ними помпа, пылесос, обдув.
3. Подключение датчиков "цепью", "шиной", "ИЛИ", "И" - все дает преимущества и создает недостатки. То входов не хватает, то логика не та, то приоритеты не такие, то направление дурацкое.
Вывод, который сделал олень - надо думать-кумекать над платой коммутации. Она пригодится в любом случае. И начал он составлять ТУ-ТЗ, ваять схему, исследовать закрома оленьи на предмет наличиствующих деталей.
Собственно ТЗ состояло из многих пунктов, но на суд Ваш представлю лишь некоторые (без учета конструктива, который пока в стадии макетирования):
1. ENABLE - какашка, ChargePump - форева! (Вот только "вернуть" данные в компьютер - занимать один вход полностью)
2. Один порт - МАЛОВАТО БУДЕТ. Надо подумать как запихнуть незапихуемое или делать 2 порта.
3. Релюшек/ключей, зависимых от разного рода сигналов/датчиков должно быть море (Включение обдува и/или подачи СОЖ при вращении шпинделя и/или Probe, чтобы сдуть с датчика какашку, оставленную там кошкой Галей МЯУ. Включение вентиляторов радиатора охлаждения шпинделя только когда это требуется, включение помпы охлаждения шпинделя только при вращении шпинделя...)
4. Все должно быть модульным и отлаживаться "кусками", причем без "пайки по-очереди", а именно модульным.
5. Входы должны быть с одной стороны, а выходы с другой. Но это уже конструктив, о котором пока говорить рано.

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

Что вышло:
1. Наступил олень себе на "прикол" заключающийся в том, что ChargePump нужен чтобы запустить ChаrgePump (схема взята из документации на LinuxCNC. Подумалось оленю, что сдвоенные триггеры стоит заменить ключом на транзисторе. Потребителей много.) Но разрулил. Даже получилось сделать переключение между вариантом работы ENAБле/Шарж-памп. Однако, полностью шарж-памп будет "хорош" если он будет что-либо еще и возвращать в компьютер. Т.е. понимать, что все хорошо и работает и генерить что-либо компу. Но может это и лишнее? Хотя олений круп подсказывает: "в этой науке лишнего не бывает". Вот разговорчивая задница....
2. Схем преобразователей ШИМ-Напряжение аж 3. Какую взять - проблема выбора. Макетировать все... или сразу сваять все? Это тоже еще предстоит решить/выбрать. Вроде и понятно какая должна быть лучше, а какая наебарот. Но одну стружку два раза не срезать... надо проверять.
3. Схемы на 555ых какие-то корявенькие вышли, да и рисовались уже в последний момент. Задумка мне пока нравится, а реализация не очень. Хочется чтобы помпы включались вместе со шпинделем, а выключались с задержкой. Но пока не ясно как сделать наиразумнейшим образом.
4. Блок питания не очень по-оленьи, т.е. как раз наоборот - самым оленьим образом сделан. Надо туда все-таки делитель с регулировкой точной всадить и регулятор по-мощнее. А еще, если один из вариантов конструктива в копрусе от CD привода в 5 дюймовом слоте "пойдет", то питание надо предусмотреть от БП компа. Да и буферный АКБ было бы здорово приляпать чтобы выключать все по-человечьи, а не по-оленьи в случае нежданчика в электросети. И супостатский USB можно вкорячить, но так, чтобы при его подключении гальваническая развязка отключалась и не питала "чистую" часть схемы.
5. Разъемов LPT два потому что есть новенькие центрониксы и хорошие кабели к ним из старых запасов с экраном как лом и по 5м. А DB25 нарисован как "справочный". Нерешительный олень какой-то. Не может выбрать делать "как все" или "из того что есть"?
6. Выводов питания и земли маловато. Будет "каша" из проводов. Надо по-больше их предусмотреть.
7. Вторая половина второй 74HC224 не задействована. Куда бы ее присобачить? В шарж-пампе можно использовать включив "единичкой" навсегда, но там схема-то уже после развязки. Может оптопару на выход шаржпампа всобачить, а не на вход? Тогда микруха вся окажется в "чистой" части и можно будет все триггеры использовать.

Вот, собственно, и сказочке конец. Т.е. спать надо ехать. Да и Старый Новый Год на носу оленьем краснеет белизной.
Вложения
2LPT-to-CNC-interface.pdf
Схема платы YourBunnyLPT
(247.35 КБ) 677 скачиваний
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
Serg
Мастер
Сообщения: 21475
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5046
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение Serg »

Отделил литературную критику от технических обсуждений.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение nanthony »

Возвращаясь к схеме, хочется задать мильён вопросов:
1. Разумно ли так наворачивать плату коммутации или интерфейсы отдельно логика отдельно?
2. Правильно ли я понимаю то, что chargepump это следующая ступень над enable?
3. Пригодно ли использование схем с 555ыми для включения помп и обдува при появлении ШИМ сигнала? Или проще взять за основу схему chargepump с ее кондерами для получения стабильной "единицы" на управление дочерними элементами управления? Но как тогда обеспечить задержку выключения?
4. Может имеет смысл делать два порта по 3 оси (мне всего нужно 4 и я хотел остаться в рамках одного порта)? В этом случае освободиться пара выходов для управления устройствами прямо из LinuxCNC. Но точно потребуется второй порт для поворотной оси.
5. Знаю что тему обсосали 1000 раз, но я так и не нашел наиразумнейшего решения по схеме включения датчиков и комбинации home+limit. Только одна схема кажется безопастной - датчики home на портах LPT, а все остальные, нормально замкнутые, вместе с аварийной кнрпкой/педалью просто рвут цепь питания? Но в век автоматизации.... и столько проводников 220 в такой гуще событий... знаю что есть УЗО, но не уверен я в такой разумности.
6. Схему я срисовывал с 1000 разных. То, что казалось разумным имплантировал в свою, наверняка насажал ошибок и излишеств. Вот, скажем, большинство схем не содержат диодов и токоограничивающих резисторов на входах. Многие без триггеров Шмидта. Вреда от таких улучшений не больше чем пользы?
7. Есть схемы на одних оптопарах, а есть на других. Отличия только (восновном) в скорости нарастания и падения сигналов на выходе. Разумно ли использовать схемы с задержкой 20ns когда и 18us достаточно?

Вот как то так. Без затей.
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2177
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение ukr-sasha »

Купите аппаратный контроллер движения и все вопросы отпадут: Mesa (скорее всего, не знаю), Kflop (точно), NCstudio (скорее всего).
КФЛОП стоит 250у.е., а остальные домаю в 150у.е. уложитесь.
Бонусом будет аппаратный генератор импульсов и т.д. ;)
Заходите в гости: YouTube-ukr-sasha
ukrainets.alexander@gmail.com
или звоните +38067-235-57-70
Аватара пользователя
Serg
Мастер
Сообщения: 21475
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5046
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение Serg »

1. Посмотрел "по диагонали", увидел много лишнего, например оптроны для step/dir - они лишние т.к. уже имеются в драйверах.
2. Я б совместил chargepump и enable...
3. Если нужно только вкл/выкл, то ШИМ зачем? Естественно сделать лог.И c enable. Задержка выключения - программно.
4. Без разницы. LPT-порты LinuxCNC рассма тривает как набор вх. и вых. сигналов.
5. Для варианта с шаговиками не париться и завести всё в комп. Есль комп зависнет, то ничего никода не уедет - завишему компу будет сложно генерить шаги. С сервами лимиты можно завести на сервоусилители, а с них на комп сигнал alarm...
6. Тут только можно говорить в разрезе конкретных цепей для конкретных случаев.
7. Быстрые оптопары нужны только для step/dir, но согласно п.1 они там вообще не нужны. :)
ukr-sasha писал(а):Купите аппаратный контроллер движения и все вопросы отпадут
Я-бы посоветовал Mesa 7i43 - стоит баксов 80, подключается к одному LPT, на выходе имеем аппаратные генераторы шагов и 48 настраиваемых входов/выходов, потребуется только добавить силовую часть типа транзисторов для управления реле и т.п. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение nanthony »

UAVpilot писал(а):1. Посмотрел "по диагонали", увидел много лишнего, например оптроны для step/dir - они лишние т.к. уже имеются в драйверах.
Во всех ли драйверах они есть? Сколько схем "для хоббитов" смотрел - не видел такого. На "взрослых" - ясен пень (может быть, Вам виднее, у меня таких нет). А такие как я надеются на плату развязки все лысые. Или опять я что-то упустил? Или при проектировании драйверов посоветуете туда развязку всадить?
UAVpilot писал(а):2. Я б совместил chargepump и enable...
Т.е. и сигнал энабле оставить и шаржпампу городить? А смысл? Избыточность? А какая она, избыточность эта, может быть, если путь один. Избыточности можно добиться если всего по 2, а не только сигналов. Т.е. 2 порта, два компа, две проги, две платы развязки. В этом разе да. При условии наличия heartbeat между всеми узлами будет клево. А если всего по-одному, то простите за вопрос, но нафига козе баян в лабораторных условиях? Я как раз думал пин энабле задействовать под ChargePump. Поясните плиз, может я чего упустил?
UAVpilot писал(а):3. Если нужно только вкл/выкл, то ШИМ зачем? Естественно сделать лог.И c enable. Задержка выключения - программно.
Вот тута может я неверно описал, а может еще что. Суть в чем. Инвертор включается двумя сигналами (Forward/reverse и ШИМ).
Я подумывал на примере ChargePump изваять схемку, которая будет фиксировать факт наличия ШИМа (а не 0 или 1) и, если таковой есть, то генерить "1" на вход схемы управления вентилятором, помпой. А убирать эту "1" надо не сразу как шим пропал, а с задержкой на секунды-минуты. Просто если как щя опираться на "1" или "0" на пине "Направление" или "шпиндель он" - то выходит косяк в момент, когда LinuxCNC не запущен. Ибо инвертор думает что ШИМ это 100% заполнение и 1ка на запуске и начинает на ровном месте жарить на всю катушку.
UAVpilot писал(а):4. Без разницы. LPT-порты LinuxCNC рассма тривает как набор вх. и вых. сигналов.
Это ясен перец, что рассматривает. Сей вопрос был больше воззвание к логике/опыту бывалых, нежели к ограничениям порта.
UAVpilot писал(а):5. Для варианта с шаговиками не париться и завести всё в комп. Есль комп зависнет, то ничего никода не уедет - завишему компу будет сложно генерить шаги. С сервами лимиты можно завести на сервоусилители, а с них на комп сигнал alarm...
С сервами - там все проще, там контроллеры по-умнее. Я пока на стадии "шаговиков" нахожусь. Платку, если ваять, то, конечно, надо рассчитывать на какое-никакое развитие.
А про шаговики и "завести все в комп": это как так? Входов 5. Один - EStop. Он без ансамбля. Остается 4. Там хомы. Вот я и кумекаю как их завести. Читал много всякого и про тесты разнообразные и про решения, но везде есть свои недостатки. Если на ось 3 датчика (хом+2лимита), то хом внутри полей лемитов или за их пределами? По логике - за, а по технике - внутри. И то и другое утверждение имеет обоснование достоинства и недостатки. Сам возюкался. В моем станке были (есть) индуктивные хомы. Пытался поставить и концевики и индуктивные датчики для лимитов. Как-то разумной схемы не вышло. Вот и думаю как поступить?
Можно шинный формирователь на 5 пинов воесить и тогда будет 2^5 входов. Но в этой области совсем ничего не нашел как это умеет LinuxCNC разбирать. Может это и вариант развития. Тогда на все и вся хватит навсегда.
UAVpilot писал(а):6. Тут только можно говорить в разрезе конкретных цепей для конкретных случаев.
Ну, цепи на схеме вполне конкретные :) И "мой случай" тоже. Я рассуждаю приблизительно так:
Токоограничивающий резистор полезен полюбасу. Нече жечь оптрон и жрать ток с LPT порта. Вот тут, правда, вопрос, а нет ли в самом порту этих резюков? Может их не ставят те, кто знает что они там есть?
Диод. Защита, конечно. Но падение на нем напряжения. Но откуда взяться в цепи из резюка, диода и оптрона обратному току? На датчиках и входах со станка - ясное дело может что угодно взяться. А на STEP/DIR? С другой стороны - провода длинные и все такое, среда не самая спокойная. Будет порт целее.
Оптрон на входах от датчиков нужен обязательно. А вот как развязать драйвера? Или их сигналы не развязывать вообще в надежде на драйвер? Тоже не очень ясно. Ведь драйвер уже высоковольтный. "Мои" драйвера, то что ваял сам и те схемы что находил и все такое - никаких развязок не содержали.
UAVpilot писал(а):7. Быстрые оптопары нужны только для step/dir, но согласно п.1 они там вообще не нужны.
Ну, 6n137 и HCPL2630 до 50МГц могут (это если 1/20ns, т.е. задержку по нарастанию посчитать). А какие-нибудь ПиСишки - 55килогерц. Вот у меня и встал вопрос: а бывают случаи когда отдельный степ болше 50кгц? Ну, теоретически бывает, но это же жуть какая скорость. При винте с шагом 5мм и 1/8 в микростепе выйдет 3 микрона на степ и 173мм/сек скорость передвижения. На "взрослых" станках ясное дело, может и потребоваться, а для "хоббитов"?[/quote]
ukr-sasha писал(а):Купите аппаратный контроллер движения и все вопросы отпадут
UAVpilot писал(а):Я-бы посоветовал Mesa 7i43
FPGA это круто. У меня их как говна за баней. Кое что понимаю. Но, цель моя не купить, а развить верхний непарный отросток туловища. Ведь поняв что и как "нужно" можно спросить как "должно быть" и вернуться к "нужно" уже переосмыслив с самого начала. Я сейчас на второй итерации "прохода по циклу до полного удовольствия". Не знаю, на какой итерации я из этого цикла выйду.
Закодить FPGAшку - дело не хитрое. А купить - дело простое. То, что можно сделать - надо хотя бы попробовать сделать.
Когда живешь в среде где все продается и покупается иногда ОЧЕНЬ хочется что-то сделать собственными руками. Может даже и не на продажу и не для заработка. А сделать и ощутить радость. Почти забытое чувство.
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2177
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение ukr-sasha »

nanthony писал(а):иногда ОЧЕНЬ хочется что-то сделать собственными руками
Тогда ориентируйтесь на озвученные образцы.
Заходите в гости: YouTube-ukr-sasha
ukrainets.alexander@gmail.com
или звоните +38067-235-57-70
mmg
Опытный
Сообщения: 162
Зарегистрирован: 04 окт 2013, 14:57
Репутация: 217
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение mmg »

благодоря d1-d12 вообще ничего работать не будет :)
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение nanthony »

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

Re: Попытка запихнуть незапихуемое в формат LPT порта

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

nanthony писал(а):Спасибо за коментарий. Взял я эти диоды не с потолка. А почему не заработает? То что упадет на диодах не хватит для розжига оптопар? Или есть еще скрытые от меня секреты?
Ну у тебя стоят подтягивающие резисторы к +5 В.
И диоды стоят так, что ток через них может течь только в направлении входов.
Может быть предполагалось обратное включение диодов?

На самом деле во всех этих ухищрениях особой пользы нет.
Можно вообще ничего на входе лишнего не городить.

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

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение Serg »

nanthony писал(а):Во всех ли драйверах они есть?
во всех, достойных внимания. :)
Во всяком случае в тех, которые отдельные в мет. корпусах.
nanthony писал(а):Т.е. и сигнал энабле оставить и шаржпампу городить?
Нет. Сигнал chargepump после "выпрямления" используется как enable.
nanthony писал(а):Инвертор включается двумя сигналами (Forward/reverse и ШИМ).
Я подумывал на примере ChargePump изваять схемку, которая будет фиксировать факт наличия ШИМа (а не 0 или 1) и, если таковой есть, то генерить "1" на вход схемы управления вентилятором, помпой.
Это лишнее. Enable подать на Forward (если надо и Reverse, то это по любому доп. выход), аналоговый сигнал на управление, частотник настроить что не реагировал на сигнал скажем менее 1В.
nanthony писал(а):А про шаговики и "завести все в комп": это как так? Входов 5. Один - EStop. Он без ансамбля. Остается 4. Там хомы. Вот я и кумекаю как их завести.
Например у меня на домашнем как наследие от LPT и испольхуются 5 входов:
1. E-Stop
2. Пробник
3. Home&Limits X
4. Home&Limits Y
5. Home&Limits Z
nanthony писал(а):Токоограничивающий резистор полезен полюбасу. Нече жечь оптрон и жрать ток с LPT порта. Вот тут, правда, вопрос, а нет ли в самом порту этих резюков? Может их не ставят те, кто знает что они там есть?
Развести на плате их контакты, соединённые перемычкой, если понадобится перемычку перерезать и запаять резистор.
С диодами аналогично.
LPT защитить буферным формирователем или триггером шмидта.
nanthony писал(а):Оптрон на входах от датчиков нужен обязательно. А вот как развязать драйвера? Или их сигналы не развязывать вообще в надежде на драйвер? Тоже не очень ясно. Ведь драйвер уже высоковольтный. "Мои" драйвера, то что ваял сам и те схемы что находил и все такое - никаких развязок не содержали.
Не факт. Зачем изолировать датчики, не имеющего эл. контакта ни с чем посторонним?
Для драйверов уже стало стандартом три оптрона на входе.
nanthony писал(а):FPGA это круто. У меня их как говна за баней. Кое что понимаю. Но, цель моя не купить, а развить верхний непарный отросток туловища.
Так в чём проблема? Исходники прошивок плат Mesa доступны, схему 7i43 придумаешь сам глядя в даташит на Xilinx, в исходники и на фотку платы с сайта... :)
Я сам одно время пользовался самодельным клоном. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11325
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4482
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

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

UAVpilot писал(а):Нет. Сигнал chargepump после "выпрямления" используется как enable.
А вот что делать с реле?
Включать их при наличии сигнала chargepump?
(я сейчас, скорее для себя спрашиваю)
Аватара пользователя
Serg
Мастер
Сообщения: 21475
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5046
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение Serg »

Да, для всех выходных сигналов делается лог.И с получившимся (из chargepump) сигналом Enable.
Кроме самого chargepump естественно, ну и может кроме step/dir.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение nanthony »

michael-yurov писал(а):
UAVpilot писал(а):Нет. Сигнал chargepump после "выпрямления" используется как enable.
А вот что делать с реле?
Включать их при наличии сигнала chargepump?
(я сейчас, скорее для себя спрашиваю)
Если я правильно понимаю, то шаржпамп делает енэйбл. И все. А для меня вторая похожая схема делает из шима второй сигнал для рэлюх. А управление реле через "И" или двухвходовый триггер шмидта.
и задержка выключения на 555
Доеду до работы завтра - постараюсь зарисовать мысль в схему.
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение nanthony »

Сводя воедино все сказанное выше, правильно ли я понимаю что:
1. Нужно поставить триггеры Шмидта на вход. Но вот после буфера или до?
2. Диоды - нафик? Ибо буфер защищен своим диодом на входе. Опять вопрос 1.
3. Схема ChargePump нужна и она должна генерировать ENABLE сигнал внутри платы для всех остальных устройств. При этом сама быть защищенной при помощи Enable не должна.
UAVpilot писал(а):Кроме самого chargepump естественно, ну и может кроме step/dir.
А почему Step/Dir не надо защищать? Или тот же Enable будет отправлен на драйвера и уже там на него среагируют? В этом логика Ваша?
Схема michael-yurov вообще полностью формирует Step/Dir заново. Да, там цель немного шире, но все-таки.
4. WatchDog схему (т.е. обратный ChargePump, генерация некоего сигнала который будет как ChargePump анализироваться LinuxCNC) смысла ставить нет?
5. Схема аналогичная ChargePump может быть использована для того, чтобы из ШИМ сигнала делать "1" для управления шпинделем, поскольку с "1" на входе "Forward" и нулем или "1" на входе ШИМ он начинает крутиться. Т.е. не задействовав отдельный пин порта мы получаем 2 сигнала 0..10В и Forward которые и отправляем на инвертор?
Подача шаржпампа как форвард на шпиндель не лучшая затея. У меня при настройке на 2..8В и при появлении одновременно Enable и "1" на выходе управляющем шимом - шпиндель раскручивается. Большее снижение порога (т.е. не 2..8, а, скажем 3..6 уже дает очень грубую регулировку. При диапазоне оборотов 130-24000 (у меня сейчас 8000-24000, странно, раньше описание говорило что минимум 8000, а теперь написано 130, пока не проверял. Не хочу шпиндель пожечь) плавная регулировка уже не получается.
6. Какую схему ШИМ-Напряжение выбрать? Или протестировать/смакетировать все? И выбрать наиболее линейную? Задержки там значения не имеют. Ибо ШИМ штука длительная во времени и УП всегда имеет задержку для раскрутки шпинделя. Или вообще ее реализовать отдельно, эту плату ШИМ-Напряжение?
7. Стоит ли городить защиту от резкой смены скважности ШИМ? Чтобы избежать ударов шпинделя. И/или схему защиты от переключений Forward/Reverse? (Мне это сейчас не нужно, у меня шпиндель односторонний, но не переделывать же потом, может сразу подумать? А удары при смене скорости я ему уже устраивал. Неприятно.)
8.Оставлять ли силовые реле на плате или выгнать на улицу? И тот и другой подход имеют смысл. В одном все удобно и рядом, но 220 к плате подходит и рядом с сигнальными проводами. а в другом - все вынесено, можно использовать, скажем, твердотельные реле или вообще какие угодно, но тогда слаботочку тащить в силовой блок и нужно более гибко проектироать управление релюхами. У Внешних ток-то по-боле будет, они крупнее (обычно). Или просто полевики всадить везде и не париться что за нагрузка? Типа коммутировать 12-24В - можно и прямо так, а коль реле, то разумный полевик с ним с любым справится? Я думал сделать что-то на 2-3А током. Чтобы мою помпу, например и вентиляторы не включать релюхой, а прямо через полевик. Не?
9. В цепи датчиков всадить по триггеру Шмидта с "чистой" стороны (ближе к порту от оптрона).
10. Подтягивающие резисторы с 4.7к заменить на 3.3, установить RC цепочки 680R/1nF на входе перед триггерами Шмидта для фильтрации помех

11. Совсем не понятно (технически понятно, но со стороны LinuxCNC куда смотреть не ясно) - если сделать из 5 входов шифратором шину 5bit (скорее 4bit или даже 3bit поскольку E-Stop и Probe надо оставить самостоятельно для надеги и скорости, а 2^3=8 это круче 3), то как получить на стороне компа ее значение?
michael-yurov писал(а):Мне помогла бы банальная RC цепочка на входе (именно для выходов открытый коллектор), но я ее не сделал.
Да, на схему Вашу я долго любовался и на изделие. И на алгоритм. Честно сказать даже пытался повторить математику. И кое что удалось. Но дальше нужна практика. Для чего и Ваяю платку эту.
Вот вопросик: планирую после 1 версии и понимания того, что и как мне нужно и в каком количестве начать пытаться повторить Вашу плату. У Вас только Step/Dir проходят через перегенерацию STMами, а нет ли смысла еще всякие chargepump и тому подобные перегенерации шим повесить на эти же процессоры? Ведь шим у них аппаратный и, если я правильно понимаю логику, то Вы задействовали только по 2 32х битных таймера в каждом, а шим и АЦП можно прикрутить на 16 битные. Или уже мочи не хватает?

Всю логику описать детально для последующей FPGA реализации. (Хотя, я думаю, что в FPGA не пойду, сначала спаяю более "аналоговую" схему, а там посмотрю куда дальше бечь. Слишком многое я забыл за 25 лет без паяльника и 30 после ликбеза. Придется идти "от простого к сложному".)
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
Serg
Мастер
Сообщения: 21475
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5046
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение Serg »

1. ТШ на входы, буфера на выходы.
2. нафик. Разве что стабилитроны (с резисторами), чтоб обрезать лишние вольты на входе.
3. Да, на драйвера и так заводится Enable.
4. Зачем?
5. Нет смысла, проще инвертор настроить, чтоб не реагировал на малое напряжение. Подача Enable на Forward имеет смысл только если не требуется реверс - один выход экономится.
Но лучше всего управлять шпинделем по Modbus - точность регулировки 1об/мин и ни одного выхода не занимает.
6. Вот двуполярная, можно уполовинить по смыслу.
yapsc-pwm.png (1378 просмотров) <a class='original' href='./download/file.php?id=40541&sid=ca19c9fb121e8056fff2273cc7117810&mode=view' target=_blank>Загрузить оригинал (13.27 КБ)</a>
7. Нет, пусть частотник разруливает.
8. Просто полевики. У меня в авто используются в корпусе SO8 для коммутации 12V 30A.
9. Чем ближе к датчику тем лучше.
10. Лучше 1к (для 5V). Оптимально в цепи держать ток в пределах 5-10мА.
11. В LinuxCNC это не проблема. Правильнее будет для небыстродействующих входов/выходов сделать "расширитель" на МК (ардуина и т.п.).
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11325
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4482
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

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

nanthony писал(а):У Вас только Step/Dir проходят через перегенерацию STMами, а нет ли смысла еще всякие chargepump и тому подобные перегенерации шим повесить на эти же процессоры? Ведь шим у них аппаратный и, если я правильно понимаю логику, то Вы задействовали только по 2 32х битных таймера в каждом, а шим и АЦП можно прикрутить на 16 битные. Или уже мочи не хватает?
Таймеров я задействовал 6 в каждом процессоре, при чем все 16-битные.
Chargepump легко реализуется и без микроконтроллера, так что нет смысла менять прошивку.
Про ШИМ не понял. О чем именно речь? Если про преобразователь шим-напряжение, то, наверное можно было бы повесить все на процессоры, но я хотел сделать гальваническую развязку (хотя прямой необходимости в этом нет).
"Мочи" хватает. Процессоры загружены примерно на 10%. Но нет смысла пытаться экономить на этом. Я был сильно удивлен, когда узнал, что основные траты приходятся не на процессоры, и печатную плату, а на всякую мелочь, вроде резисторов, конденсаторов и диодов, на dip переключатели, разъемы и т.п.
Аватара пользователя
nanthony
Мастер
Сообщения: 492
Зарегистрирован: 06 ноя 2013, 18:58
Репутация: 310
Настоящее имя: Антон Никифоров
Откуда: Москва
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение nanthony »

UAVpilot писал(а):4. Зачем?
Чтобы LinuxCNC понимал, что "там, на другой стороне" станок включенный, а не принтер, например. И что этот станок "здоров".
UAVpilot писал(а):5. Нет смысла, проще инвертор настроить, чтоб не реагировал на малое напряжение.
Вот у меня и не выходит. Ставлю в инверторе все как надо. Разобрался со всем. Но при ситуации, когда комп загружается на пине что отвечает за шим - 0, а на том, что за форвард - 1 появляется. И шпиндель запускается, гнида, да на максимальных оборотах. Я не понимаю почему, но это происходит именно когда порт инициализируется и появляется 1ка на пине, что заведует включением шпинделя. Может глюк инвертора, может мой. Но я с ним 3 дня бился. Заново переписал описание, а перечитал несчетное число раз. Проверил все что мог подумать проверить. Видимо недостаточно я с ним еще провозился. Вот буду к нему тормозной резистор прилаживать - заодно еще по-эксперементирую.
UAVpilot писал(а):6. Вот двуполярная, можно уполовинить по смыслу.
Спасибо. Но половинка получается почти тоже что и я нарисовал. А тут же на этом форуме говорилось, что нелинейность высокая будет. Я не проверял еще. Детальки есть - спаяю проверю, но хочется не повторять чужих ошибок и грабли не трогать :)
UAVpilot писал(а):11. В LinuxCNC это не проблема. Правильнее будет для небыстродействующих входов/выходов сделать "расширитель" на МК (ардуина и т.п.).
Мне STM32 ближе, уже библиотек для него наваял что у дурака махорки. Но то что для Вас "не проблема", для меня пока наебарот.
Тут у кого-то в подписи цитата из Цезаря: "Все очень просто, если знать как". Вот для меня очень сложно пока все это. Я только учусь. (вспоминаю)
michael-yurov писал(а):Я был сильно удивлен, когда узнал, что основные траты приходятся не на процессоры, и печатную плату, а на всякую мелочь
Да, конденсаторы особенно "радуют". Для производства "выпаянные" не пойдут. Я же пока могу пользоваться макетками и тем, что надираю из всякой электроники, что мертвой считается.
michael-yurov писал(а):Таймеров я задействовал 6 в каждом процессоре, при чем все 16-битные.
Видать я что-то упустил в Вашей ветке. Или не прочитал, хотя, как мне кажется, могу ее наизусть декламировать.
michael-yurov писал(а):Про ШИМ не понял. О чем именно речь?
Да, речь про ШИМ-напряжение и WatchDog.
ChargePump как раз должна быть самостоятельной. Разве что процессоры могут ее читать уже как Enable.
Лужу! Паяю! ЭВМ починяю! Дюралем фарцую! Наношу всякую другую неизгладимую пользу населению :)
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 958
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 92
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение solanto »

UAVpilot писал(а):Mesa 7i43
А где её взять? У Ника нету на сайте.
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4262
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 703
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Попытка запихнуть незапихуемое в формат LPT порта

Сообщение PKM »

5i25 дешевле и лучше, потому и нету 7i43
Ответить

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