[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: UR7QM, UV5QAW  
Форум » Технический раздел » Приемно-передающая техника » Синтезатор на Si5351 (или очередной велосипед)
Синтезатор на Si5351 (или очередной велосипед)
UT5QBCДата: Пятница, 09.09.2016, 16:55 | Сообщение # 51
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Подключил... Я даже не знаю что вам сказать )))) это не дребезг даже, это хз знает что ....

Прикрепления: 5939366.jpg (153.2 Kb)
 
UT5QBCДата: Пятница, 09.09.2016, 17:20 | Сообщение # 52
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Полез разбираться, оказалось что средний вывод это все таки не земля, земля один из крайних
Вот теперь эпюра больше похожа на то что нужно.

Прикрепления: 2651554.jpg (170.2 Kb)
 
UT5QBCДата: Пятница, 09.09.2016, 18:05 | Сообщение # 53
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
очередная пробная прошивка ))) у меня все работает без пропусков, да пришлось подкинуть конденсаторы на выводы энкодера (подтяжка к плюсу через резисторы контроллера)
емкости 220n не нашлось выводных на 100n.
Прикрепления: synthesizer_5.bin (29.4 Kb)
 
vasylllДата: Пятница, 09.09.2016, 18:18 | Сообщение # 54
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Цитата UT5QBC ()
очередная пробная прошивка )))
Да, вот эта уже нормально, на каждом тике вперед-назад, без пропусков перестраивает. smile
 
UT5QBCДата: Пятница, 09.09.2016, 18:19 | Сообщение # 55
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
я бы рекомендовал бы вам резисторы поставить побольше на подтяжку 47к - 100к или убрать на 10к там по входам включена внутренняя подтяжка.

Сообщение отредактировал UT5QBC - Пятница, 09.09.2016, 18:19
 
vasylllДата: Пятница, 09.09.2016, 21:07 | Сообщение # 56
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
убрал резисторы, оставил только конденсаторы. Работает нормально. Можно дальше продвигаться.

Добавлено (09.09.2016, 21:07)
---------------------------------------------
Не плохо бы сделать сброс на дефолт при удержании какой то кнопки и подача питания.
А то синтезатор полностью завис и при повторном включении и не на что не реагирует . На индикаторе
высвечивается последнее значение, которое наверное было записано в EEPROM.
Помогла только полная перепрошивка.
А зависло все после лазания в ADC MAX. VOLT, где при накрутке энкодером до 20 - всё зависло.
Кроме индикатора, клавиатуры, энкодера больше ничего не подключено.


Сообщение отредактировал vasylll - Пятница, 09.09.2016, 21:09
 
UT5QBCДата: Суббота, 10.09.2016, 06:34 | Сообщение # 57
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Цитата vasylll ()
А зависло все после лазания в ADC MAX. VOLT, где при накрутке энкодером до 20 - всё зависло.
Ну не зависло а вы вогнали его в режим low power.
Подключите вход АЦП хотя бы к источнику 3,3в, хотя я наверное зарублю эту настройку для юзеров, по схеме делитель 33к/3,3к 1% резисторы, на это будем и рассчитывать.
 
UU4JQДата: Суббота, 10.09.2016, 09:32 | Сообщение # 58
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
Цитата UT5QBC ()
печатная плата, схема на страницах блога.
Приветствую всех участников!Тема очень интересная.Заказал детали.А где печатка?
 
vasylllДата: Суббота, 10.09.2016, 09:40 | Сообщение # 59
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Цитата UT5QBC ()
Ну не зависло а вы вогнали его в режим low power.
А так и понял, что АЦП в воздухе висит, потому и завис.
Поэтому и предлагал выше, чтобы /* отображение напряжения АКБ ON/OFF */
Может кому то не надо этой функции.
Эх, если бы еще портов найти для ATT/PRE !


Сообщение отредактировал vasylll - Суббота, 10.09.2016, 09:42
 
UT5QBCДата: Суббота, 10.09.2016, 10:23 | Сообщение # 60
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
По колдовал над ADC не должно теперь вроде зависать (посмотрим)
Выложил прошивку в блоге.
Цитата vasylll ()
Поэтому и предлагал выше, чтобы /* отображение напряжения АКБ ON/OFF */
 
А сохранять как "состояние" по выключению питания ))))

