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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> АЦП: 8 выборок последовательно, Обзор микроконтроллеров
repairDV
сообщение Apr 9 2008, 05:35
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Здравствуйте. У 56F8xx-серии микроконтроллеров Freescale имеется 12-разрядная АЦП. АЦП-шка, конечно, дрянь, в том смысле, что если делать однократную выборку, то результат не имеет ничего общего с истиной. Freescale объясняет это влиянием паразитных емкостей во входных цепях. Но они вышли из положения другим способом. У АЦП имеется возможность делать последовательно 8 выборок, при этом под результат каждой имеются свои регистры запоминания. Истинное значение получается уже в двух последних выборках, все остальные можно смело игнорировать. Лично я делаю так: складываю результаты 7 и 8 выборок, делю на 2 и получается результат, по стабильности аналогичный АЦП 12-тактовых 51-х контроллеров. А что может быть стабильнее 12-тактовой 51-й серии?
Таким образом, если время одной выборки равно 1/5мгц = 200 нс, то время 8 выборок 200нс*8 = 1,6 мкс.
Есть ли у других фирм микроконтроллеры с такими возможностями?


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 9 2008, 07:37
Сообщение #2


Гуру
******

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



Цитата(repairDV @ Apr 9 2008, 08:35) *
Есть ли у других фирм микроконтроллеры с такими возможностями?
Из тех, с которыми я работал: MSP430 - 16 ячеек, для каждой индивидуально указывается номер канала и входы опоры. AT91SAM7 - при чтении через DMA перебирает по кругу все включенные каналы. Количество запомненных результатов ограничивается только размером свободной памяти.


--------------------
На любой вопрос даю любой ответ
"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
SSerge
сообщение Apr 9 2008, 08:46
Сообщение #3


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



TMS320F28xx
из доки на TMS320F28044:
· 12-bit ADC core with built-in S/H
· Analog input: 0.0 V to 3.0 V (Voltages above 3.0 V produce full-scale conversion results.)
· Fast conversion rate: 80 ns at 25-MHz ADC clock, 12.5 MSPS
· 16-channel, MUXed inputs
· Autosequencing capability provides up to 16 "autoconversions" in a single session. Each conversion
can be programmed to select any 1 of 16 input channels
· Sequencer can be operated as two independent 8-state sequencers or as one large 16-state
sequencer (i.e., two cascaded 8-state sequencers)
· Sixteen result registers (individually addressable) to store conversion values
· Multiple triggers as sources for the start-of-conversion (SOC) sequence
– S/W - software immediate start
– ePWM start of conversion
– XINT2 ADC start of conversion
· Flexible interrupt control allows interrupt request on every end-of-sequence (EOS) or every other EOS.
· Sequencer can operate in "start/stop" mode, allowing multiple "time-sequenced triggers" to
synchronize conversions.
· SOCA and SOCB triggers can operate independently in dual-sequencer mode.
· Sample-and-hold (S/H) acquisition time window has separate prescale control.

Самая интересная его особенность - наличие двух схем выборки-хранения (S/H) которые могут работать независимо. Это позволяет, например, сделать одновременную выборку двух сигналов а потом оцифровать их по очереди. Только DMA ещё для полного комплекта не хватает.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
repairDV
сообщение Apr 9 2008, 08:57
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Цитата(Сергей Борщ @ Apr 9 2008, 18:37) *
MSP430 - 16 ячеек, для каждой индивидуально указывается номер канала и входы опоры. AT91SAM7 - при чтении через DMA перебирает по кругу все включенные каналы. Количество запомненных результатов ограничивается только размером свободной памяти.

Я пропустил: имелся в виду один канал. Последовательно 8 выборок по одному каналу.

Здесь смысл в том, что точной оцифровке при одной выборке мешают паразитные влияния, если сделать подряд 8 выборок по одному каналу, то ёмкости по входам успевают зарядиться-разрядиться и мы в последних выборках имеем реальные значения.


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
SSerge
сообщение Apr 9 2008, 09:07
Сообщение #5


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(repairDV @ Apr 9 2008, 15:50) *
Я пропустил: имелся в виду один канал. Последовательно 8 выборок по одному каналу.

Для MSP430 с его ADC12 это просто частный случай. Можно запрограммировать выборку с разных аналоговых входов в любом порядке, в том числе и всегда с одного и того-же.
Более того, DMA можно заставить пересылать данные из регистров результата АЦП не только в ОЗУ, но и в регистр аппаратного умножителя-сумматора. После старта АЦП останется только дождаться прерывания по окончанию пересылки канала DMA и забрать из умножителя-сумматора готовую сумму всех N отсчётов.

update:
Что же до зарядки внутренних ёмкостей, то здесь это выглядит несколько иначе. При низкоомном источнике сигнала время выборки для получения 12-разрядной точности порядка 1мкс.
Если же у источника внутренне сопротивление большое то совсем не обязательно делать подряд несколько преобразований, можно просто увеличить время выборки, оно программируется в довольно широких пределах ( 4, 8, 16 ... 1024 такта).

