roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 май 2025, 21:13

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 15:40 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
1. мне например с уартом намного приятней работать.
2. в уарте все могут быть мастерами и соответсвенно все модули могут общаться с кем захотят.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 15:50 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
в I2C это называеца мульти-мастер. Просто нужно не поленица и почитать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 15:56 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
neiro
Мне тоже I2C не понравился сложностью реализации.
Но господа продумали всё и сделали I2C для соединения ведущего с кучкой ведомых.
Много аппаратно реализовано и программная часть расписана и готова.
Скорость, то же не плохая у I2C.

Если же брать UART, то придётся самим реализовывать фишки, которые в I2C вам на блюдечки поднесли.
Вам самим придётся отсылать адреса и следить за шиной.

485 протокол и есть ваш UART переделанный и его придётся программно реализовывать.

Короче закончу свою мысль...
Разница между UART и I2C в аппаратной реализации работы шины ведущий<->ведомые!

Добавлено спустя 2 минуты 35 секунд:
EdGull
Не смогут ваши модули общаться как им захочется без программной надстройки протокола.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 16:08 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Да, возможно начинающему I2C кажеца сложным и ненужным. Просто я к тому - вы запаритесь реализовывать программную часть и скорее всего будут баги. А в I2C главное делать по даташиту и все. А еще лучше скачать исходники и все будет готово.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 16:29 
Не в сети
Аватара пользователя

Зарегистрирован: 02 фев 2009, 02:14
Сообщения: 23
Откуда: мск
прог. языки: фортран,кобол,бейсик
да мне так без разницы будь то спи или и2с или уарт.

Тут ща происходит путаница понятий. Есть понятие протокол, а есть понятие интерфейс.
Так вот какой протокол не примени к интерфейсу он интерфейсом и останется :D

Мне просто видится менее громозко в прерывании по приёму байта просто принятые байты складывать в буферок.
Код:
  uart_rx_buf[uart_rx_cnt] = UDR;
    uart_rx_cnt++;

    if (uart_rx_cnt == uart_buf_lenght)

    {
        пакет принят
    }

А в прерывании по передаче байта просто класть байтики из буфера в UDR.

   if (uart_tx_cnt < uart_buf_lenght)
    {
        uart_tx_cnt++;               
        UDR = uart_tx_buf[uart_tx_cnt];   
    }
    else
    {
        пакет передан
    }




В чём тут можно запариться? 4 строки кода ))...

не надо не Аков не Наков..и прочей ерунды..

Используй тэг code <Сергей>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 16:31 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Извини, но ты в корне не видишь суть проблемы. Больше не буду никого уговаривать, вы не хотите думать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 18:14 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
RoboTok писал(а):
EdGull
Не смогут ваши модули общаться как им захочется без программной надстройки протокола.

обоснуй.
а то мужики-то и не знают... (с)
мужики это мои модули
щаз вот тут прямо общаются и не знают что не могут этого делать... :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 18:36 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
neiro
Данный пример реализовывает связь между ведущим(1 штука) и ведомый(1 штука) и работает отлично, пока не появляется ещё ведомый.

EdGull
Вы упустили смысл предложения, а он в "как им захочется" и "программной надстройки".
Да и полудуплекс не айс ИМХО.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 18:40 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
ага... а i2c типа фулдуплекс... :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 18:50 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Короче, если I2C используют, значит он нужен :good:

Добавлено спустя 51 секунду:
Не зря же сервы именно I2C делают, а не UART переделанный...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 18:52 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
ага... доводы убийственные... :D
от сюда следует, что все быстренько переходим на 51 камни, основная масса народа в мире на них программит если ты не знал... :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 18:59 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
neiro писал(а):
Мне просто видится менее громозко в прерывании по приёму байта просто принятые байты складывать в буферок.

В чём тут можно запариться? 4 строки кода ))...

не надо не Аков не Наков..и прочей ерунды..


Правильно тебе заметили - в этом коде ничего не сказано про то, как объединены Tx выходы слейвов. Если тупо в кучу - надо Tx Enable щелкать у слейвов, чтобы передатчик в каждый момент был один, и все равно в случае программных ошибок рискуем попалить порты (поясняю - это произойдет тогда, когда один слейв выдаст на выход 0, а второй - 1). Для любителей 485 напомню, что у его драйвера есть еще ножка DIR, под которую надо занять еще одну ногу контроллера и ее надо довести по плате до 485 драйвера. И которой тоже надо управлять чтоб конфликтов не было. Вот это все и названо тут преимуществами I2C перед уартом - там много чего аппаратно сделано.

Справедливости ради замечу, что слейвовые Tx можно объединить через диоды Шоттки, подтянуть к + питания - и проблема выгорания портов уйдет. А вот проблема протокола с предотвращением коллизий - останется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 19:02 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
RoboTok, бесполезно :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 19:25 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Мужик - это Сергей, а ослик ИА кто ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: UART vs I2C
СообщениеДобавлено: 03 фев 2009, 19:29 
Не в сети
Аватара пользователя

Зарегистрирован: 02 фев 2009, 02:14
Сообщения: 23
Откуда: мск
прог. языки: фортран,кобол,бейсик
для boez - да, ты прав. все ноги TX в одну кучу. смотри бит TransmitEnable в даташит у авр. Чет не очень се представляю как можно одной ножкой проца спалить другую))). Эт те же не русская микросхема советских времен.ну еще можно посмотреть на схематику пина чтоб это понять.

для RoboTok - ну прально. ток в конце передачи слэйва надо бит TransmitEnable сбросить в ноль. + одна строка кода :D


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO