dukeparrot

ATMEGA328P помогите разобраться с внутренним опорным напряжением

9 сообщений в этой теме

dukeparrot    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 , до этого сам писал свой, смотрел чужой. Либо я что-то не так делаю, либо не понимаю как это работает. Вообщем прошу направить. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
ARV    203

При чем тут "показывает" и "инициализация"? АЦП у вас выдает попугаев, причем 1023 попугая выдается при входном напряжении равном или бОльшем, чем опорное. А потом уже при помощи всякой математики вы сами переводите попугаев в вольты или амперы или еще какие-то фактические единицы. Смотрите тот код, который "показывает" результат в вольтах - там собака порылась.

Изменено пользователем ARV

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dukeparrot    0
20 минут назад, ARV сказал:

При чем тут "показывает" и "инициализация"? АЦП у вас выдает попугаев, причем 1023 попугая выдается при входном напряжении равном или бОльшем, чем опорное. А потом уже при помощи всякой математики вы сами переводите попугаев в вольты или амперы или еще какие-то фактические единицы. Смотрите тот код, который "показывает" результат в вольтах - там собака порылась.

 Я наверное неправильно проблему описал, меня не поняли. Попробую разъяснить, я сейчас не делаю никакой конвертации в вольты, считываю голые значения с ADC. При выборе внутреннего опорного напряжения 1,1 В, максимальное значение ADC должно давать 1023, у меня при подаче сигнала на ADC0 в 1,1 В, значение ADC показывает 228. Когда потенциометр выкручиваю до 5 В, только тогда я получаю 1023. Вот я хочу узнать, почему так,вроде я выбрал в инициализации что опорник у меня 1,1 В.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GOR23    30

Так вы наверное на AREF 5 вольт всадили.

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dukeparrot    0
1 час назад, GOR23 сказал:

Так вы наверное на AREF 5 вольт всадили.

 

AREF подключен через конденсатор к земле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GOR23    30

А какое на нём напряжение?

Или ещё вариант что где то в коде записали что-то в ADMUX напрямую и перетёрли его содержимое

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dukeparrot    0
2 минуты назад, GOR23 сказал:

А какое на нём напряжение?

 

А на нем показывает 5 В, надо было тоже это упомянуть сразу. Я замерял и не понимал почему там такое напряжение, я подумал что у меня чип бракованный,  но использовал другой, там так же. В схеме вроде ничего не должно быть такого, она простая: подключен двухстрочный дисплей и потенциометр к ADC0. Питание идет от программатора USBAsp.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GOR23    30

Ну должно быть на AREF 1,1 В. Варианта 2: или он всё таки подсоединён к 5 вольтам (сопля например где то), или дальше в программе в ADMUX что то записали не то, и он переключился.

Ну или так ещё попробовать, хотя врядли поможет...

ADMUX = (1 << REFS0)|(1 << REFS1);

 

Изменено пользователем GOR23
  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dukeparrot    0

Ну вообщем разобрался я, оказывается платка которую я брал на алиэкспресс для прошивки чипа, на ней VCC, AVCC и AREF соединены вместе. 

Не додумался посмотреть, извиняюсь что побеспокоил по пустякам. 

Всем спасибо, кто отвечал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • С размещением показаний на дисплее немного разобрался (скрин1) Идею  я понял, спасибо, буду иметь ввиду. С этим я уже сталкивался, когда делал "показометр" для переделанного в лабораторный БП  АТХ.  Только делал в CVAVR на дисплее 1602. Нормально получилось. (скрин2) 100% согласен! Но до изучения таймеров ни как пока не дойду (со мной внуков трое:4, 6 и 8 лет - особо не разгуляешься). Еще раз спасибо тебе за полезные советы!  
    • Ну и ещё. При нынешнем Rg 0.65 чуйка упала всего на 0.34дб, для Rg0.2 это падение будет 0.107дб. Я дал цифры а решать вам.
    • Ты тормози по времени то ай-ай. Сказывай лучше камрад Леха на какие колонки слушали? На твои старые?
    • Добавлю WR30-48D5V5-F    WR30-48S12-F DC/DC: 48V-12V-30W   BXA75-48S05 DC/DC: 48V-5V-75W   BXA15-48S12-F DC/DC: 48V-12V-15W   PH150S48-24/STI Преобразователь постоянного тока в постоянный 150W 24V 6.3A   NFC10-24S05SI DC/DC: 24V-5V-10W   BXA3-24S12-FSI
    • Не надо искать скрытого смысла в моих фразах. Сердечник напрямую влияет на индуктивность и косвенно на Rg. На Rg напрямую влияет диаметр проволоки и косвеено длинна. Для номинального импеданса Z=8 допустимо Rg= 0.2ом. Zmax измерять без надобности. У вас довольно хороший кабель, такой желательно иметь и внутри ас.
    • На пробу, как всегда, демонтаж. Площадь=(Д.реб*Ш.реб* кол-во ребер*2)+(Д.опора*Ш.опора).  Радиатор 150х110 высота 14, основание 3 мм. Вес 265 г. 37 ребер, толщина ребра 1 мм, межреберье - 3 мм. Площадь около 1050 см. 6 отверстий с резьбой М4, цена 150. 5 штук.   Радиатор 170х30 высота 25, основание 4 мм. Вес 140 г. 6 ребер, толщина ребра 1,5 мм, межреберье - 4 мм. Площадь около 470 см.  3 отверстия с резьбой М3 на крайнем ребре, цена 80 руб/шт. 3 штуки. Радиатор 128х30 высота 25, основание 4 мм. Вес 115 г. 7 ребер, толщина ребра 1,5 мм, межреберье - 3+ мм. Площадь около 410 см.  3 отверстия с резьбой М3 на крайнем ребре, цена 60 руб/шт. 3 штуки. Радиатор 101х61 высота 7,5, основание 1+ мм. Вес 55 г. 27 ребер, толщина ребра 1+ мм, межреберье - 3- мм. Площадь около 260 см. 4 отверстия с резьбой М4, цена 40 руб. 5 штук. Радиатор 145х120 высота 25, основание 3+ мм. Вес 400 г. 18 ребер, толщина ребра 1,5+ мм, межреберье - 5 мм. Площадь около 1300 см. 7 отверстия с резьбой М4, цена 200 руб. 5 штук. Радиатор 225х140 высота 31, основание 7+ мм. Вес 1100 г. примерно 15 ребер, толщина ребра 2,5 мм, межреберье - 6 и 8 мм. Площадь около 1850 см. 8 отверстий с резьбой М6, цена 400 руб. 5 штук. Подошва с прорезями, см фото Может кому будет интересно еще один Радиатор 410х295 высота 52, основание 17 или 23 мм. Вес около 10 кг. 20+18 ребер, толщина ребра 3 мм, межреберье - 5 мм. Площадь около 8500 см. много отверстий с резьбой М4, цена 2000 руб. 3 штуки. Та часть, которую можно выделить - ровная подошва - 150х295 высота 52, основание 17 мм. Вес около 4-5 кг. 20  ребер, толщина ребра 3 мм, межреберье - 5 мм. Площадь около 4500 см.  
    • Кажется это ВОТ ТАКАЯ приблуда. И, схему на неё искать придётся очень долго...  Ага-да, для автоаккумуляторов она не годится.