Вообще, на MSP430 очень интересная периферия, конструкция из таймеров, АЦП, ЦАП, DMA и MAC (умножитель 16*16->32 с сумматором-аккумулятором) позволяет многое делать вообще без участия процессора. К хорошему очень быстро привыкаешь и этой гибкости уже начинает не хватать.. smile.gif


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
repairDV
сообщение Apr 9 2008, 09:44
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Цитата(SSerge @ Apr 9 2008, 20:07) *
Что же до зарядки внутренних ёмкостей, то здесь это выглядит несколько иначе. При низкоомном источнике сигнала время выборки для получения 12-разрядной точности порядка 1мкс.
Если же у источника внутренне сопротивление большое то совсем не обязательно делать подряд несколько преобразований, можно просто увеличить время выборки, оно программируется в довольно широких пределах ( 4, 8, 16 ... 1024 такта).

И результат реальный?

Если напряжение по входу АЦП постоянное, то меняются ли показания АЦП и на сколько разрядов?


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 9 2008, 10:05
Сообщение #7


Гуру
******

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



Цитата(repairDV @ Apr 9 2008, 12:44) *
Если напряжение по входу АЦП постоянное, то меняются ли показания АЦП и на сколько разрядов?
12 бит. Я получал +-1LSB. На входе стоял усилитель с Ку~100, сколько из этого шума вносил он - затрудняюсь сказать.


--------------------
На любой вопрос даю любой ответ
"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
repairDV
сообщение Apr 9 2008, 10:18
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Цитата(Сергей Борщ @ Apr 9 2008, 21:05) *
12 бит.

Мать честная...
А у 56f803 у меня на модели - изредка прыгает только младший разряд.


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 9 2008, 10:41
Сообщение #9


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(repairDV @ Apr 9 2008, 13:18) *
Мать честная...
А у 56f803 у меня на модели - изредка прыгает только младший разряд.

ну дык вам и ответили - +/- 1 LSB


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 9 2008, 10:45
Сообщение #10


Гуру
******

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



Цитата(repairDV @ Apr 9 2008, 13:18) *
А у 56f803 у меня на модели - изредка прыгает только младший разряд.
Это если в цикле опрашивать 4 канала, то результаты для одного канала отличаются на единицу младшего разряда от цикла к циклу? О чем тогда был первый пост?


--------------------
На любой вопрос даю любой ответ
"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
repairDV
сообщение Apr 9 2008, 11:01
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Нет, опрос в цикле идёт по одному каналу. Делается последовательно 8 выборок.

Если делать по одному каналу одну выборку, то показания АЦП скачут где-то в пределах 6 младших разрядов. Просто из чисто визуального наблюдения через стендовую программу на PC.


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
SSerge
сообщение Apr 9 2008, 11:20
Сообщение #12


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



У меня на MSP430 было такое, что результаты АЦП зависели от порядка опроса каналов и от работы других устройств. Оказалось - отсутствовали конденсаторы на ноге Vref, поставил - и все чудеса сразу же прекратились.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
repairDV
сообщение Apr 9 2008, 11:26
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Цитата(SSerge @ Apr 9 2008, 22:20) *
Оказалось - отсутствовали конденсаторы на ноге Vref, поставил - и все чудеса сразу же прекратились.

Кстати, этот контроллер я не изучал, сколько тактов кварца в машинном цикле?


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 9 2008, 11:54
Сообщение #14


Гуру
******

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



Цитата(repairDV @ Apr 9 2008, 14:01) *
Если делать по одному каналу одну выборку, то показания АЦП скачут где-то в пределах 6 младших разрядов.
Так может стоило спросить, какой контроллер с первой же выборки дает правильное значение? smile.gif Очень похоже, что у вас не усперает зарядиться конденсатор УВХ. Контроллер не позволяет увеличить время выборки?


Цитата(repairDV @ Apr 9 2008, 14:26) *
Кстати, этот контроллер я не изучал, сколько тактов кварца в машинном цикле?
Один. Но обращение к памяти требует до 6 циклов.


--------------------
На любой вопрос даю любой ответ
"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
repairDV
сообщение Apr 9 2008, 12:02
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Цитата(Сергей Борщ @ Apr 9 2008, 22:54) *
Так может стоило спросить, какой контроллер с первой же выборки дает правильное значение? smile.gif

А я и так знаю. LPC935
Цитата(Сергей Борщ @ Apr 9 2008, 22:54) *
Очень похоже, что у вас не усперает зарядиться конденсатор УВХ. Контроллер не позволяет увеличить время выборки?

Пытался в пределах требований по работе девайса, но - бесполезно. Здесь же ещё нужно быстродействие.
Кстати, есть контроллер однотактовый из 51 серии - 8051F350 Silabs с 24-разрядной АЦП, так там, вроде, как время выборки не увеличивай, всё равно толку нет. Можно смело младшие 8 разрядов игнорировать.

Сообщение отредактировал repairDV - Apr 9 2008, 12:08


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 02:54
Рейтинг@Mail.ru


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