Синтезатор на Si5351 (или очередной велосипед)
|
|
UT5QBC | Дата: Пятница, 09.09.2016, 16:55 | Сообщение # 51 |
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
| Подключил... Я даже не знаю что вам сказать )))) это не дребезг даже, это хз знает что ....
|
|
| |
UT5QBC | Дата: Пятница, 09.09.2016, 17:20 | Сообщение # 52 |
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
| Полез разбираться, оказалось что средний вывод это все таки не земля, земля один из крайних Вот теперь эпюра больше похожа на то что нужно.
|
|
| |
UT5QBC | Дата: Пятница, 09.09.2016, 18:05 | Сообщение # 53 |
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
| очередная пробная прошивка ))) у меня все работает без пропусков, да пришлось подкинуть конденсаторы на выводы энкодера (подтяжка к плюсу через резисторы контроллера) емкости 220n не нашлось выводных на 100n.
|
|
| |
vasylll | Дата: Пятница, 09.09.2016, 18:18 | Сообщение # 54 |
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
| Цитата UT5QBC ( ) очередная пробная прошивка ))) Да, вот эта уже нормально, на каждом тике вперед-назад, без пропусков перестраивает.
|
|
| |
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 вывода (но для QRP потом посчитали нам это слишком)
|
|
| |
vasylll | Дата: Воскресенье, 11.09.2016, 18:51 | Сообщение # 61 |
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
| Не нравится работа АЦП вольтметра. Установил делитель 3,3к + 30к. Без подачи напряжения работает все нормально и показывает 0.0V При подачи питания (3,3В), синтезатор зависает после нескольких оборотов энкодером. А если еще выставить в ADC PRESCALER в крайние положения, то синтезатор еще как бы подтупливает, медленней диапазоны переключаются ну и виснет потом.
Цитата UT5QBC ( ) А была идея вначале применить контроллер на 64 вывода biggrin (но для QRP потом посчитали нам это слишком) Вы сами себе противоречите. То Вы сторонник в простом QRP применять дорогостоящий, дефицитный оптический энкодер, то уже посчитали, что применение на 1$ дороже МК не целесообразно.
Предложение: Если применять простой механический энкодер с кнопкой на оси, то наверное не плохо бы этой кнопкой менять по кругу шаг перестройки. Чтобы в меню лишний раз не залазить.
|
|
| |
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 ( ) подарить печатку есть пару штук выслать вам по НП принял бы конечно платку на НП. Самому не очень есть времени делать. Тогда бы уже полноценно тестил.
Цитата UT5QBC ( ) Вот вам весь код обработки прерывания по окончании конвертации ADC, adc_in_voltage Да я и сам так подумал. Как там может быть ошибка или плохой код. Ведь вольтметр - он же и в Африке вольтметр !
А когда уже весь алфавит пройдем, то прошивки как уже будут зваться ? .v1аа или уже двойка пойдет ?
|
|
| |
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
| Посовещались, подсказал как сделать удобно. Скоро будет одна папка где будут разные версии прошивки. Так как Юре самому надоело переименовывать
|
|
| |
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
| Приветствую всех синтезаторостроителей. Так, собрал свой экземпляр для тестирования. Получилось так
Крайняя прошивка та, которая на ГУГЛ диске synthesizer_v1o.bin ?
А то что то она мне не очень нравится как работает. Зависает при перестройке частоты с клавиатуры и энкодера. Сохранённые мною прошивки a, b, c, d, e ... как то лучше .... Все остальные режимы, клавиатура работают правильно. СИшку пока не паял. только микроконтроллерную часть.
Сообщение отредактировал 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 ( ) Тестируем поделку по полной программе, же к самодельному трансиверу прикручена Трансивер надеюсь телеграфный? ))
|
|
| |
Юрий | Дата: Суббота, 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 не зависает и вроде нормально работает. Только вот у меня энкодер почему то в одну сторону перестраивает. Подключал два разных типа, думал может с каким то беда. А всё одно не хочет. Энкодеры механические, с двумя 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 балов. Показания задаются в милливольтах.
|
|
| |
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
| Доработка экрана от нокии
|
|
| |
vasylll | Дата: Воскресенье, 09.10.2016, 12:54 | Сообщение # 83 |
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
| Приветствую всех ... А шо ж это в последней прошивке в меню только два пункта всего.
|
|
| |
UV7QAE | Дата: Воскресенье, 09.10.2016, 13:09 | Сообщение # 84 |
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
| А вы жмите подольше, увидите второе меню. Может не совсем удобно, пока главное разделить пользовательское и системное
|
|
| |
vasylll | Дата: Воскресенье, 09.10.2016, 13:49 | Сообщение # 85 |
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
| Ага, понятно. Не прочитал обновленные пункты. А САТ уже прикручен ? Можно по тестить ? Протокол, скорость ? Попробую через ЮСБ переходник.
|
|
| |
UV7QAE | Дата: Воскресенье, 09.10.2016, 14:05 | Сообщение # 86 |
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
| CAT есть 3 комманды всего скорость вроде 115200, протокол kenwood. Там пока 3 самые нужный комманды, TX частота и mode (USB LS
|
|
| |
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к с более качественным типом энкодера. И то Все равно есть пропуски и пр. С такой работой, настройкой я еще не сталкивался. Настройку этого узла наверное можно сравнить с настройкой полосовых ... Даже в проектах на Ардуино с их стандартной библиотекой Rotary работает как часики любая крутилка даже без элементов фильтра.
Я не программер, а только тестер и немного еще могу поковыряться в чужих проектах. Не мало протестил с десяток разных простых-сложных синтезаторов. Но наверное думаю, что нужно отказаться от этого устаревшего и примитивного выставления шага перестройки энкодера. Тем более если применяется оптика. Это нормально смотрится, работает на ардуиновких проектах на LCD1602. А применить с интеллектуальным режимом работы. Попробуйте найти, вставить, переписать, заменить этот кусок кода на другой, третий ... Бо это ж....па. Может получится лучший результат. Не надо ж останавливаться на достигнутом ! Может быть еще лучше. Извиняйте, если обидел чем .... Самому охота что бы всё было чики-пики.
Сообщение отредактировал 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 шагов на оборот и прикрутите это к дрели, то не будет ни одного пропуска . Если вы прикрутите механический, то контроллер будет отрабатывать каждый дребезг контактов, это и есть источник проблемы. Чтобы решить проблему механического энкодера нужно "замедлить" входы и поставить ограничение на скорость. И причем замедлить так, чтобы не пострадало все остальное. В нашем случае непозволительно ждать к примеру 10 миллисекунд и анализировать фронты. А включены прерывания, которые отрабатывают каждый шорох энкодера. Если что-то придумаем как это исправить, то исправим.
|
|
| |
UT5QBC | Дата: Понедельник, 10.10.2016, 06:48 | Сообщение # 91 |
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
| Артем ситуация тут такая. Вот мой энкодер привожу эпюры после фильтра. Как видим канал А "срет" безбожно, что с этим делать .... Я бы посоветовал сам себе поменять энкодер или перебрать его и посмотреть на результат. Но постойте энкодер новый, не паяный был, лежал пару лет .....
Откинем всякие там "аппаратные" обработки энкодера, класика жанра код Ф.Грея. Два входа А и В, прерывания А и В возникают при изменение уровней. Энкодер имеет 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; }
Сообщение отредактировал UT5QBC - Понедельник, 10.10.2016, 09:23 |
|
| |
UT5QBC | Дата: Понедельник, 10.10.2016, 10:01 | Сообщение # 92 |
Майор
Группа: Пользователи
Сообщений: 86
Статус: Offline
| пробовал бороться со своим энкодером ..... это танцы с бубном. Принял решение разобрать и промыть. Сделал. Энкодер ожил. Возникает вопрос с каким периодом водить в "баню" энкодер
Работает что на старом коде с аппаратной обработкой что на тестовом.
Сообщение отредактировал 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
|
|
| |
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 разъём подать можно. Всё остальное подключение как у Вас. Ничего не менял.
Сообщение отредактировал vasylll - Понедельник, 24.10.2016, 22:29 |
|
| |
vasylll | Дата: Вторник, 25.10.2016, 15:25 | Сообщение # 97 |
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
| Привет ! Тестю по немного каждое усовершенствование, улучшение. Радует, что проект обрастает "мясом" и дополнительными опциями. Для меня осталась только одна проблема - работа с мех. энкодером. Перепробовал 4 типа разных и с разными номиналами в обвеске. Всё одно и то же. Да еще и "крутит" все в одном направлении. Что в перед, что назад - в одну сторону перестраивает. И не охота снимать с работающей конструкции оттику-128, что бы посмотреть как оно с ней ... Ну да ладно ! Посмотрим как у других будет работать. Сейчас начнут строить и не думаю, что у всех будет оптические "крутилки".
Сообщение отредактировал 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
главное хороший диск )))
Пока осваиваем платы китайские ))) (немного с браком сделали китаезы)
|
|
| |
us3qq | Дата: Среда, 02.11.2016, 20:57 | Сообщение # 99 |
Генералиссимус
Группа: Модераторы
Сообщений: 1309
Статус: Offline
| А из оптических энкодеров есть разница между применением 400 и 600 p/r в обсуждаемом синтезаторе?
|
|
| |
UV7QAE | Дата: Среда, 02.11.2016, 21:01 | Сообщение # 100 |
Генерал-майор
Группа: Администраторы
Сообщений: 407
Статус: Offline
| Разницы никакой, делитель потом можно в меню подстроить под себя.
|
|
| |