реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проблемы с АЦП в режиме дифференциального входа, Atmega8535
Ingreeh
сообщение May 22 2012, 12:51
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 12-05-12
Пользователь №: 71 805



Доброго времени суток! Помогите пожалуйста разобраться.

Исходная задача: необходимо реализовать на atmega8535 флюгер(схема досталась в наследство). Суть в том, что на 8 основных направлениях на вход АЦП подается разное напряжение. Просто снять напряжение в лоб нельзя, диапазон очень маленький задран к значению напряжения питания схемы флюгера, как следствие, погрешность результата высокая.

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

Симуляция в Proteus работает исправно, а вот в железе нет, хотя если запросить уровень сигнала на обеих ножках как есть, то значения приходят. В общем, ниже прикладываю кусок кода ибо курение даташита мне не помогает, может быть, кто-то сталкивался с подобными проблемами, может "глазастые" увидят в коде ошибку, которую я проглядела, одним словом, надеюсь на вашу помощь и заранее благодарю.


Сообщение отредактировал Ingreeh - May 22 2012, 12:55
Прикрепленные файлы
Прикрепленный файл  Fluger.txt ( 1.54 килобайт ) Кол-во скачиваний: 55
 
Go to the top of the page
 
+Quote Post
Navovvol
сообщение May 23 2012, 06:30
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 9-09-11
Пользователь №: 67 080



Как именно не работает в железе ? всегда нули ? значения несходятся с расчетными ? значение всегда одно и тоже ? или как ?

Сообщение отредактировал Navovvol - May 23 2012, 06:30
Go to the top of the page
 
+Quote Post
Ingreeh
сообщение May 23 2012, 06:36
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 12-05-12
Пользователь №: 71 805



Если снимать напряжения с ножек "в лоб", то на ножке с полезным сигналом будет значение в диапазоне от 980 до 1023 (чистое значение без калибровки), на ножке с питанием - 1023, а при попытке вывести результат работы в режиме дифференциального входа всегда одно и тоже значение - 1023
Go to the top of the page
 
+Quote Post
Navovvol
сообщение May 23 2012, 07:33
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 9-09-11
Пользователь №: 67 080



тип корпуса известен ?
"
...
2 Differential Input Channels with Optional Gain of 10x and 200x(1)
...
Note: 1. The differential input channel are not tested for devices in PDIP and PLCC Package.
This feature is only guaranteed to work for devices in TQFP and QFN/MLF Packages.
"
даже не знаю что именно тут ни так.
может добавить побольше делаев? Этот код с 3 секундным делаем уже ничем не испортишь
Код
unsigned int read_FLUGER(void)
{
ADMUX=0x49;
delay_us(10);
ADCSRA|=0x40;
delay_us(25);     //////// вот тут например
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}


Сообщение отредактировал Navovvol - May 23 2012, 07:34
Go to the top of the page
 
+Quote Post
Ingreeh
сообщение May 23 2012, 07:39
Сообщение #5





Группа: Новичок
Сообщений: 4
Регистрация: 12-05-12
Пользователь №: 71 805



Спасибо, про корпус уточню еще, попробуем поставить delay
Go to the top of the page
 
+Quote Post
hd44780
сообщение May 23 2012, 13:51
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Дифференциальный режим гарантированно работает только в контроллерах в корпусе TQFP. Не только Ваша 8535, а вообще любая мега, где есть АЦП и диф режим у него.

Хотя я лично это не проверял...


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 23 2012, 14:42
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



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


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Ingreeh
сообщение May 23 2012, 18:58
Сообщение #8





Группа: Новичок
Сообщений: 4
Регистрация: 12-05-12
Пользователь №: 71 805



К сожалению, схему подправить нельзя, нужно работать с тем, что есть, в противном случае я бы не заморачивалась с диф.режимом
Go to the top of the page
 
+Quote Post
sKWO
сообщение Jun 4 2012, 15:05
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(Ingreeh @ May 23 2012, 21:58) *
К сожалению, схему подправить нельзя, нужно работать с тем, что есть, в противном случае я бы не заморачивалась с диф.режимом

я надеюсь Вы сделали следующим образом (внимание на выделенный фрагмент)
Цитата
The ATmega8535 features a 10-bit successive approximation ADC. The ADC is con-
nected to an 8-channel Analog Multiplexer which allows eight single-ended voltage
inputs constructed from the pins of Port A. The single-ended voltage inputs refer to 0V
(GND).
The device also supports 16 differential voltage input combinations. Two of the differen-
tial inputs (ADC1, ADC0 and ADC3, ADC2) are equipped with a programmable gain
stage, providing amplification steps of 0 dB (1x), 20 dB (10x), or 46 dB (200x) on the dif-
ferential input voltage before the A/D conversion. Seven differential analog input
channels share a common negative terminal (ADC1), while any other ADC input can be
selected as the positive input terminal.
If 1x or 10x gain is used, 8-bit resolution can be
expected. If 200x gain is used, 7-bit resolution can be expected.

также обращаю внимание на
Цитата
When switching to a differential gain channel, the first conversion result may have a
poor accuracy due to the required settling time for the automatic offset cancellation cir-
cuitry. The user should preferably disregard the first conversion result.

в коде у Вас я этого не увидел и ещё
Цитата
If differential gain channels are used, the input circuitry looks somewhat different,
although source impedances of a few hundred k? or less is recommended.

по поводу корпусного исполнения МК
Цитата
The differential input channel are not tested for devices in PDIP and PLCC Package.
This feature is only guaranteed to work for devices in TQFP and MLF Packages.

не вижу в Вашем коде вычисления диф измеряного значения:
(от напряжения канала отнять напряж на ADC1(негативное)) умножаете на коэф усил (Ваш = 10) * на 512 и делите на опорное
формула на 215 странице ДШ

Цитата(Ingreeh @ May 22 2012, 15:51) *
на одну ножку подается напряжение питания схемы нашего флюгера, на вторую полезный сигнал.

?????


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 12:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01438 секунд с 7
ELECTRONIX ©2004-2016