-
27.10.2003, 13:11 #16
- Регистрация
- 15.11.2002
- Адрес
- Томск
- Возраст
- 55
- Сообщений
- 44
- Поблагодарили
- 0
- Поблагодарил
- 0
Вопрос к знатокам.
Собрал синтезатор US2II публикация в журнале Радио. Подключил энкодер EL63D 1B250Z12P10X6JR контроллер показывает что частота меняется при вращении энкодера, а на выходе синтезатора частота меняется скачками по 500 Гц
что может быть?
-
27.10.2003, 13:33 #17
- Регистрация
- 06.09.2002
- Адрес
- Екатеринбург
- Возраст
- 60
- Сообщений
- 246
- Поблагодарили
- 7
- Поблагодарил
- 49
Первоначальное сообщение от aliv
Вопрос к знатокам.
Собрал синтезатор US2II публикация в журнале Радио. Подключил энкодер EL63D 1B250Z12P10X6JR контроллер показывает что частота меняется при вращении энкодера, а на выходе синтезатора частота меняется скачками по 500 Гц
что может быть?
В синтезаторах частоты то что Вы видете на табло - это заданная частота, а не реальная!73. Андрей (RZ9CV)
-
28.10.2003, 08:20 #18
- Регистрация
- 27.08.2003
- Адрес
- Усть-Каменогорск - Омск
- Возраст
- 50
- Сообщений
- 375
- Поблагодарили
- 13
- Поблагодарил
- 5
Встречал в сети схему валкодера на шаговом двигателе от старых дисководов. Кто нибудь пробовал в деле такой валкод, а то я покрутил его ротор, такое приятное вращение, что использовать его было бы очень здорово в высококласном аппарате....
-
28.10.2003, 13:06 #19
- Регистрация
- 23.04.2002
- Адрес
- Междуреченск
- Возраст
- 57
- Сообщений
- 1,732
- Поблагодарили
- 108
- Поблагодарил
- 71
UN7JHS Андрей
Пробовал. Лучше всего подходят от кассовых машин.
От совковых моторов трудно добиться чётких импульсов. А импортные(японские) слишком чувствительные и "срабатывают" от "притрагиваний"
-
28.10.2003, 15:26 #20
- Регистрация
- 27.08.2003
- Адрес
- Усть-Каменогорск - Омск
- Возраст
- 50
- Сообщений
- 375
- Поблагодарили
- 13
- Поблагодарил
- 5
Возможно. У меня моторчик от дисковода Роботрона 1910, при вращении ротора, по пальцам отдаются легкие щелчки, я так понимаю каждый щелчек, это импульс, по идее срабатывать при прикасании не должны, все таки необходимо приложить не большое усилие..... Но пока я синтезом не занимаюсь, мне бы меандр с помощью обычного ГПД получить..... А то у меня бред какойто выходит, не меандр а черт знает что.....
-
02.11.2003, 09:06 #21
- Регистрация
- 16.01.2003
- Адрес
- Донецк
- Возраст
- 46
- Сообщений
- 423
- Поблагодарили
- 41
- Поблагодарил
- 231
Первоначальное сообщение от CO2040
Отсюда мораль : контроллер синтезатора должен быть выполнен аппаратно, т.е. на "жесткой логике" - как говорят проектировщики узлов ЭВМ. Можно использовать микросхемы серии КР1533 или ПЛИС. Алгоритмы обычно простые. Если хорошо знакомы с теорией автоматов и для вас не составит труда синтезировать автомат Мура, описываемый графом с полсотней вершин, тогда – вперед. Ну и пусть громоздко - зато быстрее.
А вывод - надо правильно программировать !
У меня (http://users.ints.net/skidan/T03DSP/) в трансивере стоит валкодер от станка с ЧПУ (Z=2500) и все работает ОК.
Кстати контроллер успевает не только подсчитывать импульсы, но и программировать синтезатор и обновлять изображение на графическом ЖКИ (и без автоматов!).
Удачи !
Олег
73 de UR3IQO
-
13.11.2003, 15:02 #22
- Регистрация
- 10.12.2002
- Сообщений
- 123
- Поблагодарили
- 0
- Поблагодарил
- 0
Вот- вот тут вся проблема только в быстродействии контроллера, а валкодер не причем. У самого были такие проблемы когда ставил эксперименты с синтезаторами на 80С51, быстродействие контроллера и "умный + быстрый" алгоритм .
-
13.11.2003, 19:52 #23
- Регистрация
- 30.04.2002
- Адрес
- Липецк, Россия
- Возраст
- 55
- Сообщений
- 935
- Записей в дневнике
- 16
- Поблагодарили
- 64
- Поблагодарил
- 4
Всем привет !
А вывод - надо правильно программировать !
У меня (http://users.ints.net/skidan/T03DSP/) в трансивере стоит валкодер от станка с ЧПУ (Z=2500) и все работает ОК.
Кстати контроллер успевает не только подсчитывать импульсы, но и программировать синтезатор и обновлять изображение на графическом ЖКИ (и без автоматов!).
Интересно , что за синтезатор. Хотя бы общие принципы программирования таких вещей --- понятно , что если делать все в лоб то будет медленно , а как надо то? Изложение самых общих принципов никак не ударит по авторским правам...
Сам сейчас потихоньку, по-дилетантски начинаю ковыряться в контроллерах. Программу "в лоб" написать уже могу, а вот как хорошо написать --- пока проблемы...
-
13.11.2003, 20:37 #24Alex007Гость
В своём синтезе на PIC16F628 - 20 MHz и DDS использую валкодер из мыши на 60 прорезей. Программное учетверение. При скорости вращения 1-1.5 оборота в сек никаких проглатываний не наблюдаю. Программа написана "в лоб":
- микроконтроллер спит
- прерывание от встроенных компараторов (оптопары непосредственно к ним и подключены)
- считывание состояний компараторов и сравнение с 8-ю масками из таблицы
- шаг +/- , математика для ддс, вывод на LCD и ддс
- спать
Собственно быстродействие зависит от того, насколько быстро микроконтроллер просчитает математику и выведет на индикакор. На это требуется время, которое уменьшить не получится (можно, конечно, проверять, какие разряды изменились,и выводить только их, добывая драгоценные микросекунды, можно перед выводом проверить, не было ли ещё импульса от валкодера и отложить вывод на LCD до следующего раза итд)
Вот такие пирогиПоследний раз редактировалось Alex007; 13.11.2003 в 20:43.
-
13.11.2003, 22:48 #25
- Регистрация
- 16.01.2003
- Адрес
- Донецк
- Возраст
- 46
- Сообщений
- 423
- Поблагодарили
- 41
- Поблагодарил
- 231
Первоначальное сообщение от 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Последний раз редактировалось UR3IQO; 13.11.2003 в 23:00.
-
14.11.2003, 09:55 #26
- Регистрация
- 30.04.2002
- Адрес
- Липецк, Россия
- Возраст
- 55
- Сообщений
- 935
- Записей в дневнике
- 16
- Поблагодарили
- 64
- Поблагодарил
- 4
Первоначальное сообщение от Alex007
- считывание состояний компараторов и сравнение с 8-ю масками из таблицы
-
14.11.2003, 10:11 #27
- Регистрация
- 30.04.2002
- Адрес
- Липецк, Россия
- Возраст
- 55
- Сообщений
- 935
- Записей в дневнике
- 16
- Поблагодарили
- 64
- Поблагодарил
- 4
To UR3IQO:
Олег, спасибо. В общих чертах понятно. Буду пробовать.
-
02.12.2003, 22:35 #28
- Регистрация
- 23.04.2002
- Адрес
- Междуреченск
- Возраст
- 57
- Сообщений
- 1,732
- Поблагодарили
- 108
- Поблагодарил
- 71
А я перепробовал много всяких шаговых движков. Лучше всего - японские от сканеров HP. Они весьма плоские и чёткие импульсы дают. Его и поставил для контроллера к Р-160п.
Пробовал и дрелью крутить. Работает! До 200 оборотов...
Социальные закладки