Отговори на тема  [ 29 мнения ]  Отиди на страница 1, 2  Следваща
Как се конфигурират споделените канали на ADC при STM32 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 7:57 pm
Мнения: 600
Местоположение: Белград
Мнение Как се конфигурират споделените канали на ADC при STM32
Въпросът ми е за STM32F407. Налага ми се да включа още един канал на АЦП. Реших да ползвам канал 12 (PC2). Но не тръгва по стандартния начин. Понеже това е канал, който се използва и за трите АЦП, предполагам, че има нещо, което пропускам в конфигурацията. Не намирам нищо в datasheet-а.
Използвам MikroC за ARM.
Кодът, с който опитвам е:
Код:
  unsigned int adc_result = 0;
  GPIO_Analog_Input (&GPIOC_BASE, _GPIO_PINMASK_2);    // PC2 -> ANALOG
   ADC_Set_Input_Channel(_ADC_CHANNEL_12);  // Choose ADC channel 12 - PC2
   ADC1_Init();                                                   
   adc_result = ADC1_Get_Sample(12);        // Get ADC value from corresponding channel

Резултатът е винаги стойност, съответстваща на максимално напрежение.
Какво трябва да се добави, за да работи PC2 с ADC1?

_________________
http://www.szrefekt.com


Съб Окт 14, 2017 5:29 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2588
Местоположение: Велико Търново / София
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
От тия контролери нищо не разбирам, но такъв ефект може да се получи ако Vref+ e 0V. Например е на външен пин който в момента е лог 0.

_________________
https://github.com/slav4ocom/


Съб Окт 14, 2017 7:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 9:16 am
Мнения: 1705
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Не познавам МикроС, но не разбирам защо си написал
Цитат:
adc_result = ADC1_Get_Sample(12); // Get ADC value from corresponding channel

след като в документацията ти дават разни дефиниции от вида на _ADC_CHANNEL_0. Сигурен ли си че зад всяка стои просто число указващо канала а не някой адрес или маска?


Съб Окт 14, 2017 8:07 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 28019
Местоположение: София
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
И аз си нямам идея от този проц, но да няма някакъв крос бар, или да има някакво приорите, по пиновете, т.е. някак да са заделени за определени ADC-та ..виж какво прави тази функция ADC_set ....


Съб Окт 14, 2017 8:11 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 7:57 pm
Мнения: 600
Местоположение: Белград
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Мисля, че има допълнително задаване в регистрите с кой ADC да се използва каналът. Но не мога да намеря как става това. Не знам защо нищо не пише в Datasheet-а. Свикнал съм с пиковете, а там всичко е в един документ. Тук вече видях, че някои функции се описват в отделни документи и започвам ровене къде...
ADC_Set_Input_Channel:
The function sets appropriate ADC channel as an analog input

_________________
http://www.szrefekt.com


Съб Окт 14, 2017 8:26 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 28019
Местоположение: София
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Ти чете ли си pdf-а, първо имат няколко режима на конверсия, имаш регистър ADC_SQRx " The total number of conversions in the regular group must be written in the L[3:0] bits in the ADC_SQR1 register" може да е нещо от това. Четъ по диагонал но доколкото виждам, тъйкато може да са в сканиращ режим трябва да сетваш този регистър, както и редът на сканирането ако са в скан режим, може би и ако си в сингъл режим е същото, както казах четъ по диагонал. Ей ти го секуенса :
In Single conversion mode the ADC does one conversion. This mode is started with the
CONT bit at 0 by either:
• setting the SWSTART bit in the ADC_CR2 register (for a regular channel only)
• setting the JSWSTART bit (for an injected channel)
• external trigger (for a regular or injected channel)
Once the conversion of the selected channel is complete:
• If a regular channel was converted:
– The converted data are stored into the 16-bit ADC_DR register
– The EOC (end of conversion) flag is set
– An interrupt is generated if the EOCIE bit is set
• If an injected channel was converted:
– The converted data are stored into the 16-bit ADC_JDR1 register
– The JEOC (end of conversion injected) flag is set
– An interrupt is generated if the JEOCIE bit is set

Също така ето какво пише за тези които са с по няколко : In multi ADC mode, the start of conversion is triggered alternately or simultaneously by the ADC1 master to the ADC2 and ADC3 slaves, depending on the mode selected by the MULTI[4:0] bits in the ADC_CCR register

