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

 
 
 
Reply to this topicStart new topic
> Программный АЦП, помогите разобраться в принципе работы.....
lavrik
сообщение Dec 20 2015, 12:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635



Понадобилось заняться таким извращением, как программный АЦП (тестовое задание для трудоустройства). Нашел такой вариант решения проблемы

http://www.bytecraft.com/Low_Cost%2C_Low_S...mbedded_Systems

Но не могу разобраться как работает, даже после перевода статьи...уже и схему в протеусе собрал, в надежде там на осциллографе что-то увидеть, но ничего так и не понял...говорю сразу, что со схемотехникой плоховато, поэтому не судите sad.gif
Go to the top of the page
 
+Quote Post
Tanya
сообщение Dec 20 2015, 12:29
Сообщение #2


Гуру
******

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



Цитата(lavrik @ Dec 20 2015, 15:12) *
Но не могу разобраться как работает, даже после перевода статьи...уже и схему в протеусе собрал, в надежде там на осциллографе что-то увидеть, но ничего так и не понял...говорю сразу, что со схемотехникой плоховато, поэтому не судите sad.gif

Там же написано -
This mode is actually using the microcomputer as a high gain operational amplifier, that attempts to keep the voltage at the summing junction at the threshold of the low-to-high sense voltage of Pi. The voltage Vi through the input resistance Ri is directly balanced by the average current from the port pin Pf through Rf.
Если плохо видно в симуляторе добавьте компаратор с гистерезисом на вход. Почитайте про сигма-дельта АЦП...
Go to the top of the page
 
+Quote Post
lavrik
сообщение Dec 20 2015, 13:02
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635



Цитата(Tanya @ Dec 20 2015, 15:29) *
Там же написано -
This mode is actually using the microcomputer as a high gain operational amplifier, that attempts to keep the voltage at the summing junction at the threshold of the low-to-high sense voltage of Pi. The voltage Vi through the input resistance Ri is directly balanced by the average current from the port pin Pf through Rf.
Если плохо видно в симуляторе добавьте компаратор с гистерезисом на вход. Почитайте про сигма-дельта АЦП...


Там просто говорится, что для расчета действующего значения нужно пользоваться формулой, которая содержит количество посланных и полученных единиц. А вот как фиксировать эти единицы не понятно...


Цитата
The value of Vmin occurs when Pi is always just at the sense threshold, and the processor is always feeding back a 1 to the Pf pin. At an input of Vmax a 0 is always being fed back from Pf. The A/D value is linear, scaled between Vmin and Vmax, and is determined from the ratio of 1's read on Pi (N1) to the total tests in a sample. The accuracy of the systems is a linear function of test sample size (N). Vi can be calculated from the following relationship:

Vi = (N1 / N) * (Vmax - Vmin)]


Я правильно понял?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Dec 20 2015, 13:35
Сообщение #4


Гуру
******

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



Цитата(lavrik @ Dec 20 2015, 16:02) *
Там просто говорится, что для расчета действующего значения нужно пользоваться формулой, которая содержит количество посланных и полученных единиц. А вот как фиксировать эти единицы не понятно...

Ну... Придумайте...

Цитата(lavrik @ Dec 20 2015, 16:02) *
Я правильно понял?

Вы привели цитату, но я не могу понять, поняли ли Вы ее смысл...
Go to the top of the page
 
+Quote Post
lavrik
сообщение Dec 20 2015, 15:54
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635



Цитата(Tanya @ Dec 20 2015, 16:35) *
Ну... Придумайте...


Вы привели цитату, но я не могу понять, поняли ли Вы ее смысл...


Хм, по условию задания, в используемом гипотетическом микроконтроллере есть SPI. Можно ли использовать для этого его следующим образом: настраивается в режиме Master, выводы MOSI и MISO замыкаются и контроллер начинает на MOSI посылать по восходящему фронту CLK число 0b11111111. Т.к. это эхо (пины входа и выхода замкнуты), то на MISO будет по нисходящему фронту приходить мгновенно ответ, в котором, как утверждает автор схемы, не все биты будут равны "1". И таких посылок должно быть такое количество, чтобы обеспечивалась достаточная точность, я правильно понимаю?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 20 2015, 16:30
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(lavrik @ Dec 20 2015, 15:12) *
тестовое задание для трудоустройства
...
говорю сразу, что со схемотехникой плоховато
Так может вы не подходите для этой работы? Сначала вы принесли на форум тестовое задание, потом будете предлагать делать за вас и остальную работу?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
lavrik
сообщение Dec 20 2015, 17:18
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635



Цитата(Сергей Борщ @ Dec 20 2015, 19:30) *
Так может вы не подходите для этой работы? Сначала вы принесли на форум тестовое задание, потом будете предлагать делать за вас и остальную работу?

