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

 
 
> PWM в PICе, Аспекты реализации
Саша Z
сообщение Mar 21 2009, 18:03
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Есть задача реализации PWM, т.е считывание PWM при сохранении достаточно высокой точности.
На входе контроллера - PWM датчика, нулевой показатель - 50% (с допуском), весь range +/- 12.5% вокруг 50%.
Требуемая точность считывания контроллером: 0.04375% или лучше.
Полный период длится 10 msec.

После считывания PWM входа - нужно делать не сложные расчеты для получения конечных данных + калибрацию датчика, посему реализация будет - простым 8-битным микроконтроллером типа PICa или Atmel ибо нужно низкое потребление.
Вопрос - как обычно реализуется микроконтролером считывание PWMa учитывая требуемую точность ? Ведь там-же программа, а ее real-time есть понятие весьма относительное....
Есть понятие timerа в такого типа контроллерах, как они могут помочь тут ? Считают ли они в точности по clockу контроллера (т.е. по его crystal/oscillator) ?

Прикидочные PWM вычисления:
предположим 10 MHz клок, не учитываем для простоты его ppm и jitter.
получаем длительность периода датчика = 100 000 клоков, 50% -> 50 000/ 100 000.
Требуемая точность: 0.04375% - т.е. минимальный надежно определяемый шаг = каждые 43.75 клока (скажем 43 клока) что есть 49.957% PWM.
Для чисто hardwareной системы (скажем FPGA) - это не проблема, но тут замешана программа выполения которой не всегда дает real-time относительно клока.

Как оно далется контроллерами ?

Спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
xemul
сообщение Mar 21 2009, 19:39
Сообщение #2



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Саша Z @ Mar 21 2009, 21:03) *
Есть задача реализации PWM, т.е считывание PWM при сохранении достаточно высокой точности.
На входе контроллера - PWM датчика, нулевой показатель - 50% (с допуском), весь range +/- 12.5% вокруг 50%.
Требуемая точность считывания контроллером: 0.04375% или лучше.
Полный период длится 10 msec.

Подаете на вход таймера (внешнюю) опору с частотой и (кратковременной) стабильностью, удовлетворяющими требованиям по точности измерения. Для упрощения жизни удобнее (но необязательно, если период PWM не плавает в разы), чтобы за период PWM счетчик не переполнялся более 1 раза.
Фиксируете по прерыванию от каждого фронта PWM состояние счетчика.
Остается несложная арифметика типа (a-b )/(a+b ), которая должна выполниться за <10 мс. Если период PWM равен 10 msec с точностью 0.04375% или лучше, то арифметика упрощается за счет обходимости деления.
Нутряные RC-генераторы что у ПИКов, что у АВРов в качестве опоры заявленные требования по точности по-любому не удовлетворят.

Посмотрите какой-то аппнот AD по обработке акселерометров с выходом в PWM - там все это расписано.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 21 2009, 20:01
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(xemul @ Mar 21 2009, 22:39) *
Нутряные RC-генераторы что у ПИКов, что у АВРов в качестве опоры заявленные требования по точности по-любому не удовлетворят.

А мне внутренний голос сказал, что за 10 миллисекунд внутренний генератор у современных приличных ПИКов никуда не убежит.
Go to the top of the page
 
+Quote Post
xemul
сообщение Mar 21 2009, 20:14
Сообщение #4



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Tanya @ Mar 21 2009, 23:01) *
А мне внутренний голос сказал, что за 10 миллисекунд внутренний генератор у современных приличных ПИКов никуда не убежит.

Убежать не убежит, но дрожит, зараза, неприлично, причем зависимо от типа операций и количества 0/1 в операндах.
имхо, в данном случае проще устранить одну степень свободы, чем задумываться о степени ее свободностиsmile.gif.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Mar 21 2009, 21:09
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(xemul @ Mar 22 2009, 00:14) *
Убежать не убежит, но дрожит, зараза, неприлично,

Кстати, PLL clk stabitity jitter - знакомая цифра 2%, при измерении ШИМ с данной точностью убивает все . Вывод: не использовать PLL в пике, если он каким-то образом будет на измеряющей стороне. 
Go to the top of the page
 
+Quote Post



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

 


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


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