АвторСообщение



Пост N: 91
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.09.07 21:43. Заголовок: Модуль CCP


Работа с модулем CCP

Безумству храбрых поем мы песню. Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 11 [только новые]


постоянный участник




Пост N: 309
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг: 1
ссылка на сообщение  Отправлено: 22.10.07 17:04. Заголовок: ШИМ в PIC18F252


Ребята! Что-то не могу въехать в работу этого узла (что-то съел, или действительно пора в отпуск...).
Правильно ли я понял, что меняя коэффициент деления постделителя TMR2 (1:1, 1:2, 1:3 - 1:16) получаем разную длительность импульса Ти, соответственно разную скважность? Для получения длительности Ти равному длительности периода (Тп) этот КД должен быть равен 1:1?

Удивление рождает жажду познания... Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 106
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг: 2
ссылка на сообщение  Отправлено: 22.10.07 19:35. Заголовок: Re:


Выходной делитель не влияет на Tп и Ти, так как он не включен во внутреннее кольцо обратной связи модуля ССР, работающего в режиме ШИМ.
С его помощью можно только воздействовать на флаг TMR2IF.
Это воздействие заключается в периодическом поднятии флага TMR2IF через интервалы времени кратные (зависит от выбранного Кдел.) периоду ШИМ-сигнала.
Это позволяет определить моменты начала "загрузки", в CCPR1L/CCP1CON,5,4, числовых значений "новых" длительностей импульсов (флаг TMR2IF поднимается в самом начале "нового" периода ШИМ-сигнала. Тогда и нужно копировать, а не абы как).
Если нужно менять длительность каждого импульса (а не через 2 … 16 импульсов), то нужно выставить Кдел. выходного делителя = 1.
В "Практикуме…" это подробно расписано ("плавающая" задержка под флаг TMR2IF), просто Вы наверное еще не дочитали до этого места.
Кроме того, по факту поднятия флага TMR2IF можно прерваться (если требуется) или сделать еще какие-то дела (тут уж кто во что горазд).


Безумству храбрых поем мы песню. Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 310
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг: 1
ссылка на сообщение  Отправлено: 22.10.07 20:42. Заголовок: Re:


Evgeny Korabelnikov пишет:

 цитата:
Если нужно менять длительность каждого импульса (а не через 2 … 16 импульсов), то нужно выставить Кдел. выходного делителя = 1.


Т.е. чтобы получить "пилу" Кдел. постделителя должен быть равен 1:1, значение в регистрах CCPR1L/CCP1CON,5,4 должно меняться от 1 до 624. В регистр PR2 записать число .155. А если многоступенчатую(каждая ступенька будет состоять из кол-ва импульсов, которые пройдут в зависимости от Кдел постделителя), то меняем Кдел. постделителя? Разумеется, на выходе ШИМ RC цепочка...

Evgeny Korabelnikov пишет:

 цитата:
...наверное еще не дочитали...


Есть такой грех. Отвлёкся на другую задачу.
Спасибо!

Удивление рождает жажду познания... Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 418
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг: 1
ссылка на сообщение  Отправлено: 22.10.07 21:26. Заголовок: Re:


Evgeny Korabelnikov пишет:

 цитата:
по факту поднятия флага TMR2IF

Каюсь, тоже ещё не дочитал. Правильно ли я понимаю, что помимо данного флага, при работе ШИМ, поднимается ещё и флаг "окончания импульса ШИМа" (не помню, как называется)?

Obligatus Servus Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 107
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг: 2
ссылка на сообщение  Отправлено: 22.10.07 22:21. Заголовок: Re:


Вы наверное имеете ввиду флаг прерывания от модуля CCP с названием CCP1IF.
Этот флаг активен только в режимах захвата и сравнения.
В режиме ШИМ он не работает (см. даташит, регистр PIR1).
Так что от флага TMR2IF никак не отвертишься.


Безумству храбрых поем мы песню. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 108
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг: 2
ссылка на сообщение  Отправлено: 22.10.07 23:10. Заголовок: Re:


Чтобы получить приращение длительности импульса в каждом периоде, нужно выставить Кдел. выходного делителя = 1, и в простейшем случае, организовать инкремент (декремент) CCPR1L/CCP1CON,5,4 с закольцовкой всего этого "безобразия" через полный цикл программы.
При этом, с учетом работы по кольцу, получится устройство, вырабатывающее импульсную последовательность, в которой изменение длительности импульсов происходит по закону "пилы" (по линейному закону).
Можно выставить и больший Кдел. выходного делителя. В этом случае, период пилы увеличится в число раз равное Кдел. выходного делителя.
Это, кстати, достаточно удобно (в смысле всяческих экспериментов).
Сказанное выше относится к тому случаю, когда время отработки полного цикла программы (без учета "плавающей" задержки, работающей с флагом TMR2IF) меньше времени периода ШИМ-сигнала.
В противном случае, период "пилы" увеличится за счет того, что, не смотря на Кдел = 1, приращение длительности импульса будет происходить не в каждом периоде ШИМ-сигнала, а допустим, через 2, 3 и т.д. периода (зависит от "массивности" полного цикла программы).
Детали этого дела достаточно подробно "расписаны" в "Практикуме…", в подразделе посвященном модулю АЦП.

Безумству храбрых поем мы песню. Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 420
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг: 1
ссылка на сообщение  Отправлено: 23.10.07 08:10. Заголовок: Re:


Evgeny Korabelnikov, тенкс!

Obligatus Servus Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 504
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг: 0
ссылка на сообщение  Отправлено: 21.10.09 18:26. Заголовок: Всвязи с последними ..


Всвязи с последними обсуждениями просматривал даташит на PIC16F628A и в режиме захвата интересную возможность обнаружил(примечание на странице 61).

Если канал ввода/вывода настроен на выход, то захват может происходить командой из программы.

Вопрос - какой командой?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1302
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 4
ссылка на сообщение  Отправлено: 21.10.09 18:30. Заголовок: kaligraf пишет: Воп..


kaligraf пишет:

 цитата:
Вопрос - какой командой?

Movwf PortX естественно.
Ну или bcf PortX,x или bsf PortX,x

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 505
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг: 0
ссылка на сообщение  Отправлено: 21.10.09 19:46. Заголовок: Проверил в симулятор..


Проверил в симуляторе МПЛаб - работает. Спасибо!

PS
Почему то думал, что надо каким-нибудь флагом поуправлять, а оказывается выводом порта.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1395
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг: 4
ссылка на сообщение  Отправлено: 21.10.09 21:20. Заголовок: Если канал ввода/выв..


Если канал ввода/вывода настроен на выход, то захват может происходить командой из программы.

Речь идет о программном формировании (например, bcf/bsf) ранее назначенного активного перепада. Это свидетельствует о том, что при работе RB3 "на выход", вход предделителя (см. рис.10-1), от этого вывода, не отключается (то есть, при работе "на выход", он остается подключеным к соответствующей защёлке порта).
Естественно, что эта возможность обеспечивается только при включенном модуле CCP, работающем в режиме захвата.


Безумству храбрых поем мы песню (А.М.Горький) Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия