Алексей ВМ 0 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Добрый день, Столкнулся со следующей проблемой с АЦП на STM32F103VBT6 - при достижении некоторого напряжения на входе АЦП данные с него не изменяются при последующем увеличении напряжения. Код, на котором застывают показания - 1023 (0x3FF) (вх. напряжение 0.63 В), затем при увеличении напряжения код скачком увеличивается до 1046. Опорное напряжение - внешнее 2.5 В, формирует AD. Алексей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Я не сталкивался, но сходу проверил бы несколько вещей: - не превышена ли тактовая частота АЦП? - процедуру самокалибровки делать не забываете? - нет ли шума в цепи питания Vdda? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Алексей ВМ 0 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Я не сталкивался, но сходу проверил бы несколько вещей: - не превышена ли тактовая частота АЦП? - процедуру самокалибровки делать не забываете? - нет ли шума в цепи питания Vdda? Как задать частоту АЦП не нашел, используются настройки по умолчанию. Самокалибровку делаю. Vdda чистый. Проблема проявляется только при напряжении на входе 0.64 В, грубо говоря, на одном сравнительно узком участке диапазона входного напряжения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Осциллограмму входного сигнала - в студию! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Может вход не настроен на аналоговый режим? В этом случае как раз около половины питания во входных цепях должен появляться сквозной ток, возможно он как-то влияет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Алексей ВМ 0 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Осциллограмму входного сигнала - в студию! Сигнал подается прямо на вход АЦП от калибратора Fluke 715. Осциллограмма представляет собой прямую линию, уровень шумов ~20 мВ. Сигнал медленно изменяется с помощью калибратора. Может вход не настроен на аналоговый режим? В этом случае как раз около половины питания во входных цепях должен появляться сквозной ток, возможно он как-то влияет. /* Configure P as analog input -------------------------*/ GPIO_StructInit(&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_StructInit(&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_StructInit(&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOC, &GPIO_InitStructure); Все пины настроены как аналоговые входы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба 1023 - это не половина, а четверть диапазона. Тогда нужно найти, какой частотой тактируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Я голосую за превышение частоты тактирования АЦП. Частота равна частоте APB2, делённой на прескалер АЦП. Поищите у себя что-то типа такого: RCC->CFGR = (RCC->CFGR & ~(RCC_CFGR_HPRE | RCC_CFGR_PPRE2 | RCC_CFGR_PPRE1 | RCC_CFGR_ADCPRE)) | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_PPRE2_DIV1 | RCC_CFGR_PPRE1_DIV2 | RCC_CFGR_ADCPRE_DIV6; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rudy_b 1 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба А сам АЦП на нужную разрядность настроили? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Алексей ВМ 0 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Я голосую за превышение частоты тактирования АЦП. Частота равна частоте APB2, делённой на прескалер АЦП. Поищите у себя что-то типа такого: Так оно и есть. После деления частоты проблема пропала. Спасибо! А сам АЦП на нужную разрядность настроили? Не нашел такой настройки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rudy_b 1 24 октября, 2016 Опубликовано 24 октября, 2016 · Жалоба Ага, посмотрел, у 1хх действительно нет, настройка разрядности только у 2хх. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eu1cc 0 27 октября, 2016 Опубликовано 27 октября, 2016 · Жалоба Всем день добрый! Спрошу тут: Камень: STM32F103RCT6. По входу АЦП стоит резистор 10кОм на землю и ничего больше не подключено. Значения АЦП "скачут" в диапазоне 0...0х10 бит. При подаче на вход напряжения, меряет корректно. Собственно вопрос: Почему нет 0, при отсутствии сигнала. От настроек может быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 27 октября, 2016 Опубликовано 27 октября, 2016 · Жалоба Камень: STM32F103RCT6. По входу АЦП стоит резистор 10кОм на землю и ничего больше не подключено. Значения АЦП "скачут" в диапазоне 0...0х10 бит. При подаче на вход напряжения, меряет корректно. Собственно вопрос: Почему нет 0, при отсутствии сигнала. От настроек может быть? Правильно заданный вопрос содержит половину ответа. А звучать правильный будет так: Камень: STM32F103RCT6. По входу АЦП стоит АНТЕННА с резистором 10кОм на землю и ничего больше не подключено. Значения АЦП "скачут" в диапазоне 0...0х10 бит..... Вобщем, смотрите разводку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 27 октября, 2016 Опубликовано 27 октября, 2016 · Жалоба Кстати, в зависимости от настроек АЦП (а именно время выборки) 10 кОм может быть вовсе не таким уж маленьким сопротивлением. Соответственно, будет прыгать туда-сюда в зависимости от того, что там происходит на ёмкости выборки между преобразованиями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 29 октября, 2016 Опубликовано 29 октября, 2016 · Жалоба Блин, нежные они какие-то, эти F103 - отлаживался на макете, коснулся пинцетом одного неподключенного аналогового входа в разьеме (оттуда он через 1к и 0.1мкф в землю идет на проц), и видимо от статики при касании (хотя, искры вроде небыло).- все перезапустилось, и при этом у проца АЦП вышибло - вся программа работает, только с АЦП все нули читаются. Перепаял проц - все заработало. На всякий случай, повесил 3.6в зенеры на все, что за пределы платы выходит. Ни с одним другим СТМ32, ЛПЦ или ПИК - никогда такого небыло! Да еще чтобы через RC-цепочку! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться