|
Датчик температуры DS18B20 и прерывания |
|
|
|
Jul 16 2013, 07:34
|
Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 11-07-12
Из: Новосибирск
Пользователь №: 72 716

|
Цитата(1113 @ Jul 16 2013, 13:13)  вешать 1-wire на какой-то апаратный интерфейс, некоторые его умудряются даже USART`ом эмулировать. Доводилось эмулировать 1-wire с помощью SPI. Код unsigned char w1_io( unsigned char b ) { unsigned char r, j; j = 8; do{ if (b & 1) r=xchg_spi(0x7F); else r=xchg_spi(1); b >>= 1; if (r == 0x7F) b |= 0x80; }while( --j ); return b; }
Сообщение отредактировал firew0rker - Jul 16 2013, 07:37
|
|
|
|
|
Jul 16 2013, 08:50
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(VAI @ Jul 16 2013, 12:36)  Для таймслотов существует диапазон значений, а не строго N микросекунд. Для STM32 можно при настройке контроллера прерываний задать приоритеты каждому прерыванию. Ну и в перрывании не надо сидеть слишком долго... Для STM32 вообще все делается на таймере прекрасно: один канал сравнения и второй канал захвата. Т.е. критичные тайминги формируются аппаратно, а расстояние между битами плюс-минус километр - можно и в другом прерывании поработать. Работает гирлянда из 8 датчиков без вопросов. Проверял один датчик через 200 метров от -30 до 120 C - тоже работает.
|
|
|
|
|
Jul 16 2013, 15:25
|
Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 11-07-12
Из: Новосибирск
Пользователь №: 72 716

|
Цитата(VAI @ Jul 16 2013, 15:07)  Вот тут я выкладывал исходники для работы с несколькими DS18B20 Стало интересно разобраться в схеме опторазвязки. Не понимаю зачем оптопара. X15.T_Data связан с выходом гальванически по цепи R77,R74,выв.3,4 D15.
|
|
|
|
|
Jul 16 2013, 17:07
|
Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 11-07-12
Из: Новосибирск
Пользователь №: 72 716

|
Цитата(VAI @ Jul 16 2013, 23:45)  Точка соединения R77, R74 - это питание. Один источник питания для МК и датчика?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|