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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> делитель напряжения для Vref АЦП
rx3apf
сообщение Dec 19 2008, 18:25
Сообщение #16


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(@Ark @ Dec 19 2008, 14:31) *
Все, больше ничего не нужно. Измеряя количество команд от начала до конца импульса, получите значение с разрешением примерно 300нс (3 команды). То есть, с точностью примерно 1% даже без усреднения...
P.S. Вряд ли другими способами получите на много лучший результат...

Хм. Используя timer capture, можно иметь разрешение, равное частоте тактирования таймера. Всяко лучше, чем делать это программно... Ну, а переводить это в аналог, а потом оцифровывать - помнится, читал я где-то хохму (из нашей российской реальности), где одни печатали документы, а другие эти же документы потом OCRрили. Автоматизация, так сказать...
Go to the top of the page
 
+Quote Post
Nebel
сообщение Dec 19 2008, 21:44
Сообщение #17





Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319



Цитата(Microwatt @ Dec 19 2008, 16:10) *
Трудно решать любую задачу, если она не сформулирована. Или сформулирована неверно.
Вначале говорится о внешнем опорном, потом выясняется, что это не опорное, а просто ШИМ - сигнал....
Пропустите этот ШИМ через простейший ФНЧ (RC-цепочку), поделите и меряйте штатным АЦП.
Аккуратнее было бы в фильтре использовать масштабирующий ОУ.
Программеры всех стран и народов, настойчиво овладевайте азбукой схемотехники!

Прошу всех простить, если запутал smile.gif
Я так и собирался делать:
ШИМ -> ФНЧ -> ДелительНапряжения -> АЦП.

Но на АЦП помимо этого преобразованного ШИМ нужно ведь еще и опорное напряжение падать, которое равно: Vref+=6.25В, Vref-=0 В. Вот я и спрашивал как все это дело привести к уровням 0В и 5В smile.gif

Цитата(rx3apf @ Dec 19 2008, 21:25) *
Хм. Используя timer capture, можно иметь разрешение, равное частоте тактирования таймера. Всяко лучше, чем делать это программно... Ну, а переводить это в аналог, а потом оцифровывать - помнится, читал я где-то хохму (из нашей российской реальности), где одни печатали документы, а другие эти же документы потом OCRрили. Автоматизация, так сказать...

Эээх сам понимаю что левой ногой правое ухо...
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Dec 20 2008, 01:08
Сообщение #18


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(Nebel @ Dec 20 2008, 01:44) *
Я так и собирался делать:
ШИМ -> ФНЧ -> ДелительНапряжения -> АЦП.

Но на АЦП помимо этого преобразованного ШИМ нужно ведь еще и опорное напряжение падать, которое равно: Vref+=6.25В, Vref-=0 В. Вот я и спрашивал как все это дело привести к уровням 0В и 5В smile.gif
...

Хм.. так в АЦП СВОЕ ОПОРНОЕ есть. АЦП без опорного напряжения не бывает в природе. Вход АЦП инвариантен к значению внутреннего опорного. Вы можете даже не знать его конкретное значение.
Насколько можно понять Вашу проблему, Вам нужно всего лишь измерить напряжение амплитудой 0-6.25вольта, имея в контроллере АЦП с диапазоном 0-5 вольт. Положение усложняется тем, что входной сигнал не постоянное напряжение, а ШИМ с амплитудой 6.25 вольта?
Если параметр меняется не очень быстро, то просто пропустить ШИМ через RC-цепочку с постоянной времени раз в 100 больше периода ШИМ. Получите среднее значение ШИМ с пульсацией в 1%. Этого более чем достаточно для скоростей электропривода.
Поделите выход в соотношении 5/6.25 чтобы промасштабировать шкалу. (Ну, резисторы 10 и 2.5 кОм, грубо говоря). С 10 кОм подайте на вход АЦП. Вот и все.
Конечно, нужно учесть выходное сопротивление источника сигнала, входное сопротивление АЦП и разброс номиналов. Но, раз в условии задачи этого нет, значит Вы хорошо в этом ориентируетесь самостоятельно. 3-5% ошибка для такой задачи вполне приемлема.
Если что-то не так - сформулируйте саму задачу внятно.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Dec 20 2008, 01:58
Сообщение #19





Guests






Цитата(Microwatt @ Dec 19 2008, 21:12) *
Нравится кодом - решайте кодом.
Поделите в столбик 6.25 вольта на 1.25, возьмите среднее арифметическое за 128 прериодов и дело с концом. Ну, можно еще поиск экстремумов или еще что... На листинге работать будет желе... программно, пардон.