Цитата vasylll ()
Эх, если бы еще портов найти для ATT/PRE !
Поставьте кнопки с фиксацией и дело решаемое (ну да, не будет отображаться на экране АТТ/PRE, не велика потеря). А была идея вначале применить контроллер на 64 вывода biggrin (но для QRP потом посчитали нам это слишком)
 
vasylllДата: Воскресенье, 11.09.2016, 18:51 | Сообщение # 61
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Не нравится работа АЦП вольтметра.
Установил делитель 3,3к + 30к. Без подачи напряжения работает все нормально и показывает 0.0V
При подачи питания (3,3В), синтезатор зависает после нескольких оборотов энкодером.
А если еще выставить в ADC PRESCALER в крайние положения, то синтезатор еще как бы подтупливает,
медленней диапазоны переключаются ну и виснет потом. sad

Цитата UT5QBC ()
А была идея вначале применить контроллер на 64 вывода biggrin (но для QRP потом посчитали нам это слишком)
Вы сами себе противоречите. То Вы сторонник в простом QRP применять дорогостоящий, дефицитный оптический энкодер,
то уже посчитали, что применение на 1$ дороже МК не целесообразно.  smile

Предложение:
Если применять простой механический энкодер с кнопкой на оси, то наверное не плохо бы этой кнопкой менять по кругу
шаг перестройки. Чтобы в меню лишний раз не залазить.
 
UV7QAEДата: Воскресенье, 11.09.2016, 19:51 | Сообщение # 62
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
vasyll не сыпьте соль на рану по поводу 64-ногого МК)) Те что взяли были в наличии просто в избытке, решили попробовать на них для начала, а потом уже пожалели что не взяли многоножку.
 
UT5QBCДата: Понедельник, 12.09.2016, 05:02 | Сообщение # 63
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Цитата vasylll ()
Не нравится работа АЦП вольтметра.Установил делитель 3,3к + 30к. Без подачи напряжения работает все нормально и показывает 0.0V
При подачи питания (3,3В), синтезатор зависает после нескольких оборотов энкодером.
А если еще выставить в ADC PRESCALER в крайние положения, то синтезатор еще как бы подтупливает,
медленней диапазоны переключаются ну и виснет потом. sad
у меня сутками стоит включенным и все работает у Артема тоже, могу грешить только на ваш монтаж и длинные провода.
Могу подарить печатку есть пару штук выслать вам по НП, но сразу скажу печатки сделаны не ахти, заказывали шо сделали то сделали, но зато дешево и нам для отладки этого с головой.

Цитата vasylll ()
Вы сами себе противоречите. То Вы сторонник в простом QRP применять дорогостоящий, дефицитный оптический энкодер,то уже посчитали, что применение на 1$ дороже МК не целесообразно. smile

Ну видать не дружу с головой, что поделать ....

Цитата vasylll ()
Предложение:Если применять простой механический энкодер с кнопкой на оси, то наверное не плохо бы этой кнопкой менять по кругу
шаг перестройки. Чтобы в меню лишний раз не залазить.

так и было задумано, но потом переиграли так как этот вывод решили использовать под С метр.

Я если честно удивлен как работает вообще экран надо отдать должное производителю ST7735, тут скорость не ардуиновская на шине, 12мБ/сек по SPI я представляю как завалены фронты у сигналов, но все таки как то еще пашет с такой длинной проводов.

Добавлено (12.09.2016, 05:02)
---------------------------------------------
Цитата vasylll ()
Не нравится работа АЦП вольтметра.Установил делитель 3,3к + 30к. Без подачи напряжения работает все нормально и показывает 0.0V
При подачи питания (3,3В), синтезатор зависает после нескольких оборотов энкодером.
А если еще выставить в ADC PRESCALER в крайние положения, то синтезатор еще как бы подтупливает,
медленней диапазоны переключаются ну и виснет потом. sad
Сказки.
Вот вам весь код обработки прерывания по окончании конвертации ADC, adc_in_voltage выводится на экран, все больше нечего ...

Код
void ADC1_IRQHandler(void)
{
  if (ADC_GetITStatus(ADC1, ADC_IT_JEOC)!= RESET)
  {
    ADC_ClearITPendingBit(ADC1, ADC_IT_JEOC);
    
    adc_in_smeter = ptt ? 0 : ADC_GetInjectedConversionValue(ADC1, ADC_InjectedChannel_1);
    uint16_t adc = ADC_GetInjectedConversionValue(ADC1, ADC_InjectedChannel_2);
    
    double max_voltage = 3.3 * use_data.adc_prescaler;
    
    adc_in_voltage = (double)adc * max_voltage/4095.0;
    
    if(adc_in_voltage < 4.0)return;// For Debug
    
    if(adc_in_voltage < 10)
    {
      __disable_interrupt();
      Data_Save();
    }
  }
}

