|
делитель напряжения для Vref АЦП |
|
|
|
Dec 18 2008, 13:46
|
Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319

|
Использую PIC18f452. Нужно измерить аналог.сигнал используя внешнее опорное напряжение = 6.25 В. На ПИК в качестве опорного 6,25 В подавать нельзя, поэтому, как я понимаю, нужно использовать делитель напряжения и для опорного напряжения и для измеряемого сигнала и все это подключать к МК. Подскажите пожалуйста, правильно ли я нарисовал схему? или это бредятина полная:
|
|
|
|
|
Dec 18 2008, 13:53
|

Частый гость
 
Группа: Свой
Сообщений: 94
Регистрация: 14-03-06
Из: Russia, Vidnoe
Пользователь №: 15 249

|
Цитата(Nebel @ Dec 18 2008, 16:46)  Использую PIC18f452. Нужно измерить аналог.сигнал используя внешнее опорное напряжение = 6.25 В. На ПИК в качестве опорного 6,25 В подавать нельзя, поэтому, как я понимаю, нужно использовать делитель напряжения и для опорного напряжения и для измеряемого сигнала и все это подключать к МК. Подскажите пожалуйста, правильно ли я нарисовал схему? или это бредятина полная:
Для питания МК лучше поставить понижающий преобразователь с фиксированными 5В на выходе, так будет надёжнее. Иначе, при изменении тока потребления, напряжение питания МК будет скакать, а это не айс.
--------------------
Puro delirio, una chochez verdadera.
|
|
|
|
|
Dec 18 2008, 14:01
|
Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319

|
Цитата(Vanёk @ Dec 18 2008, 16:53)  Для питания МК лучше поставить понижающий преобразователь с фиксированными 5В на выходе, так будет надёжнее. Иначе, при изменении тока потребления, напряжение питания МК будет скакать, а это не айс. В том-то и дело что это не для питания, для питания именно так и делаю. Просто не могу использовать Vdd и Vss со схемы с МК в качестве опорного напряжения, поэтому беру Vref+- внешние (на самом деле это опорное со схемы с МК MC33035) и завожу на входы AN2, AN3. Т.е. у меня есть датчик у которого есть выходы: Vref+ = 6.25В, 0.0 В, и аналоговый выход принимающий соответственно значения от 0 до 6.25В, который нужно измерить. Написал как-то сумбурно, но надеюсь понятно
|
|
|
|
|
Dec 19 2008, 06:27
|
Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319

|
Цитата(Diusha @ Dec 19 2008, 07:14)  Ваш делитель дает 5В = Uпитания. Не уверен, что это хорошо. С ПИКами не работаю, не знаю, а для АВР Vref не должно превышать Uпит, поэтому Vref надо делать с небольшим запасом (ниже Uпит). Поменять резисторы с 1 кОм на 1.3 кОм дело не сложное, меня больше интересует в принципе правильный ли подход? или туда еще что-то нужно добавить для защиты?
|
|
|
|
|
Dec 19 2008, 08:31
|
Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319

|
Цитата(DpInRock @ Dec 19 2008, 09:28)  Напряжение с переменного резистора не будет равно тому, чему вы хотите. Ибо выходное сопротивление резистора меняется, а делитель его будет дополнительно искажать.
Если переменный резистор очень низкоомный (сотня ом), то этот эффект заметен не будет. А поробуйте представить, что он == 1 Мегому. На половине движка выход будет полмегома, который нагружается на делитель в 5 ком. Напряжение на измерительном входе будет = 0. Практически. На самом деле схема там другая, переменного резистора нет. Есть ШИМ-сигнал с уровнями 6.25В и 0В, его то мне и надо замерить, ничего лучше чем поставить RC-цепочку и получить аналог. сигнал не придумал
Если кто-то "ткнет носом" в другое более правильное решение буду рад  Цитата(Tanya @ Dec 19 2008, 11:20)  А может лучше взять и поставить опорник на 4-5 вольт... Или даже tl431 или клоны... нельзя, есть готовое устройство, с выходов которого нужно снять данные.
|
|
|
|
Guest_@Ark_*
|
Dec 19 2008, 11:31
|
Guests