Уважаемый модератор! Я у меня были на выбор и другие задачи, но так сложилось что более реализуемой показалась эта. Я не думаю, что здесь нужно описывать всю ситуацию почему я пытаюсь куда-то трудоустроиться, почему моей квалификации недостаточно (потому что опыта можно сказать нет, а он приходит со стажем). Я всего лишь попросил совета, и не просто сижу и высиживаю время в ожидании ответа, а предлагаю свое понимание данного вопроса и прошу его подкорректировать, если оно не верно. Тем более что задача не особо тривиальная, ладно бы я тут не мог диодом поморгать или разобраться в полностью документированном интерфейсе....

Вы бы лучше подсказали, если знаете, а не ставили бы очевидные вопросы. Если бы я все понял - я бы не писал сюда.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Dec 20 2015, 17:37
Сообщение #8





Guests






Форумы - это не место для получения образования (С)
Go to the top of the page
 
+Quote Post
lavrik
сообщение Dec 20 2015, 17:47
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635



Цитата(TSerg @ Dec 20 2015, 20:37) *
Форумы - это не место для получения образования (С)


А вы знаете как сделать АЦП на двух ножках контроллера? Если знаете - подскажите, не знаете - пройдите, пожалуйста, мимо.
Если вас так беспокоит характер этого задания - рассматриваете его в вакууме. Просто возникла задача и ее нужно решить.
Go to the top of the page
 
+Quote Post
Plain
сообщение Dec 20 2015, 18:59
Сообщение #10


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Вообще-то, найденное Вами решение изначально было одноногим.
Go to the top of the page
 
+Quote Post
lavrik
сообщение Dec 20 2015, 19:02
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635



Цитата(Plain @ Dec 20 2015, 21:59) *
Вообще-то, найденное Вами решение изначально было одноногим.


Одноногим? Расскажите пожалуйста.
Go to the top of the page
 
+Quote Post
Plain
сообщение Dec 20 2015, 19:34
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Чего ж непонятного — МК попеременно подаёт на конденсатор ШИМ-пилу и ловит порог на нём.
Go to the top of the page
 
+Quote Post
lavrik
сообщение Dec 20 2015, 19:43
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 16-01-15
Пользователь №: 84 635



Цитата(Plain @ Dec 20 2015, 22:34) *
Чего ж непонятного — МК попеременно подаёт на конденсатор ШИМ-пилу и ловит порог на нём.


А, понял. Так ШИМ пилу я находил в сети, очень много годных, чуть ли не пошаговых инструкций.

У меня по условию есть 8-битный параллельный порт (читай GPIO) и SPI. Вот на базе этого и надо сварганить....

Но за внимание к проблеме спасибо! sm.gif
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Dec 23 2015, 18:07
Сообщение #14


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Пояснение: ножка контроллера аналогична D-триггеру на моей схеме: как ножка контрооллера с определенной частотой опрашивается в программном цикле, так и триггер тактовым генератором G_KF "опрашивает" состояние своего входа D1, функция
Код
Pf = ~Pi
реализуется тем что мы берем с триггера инвертированный сигнал trig_neg. Если не вдаваться в интегралы и сложные формулы, то по простому данная схема - есть "цифровой операционный усилитель" включенный по схеме инвертирующего усилителя, где отрицательная обратная связь получается за счет фильтрации импульсного сигнала RC цепочкой. Получаемый цифровой сигнал (импульсы различной длительности на trig_out) -если его отфильтровать (выход out) -повторяет с некоторой точностью входной сигнал. Это же значение можно получить так: если за 1000 тактов выход trig_pos находился в состоянии "1" 400 раз, то напряжение на выходе out (а значит и на измеряемом входе) равно 400/1000*5 = 2 В (5 это Vmax-Vmin). В контроллере же это делается просто -в цикле от 1 до 1000 считаем сколько раз входная ножка была в "единице", потом делим на 1000 и умножаем на 5 (или проще говоря на напряжение питания контроллера).
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Aner
сообщение Dec 23 2015, 20:15
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



В контролере используется два цифровых порта, один на вход, другой на выход. Соединены и поданы на RC - цепку (конденсатор естественно на землю, хотя есть варианты). Далее все програмно делается. При нормировке надо не забыть учесть входное сопротивление входа. Удавалость получить ацп разрядностью до 12 бит, но и тактовая была высокая. Есть эти решения для кучи контролеров в их AN_ах, начиная с восьмибитников атмела, микрочипа и далее. С появлением в контроллерах ацп надобность в программном решении отпала. Вот это был где-то конец 90 годов, начало ... ищите старые ANы.
Go to the top of the page
 
+Quote Post

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

 


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


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