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

 
 
> Скорость преобразования АЦП?, Conversion time, KSPS
hd44780
сообщение Apr 28 2011, 08:56
Сообщение #1


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

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Использую ATMega16, 8MHz от кварца.
АЦП работает в режиме одиночных прерываний с 10-bit разрешением, делителем 8, т.к. частота его такта 1MHz.
Работает без прерываний, через функцию, сгенерированную CvAVR-ом:

Код
// Read the AD conversion result
word read_adc(byte adc_input)
{
ADMUX=adc_input;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);

// Start the AD conversion (ADSC)
ADCSRA|=0x40;            

// Wait for the AD conversion to complete (ADIF)
while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10;      
                  
// Гасим ошибку мл. бита
return ADCW&0xFFFE;
} // read_adc


Замеры АЦП выполняются исключительно в обработчике таймера, с частотой 50 кГц - 20 мкс. По 2 замера на каждое прерывание.
Судя по результатам, работает нормально rolleyes.gif.

Но всё же хочется знать, сколько времени длится одно преобразование, т.е. сколько работает цикл

// Wait for the AD conversion to complete (ADIF)
while ((ADCSRA & 0x10)==0);

В доке видел только мутнячок типа
- 13 - 260 μs Conversion Time
- Up to 15 kSPS at Maximum Resolution

Какой-либо детализации не нашёл. Может плохо искал ....

Прикинул в меру своего разумения:
15KSPS = 66.67 мкс одно преобразование. Но на какой это тактовой? При каких битах ADPSxx в ADCSRA?
И как у них связана частота, задаваемая ADPSxx с этими KSPS?
Я делаю 2 замера за 20mks - вроде работает. Может врёт как собака?

В итоге - ни хрена не понимаю.....

Или лучше поставить какой-то внешний АЦП типа MCP3202?
У него хоть внятно написано
fSAMPLE = 100 ksps and fCLK = 18*fSAMPLE
tSAMPLE = 1.5 clock cycles

По характеристикам меня и внутренний устраивает.
Спасибо.

Сообщение отредактировал hd44780 - Apr 28 2011, 09:07


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zhevak
сообщение Apr 28 2011, 09:40
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



1. Честно говоря, я не представляю себе серьезного разработчика без осциллографа...
Поэтому я предполагаю, что ТС все же имеет под рукой хоть какой-нибудь "бациллоскоп".

2. Пара циклов стирания/записи (да еще и на этапе разработки) не сильно сожрут жизненный ресурс микросхемы.

3. Поскольку ТС использует камень с достаточно большим количеством ног (далеко не TINY13!), то наверняка у камня найдется незадействованная нога. В крайнем случае можно взять ногу, которая отвечает за кукую-нибудь второстепенную функцию, которой можно временно пожертвовать ради науки.

Я предлагаю, простите, банальный способ. Повесить на ногу осциллограф (или на худой конец -- светодиодик). Переписать прогу так, что бы после запуска цикла преобразования АЦП проц зажигал ЛЭД, а по после окончания преобразования (по прерыванию или как оно там у Вас сделано) -- гасил. Остается только замерить длительность импульса.

Все это можно реализовать и проверить в течение нескольких минут. Зато результат будет -- достовернее не сыскать! А заодно и железный опыт получите.


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post



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

 


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


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