Easyelectronics.ru

Электроника для всех
Текущее время: 25 сен 2017, 00:32

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



    • JLCPCB for 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
Сообщения: 179
Откуда: Россия, Ростов-на-Дону
Писал для 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 часов


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

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


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

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

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