Вся остальная часть программы работает строго в своих интервалах времени.
Вот вам main.c как видим кроме конфига и инита больше нечего нет , бесконечный цикл пустой, все отрабатывается по событиям таймеров или периферии.

Код
int main()
{
  SetSysClockToHSE();
  JTAG_DISABLE(ENABLE);
  SysTick_Config(24000);//1ms

  Gpio_Config();
  SI5351a_Config();
  Buttons_Config();
  ADC_Config();
  Bands_Init();
  LCD_Init();
  CW_Key_Config();
   
  while(1)
  {
    asm ("NOP");
    asm ("NOP");
    asm ("NOP");
  }
}


Сообщение отредактировал UT5QBC - Понедельник, 12.09.2016, 05:21
 
vasylllДата: Вторник, 13.09.2016, 13:58 | Сообщение # 64
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Цитата UT5QBC ()
могу грешить только на ваш монтаж и длинные провода

тоже в этом есть догадка, что провода длинные. На макете ведь тестю.

Цитата UT5QBC ()
подарить печатку есть пару штук выслать вам по НП

принял бы конечно платку на НП. Самому не очень есть времени делать. Тогда бы уже полноценно тестил. smile

Цитата UT5QBC ()
Вот вам весь код обработки прерывания по окончании конвертации ADC, adc_in_voltage

Да я и сам так подумал. Как там может быть ошибка или плохой код. Ведь вольтметр - он же и в Африке вольтметр !

А когда уже весь алфавит пройдем, то прошивки как уже будут зваться ?
.v1аа или уже двойка пойдет ? wink
 
UT5QBCДата: Среда, 14.09.2016, 09:59 | Сообщение # 65
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Печатку отправлю на следующей недели, буду отправлять детали и вам сразу.

Цитата vasylll ()
А когда уже весь алфавит пройдем, то прошивки как уже будут зваться ?.v1аа или уже двойка пойдет ? wink
Остановимся на последней что бы вас не смущать знанием алфавита ))).
Сделаем через задницу все теперь, кому интересна(нужна) последняя прошивка пишем на почту, вышлю.


Сообщение отредактировал UT5QBC - Среда, 14.09.2016, 10:13
 
UV7QAEДата: Среда, 14.09.2016, 12:26 | Сообщение # 66
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Посовещались, подсказал как сделать удобно. Скоро будет одна папка где будут разные версии прошивки. Так как Юре самому надоело переименовывать biggrin
 
UT5QBCДата: Суббота, 17.09.2016, 10:06 | Сообщение # 67
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
подключили САТ, протокол kenwood(думаю добавим еще icom), пока минимум команд, частота , выбор модуляции,
 
UR7QMДата: Суббота, 17.09.2016, 17:20 | Сообщение # 68
Генералиссимус
Группа: Администраторы
Сообщений: 2539
Статус: Offline
Цитата UT5QBC ()
подключили САТ, протокол kenwood(думаю добавим еще icom), пока минимум команд, частота , выбор модуляции,

По опыту - практически во всех Кенвудах САТ работает по одному протоколу, чего не скажешь об Айкома и других фирмах. Там что не модель, то другой протокол.
 
UT5QBCДата: Воскресенье, 18.09.2016, 15:23 | Сообщение # 69
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
у айкома другое у каждого трансивера свой адрес (ID) вот и нужно прикинутся каким нибудь там I-726 или другой моделью. тоже нечего сложного.
Тут сейчас на другом зацепило, скорость от рисовки на экране, сейчас с Артемом прикрутили вывод частично через DMA, скорость конкретно выросла, хотя и до этого 10фпс было с головой.
Пробовал сейчас подымал до 30фпс(выше не стал), работает без глюков, но оставили работать на 20фпс.
 
vasylllДата: Пятница, 30.09.2016, 18:25 | Сообщение # 70
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Приветствую всех синтезаторостроителей.  wink
Так, собрал свой экземпляр для тестирования.
Получилось так



