roboforum.ru

Технический форум по робототехнике.

Как вам такая унификация "строительных блоков"?

avr123.nm.ru » 21 сен 2006, 22:22

вот это может пригодится - ADuM1250 ADuM1251 i2c изоляторы analog.com

=DeaD= » 22 сен 2006, 15:44

avr123.nm.ru писал(а):вот это может пригодится - ADuM1250 ADuM1251 i2c изоляторы analog.com

А чего они полезного делают? От статики защищают?

-= Александр =- » 22 сен 2006, 15:53

В общем от всего. Индуктивные гальванические развязки. Довольно неплохая штука, я похожие по работе в девайсы ставлю, когда надо ставить раздельное питание без общей земли.

=DeaD= » 22 сен 2006, 16:12

И что мне теперь тогда питание отдельно подводить? Тогда через него шибанет :) ну нафиг, еще защиту от грозы поставить :)

avr123.nm.ru » 22 сен 2006, 20:30

дак не везде а в некоторых модулях можно поставить - наиболее шумных или "напряженных"

-= Александр =- » 22 сен 2006, 20:39

Я такие штуки юзаю чтобы полностью отвязать моторные цепи от управляющих. Иногда по общей земле помеха проходит...

=DeaD= » 22 сен 2006, 21:32

-= Александр =- писал(а):Я такие штуки юзаю чтобы полностью отвязать моторные цепи от управляющих. Иногда по общей земле помеха проходит...

Мысль понята, спасибо за полезную инфу, буду делать драйвер двигателей попробую применить, хотя конкретно эти микры оказались недоступны в моем регионе (ПромЭлектроника здесь основной поставщик).

avr123.nm.ru » 22 сен 2006, 22:13

напрямую бесплатно закажите.

=DeaD= » 24 сен 2006, 23:32

Бесплатно заказывать - ну может быть, буду смотреть ближе к делу.

Скорее всего протокол для RS232<=>I2C буду делать на базе объявленного здесь: http://www.emicros.com/i2c232.htm
Чтоб не изобретать велосипед и не вставать на уже истоптанные грабли :).

=DeaD= » 25 сен 2006, 00:25

Обозначения:
{nl} - возврат каретки "\n";
Все числа hh в 16-ричном формате по 2 символа на байт - 00..FF;
()*(a,b) - то что в первых скобках может повторяться от a до b раз;
jj - адрес в 16-ричном формате;

Список команд:

Njj - передать "START"-метку в шину с флагом "W"-запись и на адрес jj;
отбивка о выполнении - Njj{nl}

Mjj - передать "START"-метку в шину с флагом "R"-чтение и на адрес jj;
отбивка о выполнении - Mjj{nl}

P - передать "STOP"-метку в шину;
отбивка о выполнении - P

Wjjhh(hh)*(0,63) - передать в шину сообщение для устройства jj длиной от 1 до 64 байт с включением START и STOP условий;
отбивка о выполнении - Wjjhh(hh)*(0,63){nl}

Rjjhh - запросить с устройства jj последовательность байт длиной от 1 до 64 с включением START и STOP условий;
отбивка о выполнении - Rjjhh(hh)*(0,63){nl}

Thh(hh)*(0,63) - послать в шину последовательность от 1 до 64 байт без включения START и STOP условий, но с получением подтверждения каждого байта ACK-сигналом;
отбивка о выполнении - Thh(hh)*(0,63){nl}

Khh - считать с шины последовательность байт длиной от 1 до 64 без включения START и STOP условий, но с подтверждением каждого байта ACK-сигналом;
отбивка о выполнении - Khh(hh)*(0,63){nl}

L - считать с шины 1 байт без включения START и STOP условий и без подтверждением ACK-сигналом;
отбивка о выполнении - Nhh{nl}

Команды посылаемые через RS-232 складываются в буфер и выполняются при получении символа {nl}.

Ничего не забыл?
Последний раз редактировалось =DeaD= 25 сен 2006, 19:32, всего редактировалось 3 раз(а).

=DeaD= » 25 сен 2006, 00:37

Далее собственно сам интерфейс общения с модулем через i2c:

Типовой формат команды:

NjjTFFLP{nl}, - запросить тип и версию устройства с адресом jj (4 байта - первые два = производитель, затем тип устройства, затем версия);
пример - N01TLP{nl} - Запросить тип устройства с адресом 01;
пример ответа - N01TFFL00P{nl}


NjjTxxyyP{nl}, где xx=20..38 (32+0..24 в 16-чном виде) - установить тип вывода xx в yy (00 - цифровой вход, 01 - цифровой выход, 02 - ШИМ-выход для сервы) для устройства с адресом jj;
пример - N01T2501{nl} - 5-й вывод устройства 01 сделать цифровым выходом (тип=01);
пример ответа - N01T2501{nl}


NjjTxxyyP{nl}, где xx=00..18 (0..24 в 16-чном виде) - установить значение вывода xx в yy для устройства с адресом jj;
пример: N01T0501{nl} - установить 5-й вывод устройства 01 в 1;
пример ответа - N01T0501{nl}


NjjTxxLP{nl}, где xx=80..98 (128+0..24 в 16-чном виде) - считать значение входа xx для устройства с адресом jj;
пример: N01T85LP{nl} - считать 5-й вывод устройства с адресом 01;
пример ответа - N01T85L01P{nl}


NjjTxxLP{nl}, где xx=A0..B8 (160+0..24 в 16-чном виде) - считать тип вывода xx для устройства с адресом jj;
пример: N01T85LP{nl} - считать тип 5-го вывода устройства с адресом 01;
пример ответа - N01T85L01P{nl}


Соответственно базовое устройство должно перехватывать все запросы к себе и не выкидывать их в шину i2c, а просто выполнять "на себе". Для этого считаем, что базовое устройство имеет адрес FF, благо нормальные устройства на шине i2c имеют адреса 00..7F.
Последний раз редактировалось =DeaD= 25 сен 2006, 19:22, всего редактировалось 2 раз(а).

=DeaD= » 25 сен 2006, 08:49

Kanoka писал(а):Я решил использовать RJ11, подключается и отключается легко, имеет ключ и замок и сам кабель довольно тонкий, да и выглядит цивильненько.

Я вот не понял - RJ-11 это TP6P4 или TP4P4? :)
Потому как я выбрал TP4P4 - он меньше :)

avr123.nm.ru » 25 сен 2006, 11:38

внизу 1-й страницы курса есть каталоги с картинками - посмотрите.

=DeaD= » 25 сен 2006, 11:45

avr123.nm.ru писал(а):внизу 1-й страницы курса есть каталоги с картинками - посмотрите.

да я в целом то понимаю что по хорошему это TP6P4, только некоторые называют TP4P4 как RJ-11 вместо RJ-22 правильного, вот и спрашиваю у Каноки - у него то какой вариант? Правда на самом деле пофиг какой, потому как вилка от TP4P4 спокойно входит в TP6P4 :)

2Kanoka: у вас какая разводка по контактам? или у вас не i2c?

avr123.nm.ru » 25 сен 2006, 12:46

советую посмотреть в аналогичных системах - чтоб совместимость была.


Rambler\'s Top100 Mail.ru counter