Easyelectronics.ru

Электроника для всех
Текущее время: 23 июл 2017, 19:45

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



    • The World's Cheapest PCB Prototyping: 10 шт. 2-слоя 100*100mm 2$(около 140rub), изготовление за 24 часа.
    • Создание принципиальных схем и проектирование печатных плат
    • Крупнейший китайский онлайн магазин радиодеталей. Скидка 50%
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Подключение AM2302 (он же DHT22)
СообщениеДобавлено: 12 апр 2017, 17:19 
Только пришел

Зарегистрирован: 08 июн 2014, 23:40
Сообщения: 16
Здравствуйте.
Нужен совет как реализовать подключение (софтовое) DHT22 к контроллеру stm8l152
видится 2 варианта:
1й - используя таймер в режиме захвата мерить длительность импульса, и по результату определять "0" или "1"
2й - настроить ногу на прерывание по нарастанию фронта, через 30мкс смотреть ее состояние и по результату фиксировать "0" или "1"

1й вариант видится более "навороченным" и, наверное, несколько избыточным, но по идее более надежным
во 2м видится "-" что при наличии сравнительно длинных прерываний может развалится весь прием.....

На чем лучше остановиться? М.б. есть еще какие варианты?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение AM2302 (он же DHT22)
СообщениеДобавлено: 12 апр 2017, 18:12 
Свой человек

Зарегистрирован: 14 сен 2015, 08:50
Сообщения: 169
Откуда: Россия, Ростов-на-Дону
Писал для stm32 в режиме захвата - получилось весьма просто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение AM2302 (он же DHT22)
СообщениеДобавлено: 18 апр 2017, 14:02 
Только пришел

Зарегистрирован: 08 июн 2014, 23:40
Сообщения: 16
Попробовал написать в режиме захвата.
Столкнулся с проблемами:
- в отладчике не появляются флаги прерываний по захвату (хотя сами прерывания отрабатываются)
- в регистрах захвата одни и те-же (+\- 1-2 единицы) значения.
Делаю так:
Тактирование от внутреннего генератора 16МГц.
Fsys=16МГЦ

1.инициализирую GPIO на выход с открытым коллектором и настраиваю таймер
на формирование 1 импульса длительностью 1ms
инициализация gpio: (в плате есть внешняя подтяжка резистором 5,1кОм к +3В)
Show

Инициализация таймера:
Show

2. При необходимости считать данные делаю запуск:
Show

3.В прерывании по переполнению перенастраиваю таймер на захват
Show

4. В прерывании по захвату Проверяю длительность ответного импульса.Если он верен то настраиваются счетчики и указатели для приема данных. При последующем входе по значению в CCR2 определяю, что пришло ("0" или "1") и сдвигом формирую байты
Show


В результате в CCR1 все время значение от 0x63 до 0x65, а в CCR2 от 0x14 до 0x16
По осцилографу видно, что стартовый импульс формируется нужной длительности. Датчик отвечает и передает информационный пакет. Данные в пакете правильные, КС верная (при переводе полученные значения близки к реальным) Помогите победить .....


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

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


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

Сейчас этот форум просматривают: oleg110592


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB