Страница 1 из 2

Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 12:14:30
Dmitro
Собрал устройство, для управления шаговым двигателем по шине 1-wire ориентировочно длиной 30 метров. Мастер (tiny2313) просто передает код направления а slave читает код делает шаг в нужную сторону и передает ответ mfcnthe? чтобы тот изменил показания индикации. Так все работает, но есть одна проблема, почему-то время от времени на мастере выходит из сторя нога которая выдает команду на длинную линию. По схеме оба контроллера связаны напрямую без каких либо схем согласования, только подтягивающий резистор.
Есть предположение, что это может происходить во время подключения длинной линии при включенной схеме.

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 13:20:24
ChipKiller
Dmitro писал(а):почему-то время от времени на мастере выходит из сторя нога которая выдает команду на длинную линию.
... AVR способны обеспечить не только сильный 0, но и сильную 1, поэтому возможна ситуации (master =0 slave=1 или master =1 slave=0), когда при помехе идет одновременная передача. Случайно не выводите в порт 1?

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 13:40:12
Dmitry Dubrovenko
ChipKiller писал(а):но и сильную 1
Вот поэтому "1" надо передавать, перенастраивая порт "на вход".

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 13:59:52
ChipKiller
Dmitry Dubrovenko писал(а):Вот поэтому "1" надо передавать, перенастраивая порт "на вход".
... это понятно, вот и спрашиваю :
ChipKiller писал(а):Случайно не выводите в порт 1?
...может автор вместо cbi DDRx,n пишет sbi PORTx,n ?

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 14:03:11
Yftul
Dmitro писал(а):ориентировочно длиной 30 метров.
Dmitro писал(а):оба контроллера связаны напрямую без каких либо схем согласования, только подтягивающий резистор.
Dmitro писал(а):почему-то время от времени на мастере выходит из сторя нога которая выдает команду на длинную линию

смешно :)

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 14:49:59
Dmitro
перевод линии в "0"
cbi PORTD,PD3 ;
sbi DDRD,PD3 ;

перевод линии в "1"
cbi DDRD,PD3 ;
cbi PORTD,PD3 ;

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 14:56:40
Dmitro
Yftul писал(а):

смешно :)
И мне смешно, вместо таких высказываний лучше-бы совет какой нибуть дали, ато такие умные, что нам только смешно. А что делать в нете куда не полезь везде связка в основном с конечными устройствами типа датчики температуры и прочее, а как связать два МК ничего найти не смог. Вот же запустил же я эту конструкцию, это уже само по себе смешно...

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 14:59:30
ChipKiller
Dmitro писал(а):перевод линии в "0"
cbi PORTD,PD3 ;
sbi DDRD,PD3 ;

перевод линии в "1"
cbi DDRD,PD3 ;
cbi PORTD,PD3 ;
... "забудьте" про PORTx
в начале порт на ввод "подтяжка" отключена - это ввод и одновременно лог 1, для переключения на выход и вывод лог 0 достаточно sbi DDRD,PD3

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 15:33:02
Yftul
Dmitro писал(а):И мне смешно, вместо таких высказываний лучше-бы совет какой нибуть дали, ато такие умные, что нам только смешно.
Слишком пафосно, умерьте ЧСВ:)
Dmitro писал(а):А что делать в нете куда не полезь везде связка в основном с конечными устройствами типа датчики температуры и прочее, а как связать два МК ничего найти не смог. Вот же запустил же я эту конструкцию, это уже само по себе смешно...
http://tinyurl.com/62hs676

на первой же странице годный вариант:

