Перейти к содержанию

dukeparrot

Members
  • Постов

    5
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные dukeparrot

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

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

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

  2. 2 минуты назад, GOR23 сказал:

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

     

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

  3. 20 минут назад, ARV сказал:

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

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

  4. Всем, доброго времени суток!

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

×
×
  • Создать...