Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

PIC18F6622 как да излъжа ECCP модул
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=14301
Страница 1 от 2

Автор:  dgeorgiev92 [ Чет Яну 21, 2016 11:28 am ]
Заглавие:  PIC18F6622 как да излъжа ECCP модул

Здревейте.
Имам следната задача но не мога да и намеря решение ще съм ви много благодарен да ми помогнете.
имам един стъпков двигател и свъпков драйвер на който му се подават само стъпки и посока. И целта е да се клати съответния изход на микроконтролера с зададена честота от мен в границите от няколко херца до 100kHz но това да се случва хардуерно без софтуерни ресурси. Опитах с таймер който при препълване да клати пина но това е софтуерно и не мога да достигна високи честоти и също така с прекъсванията става мазало. Опитах през ECCP модула с настройка за смяна на състоянието на изхода при съвпадение. Но и при него виждам проблем когато трябва да променям честотата на таймера пак се получава същото като предното състояние. Другото което пробвах е да го пусна през PWM модула. Когато задам на ECCP да се включи в началото и според периода си определям честотата, а тук проблема е че при тактов генератор от 20MHz не мога да падна под 20kHz. Отделно че и модула за PWM няма вход за външен тактов генератор от основния. На кратко това са проблемите който срещнах ако имате по добри предложения ще се радвам да ги чуя.
Поздрави Деян. :)

Автор:  ike [ Чет Яну 21, 2016 12:36 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

За какво друго се използва пика, освен да клати стъпковия драйвер?

Автор:  dgeorgiev92 [ Чет Яну 21, 2016 1:52 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

За доста неща. LCD, serial comunication и обратна връзка от двигателя.

Автор:  mitko_el [ Чет Яну 21, 2016 2:37 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

Клатил съм стъпков драйвер (3 парчета с 1 мцу на Silab) . С 16 бит таймер , има 1 прекъсване , променям състоянието на пина и това е.

Автор:  dgeorgiev92 [ Чет Яну 21, 2016 2:42 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

mitko_el написа:
Клатил съм стъпков драйвер (3 парчета с 1 мцу на Silab) . С 16 бит таймер , има 1 прекъсване , променям състоянието на пина и това е.

Да пробвах го това нещо но не искам постоянно да влизам в прекъсването и да сменям състоянието на пина. Трябва автоматично да си сменя състоянието.

Автор:  4040 [ Чет Яну 21, 2016 4:42 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

PIC18F8722 FAMILY DS39646C-page 182 © 2008 Microchip Technology Inc.

17.3 Compare Mode
17.3.4 SPECIAL EVENT TRIGGER
FIGURE 13-1: TIMER1 BLOCK DIAGRAM

Автор:  dgeorgiev92 [ Чет Яну 21, 2016 6:02 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

4040 написа:
PIC18F8722 FAMILY DS39646C-page 182 © 2008 Microchip Technology Inc.

17.3 Compare Mode
17.3.4 SPECIAL EVENT TRIGGER
FIGURE 13-1: TIMER1 BLOCK DIAGRAM


Много ти благодаря. Точно това ми трябва но нещо не мога да го пусна. Настроил съм таймер 3 да работи с ЕCCP3 но на изхода RG0/ECCP3 няма никой настроен е като изход.... В блок диаграмата е даден пример с CCP4 да не би само на него да работи този с SPECIAL EVENT TRIGGER макар че пише че всички CCP-та го поддържат?

П.С. 1011 = Compare mode: trigger special event (ECCP resets TMR1 or TMR3, sets CCPxIF bit; ECCP2 trigger starts A/D conversion if A/D module is enabled) това означава ли че ще ми генерира прекъсване и пак софтуерно да променям състоянието на изхода?

Автор:  4040 [ Чет Яну 21, 2016 8:15 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

Мда , с тригера няма да стане защото отменя бутането на изхода. Остава с това:
Цитат:
0010 = Compare mode: toggle output on match

Като в прекъсване да си ъпдейтваш таймера със сумиране, а не със стойност. Може да се направи в рамките на периода, а не веднага - сиреч ще имаш време.
ТМР2 има и прескалер 1/16 така ,че може да смъкнеш PWM-а до 1кхц. А може за ниските честоти (редки прекъсвания) да ползваш режим Compare, а за високите да преминаваш на PWM. Ако и това не те устройва , има малки контролерчета, които могат да се ползват само за драйвера на двигателя.

Автор:  dgeorgiev92 [ Чет Яну 21, 2016 8:37 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

4040 написа:
Мда , с тригера няма да стане защото отменя бутането на изхода. Остава с това:
Цитат:
0010 = Compare mode: toggle output on match

Като в прекъсване да си ъпдейтваш таймера със сумиране, а не със стойност. Може да се направи в рамките на периода, а не веднага - сиреч ще имаш време.
ТМР2 има и прескалер 1/16 така ,че може да смъкнеш PWM-а до 1кхц. А може за ниските честоти (редки прекъсвания) да ползваш режим Compare, а за високите да преминаваш на PWM. Ако и това не те устройва , има малки контролерчета, които могат да се ползват само за драйвера на двигателя.

Аха значи с Compare mode: trigger special event не става а със другите 2 начина който казваш вече ги пробвах но там проблема е че не искам при всяко прекъсване да пиша в таймера. а втория по ниска честота от 20кхц не успях да сляза по надолу. Какви са контролерчетата за драйвовете?

Автор:  4040 [ Чет Яну 21, 2016 9:31 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

Прегледай например PIC16F1503, 12F1571, 10F320... Имат NCO , PSMC , PWM , а и няма да се конкурират с други задачи. Макар ,че не виждам какво толкова те притесняват прекъсванията. Този двигател как ще се върти - подаваш му една честота и като вентилатор ?

Автор:  dgeorgiev92 [ Чет Яну 21, 2016 10:21 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

Благодаря за предложените контролери. :)
Ами не няма да е с една честота ще се сменя. Малко по нагоре казах че има обратна връзка с енкодер на двигателя и ще го позиционирам. И ще трябва да има и рампи на ускорение.
А гледам документацията и гледам че ECCP модула при SPECIAL EVENT TRIGGER е обвързан с trigger starts A/D conversion if A/D module is enabled това за какво?

Автор:  4040 [ Пет Яну 22, 2016 12:53 am ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

dgeorgiev92 написа:
... trigger starts A/D conversion if A/D module is enabled това за какво?

АЦП-то като го разрешиш, то сАмо си седи. За да вземеш отчет, трябва софтуерно да го стартираш за всеки отчет. Та този тригер го стартира хардуерно, синхронно със CCP модула. Но резултата пак трябва да си го вземеш софтуерно, преди да постъпи следващия тригер, иначе ще замести резултата с новия.

Автор:  dgeorgiev92 [ Пет Яну 22, 2016 1:23 am ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

аха ясно благодаря. :)

Автор:  Cekins [ Нед Яну 24, 2016 4:52 pm ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

Много смело желание за това ядро. Може и да се получи всичко което искаш но с голяма софтуерна акробатика и да пуснеш пика на 80-100 мегахерца. Прилични рампи и към 15 кхц. съм постигал с 46к22 на 64мхц клок.

Автор:  dgeorgiev92 [ Пон Яну 25, 2016 11:58 am ]
Заглавие:  Re: PIC18F6622 как да излъжа ECCP модул

А да попитам за управлението на постояннотоков двигател с Half-Bridge mode дали може да се управлява посоката. Като цяло не го разбирам много много може ли да ми обясните как работи ECCP half-bridge mode.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/