Автор Тема: Опорник от Владимир_К  (Прочитано 60503 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Core

  • Гость
Re: Опорник от Владимир_К
« Ответ #195 : Май 14, 2021, 10:32:31 am »
Можно, не вопрос. Но, если делать запоминание при выключении, тогда надо доработать схему.
ЕЕПРОМ не стоит наверное. Пусть стартует с запрограммленых частот. Только когда с диапазона на диапазон переключаешь было бы не плохо чтобы частота запоминалась. Привычка с старого аппарата ешё такая. А интелектуальный валкодер, не очень люблю. Пробовал как то, очень на любителя. Я по старинке шагами.

Кстати вопрос. А сишка сможет точно шагать, там ведь чтобы перестроиться на 10гц вроде надо шаг сишки чуть ли не пол герца...
« Последнее редактирование: Май 14, 2021, 10:38:38 am от Core »

Core

  • Гость
Re: Опорник от Владимир_К
« Ответ #196 : Май 14, 2021, 10:33:28 am »
Индикацию шага, в течение какого времени показывать, на 0,5 сек, или меньше?
0,5 думаю хватит. А то слишком долго будет напрягать.
« Последнее редактирование: Май 14, 2021, 10:38:57 am от Core »

Оффлайн Владимир_К

  • Hero Member
  • *****
  • Сообщений: 1179
Re: Опорник от Владимир_К
« Ответ #197 : Май 14, 2021, 10:44:28 am »
А сишка сможет точно шагать, там ведь чтобы перестроиться на 10гц вроде надо шаг сишки чуть ли не пол герца...
Да я как-то этим не особенно заморачивался. Когда подгонял частоту опорника с моим частотомером, вроде все совпадает до нескольких герц, но потом постепенно частоты уходят, или в синтезаторе кварц при  нагреве уходит, или в частотомере. Он у меня также самодельный.
Поэтому, получить точную частоту до долей герца я не пытался. Это надо посмотреть математику Сишки, я уже не помню значение делителя в знаменателе. От него зависит минимальный шаг перестройки. Так что тут есть определенные сложности.
« Последнее редактирование: Май 14, 2021, 10:49:06 am от Владимир_К »

Core

  • Гость
Re: Опорник от Владимир_К
« Ответ #198 : Май 14, 2021, 11:00:04 am »
Так то у Игорь2 сишкой тактируется да и Сергей делал опорник на дискавери + сишка. Работать должно.  lol22 123123

Core

  • Гость
Re: Опорник от Владимир_К
« Ответ #199 : Май 14, 2021, 11:59:37 am »
Кстати, на дружеском форуме, как говорит Игорь, где его гоняют  lol22, нашёл схему делителя для валкодера на 4.
« Последнее редактирование: Май 14, 2021, 12:29:55 pm от Core »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Опорник от Владимир_К
« Ответ #200 : Май 14, 2021, 12:54:47 pm »
Это всё дела программерские  123123 не стоит пладить корпуса микрух. Антидребезг, деления, реверс, интеллектуальный шаг - это все делают программисты. 
Да да, я знаю, у меня ничего не получится )))

Core

  • Гость
Re: Опорник от Владимир_К
« Ответ #201 : Май 14, 2021, 12:55:57 pm »
Антидребезг
Кстати антидребезг было бы неплохо внедрить. А то на один щелчёк механического энкодера синтез делает несколько шагов. Я осцилом смотрел там дребезг реально есть.   123123

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Опорник от Владимир_К
« Ответ #202 : Май 14, 2021, 12:58:57 pm »
Кстати, сам не думал еще, Владимир вы не покажите свой вариант интеллектуального изменения шага перестройки  rrr7777
Я все больше склоняюсь, что это правильно. 
Да да, я знаю, у меня ничего не получится )))

Оффлайн Владимир_К

  • Hero Member
  • *****
  • Сообщений: 1179
Re: Опорник от Владимир_К
« Ответ #203 : Май 14, 2021, 02:44:26 pm »
вы не покажите свой вариант интеллектуального изменения шага перестройки
Да не вопрос. Полный исходник в архиве. Но это синтезатор моего трансивера. Схему я выше выкладывал. Не знаю, кто как делает. У меня это так: таймер настроен на определенное время (уже не помню, несколько миллисекунд). Валкодер считает шаги в течение этого времени и число шагов сохраняется в буфере. Когда происходит прерывание по таймеру, смотрим, если в буфере не ноль (крутили валкодер), переходим к обработке. Частота, новая, равна прежней частоте плюс шаг, умноженный на квадрат содержания буфера валкодера. Таким образом,  если за время заданное таймером вы накрутили валкодер на один шаг, частота увеличится также на один шаг, накрутили два шага, частота увеличится, или уменьшится на 4 шага. Таким образом, при шаге 10 герц и числе делений валкодера 60, я могу, крутнув валкодер (а он на подшипниках) перестроиться на несколько кгц.

