Например TDA7294

Форум РадиоКот • Просмотр темы - Atmega8A и АЦП скачут показания
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт июл 25, 2025 23:28:31

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 42 ]  1, ,  
Автор Сообщение
В сети
 Заголовок сообщения: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 12:59:00 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Ср дек 31, 2008 01:55:19
Сообщений: 237
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Доброго времени всем!
На Atmega8A использую АЦП со скоростью преобразования около 80кгц, опорное 5вольт. Делаю 64 измерения, потом усредняю. И в итоге показания могут отличаться в 3-4 раза. Проверял мультиметром и осциллографом входное напряжение стоит на месте. У кого какие идеи есть, как это исправить?

_________________
Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник".
Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 13:44:57 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
RUNA писал(а):
У кого какие идеи есть, как это исправить?
Надо найти причину такого поведения и устранить ее.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 13:56:11 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
покажите схему и код инициализации и работы с АЦП хотя бы...
а то телепаты все на каникулы разъехались....

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 14:22:19 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Ср дек 31, 2008 01:55:19
Сообщений: 237
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Измеряю напряжение от датчика температуры lm135 подключен по стандартной схеме из ДШ. Преобразование запускаю по таймеру, каждые 8мс.


Вложения:
LM335.jpg [5.77 KiB]
Скачиваний: 275

_________________
Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник".
Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 14:58:52 
Друг Кота
Аватар пользователя

Карма: 142
Рейтинг сообщений: 5959
Зарегистрирован: Чт авг 09, 2012 01:09:39
Сообщений: 6642
Откуда: Ливны
Рейтинг сообщения: 0
МК покупали у китайцев? Покупал я как-то у китайцев ATMega8A-PU, всё вроде бы нормально, но вот с работой АЦП были подобные проблемы у всей партии. :evil: :kill: Покупка партии МК здесь на базаре радиокота решила все проблемы. :)) Партия МК с китая успешно работают в других устройствах, где не задействован АЦП. :roll: :dont_know:

_________________
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 15:01:34 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Ср дек 31, 2008 01:55:19
Сообщений: 237
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Я не знаю откуда партия. Покупал в Микронике СПб.

_________________
Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник".
Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 16:10:14 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
откуда берется опорное для АЦП?

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 16:58:20 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Ср дек 31, 2008 01:55:19
Сообщений: 237
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Опорное внутреннее.

_________________
Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник".
Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 18:19:18 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 4
RUNA, такое ощущение, что вы комсомолец на допросе в гестапо.
Как подключен AVCC, AREF ?
Покажите фрагмент кода, где вы инициализируете АЦП, где читаете и как усредняете...
В перерывах между измерениями с АЦП что то делается? ADCSRA и ADMUX остаются те же, что и при инициализации?
Дорожки от вашего датчика и к ноге МК длинные? Не могут ли быть на них наводки от соседних дорог ?
Какой резистор подтяжки у вашего термодатчика ?
Суть - чем больше вы покажете информации, тем быстрее вам помогут локализовать проблему.

Есть ли у вас возможность проверить ваш алгоритм на другом МК? На той же меге в макетке или андурине ?

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 20:22:23 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Ср дек 31, 2008 01:55:19
Сообщений: 237
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Раньше не мог выложить, был на работе.

Инициализация
clr temp
sbr temp,(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)
out ADCSRA,temp
clr temp
sbr temp,(1<<REFS0)
out ADMUX,temp

Считывание показаний и усреднение когда сложим 64 показания
sbi ADCSRA,ADIF
ldi ZL,Low(Summa_ADC_t)
ldi ZH,High(Summa_ADC_t)
in r20,ADCL
in r21,ADCH
ld temp1,Z+
ld temp,Z
add temp,r20
adc temp1,r21
st Z,temp
st -Z,temp1

lds temp,Counter_ADC
inc temp
sts Counter_ADC,temp

cpi temp,64
breq PC+2
ret;

ldi ZL,Low(Summa_ADC_t)
ldi ZH,High(Summa_ADC_t)
ld temp1,Z+
ld temp,Z
ldi temp2,6
ADC_in_000://Усреднение
lsr temp1
ror temp
dec temp2
cpi temp2,0
brne ADC_in_000

Сопротивление к датчику 2ком питание 5в

Между измерениями и в момент измерений может работать SPI и UART


Вложения:
Захват-2.jpg [95.59 KiB]
Скачиваний: 239

_________________
Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник".
Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 20:57:28 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
так. Пишем в ADCSRA делитель (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0) - это делитель тактовой 128.
При 8 МГц / 128 тактовая АЦП - 62.5 кГц. При 16МГц - 125 кГц. Норм.

Далее. Поднимаем в ADMUX бит REFS0. Ок, опора - питальник с кондером на AREF. Вход исключительно PORTC0. (хотя судя по обрывку схемы, вы планируете читать 8 датчиков)

Вопрос номер раз. PORTC0 сконфигурирован как вход без подтяжки?

Вопрос номер два. Я не вижу в инициализации поднятия бита ADEN в регистре ADCSRA. Т.е. после инициализации АЦП остается выключен!.

Вопрос номер три. Я нигде не вижу запуск преобразования АЦП (установка ADSC в ADCSRA).

Замечание номер четыре. После включения АЦП (ADEN) нужно выполнить холостое преобразование, ибо его результат будет далек от ожидаемого.....
Кстати, где то на просторах сети натыкался, что если мерять несколько разных аналоговых сигналов, то после переключения входа АЦП тоже нужно запустить холостое преобразование... Какое то объяснение этому тоже вроде было - перезарядка входной емкости устройства выборки-хранения АЦП....

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Пт янв 10, 2020 21:14:21 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Код:
sbr temp,(1<<REFS0)
out ADMUX,temp