|
Цитата(Nebel @ Dec 19 2008, 11:31)  На самом деле схема там другая, переменного резистора нет. Есть ШИМ-сигнал с уровнями 6.25В и 0В, его то мне и надо замерить, ничего лучше чем поставить RC-цепочку и получить аналог. сигнал не придумал Если кто-то "ткнет носом" в другое более правильное решение буду рад  Небольшой расчет: В ДШ на MC33035 указана номинальная частота ШИМ - 25кГц, То есть период - 40мкс. PIC18F452 может работать на частоте 40 МГц, то есть длительность одной команды - 100нс. Можете измерить программно период и длительность импульса, непосредственно отследив его фронты. Для этого соедините выход PWM вашего устройства со входом PIC-ка через резистор 1K. Все, больше ничего не нужно. Измеряя количество команд от начала до конца импульса, получите значение с разрешением примерно 300нс (3 команды). То есть, с точностью примерно 1% даже без усреднения... P.S. Вряд ли другими способами получите на много лучший результат...
|
|
|
|
|
Dec 19 2008, 13:10
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(Nebel @ Dec 18 2008, 17:46)  Использую PIC18f452. Нужно измерить аналог.сигнал используя внешнее опорное напряжение = 6.25 В. На ПИК в качестве опорного 6,25 В подавать нельзя, поэтому, как я понимаю, нужно использовать делитель напряжения и для опорного напряжения и для измеряемого сигнала и все это подключать к МК. Трудно решать любую задачу, если она не сформулирована. Или сформулирована неверно. Вначале говорится о внешнем опорном, потом выясняется, что это не опорное, а просто ШИМ - сигнал.... Пропустите этот ШИМ через простейший ФНЧ (RC-цепочку), поделите и меряйте штатным АЦП. Аккуратнее было бы в фильтре использовать масштабирующий ОУ. Программеры всех стран и народов, настойчиво овладевайте азбукой схемотехники!
|
|
|
|
Guest_@Ark_*
|
Dec 19 2008, 13:30
|
Guests

|
Цитата(Microwatt @ Dec 19 2008, 16:10)  ...Программеры всех стран и народов, настойчиво овладевайте азбукой схемотехники!  Хороший призыв! Нельзя не поддержать: Железячники всех стран и народов, настойчиво овладевайте азбукой программирования! Не "городите" без надобности схемы, состоящие из ФНЧ, масштабирующего ОУ и АЦП, когда проблема решается одним резистором и десятком строк кода...
|
|
|
|
|
Dec 19 2008, 18:25
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(@Ark @ Dec 19 2008, 14:31)  Все, больше ничего не нужно. Измеряя количество команд от начала до конца импульса, получите значение с разрешением примерно 300нс (3 команды). То есть, с точностью примерно 1% даже без усреднения... P.S. Вряд ли другими способами получите на много лучший результат... Хм. Используя timer capture, можно иметь разрешение, равное частоте тактирования таймера. Всяко лучше, чем делать это программно... Ну, а переводить это в аналог, а потом оцифровывать - помнится, читал я где-то хохму (из нашей российской реальности), где одни печатали документы, а другие эти же документы потом OCRрили. Автоматизация, так сказать...
|
|
|
|
|
Dec 19 2008, 21:44
|
Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319

|
Цитата(Microwatt @ Dec 19 2008, 16:10)  Трудно решать любую задачу, если она не сформулирована. Или сформулирована неверно. Вначале говорится о внешнем опорном, потом выясняется, что это не опорное, а просто ШИМ - сигнал.... Пропустите этот ШИМ через простейший ФНЧ (RC-цепочку), поделите и меряйте штатным АЦП. Аккуратнее было бы в фильтре использовать масштабирующий ОУ. Программеры всех стран и народов, настойчиво овладевайте азбукой схемотехники! Прошу всех простить, если запутал  Я так и собирался делать: ШИМ -> ФНЧ -> ДелительНапряжения -> АЦП.Но на АЦП помимо этого преобразованного ШИМ нужно ведь еще и опорное напряжение падать, которое равно: Vref+=6.25В, Vref-=0 В. Вот я и спрашивал как все это дело привести к уровням 0В и 5В  Цитата(rx3apf @ Dec 19 2008, 21:25)  Хм. Используя timer capture, можно иметь разрешение, равное частоте тактирования таймера. Всяко лучше, чем делать это программно... Ну, а переводить это в аналог, а потом оцифровывать - помнится, читал я где-то хохму (из нашей российской реальности), где одни печатали документы, а другие эти же документы потом OCRрили. Автоматизация, так сказать... Эээх сам понимаю что левой ногой правое ухо...
|
|
|
|
|
Dec 20 2008, 01:08
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(Nebel @ Dec 20 2008, 01:44)  Я так и собирался делать: ШИМ -> ФНЧ -> ДелительНапряжения -> АЦП.Но на АЦП помимо этого преобразованного ШИМ нужно ведь еще и опорное напряжение падать, которое равно: Vref+=6.25В, Vref-=0 В. Вот я и спрашивал как все это дело привести к уровням 0В и 5В  ... Хм.. так в АЦП СВОЕ ОПОРНОЕ есть. АЦП без опорного напряжения не бывает в природе. Вход АЦП инвариантен к значению внутреннего опорного. Вы можете даже не знать его конкретное значение. Насколько можно понять Вашу проблему, Вам нужно всего лишь измерить напряжение амплитудой 0-6.25вольта, имея в контроллере АЦП с диапазоном 0-5 вольт. Положение усложняется тем, что входной сигнал не постоянное напряжение, а ШИМ с амплитудой 6.25 вольта? Если параметр меняется не очень быстро, то просто пропустить ШИМ через RC-цепочку с постоянной времени раз в 100 больше периода ШИМ. Получите среднее значение ШИМ с пульсацией в 1%. Этого более чем достаточно для скоростей электропривода. Поделите выход в соотношении 5/6.25 чтобы промасштабировать шкалу. (Ну, резисторы 10 и 2.5 кОм, грубо говоря). С 10 кОм подайте на вход АЦП. Вот и все. Конечно, нужно учесть выходное сопротивление источника сигнала, входное сопротивление АЦП и разброс номиналов. Но, раз в условии задачи этого нет, значит Вы хорошо в этом ориентируетесь самостоятельно. 3-5% ошибка для такой задачи вполне приемлема. Если что-то не так - сформулируйте саму задачу внятно.
|
|
|
|
Guest_@Ark_*
|
Dec 20 2008, 01:58
|
Guests

