|
AVR и дифф сигналы, как правильно измерить? |
|
|
|
 |
Ответов
|
Oct 25 2007, 10:41
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(ivainc1789 @ Oct 24 2007, 12:50)  Собрал простую схемку и измерил мультиметром VC9808+ разность ADC4-ADC3=-7mV. Далее попробовал измерить разность напряжений делителей двумя способами: измерить сигналы как single ended и differential с внутренним усилителем с Ку=1. Первый способ стабильно дает правильный результат в 7 милливольт (по модулю). А со вторым проблемы, АЦП возвращает чаще всего 0x3FF, что "в переводе с биполярного режима" равно -1. Получить -7 никак не удается даже произведя 10 измерений и взяв среднее. Где может быть ошибка? Разрешение в Bipolar Differential Conversion уменьшается в два раза, так что вы должны получить -3, а не -7. Ошибка у вас в том, что тип AdcSumma беззнаковая переменная, а результат из регистра ADC вы читаете, как знаковый. Сделайте AdcSumma знаковой и будет вам щастье.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Oct 25 2007, 16:17
|

Профессионал
    
Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807

|
Цитата(=GM= @ Oct 25 2007, 14:41)  Разрешение в Bipolar Differential Conversion уменьшается в два раза, так что вы должны получить -3, а не -7. Затупил  ... А я все думаю, почему в макете все дифф измерения ровно в два раза меньше чем ожидается. Большое спасибо, что нашли время ответить. Вот только с ошибкой усилителя есть вопрос (ADC возвращает ADCe == +3 для (ADC3-ADC3)*20). Правильно ли будет ее вычесть из результата так: Result = 2*((ADC4-ADC3)*20 - ADCe)? Да, в коде ошибка, спасибо... Осознал!
|
|
|
|
|
Oct 25 2007, 22:46
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(ivainc1789 @ Oct 25 2007, 16:17)  Затупил  ... А я все думаю, почему в макете все дифф измерения ровно в два раза меньше чем ожидается. Большое спасибо, что нашли время ответить. Вот только с ошибкой усилителя есть вопрос (ADC возвращает ADCe == +3 для (ADC3-ADC3)*20). Правильно ли будет ее вычесть из результата так: Result = 2*((ADC4-ADC3)*20 - ADCe)? Да, в коде ошибка, спасибо... Осознал! Ну, если считать, что смещение линейно, то Result = 2*(ADC4-ADC3) - ADCe/10.0
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Сообщений в этой теме
ivainc1789 AVR и дифф сигналы Oct 24 2007, 13:50 ReAl Надо оцифровать разность при подключении к одному ... Oct 24 2007, 14:11 ivainc1789 Цитата(ReAl @ Oct 24 2007, 18:11) Надо оц... Oct 24 2007, 14:36    =GM= Цитата(ivainc1789 @ Oct 26 2007, 04:57) Р... Oct 26 2007, 09:29 ivainc1789 Код модифицировал так:
Кодsigned int AdcResult;
__... Oct 26 2007, 21:25 ReAl Цитата(ivainc1789 @ Oct 26 2007, 23:25) A... Oct 27 2007, 08:03 =GM= Цитата(ivainc1789 @ Oct 26 2007, 21:25) К... Oct 27 2007, 14:04  ivainc1789 Цитата(=GM= @ Oct 27 2007, 18:04) Операто... Oct 27 2007, 17:16   =GM= Цитата(ivainc1789 @ Oct 27 2007, 17:16) С... Oct 27 2007, 18:46 ivainc1789 Так сказать, ура! Действительно, нужно было ме... Oct 27 2007, 23:56 =GM= Цитата(ivainc1789 @ Oct 27 2007, 23:56) А... Oct 28 2007, 20:10  ivainc1789 Цитата(=GM= @ Oct 28 2007, 23:10) А в общ... Oct 28 2007, 20:23   =GM= Цитата(ivainc1789 @ Oct 28 2007, 20:23) Я... Oct 29 2007, 11:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|