Модификация сервы под 1-wire-UART

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: Модификация сервы под 1-wire-UART

Сообщение Aseris » 10 ноя 2010, 18:33

Намучаетесь с уартом одно проводным, стандарты стандартами но как показывает практика многие разработчики микросхем тактирование уартов по своему делают, и расхождения клоков девайсов создает проблемы, было что вроде и одна и другая микросхема тактирует уарт одной и той же чатстотой, а пакеты бьются на высоких скоростях в схеме 1-2, в тоже время при варианте 1-1, 2-2 все отлично бегает.

А 1-Wire использует принцип подсчета импульсов за отрезок времени, менее требовательное к тактированию ИМХО, а проц оно грузить будет только при приеме, если начало приема вылавливать прерыванием, у нас ведь в серве слейв стоит.
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

Re: Модификация сервы под 1-wire-UART

Сообщение Michael_K » 10 ноя 2010, 19:28

Проблемы надуманы.

Софтовый уарт даже полнодуплексный вполне себе работает - вешается на тайиер...
по скоростям уарт допускает разбег в 5% (ну это крайний случай - обычно говорят про 2.5 - 3). Такой точности на АВРках легко можно добиться даже без кварцев, особенно если смотреть на последние тиньки-межки (у стареньких встроенный генер был гораздо менее стабильным).

Я делал неоднократно и конфигурации один мастер - много слейвов, и с многими мастерами на шине - это проблема арбитража, а не скоростей. Другое дело, что на высоких скоростяк в куче проводов фронты ведут себя мерзко... но это уже чисто электрические проблемы.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Модификация сервы под 1-wire-UART

Сообщение boez » 10 ноя 2010, 19:37

Вообще конечно приятнее был бы протокол с битовой синхронизацией, он надежнее при отсутствии кварцев. А в частности 1-wire хорош тем, что кроме побитовой синхронизации в нем сразу заложена возможность ответа нескольких устройств одновременно и основанная на этом модель автодетекта адресов устройств. И уникальные адреса. Если делать свой протокол - то адреса наверное тоже желательны уникальные, хотя можно и какой-нить протокол раздачи адресов намутить. Или просто сделать команду "записать в еепром сетевой адрес", тогда перед началом работы каждую серву подключаем к контроллеру по одной штуке и задаем ей адрес, который затем пишем гвоздиком фломастером на боку сервы.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Модификация сервы под 1-wire-UART

Сообщение Michael_K » 10 ноя 2010, 20:27

Фичи-то у 1-wire хорошие, но реализация уж очень специфичная...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Модификация сервы под 1-wire-UART

Сообщение Vooon » 11 ноя 2010, 01:09

DeaD, для этого проекта я бы попробовал STM8S105K4 (LQFP32 7x7 mm, 16 K Flash, 2 K RAM, 1 K EEPROM) ~50 руб.
Жаль пока еще нет бесплатных компилеров, но можно купить STM8S-Discovery ~330 руб. с ним идет отладчик и софт.

Главное - LIN Slave и комплиментарные выходы ШИМа.

Вообще сначала хотел 103 с SSOP20, но там только LIN Master.

И я пожалуй бы реализовал бы стандарт LIN полностью, не хочу велосипедировать :)

Добавлено спустя 1 минуту 44 секунды:
Вообще периферия STM8 почти такая же, как в STM32.
А у него она мне весьма нравится, еще бы качество доков повыше... :)
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Модификация сервы под 1-wire-UART

Сообщение =DeaD= » 11 ноя 2010, 08:48

LQFP32 - это аут. Пока 8 ног будет для начала и родной AVR :pardon: .
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Модификация сервы под 1-wire-UART

Сообщение =DeaD= » 13 ноя 2010, 15:43

Закупил 100шт ATTiny45 в SO8Wide, отрезаю пути к отступлению :crazy:

А то как обычно - всё доделаю, а МК пропали :pardon:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Модификация сервы под 1-wire-UART

Сообщение avr123.nm.ru » 13 ноя 2010, 21:32

почем ?
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Модификация сервы под 1-wire-UART

Сообщение =DeaD= » 13 ноя 2010, 21:33

Так и знал :) ладно, напишу здесь, а то замучают :) по 43.65
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Модификация сервы под 1-wire-UART

Сообщение Zeus » 16 ноя 2010, 10:02

Какая скорость передачи планируется?
Если каждый байт синхронизируется, то между ними нада вроде задержки делать?
Проверку CRC-16 планируете делать?
Интересно сколько времени займет опрос/установка 32 серв?
«Сон разума рождает чудовищ»
Аватара пользователя
Zeus
 
Сообщения: 862
Зарегистрирован: 28 июл 2009, 10:02
Откуда: Самара
ФИО: Павел Сергеевич

Re: Модификация сервы под 1-wire-UART

Сообщение =DeaD= » 16 ноя 2010, 10:11

Сколько вопросов :) Задержку между байтами конечно надо. Скорость пока планирую 28800. Если по 16 бит на байт (включая задержку) - это 1800 байт в секунду будет.

Опрос-установка 32 серв - а зачем каждый раз опрос?

Реальная задача - шестиног, у него 18 серв. Это надо передать 36 байт. Можно с частотой 50Гц вещать. А чаще и не надо - серва всё равно на входе имеет сигнал с частотой 50Гц.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Модификация сервы под 1-wire-UART

Сообщение =DeaD= » 23 ноя 2010, 16:58

Информация о состоянии:
* К проекту подключился тов. Nikitoz
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Модификация сервы под 1-wire-UART

Сообщение HarryStar » 19 фев 2015, 12:39

Немножко некропостинга :)
Чем закончился проект? Сейчас пытаюсь найти нормальную реализацию 1wire slave на Си на авр с целью подключить 1-8 серв (по возможности) и другую свою периферию. Компактностью и ценой я правда не ограничен.

Очень был бы интересен ваш опыт, т.к. задачи близкие. Заранее спасибо.
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Модификация сервы под 1-wire-UART

Сообщение Madf » 19 фев 2015, 17:27

HarryStar писал(а):Компактностью и ценой я правда не ограничен.

Если так, то вас этот проект не должен волновать. :D Проще использовать Dynamixel.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Модификация сервы под 1-wire-UART

Сообщение HarryStar » 25 фев 2015, 22:39

:) Не настолько не ограничен по цене. Я имел в виду что терзания ТС 40 руб или 60 мне без разницы, хоть 100, хоть 200, даже больше.

В принципе сейчас пишу свою реализацию Slave 1-wire на Си, существующие в инете не понравились совсем...
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Пред.След.

Вернуться в Идеи

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

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