Автор |
Съобщение |
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Как се конфигурират споделените канали на ADC при STM32
Въпросът ми е за STM32F407. Налага ми се да включа още един канал на АЦП. Реших да ползвам канал 12 (PC2). Но не тръгва по стандартния начин. Понеже това е канал, който се използва и за трите АЦП, предполагам, че има нещо, което пропускам в конфигурацията. Не намирам нищо в datasheet-а. Използвам MikroC за ARM. Кодът, с който опитвам е: Резултатът е винаги стойност, съответстваща на максимално напрежение. Какво трябва да се добави, за да работи PC2 с ADC1?
|
Съб Окт 14, 2017 5:29 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2588 Местоположение: Велико Търново / София
|
Re: Как се конфигурират споделените канали на ADC при STM32
От тия контролери нищо не разбирам, но такъв ефект може да се получи ако Vref+ e 0V. Например е на външен пин който в момента е лог 0.
|
Съб Окт 14, 2017 7:37 pm |
|
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 9:16 am Мнения: 1705
|
Re: Как се конфигурират споделените канали на ADC при STM32
Не познавам МикроС, но не разбирам защо си написал след като в документацията ти дават разни дефиниции от вида на _ADC_CHANNEL_0. Сигурен ли си че зад всяка стои просто число указващо канала а не някой адрес или маска?
|
Съб Окт 14, 2017 8:07 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 28019 Местоположение: София
|
Re: Как се конфигурират споделените канали на ADC при STM32
И аз си нямам идея от този проц, но да няма някакъв крос бар, или да има някакво приорите, по пиновете, т.е. някак да са заделени за определени ADC-та ..виж какво прави тази функция ADC_set ....
|
Съб Окт 14, 2017 8:11 pm |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 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
|
Съб Окт 14, 2017 8:26 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 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 |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Как се конфигурират споделените канали на ADC при STM32
Това, което изтеглих като документация са някакви общи приказки, които посочват режимите, но не и как се настройват. Но ADCx_Init() в MikroC е инициализация на модула в основен режим - т.е. не би трябвало да се интересувам от допълнителните възможности. За тях се използва ADCx_Init_Advanced. От опит знам, че понякога се случва да пропуснат някоя настройка и ми се е налагало да добавям сетване на регистри в самия код. .... Благодаря. Тони, тези за разлика от толкова необичания тук Microchip дават няколко документа и точно това нямам.
|
Нед Окт 15, 2017 9:48 am |
|
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 8:22 am Мнения: 15501 Местоположение: София
|
Re: Как се конфигурират споделените канали на ADC при STM32
Няма превклчване на споделените канали, можеш да преобразуваш и с трите конвертора на един пин. Не че им смисъл. В дейта шита има написано всичко, незнам къде са тия общи приказки.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
Нед Окт 15, 2017 10:26 am |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Как се конфигурират споделените канали на ADC при STM32
Цецо, това свалих. Поне аз не намирам в него нищо конкретно за настройване на ADC: http://www.st.com/content/ccc/resource/ ... 035129.pdfСега остава да разбера и защо не тръгва ADC, ако каналът не се донастройва. Оставям пина напълно висящ и пак не сменя показанията.
|
Нед Окт 15, 2017 11:06 am |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Как се конфигурират споделените канали на ADC при STM32
Може и така да се окаже. Сега видях, че пинът на Vref е несвързан.
|
Нед Окт 15, 2017 11:25 am |
|
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 8:22 am Мнения: 15501 Местоположение: София
|
Re: Как се конфигурират споделените канали на ADC при STM32
Това дето си свалил е дейта шита, да. Моя грешка трябва ти reference manual. Една дебела тухла, има я на страницата Имай предвид, че референтния пин е изведен само на корпуси над 100 пина. Иначе ползваш vdd.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
Нед Окт 15, 2017 1:38 pm |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Как се конфигурират споделените канали на ADC при STM32
Моят е VGT6. Има изведен Vref(ползвам готова MCU карта на Mikroelektronika и не погледнах, че Vref не е свързан на картата, а на развойната система(която, обаче, аз не ползвам). Там е изтеглен към 1,8V. Ще сложа един делител на пина и да видим. Подадох 1,65V на Vref, но пак същото. Още нещо пропускам...
|
Нед Окт 15, 2017 1:49 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 28019 Местоположение: София
|
Re: Как се конфигурират споделените канали на ADC при STM32
Ами в това кеото аз четох доколкото помня пишеше че не препоръчват един вход да се обработва едновременно от няколко АЦП-та, но това няма как да е причина за проблема.
|
Нед Окт 15, 2017 4:29 pm |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Как се конфигурират споделените канали на ADC при STM32
С пиковете никога не съм имал подобни проблеми. Тази играчка ме побърка направо. Постоянно има някаква "подробност", заради която нещата тръгват от десетия път. Сега забелязах, че измерва нещо, но ще трябва да видя какви стойности връща. Vref на колко трябва да е? На половината или на Vcc? Откакто свързах Vref, започна да забива главната програма.
|
Нед Окт 15, 2017 5:28 pm |
|
|
E1
Ранг: Почетен член
Регистриран на: Нед Юли 22, 2007 7:57 pm Мнения: 600 Местоположение: Белград
|
Re: Как се конфигурират споделените канали на ADC при STM32
Възможно ли е Vref да трябва да е към Vcc? При 1/2 Vcc(през делител) скалата(която показва какво чета) застава на средата без подадено ниво. При свързване към Vcc, полудява, както се и очаква, с оглед на това, че няма изтеглящи резистори на входа. Спряха и бъговете, които може би се дължаха на опит за излизане на графиката от полето на екрана(това винаги бъгва програмата).
|
Нед Окт 15, 2017 8:18 pm |
|
|