Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.02.2011, 00:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Частота запуска однократного АЦП
Доброе время всем.
Вопрос может и глупый. Но чет однозначного ответа не могу определить.
С какой максимальной частотой можно запускать однократное АЦП в ATMega 8535. При условии что контролер тактируется 16мГц.
|
|
|
|
27.02.2011, 00:58
|
|
Гражданин KAZUS.RU
Регистрация: 13.07.2005
Сообщений: 602
Сказал спасибо: 14
Сказали Спасибо 40 раз(а) в 19 сообщении(ях)
|
Re: Частота запуска однократного АЦП
Читаем ДШ.
Время преобразования 65-260 мкс, при тактовой 200-50 кГц.
Чтобы не считать, придумано прерывание ADC Сonversion Complete.
|
|
|
|
27.02.2011, 01:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Частота запуска однократного АЦП
Сообщение от 7Fantomas7
|
С какой максимальной частотой
|
Так в теме же писал про это. С разблядовкой по ошибкам измерения.
Вот - https://kazus.ru/forums/showpost.php...6&postcount=20
Последний раз редактировалось omercury; 27.02.2011 в 01:34.
|
|
|
|
27.02.2011, 02:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Частота запуска однократного АЦП
smg123,
Оно таки да, только не совсем. С прерыванием подумаю но очень не хотелось бы.
omercury,
Я помню что вы писали.
Цитата:
|
разблядовкой по ошибкам измерения
|
И что вы там разблядовали. Что вы чтото меряете там . 400-800кГц это что частота на которой работает АЦП или частота с которой происходит запуск АЦП.
Вобщем как всегда мой дом дурдом.
Есть цикл в котором крутимся
Код:
|
while (start==1 && rejim==0){ //если старт разрешен и режим установлен как источник тока
ADC_I(); //замерили величину тока
PWM_control_I(); //подкоректировали величину тока если необходимо
ADC_U(); //померили напряжение
indi(); //отобразили на индикаторе текущие значения измерения
} |
Есть функции ADC_I и ADC_U
например ADC_I выглядит так
Код:
|
void ADC_I (void){ //делаем АЦП ADC6
static unsigned char calculator_bufer_I[4];//буфер фильтра тока среднее арифметическое
volatile unsigned char I_ADC; //переменная результат измерения I
if (flag_ADC_I==1){ //Если разрешено АЦП (частота разрешений 14925 Гц
ADCH=0b00000000;
ADMUX=0b00100110;
//ADCSRA=0b11000001;//делитель 2
ADCSRA=0b11000011;//делитель 8
delay_us(8);
I_ADC=ADCH;
//calculator_bufer_I[4]=calculator_bufer_I[3];
calculator_bufer_I[3]=calculator_bufer_I[2];
calculator_bufer_I[2]=calculator_bufer_I[1];
calculator_bufer_I[1]=calculator_bufer_I[0];
calculator_bufer_I[0]=I_ADC;
izmerenoe_I=(calculator_bufer_I[3]+calculator_bufer_I[2]+calculator_bufer_I[1]+calculator_bufer_I[0])/4;
//sprintf (&sym_out1[0],"%s","izmerenoe_I");
indy_I=izmerenoe_I; //переменной которую будем разбивать на разряды индикации присваиваем то что намерили (Ток)
flag_ADC_I=0; //сбросили флаг разрешения АЦП
}
} |
Логика предельно проста померяли ADC6-усрелнили- присвоили переменной значение, померили ADC7-усреднили- присвоили другой переменной значение, при этом всем меряем в качестве теста стабильную фильтрованую постоянку. А дальше значения обоих переменных выводим на 2 отдельных 3 разрядных индикатора. Работу динамички проверил боков особо никаких. В таком режиме прыгает младший разряд. Оно понятно что при 16 мгц тактовой надо бы делитель хотяб 64 поставить, а лучше 128. Только я ставил, я их вообще все ставил. Если поставить больше чем 8 то при подаче сигнала на ADC6 чего то меряет и ADC7 чего он там меряет не знаю. Если поставить делитель 2 то тоже чегото меряет ADC7. На индикаторе отображает хотя на входе ничего нет. А младший разряд все одно прыгает. При симуляции в протеусе таких проблем вроде как не наблюдалось.
Ну повторю риторический вопрос а как часто можно запускать однократное АЦП, по книжке вроде как максимальная частота 15кГц.
Последний раз редактировалось 7Fantomas7; 27.02.2011 в 11:28.
|
|
|
|
27.02.2011, 02:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Частота запуска однократного АЦП
Сообщение от 7Fantomas7
|
Ну повторю риторический вопрос а как часто можно запускать однократное АЦП, по книжке вроде как максимальная частота 15кГц.
|
Так и есть, если нужны все 10 бит. Если 8 достаточно, то можно поднять ЕМНИП до 76 килосэмплов.
|
|
|
|
27.02.2011, 10:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Частота запуска однократного АЦП
Цитата:
|
Если 8 достаточно, то можно поднять ЕМНИП до 76 килосэмплов.
|
8 достаточно
А что такое
Цитата:
|
ЕМНИП до 76 килосэмплов.
|
|
|
|
|
27.02.2011, 10:53
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Re: Частота запуска однократного АЦП
|
|
|
|
27.02.2011, 12:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Частота запуска однократного АЦП
АЦП при однократном запуске для измерения требуется 14 своих тактов. Если при частоте 16MHz делитель поставить 32, получится тактовая АЦП 500kHz, что в 2,5 раза выше рекомендованной. Но учитывая усреднение и внешний ИОН использовать её можно. Далее 500/14=35,71kHz. Это максимальная частота запуска АЦП.
Если частоту АЦП поднять до 1MHz, то частота запусков будет уже 71,42kHz, но младшие разряды точно отсеивать надо.
А младший разряд скакать может либо от плохого питания аналоговой части либо от нестабильного ИОН. Ну и ошибка усреднения...
Последний раз редактировалось omercury; 27.02.2011 в 12:38.
|
|
|
Сказали "Спасибо" omercury
|
|
|
27.02.2011, 13:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Частота запуска однократного АЦП
omercury,
Теперь понятно. Только не понятно.
То что Вы написали я скажем так знаю и как расчитать частоту знаю. За то что подробно изложили огромное спасибо. Вот только не работает, в железе не работает. В теории все клас, в симуляторе не плохо, а в железе плохо. Я уже объявил буфер 15 байт и потом усредняю, все равно в пределах вольта прыгает. Опорное стоит в пределах 2,550V-2,552V я не знаю как сделать точнее и стабильнее, да и померять более точно нет возможности. Входное напряжение подаваемое на ADC6 1,270V-1,272V опять же точнее подать не знаю как. На экране прыгает 127V-128V, какого рожна ему надо? Это один момент, который заставил меня усомнится в правильности настроек АЦП, в частности частоты работы АЦП и частоты запусков АЦП. Эти частоты завышены явно от тех что рекомендуются в книжке.
Второй момент.
Я подаю сигнал на ADC6, а на ADC7 ничего не подаю и там 0. Опять же входные цепи шунтированы керамикой и электролитами. Так вот если выставляю коэфициент деления 8 то ADC6 нормально отображается на индикаторе с точностью 1 вольт как писал выше, ADC7 показывает 0V иногда прыгает до 1V. Другими словами АЦП чешет на частоте 16000000/8=2000000 два мегагерца. Запускается с частотой 142,857кГц. Обе этих величины не вписываются в рекомендованные ограничения. Но когда я попытался уменьшить частоту работы АЦП т.е. увеличил коэфициент деления то начался дурдом в канале ADC7 и чем больше коэфициент деления тем больше дурдом при коэфициенте деления 64 или 128 каналы меняются как бы местами, соответственно частота включения АЦП тоже корректируется соответствующим образом. И соответственно я ничего не в состоянии понять. В запредельном режиме работает, в нормальном режиме не работает.
|
|
|
|
27.02.2011, 13:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Частота запуска однократного АЦП
Сообщение от 7Fantomas7
|
прыгает 127V-128V
|
Это нормальное явление - так и должно быть. Дело в том, что в кристалле модуль АЦП находится рядом с модулями таймеров. Вот они-то и дают наводку на АЦП. Для исключения влияния таймеров - их рекомендуют отключать на время измерения. Получается замкнутый круг - хочется точности работы по таймингам - надо использовать таймеры, но не будет точности измерений. И наоборот... Такая вот петрушка.
Насчёт 76 килосэмплов kison тоже прав. В режиме Free Running Mode первое измерение АЦП требует 14 тактов, а все остальные преобразовываются за 13. Так что со склирозом у Вас всё в порядке.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:50.
|
|