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

соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 08:55:43
sirha
Подскажите как это сделать,не могу найти не одной готового исходника и нормальной статьи с описанием .

Хотелось бы соединить два микроконтроллера через 1 wire , и сделать управление к примеру 16 команд по одному проводу

вот пример

https://www.drive2.ru/c/1083595/#comments

хотелось бы пример кода в codevisionavr

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 09:12:09
ARV
если речь о стандартном протоколе 1wire от Dallas Semiconductor, то затея явно неблагодарная.
если вам все равно, как именно передавать по 1 сигнальной линии информацию - дело другое.
а если не требуется двусторонний обмен, то все вообще элементарно до слез.

определитесь, пожалуйста.

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 10:07:31
sirha
ARV писал(а): а если не требуется двусторонний обмен, то все вообще элементарно до слез.

определитесь, пожалуйста.
Мне главное чтобы было не более 4 х жил провода

плюс ,минус, а остальные как получиться

суть в том чтобы передавать с пульта управления 16 команд на приемник от которого обратная передача не требуется

нужен токо интерфейс 1 wire

двусторонний обмен не нужен

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 10:39:26
shads
sirha писал(а):нужен токо интерфейс 1 wire двусторонний обмен не нужен
А почему именно 1wire?

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:15:30
Мурик
Тогда подойдет UART.

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:16:50
sirha
shads писал(а): А почему именно 1wire?
я понимаю что вы во всем остальном сильны UART и др , но я хочу 1 wire!!!!!
Если вы по этому протоколу нечего не знате кроме как прикрепить датчик температуры то пожалуста не пишите лишнего

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:23:08
Мурик
sirha писал(а):но я хочу 1 wire
Для чего именно 1-Wire?
Во многих МК есть встроенный модуль UART, а вот МК с аппаратным 1-Wire еще нужно поискать, если такие вообще есть. Остается программная реализация. Но тут как говорится "флаг в руки и барабан на шею" - изучайте протокол 1-Wire, реализовывайте в коде и не забудьте с нами поделится. :) :)
Кстати, используя UART можно реализовать протокол 1-Wire, как это делают компьютерные термометры.

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:26:08
sirha
Мурик писал(а):
sirha писал(а):но я хочу 1 wire
Для чего именно 1-Wire?
Во многих МК есть встроенный модуль UART :)
Мурик от вас уже флуд пошел,тут тема не про UART который всем уже известен

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:26:39
ARV
если вам не требуется двусторонний обмен и обязательное следование стандарту 1wire, то предлагаю на выбор следующие варианты:
1. USART
2. аналоговый интерфейс
3. самопальный импульсно-кодовый протокол, например, аналогичный тому, что уже был показан по вашей же ссылке.
4. К-Line
5. Беспроводный ИК-интерфейс

достоинства и недостатки этих вариантов:
1. плюсы: простая программная реализация. минусы: два МК с аппаратным USART, для надежности оба с кварцевыми резонаторами.
2. плюс: только 1 МК для приема команд, подача команд без МК. минусы: одновременная подача нескольких команд может быть затруднена или невозможна, низкая помехозащищенность.
3. плюс: МК могут быть любыми, даже без аппаратного USART. минусы - см. п. 1
4. плюс: стандартный интерфейс для автомобилей. минусы: см. п.1 и в дополнение специализированная микросхема-драйвер для сопряжения с K-Line (либо аналог на"россыпухе").
5. плюс: можно использовать в качестве передатчика любой пульт от телека, например (питание по 2 проводкам подать). минус: ограничения по направлению передачи и относительно сложная программная реализация приемника.

выбирайте :)

P.S. по-моему еще никому не удалось реализовать ПРОГРАММНО ведомое устройство 1wire, которое бы полностью соответствовало стандарту! это довольно сложная затея. хотя если взять готовые микросхемы от Maxim-Dallas с этим интерфейсом, замутить задуманное вами можно.

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:37:00
Dr. Alex
Я не пойму ссоры! Хотите 1-Wire - делайте. Протокол всем известен, можно увеличить тайминги, если хотите. Что вы конкретно спрашиваете? Что-бы вам написали код и принесли на "блюдечке с голубой каёмочкой"?

А по поводу других протоколов, так тут люди правы. Зачем городить огород, писать самому обработчики приёма каждого бита если практически во всех МК есть встроенный UART, используйте только одну линию ТХ и всё! И не прийдётся заморачиваться) :))

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:46:20
sirha
ARV писал(а):если вам не требуется двусторонний обмен и обязательное следование стандарту 1wire, то предлагаю на выбор следующие варианты:
1. USART
2. аналоговый интерфейс
3. самопальный импульсно-кодовый протокол, например, аналогичный тому, что уже был показан по вашей же ссылке.
4. К-Line
5. Беспроводный ИК-интерфейс
Нужен вот такой протокол