Крайняя прошивка та, которая на ГУГЛ диске synthesizer_v1o.bin  ?

А то что то она мне не очень нравится как работает. sad
Зависает при перестройке частоты с клавиатуры и энкодера.
Сохранённые мною прошивки a, b, c, d, e ... как то лучше ....
Все остальные режимы, клавиатура работают правильно.
СИшку пока не паял. только микроконтроллерную часть.
Прикрепления: 4896019.jpg (898.7 Kb) · 5468959.jpg (1.00 Mb)


Сообщение отредактировал vasylll - Пятница, 30.09.2016, 18:32
 
UV7QAEДата: Пятница, 30.09.2016, 19:38 | Сообщение # 71
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Да с зависаниями есть проблемка, причина найдена и будет устранена. Тестируем поделку по полной программе, же к самодельному трансиверу прикручена и опробована. Так что работа не стоит.
 
UV5QRДата: Пятница, 30.09.2016, 20:24 | Сообщение # 72
Qирий Rадіоаматор
Группа: Пользователи
Сообщений: 1410
Статус: Offline
Цитата UV7QAE ()
Тестируем поделку по полной программе, же к самодельному трансиверу прикручена

Трансивер надеюсь телеграфный?  )) shades
 
ЮрийДата: Суббота, 01.10.2016, 19:37 | Сообщение # 73
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
Цитата vasylll ()
Собрал свой экземпляр для тестирования.Получилось так

А что за перемычки, может плату нужно корректировать?
 
UV7QAEДата: Суббота, 01.10.2016, 20:39 | Сообщение # 74
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Да, верно. Это подтягивающие резисторы. Плат делали сразу несколько, на фото одна из них, насколько я знаю ее выслали автору фото, и он ее не изготавливал. Исходник платы уже исправлен. По поводу зависаний причина найдена и скоро будет устранена. Вкратце, есть выход АЦП который контролирует питание платы и если он ниже определенного порога, то отключаются все прерывания и идет сохранение. Так вот если плату держать руками, то довольно просто заставить АЦП дать значение больше 0, и тогда прерывания отключаются, контроллер сохраняет данные и готовится к отключению питания. Ну а после отключения прерываний, на вид контроллер "висит".
 
UT5QBCДата: Воскресенье, 02.10.2016, 09:26 | Сообщение # 75
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Цитата UV7QAE ()
Так вот если плату держать руками, то довольно просто заставить АЦП дать значение больше 0, и тогда прерывания отключаются, контроллер сохраняет данные и готовится к отключению питания. Ну а после отключения прерываний, на вид контроллер "висит".
скажу проще


Код
if(adc_in_voltage < 4.0)return; // For Debug                    
if(adc_in_voltage < 10) 
{                         
     __disable_interrupt();
     Data_Save(); //The End.
}


Сообщение отредактировал UT5QBC - Воскресенье, 02.10.2016, 09:27
 
vasylllДата: Воскресенье, 02.10.2016, 15:50 | Сообщение # 76
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
С прошивкой synthesizer_v1q.bin не зависает и вроде нормально работает.
Только вот у меня энкодер почему то в одну сторону перестраивает.
Подключал два разных типа, думал может с каким то беда. А всё одно не хочет. sad
Энкодеры механические, с двумя 0,1 мкФ на корпус.
Может цепочку питания еще сделать !? Завтра попробую.
Тут для информации, может будет время просмотреть, проверить.
http://caxapa.ru/207402.html
 
UV7QAEДата: Воскресенье, 02.10.2016, 16:20 | Сообщение # 77
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
vasylll посмотрите осцилогрфом что и как, какие фронты. Тут еще писали что центральный вывод на самом деле не масса. Я с этими  энкодерами на ардуине еще мучался, куда только они не крутили. Пока не выровняете фронты вам любой микроконтроллер будет черти что показывать. Проблема тут не в коде.
 
UT5QBCДата: Воскресенье, 02.10.2016, 17:17 | Сообщение # 78
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Василий в разговоре по телефону я вам советовал сделать нормальный RC фильтр по входу, это не просто один конденсатор.


Сейчас энкодер реализован аппаратно на таймере, писать под механику у меня лично желания нет не вижу в этом смысла, аппаратный и там будет работать только цепь подавления помех прикрутить. Но так как делаем под себя и механику не используем... пардон этой цепи нет на плате.

https://lh4.googleusercontent.com/m3AqCdx....20-h984


Сообщение отредактировал UT5QBC - Воскресенье, 02.10.2016, 18:03
 
UV7QAEДата: Понедельник, 03.10.2016, 00:33 | Сообщение # 79
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Добавлен S метр для ЧБ дисплея. Так же для настройки S метра в меню введены 3 параметра,  которые отвечают за минимум максимум показаний, а так же 9 балов. Показания задаются в милливольтах. 

Прикрепления: 1211513.jpg (787.7 Kb)
 
UV7QAEДата: Понедельник, 03.10.2016, 02:41 | Сообщение # 80
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Небольшое видео работы S метра. правда со тестовой отрисовкой. Зато проверил АРУ трансивера.

 
UT5QBCДата: Понедельник, 03.10.2016, 16:37 | Сообщение # 81
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
 
UV7QAEДата: Суббота, 08.10.2016, 23:48 | Сообщение # 82
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Доработка экрана от нокии
Прикрепления: 9213941.jpg (862.0 Kb)
 
vasylllДата: Воскресенье, 09.10.2016, 12:54 | Сообщение # 83
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Приветствую всех ...
А шо ж это в последней прошивке в меню только два пункта всего. sad
 
UV7QAEДата: Воскресенье, 09.10.2016, 13:09 | Сообщение # 84
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
А вы жмите подольше, увидите второе меню. Может не совсем удобно, пока главное разделить пользовательское и системное
 
vasylllДата: Воскресенье, 09.10.2016, 13:49 | Сообщение # 85
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Ага, понятно. Не прочитал обновленные пункты. sad
А САТ уже прикручен ? Можно по тестить ? Протокол, скорость ? Попробую через ЮСБ переходник.
 
UV7QAEДата: Воскресенье, 09.10.2016, 14:05 | Сообщение # 86
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
CAT есть 3 комманды всего скорость вроде 115200, протокол kenwood. Там пока 3 самые нужный комманды, TX частота и mode (USB LS cool
 
vasylllДата: Воскресенье, 09.10.2016, 15:41 | Сообщение # 87
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Проверил работу САТ. У меня управляется только кнопками самого синтезатора.
Работает переключение диапазонов и перестройка частоты.
С софта не хочет управляться. Будет время, со временем думаю
еще будете править его работу.



Сообщение отредактировал vasylll - Воскресенье, 09.10.2016, 15:45
 
UV7QAEДата: Воскресенье, 09.10.2016, 15:54 | Сообщение # 88
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Конечно будем. Сейчас много чего написано, приводим код в порядок, выкидываем что не пригодилось и потом опять, писать новые вещи. Лично я вообще пока CAT не крутил, но то что оно будет работать, даже не обсуждается )
 
vasylllДата: Воскресенье, 09.10.2016, 17:20 | Сообщение # 89
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Видел на Одесском форуме пошел процесс заказа плат. Не каждый может себе позволить применить оптику
в качестве управления. И будут применять простые, механические. И будет много вопросов по ИХ работе.
В течении прошедшей недели через день, другой уделял пол часа, час по этому вопросу.
Были три простых энкодеров китайского производства. RC фильтр применялся по такой стандартной схеме
Сопротивления в фильтре применял 4,7к 6,8к и 10к.  Более-менее работает с 6,8к с более качественным
типом энкодера. И то Все равно есть пропуски и пр.
С такой работой, настройкой я еще не сталкивался. sad Настройку этого узла наверное можно сравнить
с настройкой полосовых ...  Даже в проектах на Ардуино с их стандартной
библиотекой Rotary  работает как часики любая крутилка даже без элементов фильтра.

Я не программер, а только тестер и немного еще могу поковыряться в чужих проектах.  smile Не мало протестил с десяток
разных простых-сложных синтезаторов. Но наверное думаю, что нужно отказаться от этого устаревшего и примитивного
выставления шага перестройки энкодера. Тем более если применяется оптика.  Это нормально смотрится, работает
на ардуиновких проектах на LCD1602. А применить с интеллектуальным режимом работы.
Попробуйте найти, вставить, переписать, заменить этот кусок кода на другой, третий ...  Бо это ж....па. sad
Может получится лучший результат.  Не надо ж останавливаться на достигнутом !  Может быть еще лучше.
Извиняйте,  если обидел чем .... Самому охота что бы всё было чики-пики. wink


Сообщение отредактировал vasylll - Воскресенье, 09.10.2016, 17:24
 