RS-485 для чайников

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 15:37:14
Dmitro
Привожу примерный вид сигнала по линии

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 15:59:33
Dmitro
UART не канает, эта линия выделена на перспективу, если таковая будет вообще исходя из этого фрума.

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 16:02:49
Yftul
Dmitro писал(а):если таковая будет вообще исходя из этого фрума.
:wink: есть много замечательных других форумов, где несомненно оценят Ваше желание халявы и сделают все за Вас, а Вы будете только понукать и говорить, что все мудаки :roll:

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 17:49:29
md5sum
Поставь защитные диоды на линию в обоих концах.
Типа SMAJ6.0
И еще, отличный совет мне давал ARV: http://radiokot.ru/forum/viewtopic.php? ... D1%82+wire

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 20:18:05
Dmitro
Вот за такой ответ спасибо, ведь был-же вопрос в чем причина и как боротся.
md5sum писал(а):Поставь защитные диоды на линию в обоих концах.
Типа SMAJ6.0
И еще, отличный совет мне давал ARV: http://radiokot.ru/forum/viewtopic.php? ... D1%82+wire
Будем пробовать.
Yftul писал(а): :wink: есть много замечательных других форумов, где несомненно оценят Ваше желание халявы и сделают все за Вас, а Вы будете только понукать и говорить, что все мудаки :roll:
странно для чего тогда вообще форумы, а некоторые наверное в форуме могут или хамить или давать платные советы, а про мудаков (смотрите выше) сами знаете кто говорил, и хамить не надо.

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 20:45:51
ibiza11
Dmitro, Вы по существу так и не ответили как задаете лог."1" на линии. выводом лог."1" или настройкой порта на вход с подтяжкой?

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 21:57:54
Dmitro
Я же писал:
Dmitro писал(а):перевод линии в "0"
cbi PORTD,PD3 ;
sbi DDRD,PD3 ;

перевод линии в "1"
cbi DDRD,PD3 ;
cbi PORTD,PD3 ;
На асме, в си я еще не очень...

Re: Связь двух AVR по 1-wire

Добавлено: Ср фев 09, 2011 22:40:00
Dmitro
ChipKiller писал(а): ... "забудьте" про PORTx
в начале порт на ввод "подтяжка" отключена - это ввод и одновременно лог 1, для переключения на выход и вывод лог 0 достаточно sbi DDRD,PD3
Чут-точку по медленнее.... я записываю...
Несколько уточнений: если линия подтянута через резистор к 5 вольтам, то МК главное на переключать пин на вывод, и резистор сам все сделает (порт в 3-м состоянии), если-же надо организовать лог "0", то получается пин становится выходом с низким уровнем, так а чем это отличается от:
Dmitro писал(а):перевод линии в "0"
cbi PORTD,PD3 ;
sbi DDRD,PD3 ;

перевод линии в "1"
cbi DDRD,PD3 ;
cbi PORTD,PD3 ;
я хоть и управляю PORTD, но все равно его дежу в "0".
Да и что-то мне кажется, это не в программе дело, по крайней мере DS18B20 никаких притензий к такому варианту передачи не имел, и отвечал как надо...
Так что пока считаю оптимальным варианом рассматривать аппаратную защиту, как было предложено
md5sum писал(а):Поставь защитные диоды на линию в обоих концах.
Типа SMAJ6.0
И еще, отличный совет мне давал ARV: http://radiokot.ru/forum/viewtopic.php? ... D1%82+wire
Ведь мой, с позволения сказать, проект, без проблем работал не один день и все бы и дальше было так, пока я не отключил, точнее сказать, переподключил выносной модуль, после которого и пропал выход.

Re: Связь двух AVR по 1-wire

Добавлено: Чт фев 10, 2011 10:34:51
Fasterpast
Ну паразитное питание мк получил через эту ногу, и всё. ИМХО программно это никак устранить не получится, только так, как говорил AVR по ссылке на другую тему.

Re: Связь двух AVR по 1-wire

Добавлено: Чт фев 10, 2011 10:59:56
Yftul
Dmitro, Вы страдайте ерундой. На расстояние 30 метров непосредственно использовать ноги процессора - идея плохая, как бы Вы не извращались по программной части. Чем Вам плох RS485? Те же два провода, или вы хотите питать второй контроллер по 1-wire? :))) Тогда все равно не обойтись без внешних согласователей.

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

Re: Связь двух AVR по 1-wire

Добавлено: Чт фев 10, 2011 11:05:05
Dmitro
это типа так:Изображение