http://radiokot.ru/forum/download/file.php?id=181293 работает 1 команда
http://radiokot.ru/forum/download/file.php?id=181760 - пауза между 11 ми импульсами

суть в том что постоянно идет 11 импульсов через большую паузу и изминяется ШИМ

если изменена ширина 1 го импульса то горит первый светодиод, если изменена ширина импульса 8 то горит 8 светодиод ,вообщем частота не меняется меняется токо ШИМ

я так понил что это похоже на 1 wire

нужно управление именно такими импульсами

подскажите что это за интерфейс

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:52:23
Dr. Alex
Немного похоже на пропорциональное управление) Такое применяется в радиоуправлении. А вообще это можно реализовать самому, по фронту первого импульса запускаете таймер, по спаду останавливаете и смотрите сколько натикало: мало - импульс короткий, много - ессно длинный, и так с каждым импульсом, для определения начала и конца передачи пустите импульс заданной ширины)

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:57:34
sirha
Dr. Alex писал(а): А вообще это можно реализовать самому, по фронту первого импульса запускаете таймер, по спаду останавливаете и смотрите сколько натикало: мало - импульс короткий, много - ессно длинный, и так с каждым импульсом, для определения начала и конца передачи пустите импульс заданной ширины)
Я так понил реализовать прерываниями?

просто суть в том что сгорел пульт от строительного оборудования,там именно такое управление хочу собрать чисто новый пульт при этом приемник оставить тот же

пробывал точь в точь импульсы повторять ,изменять ширину вообщем токо операторами for и delay,
не получалось(

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 11:59:10
Morroc
sirha писал(а):
Нужен вот такой протокол

http://radiokot.ru/forum/download/file.php?id=181293 работает 1 команда
http://radiokot.ru/forum/download/file.php?id=181760 - пауза между 11 ми импульсами

суть в том что постоянно идет 11 импульсов через большую паузу и изминяется ШИМ

если изменена ширина 1 го импульса то горит первый светодиод, если изменена ширина импульса 8 то горит 8 светодиод ,вообщем частота не меняется меняется токо ШИМ

я так понил что это похоже на 1 wire
А весной этого года эмулятор пульта не вы делали ? Что то очень знакомая тема то. Что то не сложилось или это другой девайс ?

http://radiokot.ru/forum/viewtopic.php?f=58&t=103193

http://radiokot.ru/forum/viewtopic.php?f=57&t=103019

Собственно ничего нового и не придумаем, считайте диаграммы с работающего пульта, суньте в массив структур tHigh, tLow и... все вроде.

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 12:01:16
Dr. Alex
Morroc писал(а):А весной этого года эмулятор пульта не вы делали ?
Сто процентов)))))) Видимо что-то не срослось у ТС :))

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 12:03:00
sirha
Morroc писал(а): А весной этого года эмулятор пульта не вы делали ? Что то очень знакомая тема то. Что то не сложилось или это другой девайс ?

http://radiokot.ru/forum/viewtopic.php?f=58&t=103193

http://radiokot.ru/forum/viewtopic.php?f=57&t=103019
Привет)).,именно этот,все импульсы точно повторил по осцилографу,не заработало((

Dr. Alex спасибо за подсказку действительно стоющую-" Немного похоже на пропорциональное управление) ",буду думать

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 12:06:32
Morroc
И уровни по напряжению 0 / 1 соблюдены и фронты крутые и по времени все так же ? А точно обратной связи нет никакой, просто посылки идут одинаковые ?

Ну разве что проверить непосредственно в приемнике, возможно передатчик на выходе формирует похожий сигнал, но до входа приемника он доходит в искаженном виде из за другой реализации выхода передатчика
sirha писал(а): Dr. Alex спасибо за подсказку действительно стоющую-" Немного похоже на пропорциональное управление) ",буду думать
А о чем думать то если, по вашим словам, тайминги вам удалось повторить 1 в 1 ? :)) Тут что то другое значит.

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 12:10:32
sirha
Morroc писал(а):И уровни по напряжению 0 / 1 соблюдены и фронты крутые ?
фронты скорее всего нет как у обычного шима, уровни по напряжению соблюдал,наверняка в длительность не попадал

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 12:11:17
Dr. Alex
sirha писал(а):...Dr. Alex спасибо за подсказку...
:beer: :beer: :beer:

Re: соединение двух atmega8 по 1 wire

Добавлено: Ср окт 15, 2014 12:13:45
Morroc
Нет чего нибудь типа такого чтобы поточнее снять диаграммы оригинального пульта и вашего http://www.aliexpress.com/item-img/-/1961765055.html ? А то переписав код и назвав эту штуку 1-Wire как бы ничего не изменится само по себе, надо причину найти.