Антидребезг, деления, реверс, интеллектуальный шаг - это все делают программисты. 
Да, это так. Тем более, память контроллера заполнена меньше чем на четверть. Ну, еще добавится чуть чуть. Все равно места пустого много. Пока не знаю, как поделить импульсы валкодера. Скорее всего, опять же, будет какой-то буфер. В нем накапливается число, когда оно достигнет, скажем 4-х, в основной буфер добавляем единицу. По срабатыванию таймера, частота изменится на эту единицу, таким образом, число импульсов будет поделено на 4. Вроде все логично, но надо пробовать, может что неожиданное вылезет.
« Последнее редактирование: Май 14, 2021, 02:52:15 pm от Владимир_К »

Core

  • Гость
Re: Опорник от Владимир_К
« Ответ #204 : Май 14, 2021, 02:52:29 pm »
Игорь2 по сколько сишка должна шагать чтобы обеспечить шаг на выходе вашего синтеза в 10гц?

Оффлайн Игорь 2

  • Administrator
  • *****
  • Сообщений: 20751
Re: Опорник от Владимир_К
« Ответ #205 : Май 14, 2021, 03:01:50 pm »
На нижних диапазонах - 10 Гц, на верхних - 5...
Ничего невозможного нет

Core

  • Гость
Re: Опорник от Владимир_К
« Ответ #206 : Май 14, 2021, 03:09:47 pm »
Где делитель на 2 там 10Гц шаг сишки = 10гц на выходе гунов, и где 4 делитель там 5гц = 10гц на выходе гун, правильно?  123123

Оффлайн Владимир_К

  • Hero Member
  • *****
  • Сообщений: 1179
Re: Опорник от Владимир_К
« Ответ #207 : Май 14, 2021, 03:21:57 pm »
сколько сишка должна шагать чтобы обеспечить шаг
Да не шагает она никуда. Частота которую выдает сишка определяется так:
Делим число 900000000/частота. Получаем какое-то значение. Дробная часто отбрасывается. Например, частота 20012021 гц. 900000000/20012021=44. Если бы получилось нечетное число, то его уменьшаем на единицу, то есть число всегда четное, целое. Затем умножаем 20012021*44=880528924. Вот на этой частоте будет работать ГУН сишки. Дальше программа вычисляет делитель в цепи PLL, который представляет собой число а+в/с. Где с - знаменатель дроби мы задаем, обычно я беру максимальное значение, оно определяется разрядностью делителя и равно 1048575 (это FFFFF, в шестнадцатеричной системе).
То есть частота кварца, умноженная на (а+в/с), должна составлять 880528924. а - целое число. в - также целое число, максимальное значение его также FFFFF.
Таким образом, в принципе возможно получить точность генерируемой частоты в доли герца. Но для этого, надо бы менять и с, но этого мало никто не делает. Делает программа компьютерная, от производителя сишки, которая может управлять и  платой, от их же, которая стоит сотни долларов. Вот та программа может выдать любую частоту с большой точностью.

Core

  • Гость
Re: Опорник от Владимир_К
« Ответ #208 : Май 14, 2021, 03:32:54 pm »
Частота которую выдает сишка определяется так:
сложно даже представить этот алгоритм в программном коде..как это всё вычислять при повороте ручки валкодера))
никто не делает
А у вас софт вычисляет С ?
« Последнее редактирование: Май 14, 2021, 03:49:49 pm от Core »

Оффлайн Владимир_К

  • Hero Member
  • *****
  • Сообщений: 1179
Re: Опорник от Владимир_К
« Ответ #209 : Май 14, 2021, 04:09:00 pm »
А у вас софт вычисляет С ?
Нет, я выше писал, я беру его максимальным. А вот насколько точно выдает сишка частоту, это может сказать тот у кого есть частотомер, с точностью, скажем 0,1 гц.
Но, погрешность в математике тут конечно присутствует. Наверное, ее можно свести к нулю (точнее к точности частоты опорного кварца), если опорный кварц будет выдавать точно 27000000 гц, без всяких запятых и пр. Но это может сказать тот, кто дружит с математикой и у него есть желание в этом ковыряться.