Соорудил Валкодер из датчика от ЧПУ, но почему-то при подключении к синезатору(us2ii), когда быстро крутишь ручку валкодера - синтезатор не перестраивается. Может кто сталкивался с такой проблеммой?
73!EU1CC
sferatv@softhome.net
Вид для печати
Соорудил Валкодер из датчика от ЧПУ, но почему-то при подключении к синезатору(us2ii), когда быстро крутишь ручку валкодера - синтезатор не перестраивается. Может кто сталкивался с такой проблеммой?
73!EU1CC
sferatv@softhome.net
Скорее всего, быстродействия ИС не хватает, или буфер счетчика переполняется...Может не тянуть по питанию какая-то из ИС, если она КМОП - энергопотребление КМОП прямо пропорционально текущей частоте их переключения...
Как я помню, авторы синтезаторов не советовали использовать такие валкодеры именно из-за большого количества отверстий в них - процессор, скорее всего, воспринивает слишком быструю перестройку как "дребезг". Как мне кажется, самый простой выход - поделить выходные импульсы валкодера (в каждом направлении) на каком-нибудь ТМ2 пополам, а если не поможет, то на 4.
Спасибо всем за советы. В синтезаторе на AT90S2313 поставил кварц на 10МГц вместо 4-х. Стало значительно лучше. Попробую поделить импульсы с валкодера, а то, действительно, очень быстро перестраивает. кажется 500 рисок на диске.
С делением ничего не вышло. "Потерялся" сдвиг импульсов 90градусов. В результате перестал определять направление. Крутишь вправо - частота уменьшается, остановился - опять вправо - частота увеличивается, а может и уменьшатся. Вот так!
Это невозможно в принципе. Скорее всего в схеме наврали... А при делении, самое главное, перестраивается частота при быстром вращении валкодера?
К синтезатору US2II пробовал подключать самодельные валкодеры из мыши, а также переделанные (1 к100) и не переделанные от станка с ЧПУ (переделка заключалась в том ,что на диск наклеивалась пленка с напечатанными рисками около 60).
При малом шаге перестройки и быстром вращении валкодера
всегда наблюдаются проскальзывания.Проверено на нескольких синтезаторах на SMD компонентах. Валкодер от ЧПУ(1к100) на синтезаторе предыдущей версии US2II перестраивал частоту нормально (проверено RA3RC)
Имеется энкодер можно ли его использовать в качестве валкодера для синтеза us2ii 3 вариант если кто пробовал прошу поделиться впечатлениями.
Думаю, что все проблемы в считывающем оптическом устройстве ЧПУ. Так сказать протокол оптического сигнала не родной.
Если применяется датчики типа ВЕ-178, никаких проблем быть
не должно,если только не лезть в оптику. Сигнал,выдаваемый
этим датчиком-два меандра, сдвинутых на 90 град. Единственная проблема-подобрать подходящий по числу
рисок на оптике(мне попадались от 100 до 2500 на оборот), либо делить. Датчики бывают с двухполярным +/- 12 вольт
или однополярным (+12 или +5 ) вольт выходом.
Кстати, а где можно найти в продаже такой вот валкодер ? Какие фирмы-дистрибьюторы ими торгуют. И пробовал ли кто работать с валкодерами фирмы BOURNS, например серии ENC1J-Bxx. Их купить достаточно просто. По крайней мере, Аргуссофт поставляет. Информацию можно посмотреть здесь :
http://www.bourns.com/2/pdfs/ENC1J.pdf
Раздобыл энкодер EL63D 1B250Z12P10X6JR вроде по обозначению дает 250 импульсов за оборот незнаю как себя поведет контроллер, не много ли импульсов?
Чтобы не гадать, подключи энкодер не только к контроллеру, но и к частотомеру. Затем определи частоту, при которой начинается "проскальзывание". Отсюда уже можно сразу делать выводы о пригодности различных энкодеров.Цитата:
Автор оригинала aliv
Раздобыл энкодер EL63D 1B250Z12P10X6JR вроде по обозначению дает 250 импульсов за оборот незнаю как себя поведет контроллер, не много ли импульсов?
Все контроллеры, которые применяются авторами разработок не имеют аппаратных двухфазных счетчиков. Поэтому счет импульсов производится программно. А любая программная реализация работает медленнее аппаратной.
Отсюда мораль : контроллер синтезатора должен быть выполнен аппаратно, т.е. на "жесткой логике" - как говорят проектировщики узлов ЭВМ. Можно использовать микросхемы серии КР1533 или ПЛИС. Алгоритмы обычно простые. Если хорошо знакомы с теорией автоматов и для вас не составит труда синтезировать автомат Мура, описываемый графом с полсотней вершин, тогда – вперед. Ну и пусть громоздко - зато быстрее.Цитата:
Автор оригинала Andrey UA9CCI
... Поэтому счет импульсов производится программно. А любая программная реализация работает медленнее аппаратной.
Для CO2040
Ответ был не по адресу. Эта проблема была у aliv.
А весь контроллер не обязательно делать на жесткой логике. Достаточно только счетчика.
С теорией автоматов я знаком. Также и с теорией автоматического регулирования. Занимаюсь этим по работе.
Вопрос к знатокам.
Собрал синтезатор US2II публикация в журнале Радио. Подключил энкодер EL63D 1B250Z12P10X6JR контроллер показывает что частота меняется при вращении энкодера, а на выходе синтезатора частота меняется скачками по 500 Гц
что может быть?
А петля ФАПЧ успевает отрабатывать?Цитата:
Первоначальное сообщение от aliv
Вопрос к знатокам.
Собрал синтезатор US2II публикация в журнале Радио. Подключил энкодер EL63D 1B250Z12P10X6JR контроллер показывает что частота меняется при вращении энкодера, а на выходе синтезатора частота меняется скачками по 500 Гц
что может быть?
В синтезаторах частоты то что Вы видете на табло - это заданная частота, а не реальная!
Встречал в сети схему валкодера на шаговом двигателе от старых дисководов. Кто нибудь пробовал в деле такой валкод, а то я покрутил его ротор, такое приятное вращение, что использовать его было бы очень здорово в высококласном аппарате....
UN7JHS Андрей
Пробовал. Лучше всего подходят от кассовых машин.
От совковых моторов :) трудно добиться чётких импульсов. А импортные(японские) слишком чувствительные и "срабатывают" от "притрагиваний"
Возможно. У меня моторчик от дисковода Роботрона 1910, при вращении ротора, по пальцам отдаются легкие щелчки, я так понимаю каждый щелчек, это импульс, по идее срабатывать при прикасании не должны, все таки необходимо приложить не большое усилие..... Но пока я синтезом не занимаюсь, мне бы меандр с помощью обычного ГПД получить..... А то у меня бред какойто выходит, не меандр а черт знает что.....
Всем привет !Цитата:
Первоначальное сообщение от CO2040
Отсюда мораль : контроллер синтезатора должен быть выполнен аппаратно, т.е. на "жесткой логике" - как говорят проектировщики узлов ЭВМ. Можно использовать микросхемы серии КР1533 или ПЛИС. Алгоритмы обычно простые. Если хорошо знакомы с теорией автоматов и для вас не составит труда синтезировать автомат Мура, описываемый графом с полсотней вершин, тогда – вперед. Ну и пусть громоздко - зато быстрее.
А вывод - надо правильно программировать !
У меня (http://users.ints.net/skidan/T03DSP/) в трансивере стоит валкодер от станка с ЧПУ (Z=2500) и все работает ОК.
Кстати контроллер успевает не только подсчитывать импульсы, но и программировать синтезатор и обновлять изображение на графическом ЖКИ (и без автоматов!).
Удачи !
Олег
73 de UR3IQO
Вот- вот тут вся проблема только в быстродействии контроллера, а валкодер не причем. У самого были такие проблемы когда ставил эксперименты с синтезаторами на 80С51, быстродействие контроллера и "умный + быстрый" алгоритм .
Олег! Так поделитесь опытом! А то на сайте только фотографии...Цитата:
Всем привет !
А вывод - надо правильно программировать !
У меня (http://users.ints.net/skidan/T03DSP/) в трансивере стоит валкодер от станка с ЧПУ (Z=2500) и все работает ОК.
Кстати контроллер успевает не только подсчитывать импульсы, но и программировать синтезатор и обновлять изображение на графическом ЖКИ (и без автоматов!).
Интересно , что за синтезатор. Хотя бы общие принципы программирования таких вещей --- понятно , что если делать все в лоб то будет медленно , а как надо то? Изложение самых общих принципов никак не ударит по авторским правам...
Сам сейчас потихоньку, по-дилетантски начинаю ковыряться в контроллерах. Программу "в лоб" написать уже могу, а вот как хорошо написать --- пока проблемы...
В своём синтезе на PIC16F628 - 20 MHz и DDS использую валкодер из мыши на 60 прорезей. Программное учетверение. При скорости вращения 1-1.5 оборота в сек никаких проглатываний не наблюдаю. Программа написана "в лоб":
- микроконтроллер спит
- прерывание от встроенных компараторов (оптопары непосредственно к ним и подключены)
- считывание состояний компараторов и сравнение с 8-ю масками из таблицы
- шаг +/- , математика для ддс, вывод на LCD и ддс
- спать
Собственно быстродействие зависит от того, насколько быстро микроконтроллер просчитает математику и выведет на индикакор. На это требуется время, которое уменьшить не получится (можно, конечно, проверять, какие разряды изменились,и выводить только их, добывая драгоценные микросекунды, можно перед выводом проверить, не было ли ещё импульса от валкодера и отложить вывод на LCD до следующего раза итд)
Вот такие пироги
OK. То что реализовано у меня вряд ли подойдет непосредственно (поскольку я использую операционнаю систему реального времени), но принцип - вполне.Цитата:
Первоначальное сообщение от RU3GA
Олег! Так поделитесь опытом! ...
Разделим задачи на части (и запишем в порядке убывания приоритета):
1. подсчет импульсов от валкодера
2. пересчет числа импульсов в частоту и программирование синтезатора.
3. индикация частоты на индикаторе.
Подсоединяем один выход валкодера на вход прерывания, а второй на любой порт ввода в контроллере. В прерывании (по фронту или по спаду) считываем состояние этого порта (1-вправо, 0-влево или наоборот, как подключите :) ), и изменяем счетчик и устанавливам флаг изменения частоты. На этом обработка прерывания заканчивается. Если не крутить валкодер дрелью :), то любой контроллер подсчитает все импульсы.
interrupt(PORT1) Port1Int(void)
{
if(PORT1 & 0x1)counter++;
else counter--;
freq_changed=1;
}
Это на случай нормального валкодера с большим Z - здесь нет надобности учетверять или удваивать.
В основной программе делается что-то типа такого:
for( ; ; )
{
Sleep(); //Ждем прерывания (это не обязательно)
while(freq_changed)
{ //Частота была изменена
freq_changed=0; //Сбрасываем флаг
RecalcFreq(); //Пересчитываем частоту в код для ситезатора
ProgSynth(); //Программируем ситезатор
}
UpdateScreen(); //Обновляем экран
}
Пояснения:
Если мы быстро крутим валкодер, то обработчик прерывания подсчитывает импульсы быстро, но частота пересчитывается один раз на несколько импульсов поступивших с валкодера.
Поверьте, что при перестройке 10кГц в сек. нет большой разницы между шагом в 10 Гц или 100Гц, главное, что как закончите крутить частота перестроится точно туда, куда надо.
Далее цикл while позволяет сэкономить время на индикации если крутить очень быстро.
Самое главное - разбить задачу на подзадачи и определить приоритеты для них, а далее обеспечить по возможности соблюдения этих приоритетов.
То, что я здесь написал я не испытывал, так как вопросы распределения времени процессора у меня решает ОС реального времени (поскольку когда забот у контроллера становится очень много это пожалуй единственное эффективное решение, кстати в Айкоме хвастаются тем, что они для ic7800 написали свою ОС реального времени, ну не одни они ;) ) и все делается немного по-другому, но принцип очень похож.
Синтезатор использует принципы деления с дробным коэффициентомЦитата:
Интересно , что за синтезатор...
деления и цифровую компенсацию побочных колебаний с помощью
сигма-дельта модулятора четвертого порядка.
Данная технология была изобретена фирмой Маркони в 1986г. и
используется в её измерительных генераторах. Подробности можно
узнать посмотрев патент US 4,609,881 в базе данных патентной библиотеки
США
В моей конструкции собственно синтезатор (ЧФД, предварительный делитель)
реализованы с использованием м/с программируемой логики EPM7032S,
а сигма-дельта модулятор и ДДПКД на микроконтроллере MSP430F123.
При частоте сравнения 100 кГц шаг перестройки меньше 0.01 Гц (но я использую только 0.25 Гц) :).
Стаью об этом синтезаторе я опубликовал в журнале QEX Nov/Dec 2003. Я собираюсь в скором будущем выложить ее у себя на сайте (возможно с русским переводом).
Удачи !
Олег UR3IQO
Вот здесь , если можно , чуть подробнее --- это как я понял программное учетверение. Я какое-то время бился , но так и не смог написать более-менее "красиво"...Цитата:
Первоначальное сообщение от Alex007
- считывание состояний компараторов и сравнение с 8-ю масками из таблицы
To UR3IQO:
Олег, спасибо. В общих чертах понятно. Буду пробовать.
А я перепробовал много всяких шаговых движков. Лучше всего - японские от сканеров HP. Они весьма плоские и чёткие импульсы дают. Его и поставил для контроллера к Р-160п.
Пробовал и дрелью крутить. Работает! До 200 оборотов...