Има и още доста писано специално когато си с няколко ADC-та, според мен всичк ое описано, но точно сега не съм в настроение да чета в детайли чаршафа на нещо което никога не съм изпозлвал, обикновенно е свързано с няколко листа хартия на които започваш и пишеш в кой регистър какво трбва да сетнеш.


Съб Окт 14, 2017 8:53 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 7:57 pm
Мнения: 600
Местоположение: Белград
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Това, което изтеглих като документация са някакви общи приказки, които посочват режимите, но не и как се настройват.
Но ADCx_Init() в MikroC е инициализация на модула в основен режим - т.е. не би трябвало да се интересувам от допълнителните възможности. За тях се използва ADCx_Init_Advanced. От опит знам, че понякога се случва да пропуснат някоя настройка и ми се е налагало да добавям сетване на регистри в самия код.
....
Благодаря. Тони, тези за разлика от толкова необичания тук Microchip дават няколко документа и точно това нямам.

_________________
http://www.szrefekt.com


Нед Окт 15, 2017 9:48 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 8:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Няма превклчване на споделените канали, можеш да преобразуваш и с трите конвертора на един пин. Не че им смисъл. В дейта шита има написано всичко, незнам къде са тия общи приказки.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Нед Окт 15, 2017 10:26 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 7:57 pm
Мнения: 600
Местоположение: Белград
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Цецо, това свалих. Поне аз не намирам в него нищо конкретно за настройване на ADC: http://www.st.com/content/ccc/resource/ ... 035129.pdf
Сега остава да разбера и защо не тръгва ADC, ако каналът не се донастройва. Оставям пина напълно висящ и пак не сменя показанията.

_________________
http://www.szrefekt.com


Нед Окт 15, 2017 11:06 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 7:57 pm
Мнения: 600
Местоположение: Белград
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
slav4o.com написа:
От тия контролери нищо не разбирам, но такъв ефект може да се получи ако Vref+ e 0V. Например е на външен пин който в момента е лог 0.

Може и така да се окаже. Сега видях, че пинът на Vref е несвързан.

_________________
http://www.szrefekt.com


Нед Окт 15, 2017 11:25 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 8:22 am
Мнения: 15501
Местоположение: София
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Това дето си свалил е дейта шита, да. Моя грешка трябва ти reference manual. Една дебела тухла, има я на страницата :)

Имай предвид, че референтния пин е изведен само на корпуси над 100 пина. Иначе ползваш vdd.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Нед Окт 15, 2017 1:38 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 7:57 pm
Мнения: 600
Местоположение: Белград
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Моят е VGT6. Има изведен Vref(ползвам готова MCU карта на Mikroelektronika и не погледнах, че Vref не е свързан на картата, а на развойната система(която, обаче, аз не ползвам). Там е изтеглен към 1,8V. Ще сложа един делител на пина и да видим.
Подадох 1,65V на Vref, но пак същото. Още нещо пропускам...

_________________
http://www.szrefekt.com


Нед Окт 15, 2017 1:49 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 28019
Местоположение: София
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Ами в това кеото аз четох доколкото помня пишеше че не препоръчват един вход да се обработва едновременно от няколко АЦП-та, но това няма как да е причина за проблема.


Нед Окт 15, 2017 4:29 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 7:57 pm
Мнения: 600
Местоположение: Белград
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
С пиковете никога не съм имал подобни проблеми. Тази играчка ме побърка направо. Постоянно има някаква "подробност", заради която нещата тръгват от десетия път.
Сега забелязах, че измерва нещо, но ще трябва да видя какви стойности връща. Vref на колко трябва да е? На половината или на Vcc?
Откакто свързах Vref, започна да забива главната програма.

_________________
http://www.szrefekt.com


Нед Окт 15, 2017 5:28 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 7:57 pm
Мнения: 600
Местоположение: Белград
Мнение Re: Как се конфигурират споделените канали на ADC при STM32
Възможно ли е Vref да трябва да е към Vcc? При 1/2 Vcc(през делител) скалата(която показва какво чета) застава на средата без подадено ниво. При свързване към Vcc, полудява, както се и очаква, с оглед на това, че няма изтеглящи резистори на входа. Спряха и бъговете, които може би се дължаха на опит за излизане на графиката от полето на екрана(това винаги бъгва програмата).

_________________
http://www.szrefekt.com


Нед Окт 15, 2017 8:18 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 29 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни