dukeparrot
-
Постов
5 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные dukeparrot
-
-
2 минуты назад, GOR23 сказал:
А какое на нём напряжение?
А на нем показывает 5 В, надо было тоже это упомянуть сразу. Я замерял и не понимал почему там такое напряжение, я подумал что у меня чип бракованный, но использовал другой, там так же. В схеме вроде ничего не должно быть такого, она простая: подключен двухстрочный дисплей и потенциометр к ADC0. Питание идет от программатора USBAsp.
0 -
1 час назад, GOR23 сказал:
Так вы наверное на AREF 5 вольт всадили.
AREF подключен через конденсатор к земле.
0 -
20 минут назад, ARV сказал:
При чем тут "показывает" и "инициализация"? АЦП у вас выдает попугаев, причем 1023 попугая выдается при входном напряжении равном или бОльшем, чем опорное. А потом уже при помощи всякой математики вы сами переводите попугаев в вольты или амперы или еще какие-то фактические единицы. Смотрите тот код, который "показывает" результат в вольтах - там собака порылась.
Я наверное неправильно проблему описал, меня не поняли. Попробую разъяснить, я сейчас не делаю никакой конвертации в вольты, считываю голые значения с ADC. При выборе внутреннего опорного напряжения 1,1 В, максимальное значение ADC должно давать 1023, у меня при подаче сигнала на ADC0 в 1,1 В, значение ADC показывает 228. Когда потенциометр выкручиваю до 5 В, только тогда я получаю 1023. Вот я хочу узнать, почему так,вроде я выбрал в инициализации что опорник у меня 1,1 В.
0 -
Всем, доброго времени суток!
Пытаюсь запустить ADC на чипе 328p, чтобы работал от внутреннего опорного напряжения 1,1 В. Инициализирую ADC как положено и описано в даташите, сигнал снимаю с ADC0. Проблема в следующем, по идеи если выставлено опорное напряжение 1,1 В, это будет максимальное значение, которое я могу замерить с порта. Но у меня максимум показывает 5 В, как будто я беру опорное напряжение по питанию. Ниже код инициализации ADC:
void init_analog(){ /* Enable clock to write ADC registers */ PRR &= ~(1 << PRADC); ADMUX = (0x03 << REFS0) /* Internal 1.1V Voltage Reference with external capacitor at AREF pin */ | (0 << ADLAR) /* Left Adjust Result: disabled */ | (0x00 << MUX0) /* ADC Single Ended Input pin 0 */; ADCSRA = (1 << ADEN) /* ADC: enabled */ | (1 << ADATE) /* Auto Trigger: enabled */ | (1 << ADIE) /* ADC Interrupt: enabled */ | (0x04 << ADPS0) /* 16 */; ADCSRB = (0x00 << ADTS0) /* Free Running mode */ | (0 << ACME) /* Analog Comparator Multiplexer: disabled */; DIDR0 = 1 << ADC0D /* Disable digital input buffer for ADC0 */; ADCSRA|=(1<<ADSC); }
Этот код уже сгенерировал в http://start.atmel.com , до этого сам писал свой, смотрел чужой. Либо я что-то не так делаю, либо не понимаю как это работает. Вообщем прошу направить.
0
ATMEGA328P помогите разобраться с внутренним опорным напряжением
в AVR
Опубликовано
Ну вообщем разобрался я, оказывается платка которую я брал на алиэкспресс для прошивки чипа, на ней VCC, AVCC и AREF соединены вместе.
Не додумался посмотреть, извиняюсь что побеспокоил по пустякам.
Всем спасибо, кто отвечал.