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

 
 
> Прерывания + 1-Wire
Veg@
сообщение Nov 19 2009, 10:15
Сообщение #1


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

Группа: Участник
Сообщений: 90
Регистрация: 16-09-09
Пользователь №: 52 416



На ATMega16 реализуются:
1. 3 прерывания (2 из которых внешние) и их обработки
2. сбор данных с 8 датчиков температуры (DS18B20) по интерфейсу 1-Wire

Интерфейс общения с датчиками реализован программно, поэтому в некоторых случаях прерывания прекращают реализацию интерфейсных задержек, в результате чего иногда приходят неверные значения температур. Для решения можно было бы запретить выполнение прерываний на время общения с датчиками, но их фиксирование является довольно важным. С другой стороны, прерывания возникают довольно часто и фильтрация неверных значений температур не спасет.
Возможно ли решение этой проблемы программно или же необходимо использовать контроллеры с аппаратной реализацией 1-Wire или доп. микросхемы, например SPI->1-Wire ? Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Veg@
сообщение Nov 20 2009, 17:54
Сообщение #2


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

Группа: Участник
Сообщений: 90
Регистрация: 16-09-09
Пользователь №: 52 416



Цитата(ARV @ Nov 20 2009, 12:08) *
для программного 1-wire достаточно запрещать прерывания в критические моменты приема одного БИТА - что-то около 15 микросекунд, ну 20 с запасом.

По-мойму, во-первых, для сигнала RESET нужно удерживать линию в низком уровне ~480us. Во-вторых, отправка байт данных в интерфейсе происходит жесткоограниченными по времени тайм-слотами по ~120us; только между тайм-слотами возможна произвольная задержка.

Цитата(kolobok0 @ Nov 20 2009, 08:23) *
удачи Вам

Спасибо )

Цитата(HARMHARM @ Nov 19 2009, 13:22) *
Уже тысячу раз обсуждалось, что можно использовать UART.

Использование UART, с моей точки зрения, является довольно громоздким решением (с аппаратной и программной точек зрения), по крайней мере у меня сложилось такое впечатление после прочтения этой статьи. Видимо, гораздо более универсальным будет использование дополнительного контроллера.

Цитата(defunct @ Nov 20 2009, 02:45) *
UART жалко сливать на такую муру. Как по мне выгоднее рядом поставить какую-нить tiny13, пусть она обслуживает 1-wire, а основной контроллер решает свои задачи.

Возможно это и будет единственный выход. Можно поподробнее разъяснить, какие могут возникнуть проблемы в данном случае при связи контроллеров по SPI? Передача по этому интерфейсу также, кажется, требует реализации прерываний.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 14:17
Рейтинг@Mail.ru


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