Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

pic16f18875 adc not sampling
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=17873
Страница 1 от 2

Автор:  dan [ Пон Май 10, 2021 9:09 am ]
Заглавие:  pic16f18875 adc not sampling

На въпросния чип в ерата пише, че трябва да се добави един nop преди да започне да се пулва ADGO бита.
Пиша на С и го вмъквам с
asm("nop");
В дизасембера кодът изглежда наред.
Въпреки това като пусна ацп-то да семлира във free running резултатът винаги е 0, а като го пусна през дебъгера постъпково (с f7) резултатът е коректен.
Идеи?

Едит: през дебъгера във free running резултатът също е 0.

Автор:  TheWizard [ Пон Май 10, 2021 9:17 am ]
Заглавие:  Re: pic16f18875 adc not sampling

провери си времената за конвертиране на резултата

Автор:  dan [ Пон Май 10, 2021 1:21 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

Код:

    ANSELDbits.ANSD7 = 1;
    ADREFbits.ADNREF = 0;
    ADREFbits.ADPREF = 0;
    ADPCHbits.ADPCH = 31;
    ADACQbits.ADACQ = 250;//нали това е времето за семплиране

    ADCON0bits.ADON = 1;
    ADCON0bits.ADCONT = 0;
    ADCON0bits.ADCS = 0;
    ADCON0bits.ADFRM = 1;
    ADCON0bits.ADGO = 1;
    asm("nop");
    asm("nop");
    asm("nop");
    while(ADCON0bits.ADGO)
    {
    }

Автор:  TheWizard [ Пон Май 10, 2021 1:52 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

http://ww1.microchip.com/downloads/en/D ... 01802D.pdf
ADCS стр 340
ADACQ на 350

ам ти така или иначе чакаш ГО да падне ?!?!

виж и тва "уж" подробно кое как
http://ace.cs.ohio.edu/~avinashk/classe ... 12-ADC.pdf

Автор:  ToHu [ Пон Май 10, 2021 5:32 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

Що не пробваш да полираш флага за прекъсване ? Отделно ти използваш ли вградения мат модул ?

Автор:  dan [ Пон Май 10, 2021 6:34 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

ToHu написа:
Що не пробваш да полираш флага за прекъсване ? Отделно ти използваш ли вградения мат модул ?

Пробвах. Първо пулвам този, после флага. Няма разлика.
Само базовия модул ползвам. Сигурно някоя тъпотия ми обягва

Автор:  ig_ivanov [ Пон Май 10, 2021 9:50 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

TRISDbits.TRISD7 = 1 ?
ADCON2bits.ADMD = 0;
ADCLK = ?
ADPRE = ?
ADACQ = ?
ADCAP = ?
ADACT = 0x1F
The maximum recommended impedance for analog sources is 10 kOm.

Автор:  Реконструктор [ Вто Май 11, 2021 10:21 am ]
Заглавие:  Re: pic16f18875 adc not sampling

Пробвай да добавиш още nop-ове или намали клока на ацп-то :)

Автор:  ToHu [ Вто Май 11, 2021 4:47 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

Ами странно е, ако не му стига време няма да е нула. Проблема с времето е ако не успява да зареди семпъл-холд схемата, това се случва или ако превключил вход и не изчакаш достатъчно време, или ако източника ти е с много голямо съпротивление. И в двата случая обаче това което четеш няма да е нула а ще шава, е освен ако не сетваш вход и на следващата операция започваш четене.
Ноп-а който слага няма общо с това, най-вероятно е някакъв уорк араунд на проблем с go бита.
Да няма нещо друго да клати тоя крак, скоро така на една въшка се нервих с адц-то докато не видях че там по дефаулт излиза някакъв Клок.

Автор:  dan [ Сря Май 12, 2021 1:21 am ]
Заглавие:  Re: pic16f18875 adc not sampling

Като добавих
ADPRE = 1;
и тръгна.
Не мога да разбера обаче какъв му е проблема, че не работи изобщо без пречардж.

Автор:  Zdrav [ Сря Май 12, 2021 9:03 am ]
Заглавие:  Re: pic16f18875 adc not sampling

И още един въпрос: Защо без pre-charge при постъпково изпълнение с дебъгера - работи?

Автор:  ToHu [ Сря Май 12, 2021 3:49 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

Ами причината пакможе да е свързана с недостатъчно време за семплиране. Сетнал ли си ADCAP да е 0? Времето за семплиране е около 4.6 мкс или около 25 операции на 20 мхц. Това което този регистър прави е че овъррайдва всички други настройки на портовете, ако нещо там не ти е наред може това да помага. Друго което става е:
When ADPRE!=0, acquisition time cannot be ‘0’. In this case, setting ADACQ to ‘0’ will set a maximum acquisition time (256 ADC clock cycles). When precharge is disabled, setting ADACQ to ‘0’ will disable hardware acquisition time control.

Автор:  Реконструктор [ Сря Май 12, 2021 9:58 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

Тия пикове са гола вода. АЦП-то на AVR-a се подкарва с точно 3 реда и работи пушка. :D

Автор:  itso.t [ Сря Май 12, 2021 11:36 pm ]
Заглавие:  Re: pic16f18875 adc not sampling

Тия микроконтролери са ебати ташака. ADC80 се подкарва без никакъв код!

Автор:  ToHu [ Чет Май 13, 2021 4:55 am ]
Заглавие:  Re: pic16f18875 adc not sampling

По принцип ADC-то на пиковете е едно от най-простите за подкарване, но това конкретно са му сложили много екстри които си искат някой да ги пасе. Но според мен тук има друг проблем, тоя регистър който е барал има конкретно предназначение и нормално няма нужда да се сетва. Според мен нещо не му е наред или по конфигурацията на И/О-то или времената между сетването на входа и четенето му/настройките на адц-то.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/