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

 
 
> термодатчик в F411, SiLabs C8051F411
AndreyS
сообщение Mar 4 2011, 16:04
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Добрый день.

Работаю с процом F411, включаю внутреннее АЦП на порт температурного датчика (мукс 0x18) и получаю код (в среднем 0x0200), который после расчетов (параметры взяты из даташита) с использованием смещения 0.9в и коэф передачи 0.00295в/градус получаю -210 градусов цельсия.
Само собой, что цифра врет.
Думал что врут настройки АЦП. Но по другим каналам (внешним входам) соответствующие напряжения, поданные на вход АЦП (т.е. после пересчета напряжений получаю соответствующие ед. АЦП). Решил измерить VDD, включил соответственно мукс на 0x19 и получил соответственно 0x0FFF, что и должно быть. Думал что не включил сам датчик (в регистр REF0CN пишу 0x17), решил записать в REF0CN 0x13 (т.е. по даташиту его выключить). Получил на этом канале значения в пределах 0x0008 (т.е. реально выключился). Вернул все обратно (т.е. включил REF0CN=0x17). И цифра опять в том же пределе 0x0200 ед АЦП.

Подскажите пожалуйста формулу пересчета ед АЦП в температуру с конкретными значениями констант и если она такая же как и у меня, то как мне добиться правильного значения термодатчика в ед АЦП?

Формула:

T=((adc_dat.U_temp_dat*ADC_Vref/ADC_razr)-ADC_offeset_temp)/ADC_slope_temp;

adc_dat.U_temp_dat - значение канала в ед АЦП
ADC_Vref - 2.2 (величина ИОН)
ADC_razr - 2^12 (4096)
ADC_offeset_temp - 0.9
ADC_slope_temp - 0.00295

PS условия измерений - комнатная температура (отлаживаю прогу). Не ожидал споткнуться на этом месте. Корректная работа термодатчика нужна в проекте.


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
O.L.
сообщение Mar 6 2011, 06:41
Сообщение #2


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

Группа: Свой
Сообщений: 96
Регистрация: 10-06-05
Из: Новосибирск
Пользователь №: 5 890



Цитата(AndreyS @ Mar 4 2011, 22:04) *
Работаю с процом F411, включаю внутреннее АЦП на порт температурного датчика (мукс 0x18) и получаю код (в среднем 0x0200), который после расчетов (параметры взяты из даташита) с использованием смещения 0.9в и коэф передачи 0.00295в/градус получаю -210 градусов цельсия.


У SiLABS-ов. есть странности с версиями кристаллов. 900 mV это может быть смещение при температуре 0 градусов на кристалле, и при температуре +25 градусов.
А вот почему Ваш контроллер показывает значение 255 мВ при комнатной температуре, понять и разобраться можете только Вы сами. Возможно не правильно выбрано опорное напряжение для АЦП. В качестве примера, скажем при напряжении 3.3 Вольта Ваши 0х0200 превращаются 412 мВ. Или не совсем корректно происходит получение данных из модуля АЦП, например из за малого времени установления сигнала на входе.
Вот в этом топике обсуждают похожую проблему, но значение АЦП там более "жизненные" - http://www.cygnal.org/ubb/Forum2/HTML/000596.html
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 09:09
Рейтинг@Mail.ru


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