roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 04:04

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: STM32F103 ADC
СообщениеДобавлено: 26 сен 2013, 23:24 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Всем привет!
Кто нибудь обращал внимание что на оцифровку каналов влияют значения предыдущего канала?
Например
Оцифровываем в такой последовательности
1 - 10канал
2 - 11канал
3 - 12канал

4 - 1канал
5 - 2канал
6 - 3канал

Данные в 10-12 канале имеют амплитуду 3 вольта
Данные в 1-3 имеют амплитуду 1в
Так вот, в зачении 4го (по очереди) оцифрованного канала всегда присутствует частичное значение от 3го (по очереди) канала, т.е. в данном примере значение 1канала = истинное значение + часть значения от 12канала.
Я перепроверил проникновение точно не через плату/дорожки.
И на осциллографе не видно этой зависимости, т.е. проблема видна только в оцифрованных данных.
Я вроде раньше такое поведение не встречал.
Оцифровываю на максимальной скорости с минимальным временем (1,2,3 каналы - измерение тока в моменты когда ШИМ не влияет на показания)
Зависимость остаётся если разделить по группам, например 10-12 - регулярная группа, 1-3 инжектированная группа.

Собственно вопрос, что делать? может кондёр куда нибудь прилепить?

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 00:19 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Сейчас уже точно не вспомню - надо вечером смотреть подробнее, но:

Кондер у тебя уже влеплен. Когда ты делаешь оцифровку - кондер в АДЦ модуле заряжается в течение времени оцифровки, а потом уже МК цифрует значение на кондере на внутреннем. После оцифровки этот кондер нужно разрядить.

Чтобы точно смотреть, что у тебя там - давай код свой.
И убедись, что точно шим не влияет. Флипай какую нибудь ногу перед началом оцифровки и окончанием оцифровки и смотри эту ногу и шим свой - не пересекаются ли.

Добавлено спустя 42 секунды:
А самое первое, что сделай - убери нагрузку с ног и заземли 10, 11 и 12 каналы и посмори что получается.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 01:13 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Уменьшить выходное сопротивление источников сигнала для АЦП - видимо, сейчас слишком высокоомные, не успевают перезарядить конденсатор Sample&Hold АЦП и остается чуток с пред. канала. Видел такое на других МК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 04:51 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
или в холостую прогнать 4 по очереди канал разок..

такую проблему в АВРках вроде бы встречали люди.. на сколько я помню не разряжается до конца емкость выборки хранения или что то вроде этого

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 09:58 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Всем спасибо за отклик!
В холостую прогонять возможности нет,т.к. ток могу мерить только в конкретные , очень ограниченные, промежутки времени.
Попробую поиграться выходным сопротивлением/
Сигнал снимаю при помощи шунта и усилителя http://www.adafruit.com/datasheets/ina169.pdf
Напряжение получаю с резистора RL - 51k далее через 1k на АЦП.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 13:35 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
дык а запустить вхолостую АЦП сразу после оцифровки 3 канала, не дожидаясь очереди 4? или не впишитесь по таймингам?

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 15:14 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Duhas писал(а):
дык а запустить вхолостую АЦП сразу после оцифровки 3 канала, не дожидаясь очереди 4? или не впишитесь по таймингам?


Я сначала не так понял. А какие данные должны оцифровываться на холостом ходу?

Моё изначальное предположение что проблема связана с питанием АЦП (думал может дополнительный конденсатор подвесить к питанию АЦП, сейчас питание STM и питание ADC в STM объединены)
Косвенно подтверждается таким опытом:
подвешиваем ножки

1, 2, 3 канала в воздухе, оцифровываем. получаем что то типа 2000 +- 100 во всех трёх

сажаем 1 канал на землю, получаем на выходе
0 , 1700, 2000 ,

хотя, вот сейчас подумал, это получается аналогичный случай высокому выходному сопротивлению


В вашем варианте всё равно останется след от холостого прохода.

Наверное, правильный подход именно понижать выходное сопротивление, возможно поставить повторяющий каскад на операционнике.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 15:48 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
ну в целом - да, надо бы согласовывать вход АЦП с выходами источников сигнала, но никто не мешает разрядить емкость и подругому..в частности сразу после измерения 3 канала прогнать измерение чего нить другого, что не задерет сильно заряд емкости..

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 16:22 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Duhas писал(а):
ну в целом - да, надо бы согласовывать вход АЦП с выходами источников сигнала, но никто не мешает разрядить емкость и подругому..в частности сразу после измерения 3 канала прогнать измерение чего нить другого, что не задерет сильно заряд емкости..


Так есть и обратный эффект, если разрядить в 0 то следующее измерение получается заниженное.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 16:47 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Меня все игнорируют. Ну попробую еще: ты ждешь окончания конверсии?

Код:
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
  // Wait until conversion completion
  while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
  // Get the conversion value
  return ADC_GetConversionValue(ADC1)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 18:03 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
ADC3, Обычную группу получаю по dma, инжектированную считываю без проверки.

Код тебе вряд ли чем то поможет, у меня chibios, регулярную группу считываю через драйвер этой ос для работы с ADC.
Инжекторную напрямую с регистров.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 27 сен 2013, 18:43 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
ну коллега, ситуация схожа со звонком в техподдержку "у вас сайт не работает. да, я сижу за десятью роутерами. да, у меня интернет отключен за неуплату. да, оборудование провайдера обесточено третий день. да, на магистрали ведутся работы. да, днс серверы лежат. но проблема явно на вашей стороне!"

Напиши безо всяких чибисов прошивку, которая только АДЦ читает - код можно скопипастить из любого интернета, там все элементарное (как ты и без меня знаешь), убедись что все работает также в голом железе и регистрах (ну на крайняк в библиотечных функциях) и тогда уже подключай свою тяжелую артиллерию.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 28 сен 2013, 23:35 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Duhas писал(а):
ну в целом - да, надо бы согласовывать вход АЦП с выходами источников сигнала, но никто не мешает разрядить емкость и подругому..в частности сразу после измерения 3 канала прогнать измерение чего нить другого, что не задерет сильно заряд емкости..


Не помогло, поставил одно промежуточное измерение канала с землёй, получается следующее измерение (1 канал) принижено , а ещё следующие два уплывают вверх, и я не уверен в точности измерений, т.к. на первом канале в отсутствии тока постоянное значение в районе 300 а на остальных плавающий сигнал в районе 400. Убрал промежуточные резисторы по 1к но и это не помогло. Короче нужен повторяющий ОУ.

dccharacter, спасибо за помощь, с регистрами и прочим у меня нет проблем.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 29 сен 2013, 00:52 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
да я вижу

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F103 ADC
СообщениеДобавлено: 19 ноя 2013, 23:46 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
Поставил повторитель на ОУ AD8534A проблема исчезла.
За одно защита АЦП - на выходе ОУ напряжение не превысит 3.6в.

_________________
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO