реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ШИМ в SAM7s256, глюк? или грабля?
AlexMad
сообщение Nov 22 2006, 21:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Суть задачи: получить импульсы определенной частоты и скважности...
При инициализации ставлю PWMC_CPRDR = некое значение, PWMC_CDTYR = некое значение, больше, чем нуль и меньше, чем CPRDR, PWMC_CUPDR = то же, что и CPRDR, PWMC_CPOL = 0. CPRDR/CDTYR(скважность) = 0.1. Все работает.
Во время работы меняю скважность с 0,1 на 0.9, то есть просто меняю CDTYR. Как правило, просто меняется полярность импульсов, чего я и хочу добиться, но обратите внимание, именно, как правило, то есть ни стого ни с сего полярность замирает, меняю скважность на 0.2 и 0.8, чтобы осциллографом увидеть изменение, длительность меняется, полярность - не всегда sad.gif. Специально купил мт-линк, слежу за PWMC_CPOL - оно не меняется, более того, просто меняю его с нуля на еденицу - на выходной сигнал это никак не влияет sad.gif.
Кто виноват и что делать?
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Nov 22 2006, 22:36
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Кривой там ШИМ, для начала советую эррату, а дальше искать запрешенные комбинации самостоятельно. В моем проекте на 512 градаций, пришлось начинать сразу с двойки, с единицей был описанный глюк.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Nov 23 2006, 10:10
Сообщение #3


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(AlexMad @ Nov 22 2006, 21:58) *
Во время работы меняю скважность с 0,1 на 0.9, то есть просто меняю CDTYR.

Уж что-что а шим - рабочий, не надо ля-ля. Просто для того чтобы менять скважность нужно рпрописывать PWMC_CUPDR или (PWMC_CPRDR + PWMC_CDTYR по этому вариану и написана эррата) ивсе пработает и со сквжностью на еденичку меньше периода и с со скважностью 1. стр 430 даташита абзац "Changing the Duty Cycle or the Period" А пользоватся эрратой для того чтобы менять полярность сигнала - это вообще чудеса на виражах.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
AlexMad
сообщение Nov 23 2006, 11:53
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Цитата(SpiritDance @ Nov 23 2006, 10:10) *
Цитата(AlexMad @ Nov 22 2006, 21:58) *

Во время работы меняю скважность с 0,1 на 0.9, то есть просто меняю CDTYR.

Уж что-что а шим - рабочий, не надо ля-ля. Просто для того чтобы менять скважность нужно рпрописывать PWMC_CUPDR или (PWMC_CPRDR + PWMC_CDTYR по этому вариану и написана эррата) ивсе пработает и со сквжностью на еденичку меньше периода и с со скважностью 1. стр 430 даташита абзац "Changing the Duty Cycle or the Period" А пользоватся эрратой для того чтобы менять полярность сигнала - это вообще чудеса на виражах.

именно так я и делаю :

PWMcontroller->PWMC_CPRDR = iPrescaler;
PWMcontroller->PWMC_CDTYR = iDuty;
PWMcontroller->PWMC_CUPDR = iPrescaler;
PWMcontroller->PWMC_CMR = MCKtoPWM | CPD_ON | CPOL_OFF | CALG_OFF ;

и если менять соотношение iDuty/iPrescaler с 0,1 на 0,9 на выходе НИЧЕГО не меняется, как предыдущий человек написал, именно это и описано в еррате.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Nov 23 2006, 14:55
Сообщение #5


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



бррр. погодите-ка.
Насколько я понимаю нужно получать соотношения периода к dutycicle 10/9 и 10/1

следовательно нужно задать начальные значения:

PWMcontroller->PWMC_CPRDR = 10;
PWMcontroller->PWMC_CDTYR = 1;

далее:

CPD = 0
PWMcontroller->PWMC_CUPDR = 9; //изменяем скважность сигнал должен поменяться

теперь Объясните мне зачем менять полярность на ходу?


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
AlexMad
сообщение Nov 23 2006, 21:50
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Цитата(SpiritDance @ Nov 23 2006, 14:55) *
бррр. погодите-ка.
Насколько я понимаю нужно получать соотношения периода к dutycicle 10/9 и 10/1

следовательно нужно задать начальные значения:

PWMcontroller->PWMC_CPRDR = 10;
PWMcontroller->PWMC_CDTYR = 1;

далее:

CPD = 0
PWMcontroller->PWMC_CUPDR = 9; //изменяем скважность сигнал должен поменяться

теперь Объясните мне зачем менять полярность на ходу?


просто надо в процессе отладки понять, какая полярность мне нужна, поэтомму и меняю на ходу, причем меняю не полярность, а скважность (насчет отношения 10/1 и 10/9 вы правильно поняли, просто я использую 1/0.1 и 1/0.9, что есть то же самое). Да и дело не в том, зачем менять полярность, мне скважность подобрать надо, а с полярностью я просто столкнулся и меня это напугало, мне этими импульсами светодиод зажигать, если он будет почти всегда светиться (при неправильной полярности шима) то он сгорит к чертям.
З.Ы. вот только что сгорел sad.gif благо стоял копеечный, а потом там будет стоять диод стоимостью 70 уе и очень чувствительный к перебору тока.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Nov 24 2006, 10:08
Сообщение #7


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



blink.gif Ну и схемотехника, блин, у вас.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Nov 24 2006, 10:52
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
благо стоял копеечный, а потом там будет стоять диод стоимостью 70 уе и очень чувствительный к перебору тока.

Может в таком случае стоит озаботится микросхемой драйвера?


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
AlexMad
сообщение Nov 24 2006, 13:17
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Цитата(beer_warrior @ Nov 24 2006, 10:52) *
Цитата
благо стоял копеечный, а потом там будет стоять диод стоимостью 70 уе и очень чувствительный к перебору тока.

Может в таком случае стоит озаботится микросхемой драйвера?

Да не в драйвере дело, он в норме, просто засветил светодиод почти сразу с выхода шима, чтобы видеть результат... Дело, повторюсь - не в драйвере, даже на то, что не поменять на ходу полярность - могу плюнуть, просто я увидел, что это не работает и стал искать, в чем дело. Если это проблема САМа, то и пес с ней, если я чего-то неправильно делаю - надо понять, что именно.
Go to the top of the page
 
+Quote Post
etoja
сообщение Nov 24 2006, 14:05
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



диод за 70уе, наверное лазерный.
Go to the top of the page
 
+Quote Post
AlexMad
сообщение Nov 24 2006, 18:29
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Цитата(etoja @ Nov 24 2006, 14:05) *
диод за 70уе, наверное лазерный.

нифига не лазерный, обычный, тока у него излучение в очень специфическом диапазоне
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.036 секунд с 7
ELECTRONIX ©2004-2016