AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
17.02.2019, 04:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
АЦП и биполярный режим
AREF - внутренний ИОН 1.1в
Вот такой простейший код снятия результатов:
Цитата:
|
temp = ADC;
if (ADCH & (1‹‹ADCH1)) // Если значение отрицательное
{
temp |= 0xFC00;
temp = (~temp) + 1;
}
Value_current_lsb = (uint8_t)(temp ›› 2);
|
Никак не пойму - на выбранные дифф. входы надо подать 85 мВ, чтобы АЦП выдал 0. Но это могу списать на внутренний ОУ в виде УГ. Если подаю -1,1 в - то получаю 127. Здесь все верно. Но при подаче положительного смещения те же 127 получаю уже при 0,72в. Что за ерунда? Неужели ОУ на столько УГ? Либо же где-то теряется разряд?
|
|
|
|
17.02.2019, 12:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,053
Сказал спасибо: 3,041
Сказали Спасибо 3,212 раз(а) в 2,182 сообщении(ях)
|
Re: АЦП и биполярный режим
Какой МК и как настроен? Дифференциальный вход с усилением 1 и опорой 1.1 В?
Напряжения питаний?
Синфазное напряжение - не выходит из диапазона?
__________________
Экзорцист 40-го уровня.
|
|
|
|
17.02.2019, 15:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: АЦП и биполярный режим
Аттинька.
Да.
3.3 в
Нет.
В униполярном режиме все прекрасно, но надо высчитывать виртуальный ноль, ибо подача отрицательного дифф. сигнала запрещена.
|
|
|
|
18.02.2019, 01:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: АЦП и биполярный режим
Сообщение от parovoZZ
|
Вот такой простейший код снятия результатов:
|
Какая именно тинька?
Какой-то странный код...
Оформите в теги PHP.
|
|
|
|
18.02.2019, 10:02
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,258
Сказал спасибо: 11,170
Сказали Спасибо 3,859 раз(а) в 2,929 сообщении(ях)
|
Re: АЦП и биполярный режим
parovoZZ, Godzilla82, лучше код в обычный .txt и выложить вложением
К сожалению, движок форума с любым вариантом тегов таки корежит текст программы. Даже noparse не помогает
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 18.02.2019 в 10:04.
|
|
|
|
18.02.2019, 10:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: АЦП и биполярный режим
Сообщение от Godzilla82
|
Какой-то странный код...
|
Сделал через левое выравнивание (ADLAR=1)
PHP код:
|
uint8_t temp;
temp = ADCH;
if (ADCH & (1‹‹ADCH7))
{
temp = (~temp) +1;
}
|
Это была пара PA3(+) / PA1(-). Проверил пару PA3(+) / PA2(-) также 0.72в и 7F в temp. На отрицательном сигнале 7F при -1.1в. Такое ощущение, что тотально не догоняю чего, ну или ОУ дырявое днище.
|
|
|
|
18.02.2019, 15:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: АЦП и биполярный режим
Вобще-то для опроса АЦП (при одиночном преобразовании) нельзя писать просто temp = ADCH нужно сначала запустить преобразование, а затем убедиться, что преобразование завершено.
PHP код:
|
unsigned char read_adc(void)
{
ADCSRA |= (1‹‹ADSC);
while((ADCSRA & (1‹‹ADIF)) == 0);
ADCSRA |= (1‹‹ADIF);
return ADCH;
}
|
|
|
|
|
18.02.2019, 16:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: АЦП и биполярный режим
Сообщение от Godzilla82
|
запустить преобразование
|
это я опустил - там ничего интересного нет/:
Sleep (SET_SLEEP_IDLE_MODE);
И уж тем более, способ запуска теоретически не должен так искажать результаты/
|
|
|
|
18.02.2019, 16:43
|
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: АЦП и биполярный режим
Сообщение от parovoZZ
|
Если подаю -1,1
|
Что-то не понятно... куда подается отрицательное напряжение?
Цитата из ДШ "Несмотря на возможность образования отрицательного напряжения на выходе дифференциального усилителя входные напряжения должны быть в диапазоне GND…AVCC." Насколько я понимаю в режиме "differential channels" должна измеряться разность положительных напряжений....
|
|
|
|
18.02.2019, 17:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: АЦП и биполярный режим
Сообщение от mimuh64
|
должна измеряться разность положительных напряжений....
|
Да. На один вход подаю с ОУ Vcc/2, на другой с потенциометра.
Сообщение от mimuh64
|
куда подается отрицательное напряжение?
|
На пару PA3(+) / PA2(-). Но так, чтобы PA3 - PA2 дало -1.1в. Как раз таки с этой разницей проблем нет, проблема в положительной разнице...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:27.
|
|