UV7QAEДата: Воскресенье, 09.10.2016, 22:21 | Сообщение # 90
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Василий, вам написали по какой схеме желательно сделать, но вы упорно пытаетесь повторить нерабочий вариант. То что вы сделали не RC фильтр. Вас просили показать как это выглядит на осциллографе которы я надеюсь у вас есть. Вы бы хотя бы посмотрите качество сигнала которое вы подаете на контроллер. UT5QBC выше показывал что у него получается, и такая работа контроллера при таком сигнале закономерное поведение.

У меня есть механический энкодер и с полпинка как вы рассказываете у меня он еще ни разу не заводился, без цепочки не работает вообще. На ардуине более высокая вероятность работы потому что во первых это обрабатывается программно, во вторых частота обычно 8 МГц. Обработка такая идет медленно и неровности контроллер просто не замечает. Но RC цепочку народ ставит все равно
https://hifiduino.wordpress.com/2010....ections
Так же очень советую почитать
https://hifiduino.wordpress.com/2010....ebounce

Тут мы имеем дело с 24 мегагерцами это раз, во вторых обработка железом, скорость работы сумасшедшая, говоря простым языком если вы возьмете оптический энкодер на 1000 шагов на оборот и прикрутите это к дрели, то не будет ни одного пропуска biggrin . Если вы прикрутите механический, то контроллер будет отрабатывать каждый дребезг контактов, это и есть источник проблемы. Чтобы решить проблему механического энкодера нужно "замедлить" входы и поставить ограничение на скорость. И причем замедлить так, чтобы не пострадало все остальное. В нашем случае непозволительно ждать к примеру 10 миллисекунд и анализировать фронты. А включены прерывания, которые отрабатывают каждый шорох энкодера. Если что-то придумаем как это исправить, то исправим.
 
UT5QBCДата: Понедельник, 10.10.2016, 06:48 | Сообщение # 91
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Артем ситуация тут такая. Вот мой энкодер привожу эпюры после фильтра. Как видим канал А "срет" безбожно, что с этим делать ....
Я бы посоветовал сам себе  biggrin поменять энкодер или перебрать его и посмотреть на результат. Но постойте энкодер новый, не паяный был, лежал пару лет .....

Откинем всякие там "аппаратные" обработки энкодера, класика жанра код Ф.Грея.
Два входа А и В, прерывания А и В возникают при изменение уровней.
Энкодер имеет 4 состояния  gray_encode[4] = {2,0,3,1}; в бинарном 10, 00, 11, 01

Смотрим на мою эпюру, вопросы есть? Понятно что работать нормально не будет, выдумать алгоритмы на всякие "хитрые энкодеры" длиной в лист формата А4 желание нет.
Кстати мой энкодер не работает на Ардуино с классической библой энкодера, могу видео снять .... так что я бы не утверждал что на Ардуино все работает.

Выложил прошивку test попробуйте ради интереса(счет должен быть +-4 на один щелчек энкодера). Отпишитесь. Есть еще одна идея надо опробовать.



пробуем это


Код
static int8_t old_encoder_code = 0;
int8_t grayencode[4] = {2,0,3,1};

void Encoder_Read(void)// Функция вызывается в прерываниях по изменению уровней Rising,Falling по входам А и В
{
  int8_t new_encoder_code = 0;
  
  if(GPIO_ReadInputDataBit(ENCODER_PORT, ENCODER_PIN_A) == 0) new_encoder_code |= 0x01;
  if(GPIO_ReadInputDataBit(ENCODER_PORT, ENCODER_PIN_В) == 0) new_encoder_code |= 0x02;
  
  if(grayencode[old_encoder_code] == new_encoder_code)
  {
    encoder_direction = BACKWARD;
    encoder_shift--;
  }
  
  else if(grayencode[new_encoder_code] == old_encoder_code)
  {
    encoder_direction = FORWARD;
    encoder_shift++;
  }
  
  old_encoder_code = new_encoder_code;
}
Прикрепления: 9709155.jpg (127.5 Kb)


Сообщение отредактировал UT5QBC - Понедельник, 10.10.2016, 09:23
 
UT5QBCДата: Понедельник, 10.10.2016, 10:01 | Сообщение # 92
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
пробовал бороться со своим энкодером ..... это танцы с бубном.
Принял решение разобрать и промыть. Сделал.
Энкодер ожил. Возникает вопрос с каким периодом водить в "баню" энкодер biggrin