Кондер на Aref нужен.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Сб янв 11, 2020 07:54:45 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4332
Откуда: Ижевск
Рейтинг сообщения: 0
Возможно, нет начальной установки, типа
Код:
;Инициализация

   clr temp
   STS   Counter_ADC,temp
   STS   Summa_ADC_t+0,temp
   STS   Summa_ADC_t+1,temp

sbr temp,(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)
......
......


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Сб янв 11, 2020 12:51:31 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Ср дек 31, 2008 01:55:19
Сообщений: 237
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
так. Пишем в ADCSRA делитель (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0) - это делитель тактовой 128.
При 8 МГц / 128 тактовая АЦП - 62.5 кГц. При 16МГц - 125 кГц. Норм.

Далее. Поднимаем в ADMUX бит REFS0. Ок, опора - питальник с кондером на AREF. Вход исключительно PORTC0. (хотя судя по обрывку схемы, вы планируете читать 8 датчиков)

Вопрос номер раз. PORTC0 сконфигурирован как вход без подтяжки?

Вопрос номер два. Я не вижу в инициализации поднятия бита ADEN в регистре ADCSRA. Т.е. после инициализации АЦП остается выключен!.

Вопрос номер три. Я нигде не вижу запуск преобразования АЦП (установка ADSC в ADCSRA).

Замечание номер четыре. После включения АЦП (ADEN) нужно выполнить холостое преобразование, ибо его результат будет далек от ожидаемого.....
Кстати, где то на просторах сети натыкался, что если мерять несколько разных аналоговых сигналов, то после переключения входа АЦП тоже нужно запустить холостое преобразование... Какое то объяснение этому тоже вроде было - перезарядка входной емкости устройства выборки-хранения АЦП....


Частота 11.0592Мгц
Да планирую 8 входов измерять, но пока с одним маюсь.
PORTC0 вход без подтяжки.
Запуск АЦП происходит в прерывание таймера.

Холостое преобразование не делал. Попробую. Но врятли это поможет. Даже если первое преобразование кривое то на сумму в 64 измерения сильно не повлияет. Сумма измерений скачет от 40600 до 0.
Кондер на AREF вешал, не помогает.
Сейчас поеду куплю новый мк, но mega8. И попробую. Может действительно глючная.

_________________
Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили "Титаник".
Я всегда делаю то, что не умею, иначе как я научусь?! Когда Муза приходит ко мне, то застает меня за работой! - Пикассо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Сб янв 11, 2020 13:29:46 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
RUNA, Включите АЦП при инициализации и больше его не выключайте.
В прерывании дергайте только старт преобразования.

И, кстати, вы окончание преобразования продолжаете ждать там же, в прерывании таймера ?
Если да, то это не совсем правильно. У вас всё стоит, пока вы ждете результат АЦП.
Лучше сделайте отдельное прерывание для АЦП.

Тогда в таймере дёрнете старт. А АЦП как посчитает - вызовет свое прерывание, где вы уже и будете суммировать результат.
Там же потом можете переключать MUX.

Кондер на AREF повесьте - это прямое требование даташита. 0.1 мкф керамику.

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Сб янв 11, 2020 16:42:49 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4332
Откуда: Ижевск
Рейтинг сообщения: 0
Думаю, для начала нужно вообще убрать усреднение. 4, 5 разрядов будут болтаться от помех, можно будет вычистить аппаратно. Сейчас непонятно. По мне, дело в программе. Не может так работать АЦП.


Вернуться наверх
 
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Сб янв 11, 2020 17:07:07 
Преобразование запускаю по таймеру, каждые 8мс.

На сколько я могу предположить, для 64 измерений (преобразований) потребуется более 8 мс… или 8 мс это между каждым единичным измерением?


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Сб янв 11, 2020 19:07:58 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
Самсусамыч, тактовая 11 мгц, делитель АЦП 128. Тактовая для АЦП = 11 мгц/128 = 85,9 кгц, соответственно, период тактовой чуть менее 12 мкс. АЦП для первого измерения надо 25 тактов - это около 290 мкс, для последующих - 13 тактов - это порядка 150 мкс.
так что в 8 мс уложится. Я так думаю, что это единичные измерения каждые 8 мс.
тем более на фрагменте кода автор показывал, что сбрасывает флаг ADIF, т.е. он его где то проверяет

Вообще тут приходится гадать на кофейной гуще - ибо весь код, относящийся к работе с АЦП, автор так и не показал.
Мне что то подсказывает, что если автор включает АЦП перед каждым измерением, а потом тут же выключает - то это тоже может влиять.

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Сб янв 11, 2020 19:57:56 
Самсусамыч, тактовая 11 мгц

Откуда взяли такую тактовую частоту? Я просмотрел сообщения и не увидел где это указанно. :dont_know:
Цитата:
АЦП для первого измерения надо 25 тактов - это около 290 мкс, для последующих - 13 тактов - это порядка 150 мкс.
так что в 8 мс уложится.

Может и так, но в прерывании по АЦП как правило ещё дополнительно что-то делают… выгружают в стек, а затем возвращают необходимые данные обратно… переключают входа мультиплексора и тп. Хотя да полной картины нет, а гадать на кофейной гуще дело не благодарное.

ЗЫ. Можно было бы лучше написать тестовую прошивку для проверки работы АЦП с выводом информации по UART… тогда было бы виднее что происходит со значениями. :)


Последний раз редактировалось Самсусамыч Сб янв 11, 2020 20:10:49, всего редактировалось 1 раз.

Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Atmega8A и АЦП скачут показания
СообщениеДобавлено: Сб янв 11, 2020 19:59:07 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 66
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
Самсусамыч, на два сообщения выше вашего вопроса про 8 мс

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  1, ,  

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


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y