|
Цитата(Microwatt @ Dec 19 2008, 21:12)  Нравится кодом - решайте кодом. Поделите в столбик 6.25 вольта на 1.25, возьмите среднее арифметическое за 128 прериодов и дело с концом. Ну, можно еще поиск экстремумов или еще что... На листинге работать будет желе... программно, пардон. Ну, у Вас это ни на листинге не будет работать, ни железно, ни как... Раз собираетесь делить напряжения в столбик, вместо того, чтобы измерить временные интервалы. Когда задача, просто решается "в лоб" программно, Вы предпочитаете схемотехническое решение... Ну-ну, никто не может Вам запретить "чесать левой ногой правое ухо"... Цитата(rx3apf @ Dec 19 2008, 21:25)  Хм. Используя timer capture, можно иметь разрешение, равное частоте тактирования таймера. Всяко лучше, чем делать это программно... Период ШИМ таким способом понятно как измерить. А длительность импульса? Поясните, если не сложно.
|
|
|
|
|
Dec 20 2008, 09:47
|
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Dec 20 2008, 10:31
|
Группа: Участник
Сообщений: 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. спасибо Всем кто принимает участие в обсуждении
Сообщение отредактировал Nebel - Dec 20 2008, 10:32
|
|
|
|
Guest_@Ark_*
|
Dec 20 2008, 10:45
|
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-битный результат. Предлагаемыми схемотехническими методами его еще надо достичь... По моему, для автора темы, выбор методов должен быть очевиден...
|
|
|
|
|
Dec 20 2008, 11:11
|
Группа: Участник
Сообщений: 14
Регистрация: 16-06-08
Из: Москва
Пользователь №: 38 319

|
Цитата(@Ark @ Dec 20 2008, 13:45)  По моему, для автора темы, выбор методов должен быть очевиден... Да, очевиден  Спасибо большое за предложенные варианты решения. Но, я не зря рассматриваю вариант только с АЦП (т.е. ШИМ->ФНЧ->АЦП) - у меня ограничения со схемотехникой: приходится работать на готовой плате, где часть выходов с PICа разведена так что к ним не подобраться (я понимаю что изврат и что чесание левой ногой правого уха)...
|
|
|
|
|
Dec 20 2008, 15:13
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(@Ark @ Dec 20 2008, 05:58)  Ну, у Вас это ни на листинге не будет работать, ни железно, ни как... У меня - да. А у программеров работает. Чтобы получить 100 вольт они на вход подают 5, умножают на 20 и- готово! Никаких аппаратных излишеств! А если без шуток, то, конечно же этот ШИМ можно и программно померять. Нужно привести эти 6.25 вольта к логическому уровню, определять моменты перепада сигнала и мерять времена достаточно точно. Далее - чистая арифметика. Но вопрос-то был сформулирован про АЦП?
|
|
|
|
Guest_@Ark_*
|
Dec 20 2008, 16:40
|
Guests

|
Цитата(Microwatt @ Dec 20 2008, 18:13)  Но вопрос-то был сформулирован про АЦП? Можно и через АЦП, если настаиваете. Нужно измерить напряжение сигнала (ШИМ, пропущенный через ФНЧ) через делитель. А затем измерить напряжение опорных 6,25В через точно такой же делитель. Затем взять их соотношение. В качестве опоры для внутреннего АЦП нужно использовать напряжение питания PIC-а, а делители нужно взять не 5/6.25, а например 3/4, чтобы не работать на краю диапазона (для 6.25В). При таком методе точность результата не будет зависеть от значений напряжений питания PIC и MC33035 и их допустимых отклонений. P.S. Только, для этой задачи, это все равно извращение. Напрямую измерить временные параметры ШИМ проще и эффективнее...
|
|
|
|
|
Dec 20 2008, 18:37
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(@Ark @ Dec 20 2008, 20:40)  Напрямую измерить временные параметры ШИМ проще и эффективнее... Если есть вычислительные ресурсы, и контроллеру больше нечем заниматься - да, можно и так.. Правильно почтовые марки отклеивать в холодной воде. Еще правильнее - в теплой. А особо тонкие ценители собирают прямо с конвертами
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|