Работает что на старом коде с аппаратной обработкой что на тестовом.

Прикрепления: 8861170.jpg (146.8 Kb)


Сообщение отредактировал UT5QBC - Понедельник, 10.10.2016, 10:09
 
UV7QAEДата: Понедельник, 10.10.2016, 12:56 | Сообщение # 93
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Не удержался, взял свой механический энкодер, подкинул как у vasyl, с кондерами на энкодере 100n. Работает в одну сторону вообще замечательно,  другую немного тупит, если крутить быстро. Собственно так же оно себя вело на ардуине. Никакой магии.
 
UV7QAEДата: Вторник, 11.10.2016, 00:00 | Сообщение # 94
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Немного поровнял текст. И самое важное из нововведений - сделали динамический режим энкодера. Быстрее крутим - быстрее перестраиваемся. Уже проверил в трансивере, работает практически так же как в SW20XX 
Прикрепления: 2027667.jpg (756.5 Kb)
 
UV7QAEДата: Вторник, 11.10.2016, 01:43 | Сообщение # 95
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Думаю последнее сообщение про механический энкодер. Эпичная тема на чужом форуме, где народ пытался приручить механику, и RC цепочки и библиотеки и все вместе.

http://arduino.ru/forum/apparatnye-voprosy/ispolzuem-enkoder

В общем дошло до того, что писали код каждый под свой энкодер, со своими таймингами и прочими премудростями, у одного работает у другого нет )). У всех работает кое-как.
 
vasylllДата: Понедельник, 24.10.2016, 22:24 | Сообщение # 96
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Здравствуйте. Немного занялся рисованием в свободное время.
С учетом хотелок минимум представляется так. не помешало бы еще
две кнопки. АТТ, УВЧ по кругу можно куда будет удобней.
У 103-х PA11 & PA12 как раз на USB разъём подать можно.
Всё остальное подключение как у Вас. Ничего не менял.
Прикрепления: sintez.pdf (86.1 Kb) · 3061799.jpg (328.1 Kb)


Сообщение отредактировал vasylll - Понедельник, 24.10.2016, 22:29
 
vasylllДата: Вторник, 25.10.2016, 15:25 | Сообщение # 97
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
Привет ! Тестю по немного каждое усовершенствование, улучшение. wink
Радует, что проект обрастает "мясом" и дополнительными опциями.
Для меня осталась только одна проблема - работа с мех. энкодером.
Перепробовал 4 типа разных  и с разными номиналами в обвеске. Всё одно и то же. sad
Да еще  и "крутит" все в одном направлении.  Что в перед, что назад - в одну сторону
перестраивает. И не охота снимать с работающей конструкции оттику-128, что бы
посмотреть как оно с ней ... Ну да ладно ! Посмотрим как у других будет работать.
Сейчас начнут строить и не думаю, что у всех будет оптические "крутилки".

Прикрепления: 2352209.jpg (171.8 Kb)


Сообщение отредактировал vasylll - Вторник, 25.10.2016, 15:31
 
UT5QBCДата: Среда, 02.11.2016, 18:04 | Сообщение # 98
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
Не знаю что у вас с механикой но свой пока не почистил не работал, да я писал об этом, возвращаться к тематике мех. энкодера пока не собираемся, делали для себя.

На крайний случай я оптику лучше руками соберу, чем покупать ненужный ширпотреб.

https://ru.aliexpress.com/item....=400103

https://ru.aliexpress.com/item.....HXlVEm

главное хороший диск )))

Пока осваиваем платы китайские ))) (немного с браком сделали китаезы)

Прикрепления: 5465503.jpg (820.5 Kb)
 
us3qqДата: Среда, 02.11.2016, 20:57 | Сообщение # 99
Генералиссимус
Группа: Модераторы
Сообщений: 1309
Статус: Offline
А из оптических энкодеров есть разница между применением 400 и 600 p/r в обсуждаемом синтезаторе?
 
UV7QAEДата: Среда, 02.11.2016, 21:01 | Сообщение # 100
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
Разницы никакой, делитель потом можно в меню подстроить под себя.
 
Форум » Технический раздел » Приемно-передающая техника » Синтезатор на Si5351 (или очередной велосипед)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Дни рождения


Copyright Клуб "73" © 2024 | Сайт управляется системой uCoz