Ну, у Вас это ни на листинге не будет работать, ни железно, ни как... Раз собираетесь делить напряжения в столбик, вместо того, чтобы измерить временные интервалы. Когда задача, просто решается "в лоб" программно, Вы предпочитаете схемотехническое решение... Ну-ну, никто не может Вам запретить "чесать левой ногой правое ухо"...


Цитата(rx3apf @ Dec 19 2008, 21:25) *
Хм. Используя timer capture, можно иметь разрешение, равное частоте тактирования таймера. Всяко лучше, чем делать это программно...

Период ШИМ таким способом понятно как измерить. А длительность импульса? Поясните, если не сложно.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 20 2008, 06:29
Сообщение #20


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(@Ark @ Dec 20 2008, 04:58) *
Период ШИМ таким способом понятно как измерить. А длительность импульса? Поясните, если не сложно.

Если скважность PWM ограничена, можно ведь и перекинуть полярность детектирования фронта. Или - брать кристалл с двумя захватами. Как вариант, если допускается усрединение - можно просто разрешать счет таймера по наличию входного сигнала, а дальше скважность считается простым делением.
Go to the top of the page
 
+Quote Post
xemul
сообщение Dec 20 2008, 09:47
Сообщение #21



*****

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



Цитата(@Ark @ Dec 20 2008, 04:58) *
Период ШИМ таким способом понятно как измерить. А длительность импульса? Поясните, если не сложно.

В PIC18F452 два 16-битных регистра захвата. Один настраивается на 0/1, другой наоборот. Пара арифметических операций - вуаля.
С 40 МГц Fosc получается ~8.5 бит/период ШИМ (при частоте ШИМ 25 кГц).
Если допустимо усреднение, то можно включить прескейлеры по CCPx (1:4 или 1:16) и соответственно поднять разрешение. Т.к. с прескейлерами модули CCP в PIC18F452 работают только по 0/1, придется снаружи поставить инвертор на один из входов CCP.
Go to the top of the page
 
+Quote Post
Nebel
сообщение Dec 20 2008, 10:31
Сообщение #22





Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319



Цитата(Microwatt @ Dec 20 2008, 04:08) *
Хм.. так в АЦП СВОЕ ОПОРНОЕ есть. АЦП без опорного напряжения не бывает в природе. Вход АЦП инвариантен к значению внутреннего опорного. Вы можете даже не знать его конкретное значение.
Насколько можно понять Вашу проблему, Вам нужно всего лишь измерить напряжение амплитудой 0-6.25вольта, имея в контроллере АЦП с диапазоном 0-5 вольт. Положение усложняется тем, что входной сигнал не постоянное напряжение, а ШИМ с амплитудой 6.25 вольта?
Если параметр меняется не очень быстро, то просто пропустить ШИМ через RC-цепочку с постоянной времени раз в 100 больше периода ШИМ. Получите среднее значение ШИМ с пульсацией в 1%. Этого более чем достаточно для скоростей электропривода.
Поделите выход в соотношении 5/6.25 чтобы промасштабировать шкалу. (Ну, резисторы 10 и 2.5 кОм, грубо говоря). С 10 кОм подайте на вход АЦП. Вот и все.
Конечно, нужно учесть выходное сопротивление источника сигнала, входное сопротивление АЦП и разброс номиналов. Но, раз в условии задачи этого нет, значит Вы хорошо в этом ориентируетесь самостоятельно. 3-5% ошибка для такой задачи вполне приемлема.
Если что-то не так - сформулируйте саму задачу внятно.

Если мы измеряем напряжение, то мы же его измеряем относительно опорного, а в моем случае опорное, которое уже есть в АЦП, развязано с измеряемым сигналом. Если бы я подключил потенциометр и запитал его тем же Vss и Vdd что и PIC то все понятно: ADCON в PICе настраиваю так чтобы использовалось внутреннее напряжение, а на вход АЦП подаю сам сигнал.
Но у меня же другой случай, плата с MC33035 MC33039 имеют свое питание, 33039 (та что генерит ШИМ) питается от 8-й ноги 33035 (там 6.25В). Соответственно мне нужно подавать внешнее опорное напряжение (оно как раз таки и равно 0 и 6.25В). Я не прав в своих рассуждениях?

Вот схема подключения к АЦП PIC18Fxx2 (стр 174 русского мануала):
Прикрепленное изображение


Цитата(xemul @ Dec 20 2008, 12:47) *
В PIC18F452 два 16-битных регистра захвата. Один настраивается на 0/1, другой наоборот. Пара арифметических операций - вуаля.
С 40 МГц Fosc получается ~8.5 бит/период ШИМ (при частоте ШИМ 25 кГц).
Если допустимо усреднение, то можно включить прескейлеры по CCPx (1:4 или 1:16) и соответственно поднять разрешение. Т.к. с прескейлерами модули CCP в PIC18F452 работают только по 0/1, придется снаружи поставить инвертор на один из входов CCP.

а вот про это я даже не подумал :-(

P.S.
спасибо Всем кто принимает участие в обсуждении smile.gif

Сообщение отредактировал Nebel - Dec 20 2008, 10:32
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Dec 20 2008, 10:45
Сообщение #23





Guests






Цитата(rx3apf @ Dec 20 2008, 09:29) *
Если скважность PWM ограничена, можно ведь и перекинуть полярность детектирования фронта. Или - брать кристалл с двумя захватами. Как вариант, если допускается усрединение - можно просто разрешать счет таймера по наличию входного сигнала, а дальше скважность считается простым делением.

Цитата(xemul @ Dec 20 2008, 12:47) *
В PIC18F452 два 16-битных регистра захвата. Один настраивается на 0/1, другой наоборот. Пара арифметических операций - вуаля.
С 40 МГц Fosc получается ~8.5 бит/период ШИМ (при частоте ШИМ 25 кГц).
Если допустимо усреднение, то можно включить прескейлеры по CCPx (1:4 или 1:16) и соответственно поднять разрешение. Т.к. с прескейлерами модули CCP в PIC18F452 работают только по 0/1, придется снаружи поставить инвертор на один из входов CCP.

Понятно. Спасибо за пояснения. Хотя, даже моим методом, получается минимум 7-битный результат.
Предлагаемыми схемотехническими методами его еще надо достичь...
По моему, для автора темы, выбор методов должен быть очевиден...
Go to the top of the page
 
+Quote Post
Nebel
сообщение Dec 20 2008, 11:11
Сообщение #24





Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319



Цитата(@Ark @ Dec 20 2008, 13:45) *
По моему, для автора темы, выбор методов должен быть очевиден...

Да, очевиден smile.gif Спасибо большое за предложенные варианты решения.
Но, я не зря рассматриваю вариант только с АЦП (т.е. ШИМ->ФНЧ->АЦП) - у меня ограничения со схемотехникой: приходится работать на готовой плате, где часть выходов с PICа разведена так что к ним не подобраться (я понимаю что изврат и что чесание левой ногой правого уха)...
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Dec 20 2008, 15:13
Сообщение #25


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(@Ark @ Dec 20 2008, 05:58) *
Ну, у Вас это ни на листинге не будет работать, ни железно, ни как...

У меня - да.
А у программеров работает. Чтобы получить 100 вольт они на вход подают 5, умножают на 20 и- готово! Никаких аппаратных излишеств!
А если без шуток, то, конечно же этот ШИМ можно и программно померять. Нужно привести эти 6.25 вольта к логическому уровню, определять моменты перепада сигнала и мерять времена достаточно точно. Далее - чистая арифметика.
Но вопрос-то был сформулирован про АЦП?
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Dec 20 2008, 16:40
Сообщение #26





Guests






Цитата(Microwatt @ Dec 20 2008, 18:13) *
Но вопрос-то был сформулирован про АЦП?

Можно и через АЦП, если настаиваете. smile.gif
Нужно измерить напряжение сигнала (ШИМ, пропущенный через ФНЧ) через делитель. А затем измерить напряжение опорных 6,25В через точно такой же делитель. Затем взять их соотношение.
В качестве опоры для внутреннего АЦП нужно использовать напряжение питания PIC-а, а делители нужно взять не 5/6.25, а например 3/4, чтобы не работать на краю диапазона (для 6.25В). При таком методе точность результата не будет зависеть от значений напряжений питания PIC и MC33035 и их допустимых отклонений.
P.S. Только, для этой задачи, это все равно извращение. Напрямую измерить временные параметры ШИМ проще и эффективнее...
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Dec 20 2008, 18:37
Сообщение #27


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(@Ark @ Dec 20 2008, 20:40) *
Напрямую измерить временные параметры ШИМ проще и эффективнее...

Если есть вычислительные ресурсы, и контроллеру больше нечем заниматься - да, можно и так..
Правильно почтовые марки отклеивать в холодной воде.
Еще правильнее - в теплой.
А особо тонкие ценители собирают прямо с конвертами smile.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 03:22
Рейтинг@Mail.ru


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